From 2fcca0c4b97cf46aa4e856b8b1bead4426f97f2a Mon Sep 17 00:00:00 2001 From: Justin Lin Date: Wed, 23 Apr 2025 16:03:39 +0800 Subject: [PATCH] refactor: update session management to handle tasks and responses in a single update --- app/src/components/game/DescriptionPart.vue | 12 ++++++--- app/src/components/game/QuestPart.vue | 1 + app/src/store/session.ts | 26 ++++++++++--------- .../src/api/controllers/commandController.ts | 10 +++++-- 4 files changed, 32 insertions(+), 17 deletions(-) diff --git a/app/src/components/game/DescriptionPart.vue b/app/src/components/game/DescriptionPart.vue index a7e3111..b050720 100644 --- a/app/src/components/game/DescriptionPart.vue +++ b/app/src/components/game/DescriptionPart.vue @@ -6,7 +6,7 @@ import MarkdownText from '../MarkdownText.vue' const sessionStore = useSession() const current = ref(-1) const length = computed(() => { - return sessionStore.session?.responses.length ?? 0 + return sessionStore.session?.responses?.length ?? 0 }) const disabled = computed(() => { @@ -14,6 +14,7 @@ const disabled = computed(() => { }) watch(length, () => { + console.log('length update', length.value) current.value = length.value - 1 }) @@ -30,7 +31,10 @@ const right = () => { } const response = computed(() => { - return sessionStore.session?.responses[current.value] + if (!sessionStore.session) return null + if (current.value < 0) return null + if (current.value >= sessionStore.session.responses.length) return null + return sessionStore.session.responses[current.value] }) @@ -41,7 +45,9 @@ const response = computed(() => { :icon="['far', 'lightbulb']" class="text-yellow-200 p-2 content-center" /> -

說明

+

+ 說明 {{ current }}/{{ length }} +