summaryrefslogtreecommitdiff
path: root/packages/frontend
diff options
context:
space:
mode:
authorsyuilo <Syuilotan@yahoo.co.jp>2024-01-21 12:05:51 +0900
committersyuilo <Syuilotan@yahoo.co.jp>2024-01-21 12:05:51 +0900
commit6039f27bd50ef1fbbbe6bffe12b18614c9e5b85c (patch)
treeec41e4fe86f5b9ddc685d5817d853a0854c741b0 /packages/frontend
parentenhance(sw): オフライン表示のデザインを改善 (#13052) (diff)
downloadmisskey-6039f27bd50ef1fbbbe6bffe12b18614c9e5b85c.tar.gz
misskey-6039f27bd50ef1fbbbe6bffe12b18614c9e5b85c.tar.bz2
misskey-6039f27bd50ef1fbbbe6bffe12b18614c9e5b85c.zip
enhance(reversi): tweak reversi
Diffstat (limited to 'packages/frontend')
-rw-r--r--packages/frontend/src/pages/reversi/game.setting.vue17
-rw-r--r--packages/frontend/src/pages/reversi/game.vue19
2 files changed, 33 insertions, 3 deletions
diff --git a/packages/frontend/src/pages/reversi/game.setting.vue b/packages/frontend/src/pages/reversi/game.setting.vue
index 360b75745c..9ca107278b 100644
--- a/packages/frontend/src/pages/reversi/game.setting.vue
+++ b/packages/frontend/src/pages/reversi/game.setting.vue
@@ -86,7 +86,7 @@ SPDX-License-Identifier: AGPL-3.0-only
<template v-if="!isReady && !isOpReady">{{ i18n.ts._reversi.waitingBoth }}<MkEllipsis/></template>
</div>
<div class="_buttonsCenter">
- <MkButton rounded danger @click="exit">{{ i18n.ts.cancel }}</MkButton>
+ <MkButton rounded danger @click="cancel">{{ i18n.ts.cancel }}</MkButton>
<MkButton v-if="!isReady" rounded primary @click="ready">{{ i18n.ts._reversi.ready }}</MkButton>
<MkButton v-if="isReady" rounded @click="unready">{{ i18n.ts._reversi.cancelReady }}</MkButton>
</div>
@@ -109,9 +109,12 @@ import MkSwitch from '@/components/MkSwitch.vue';
import MkFolder from '@/components/MkFolder.vue';
import * as os from '@/os.js';
import { MenuItem } from '@/types/menu.js';
+import { useRouter } from '@/global/router/supplier.js';
const $i = signinRequired();
+const router = useRouter();
+
const mapCategories = Array.from(new Set(Object.values(Reversi.maps).map(x => x.category)));
const props = defineProps<{
@@ -171,8 +174,16 @@ function chooseMap(ev: MouseEvent) {
os.popupMenu(menu, ev.currentTarget ?? ev.target);
}
-function exit() {
- props.connection.send('exit', {});
+async function cancel() {
+ const { canceled } = await os.confirm({
+ type: 'warning',
+ text: i18n.ts.areYouSure,
+ });
+ if (canceled) return;
+
+ props.connection.send('cancel', {});
+
+ router.push('/reversi');
}
function ready() {
diff --git a/packages/frontend/src/pages/reversi/game.vue b/packages/frontend/src/pages/reversi/game.vue
index dbbeb20f42..0bdbfbcf54 100644
--- a/packages/frontend/src/pages/reversi/game.vue
+++ b/packages/frontend/src/pages/reversi/game.vue
@@ -17,6 +17,14 @@ import GameBoard from './game.board.vue';
import { misskeyApi } from '@/scripts/misskey-api.js';
import { definePageMetadata } from '@/scripts/page-metadata.js';
import { useStream } from '@/stream.js';
+import { signinRequired } from '@/account.js';
+import { useRouter } from '@/global/router/supplier.js';
+import * as os from '@/os.js';
+import { i18n } from '@/i18n.js';
+
+const $i = signinRequired();
+
+const router = useRouter();
const props = defineProps<{
gameId: string;
@@ -45,6 +53,17 @@ async function fetchGame() {
connection.value.on('started', x => {
game.value = x.game;
});
+ connection.value.on('canceled', x => {
+ connection.value?.dispose();
+
+ if (x.userId !== $i.id) {
+ os.alert({
+ type: 'warning',
+ text: i18n.ts._reversi.gameCanceled,
+ });
+ router.push('/reversi');
+ }
+ });
}
onMounted(() => {