summaryrefslogtreecommitdiff
path: root/packages/frontend/src/pages/reversi
diff options
context:
space:
mode:
Diffstat (limited to 'packages/frontend/src/pages/reversi')
-rw-r--r--packages/frontend/src/pages/reversi/game.board.vue9
-rw-r--r--packages/frontend/src/pages/reversi/game.setting.vue9
-rw-r--r--packages/frontend/src/pages/reversi/index.vue6
3 files changed, 15 insertions, 9 deletions
diff --git a/packages/frontend/src/pages/reversi/game.board.vue b/packages/frontend/src/pages/reversi/game.board.vue
index aae638641a..61bd95d051 100644
--- a/packages/frontend/src/pages/reversi/game.board.vue
+++ b/packages/frontend/src/pages/reversi/game.board.vue
@@ -308,7 +308,7 @@ if (!props.game.isEnded) {
}, TIMER_INTERVAL_SEC * 1000, { immediate: false, afterMounted: true });
}
-async function onStreamLog(log) {
+async function onStreamLog(log: Reversi.Serializer.Log & { id: string | null }) {
game.value.logs = Reversi.Serializer.serializeLogs([
...Reversi.Serializer.deserializeLogs(game.value.logs),
log,
@@ -348,7 +348,10 @@ async function onStreamLog(log) {
}
}
-function onStreamEnded(x) {
+function onStreamEnded(x: {
+ winnerId: Misskey.entities.User['id'] | null;
+ game: Misskey.entities.ReversiGameDetailed;
+}) {
game.value = deepClone(x.game);
if (game.value.winnerId === $i.id) {
@@ -384,7 +387,7 @@ function checkEnd() {
}
}
-function restoreGame(_game) {
+function restoreGame(_game: Misskey.entities.ReversiGameDetailed) {
game.value = deepClone(_game);
engine.value = Reversi.Serializer.restoreGame({
diff --git a/packages/frontend/src/pages/reversi/game.setting.vue b/packages/frontend/src/pages/reversi/game.setting.vue
index 1e01496bbb..b987a8e911 100644
--- a/packages/frontend/src/pages/reversi/game.setting.vue
+++ b/packages/frontend/src/pages/reversi/game.setting.vue
@@ -113,6 +113,7 @@ SPDX-License-Identifier: AGPL-3.0-only
import { computed, watch, ref, onMounted, shallowRef, onUnmounted } from 'vue';
import * as Misskey from 'misskey-js';
import * as Reversi from 'misskey-reversi';
+import type { MenuItem } from '@/types/menu.js';
import { i18n } from '@/i18n.js';
import { ensureSignin } from '@/i.js';
import { deepClone } from '@/utility/clone.js';
@@ -121,7 +122,6 @@ import MkRadios from '@/components/MkRadios.vue';
import MkSwitch from '@/components/MkSwitch.vue';
import MkFolder from '@/components/MkFolder.vue';
import * as os from '@/os.js';
-import type { MenuItem } from '@/types/menu.js';
import { useRouter } from '@/router.js';
const $i = ensureSignin();
@@ -165,7 +165,7 @@ watch(() => game.value.timeLimitForEachTurn, () => {
updateSettings('timeLimitForEachTurn');
});
-function chooseMap(ev: MouseEvent) {
+function chooseMap(ev: PointerEvent) {
const menu: MenuItem[] = [];
for (const c of mapCategories) {
@@ -212,7 +212,10 @@ function unready() {
props.connection.send('ready', false);
}
-function onChangeReadyStates(states) {
+function onChangeReadyStates(states: {
+ user1: boolean;
+ user2: boolean;
+}) {
game.value.user1Ready = states.user1;
game.value.user2Ready = states.user2;
}
diff --git a/packages/frontend/src/pages/reversi/index.vue b/packages/frontend/src/pages/reversi/index.vue
index 8438943126..9a737e93ac 100644
--- a/packages/frontend/src/pages/reversi/index.vue
+++ b/packages/frontend/src/pages/reversi/index.vue
@@ -208,7 +208,7 @@ async function matchUser() {
matchHeatbeat();
}
-async function matchAny(ev: MouseEvent) {
+async function matchAny(ev: PointerEvent) {
const isLoggedIn = await pleaseLogin();
if (!isLoggedIn) return;
@@ -239,11 +239,11 @@ function cancelMatching() {
}
}
-async function accept(user) {
+async function accept(user: Misskey.entities.UserLite) {
const game = await misskeyApi('reversi/match', {
userId: user.id,
});
- if (game) {
+ if (game != null) {
startGame(game);
}
}