diff --git a/src/components/App.vue b/src/components/App.vue index f49b89c372..cc6b8f4c80 100644 --- a/src/components/App.vue +++ b/src/components/App.vue @@ -160,6 +160,7 @@ onMounted(async () => { isAcceptTermsDialogOpen: import.meta.env.MODE !== "development" && store.state.acceptTerms !== "Accepted", + isInitialSettingsDialogOpen: store.state.openedEditor == undefined, }); // プロジェクトファイルが指定されていればロード diff --git a/src/components/Dialog/AllDialog.vue b/src/components/Dialog/AllDialog.vue index 2d594f3b57..57e62d764e 100644 --- a/src/components/Dialog/AllDialog.vue +++ b/src/components/Dialog/AllDialog.vue @@ -144,6 +144,21 @@ const isAcceptRetrieveTelemetryDialogOpenComputed = computed({ }), }); +// 初期設定ダイアログ +const isInitialSettingsDialogOpenComputed = computed({ + get: () => + !store.state.isAcceptTermsDialogOpen && + !store.state.isCharacterOrderDialogOpen && + !store.state.isDefaultStyleSelectDialogOpen && + !store.state.isAcceptRetrieveTelemetryDialogOpen && + store.state.isInitialSettingsDialogOpen, + set: (val) => { + void store.actions.SET_DIALOG_OPEN({ + isInitialSettingsDialogOpen: val, + }); + }, +}); + // エディタのアップデート確認ダイアログ const canOpenNotificationDialog = computed(() => { return ( @@ -172,18 +187,4 @@ const isImportSongProjectDialogOpenComputed = computed({ isImportSongProjectDialogOpen: val, }), }); - -// 初期設定ダイアログ -const isSelectedEditorType = computed(() => store.state.openedEditor); -console.log(isSelectedEditorType.value); -const isInitialSettingsDialogOpenComputed = computed({ - get: () => store.state.isInitialSettingsDialogOpen, - set: (val) => { - if (isSelectedEditorType.value) { - void store.actions.SET_DIALOG_OPEN({ - isInitialSettingsDialogOpen: val, - }); - } - }, -}); diff --git a/src/store/type.ts b/src/store/type.ts index 0a956c255c..e6f30ea84a 100644 --- a/src/store/type.ts +++ b/src/store/type.ts @@ -1874,9 +1874,7 @@ export type SettingStoreState = { experimentalSetting: ExperimentalSettingType; confirmedTips: ConfirmedTips; engineSettings: EngineSettings; -} & Omit & { - openedEditor: EditorType | undefined; // undefinedのときはどのエディタを開くか定まっていない - }; +} & RootMiscSettingType; // keyとvalueの型を連動するようにしたPayloadを作る type KeyValuePayload = K extends keyof R diff --git a/src/store/ui.ts b/src/store/ui.ts index 26e6931d3b..68fbb87fad 100644 --- a/src/store/ui.ts +++ b/src/store/ui.ts @@ -80,7 +80,7 @@ export const uiStoreState: UiStoreState = { isUpdateNotificationDialogOpen: false, isExportSongAudioDialogOpen: false, isImportSongProjectDialogOpen: false, - isInitialSettingsDialogOpen: true, + isInitialSettingsDialogOpen: false, isMaximized: false, isPinned: false, isFullscreen: false, diff --git a/src/type/preload.ts b/src/type/preload.ts index cd1e6cf9e4..c3a4560120 100644 --- a/src/type/preload.ts +++ b/src/type/preload.ts @@ -377,7 +377,7 @@ export type ConfirmedTips = { // ルート直下にある雑多な設定値 export const rootMiscSettingSchema = z.object({ - openedEditor: z.enum(["talk", "song"]).default("talk"), + openedEditor: z.enum(["talk", "song"]).optional(), editorFont: z.enum(["default", "os"]).default("default"), showTextLineNumber: z.boolean().default(false), showAddAudioItemButton: z.boolean().default(true),