diff options
| author | syuilo <Syuilotan@yahoo.co.jp> | 2024-01-21 12:05:51 +0900 |
|---|---|---|
| committer | syuilo <Syuilotan@yahoo.co.jp> | 2024-01-21 12:05:51 +0900 |
| commit | 6039f27bd50ef1fbbbe6bffe12b18614c9e5b85c (patch) | |
| tree | ec41e4fe86f5b9ddc685d5817d853a0854c741b0 /packages/frontend | |
| parent | enhance(sw): オフライン表示のデザインを改善 (#13052) (diff) | |
| download | misskey-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.vue | 17 | ||||
| -rw-r--r-- | packages/frontend/src/pages/reversi/game.vue | 19 |
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(() => { |