-
Notifications
You must be signed in to change notification settings - Fork 305
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
前回開いていたエディタ(トーク or ソング)画面を起動時に表示 #2355
Conversation
🚀 プレビュー用ページを作成しました 🚀 更新時点でのコミットハッシュ: |
src/store/ui.ts
Outdated
mutations.SET_OPENED_EDITOR({ | ||
editor: await window.backend.setSetting("editorType", editorType), | ||
}); |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
mutations.SET_OPENED_EDITOR({ | |
editor: await window.backend.setSetting("editorType", editorType), | |
}); | |
await window.backend.setSetting("editorType", editorType) | |
mutations.SET_OPENED_EDITOR({ | |
editor: editorType, | |
}); |
普通に分けた方が良さそう。
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
私もそちらが分かりやすそうに思えます。ただ、既存のSET_INHERIT_AUDIOINFOやSET_ACTIVE_POINT_SCROLL_MODEでは引数内で記述されているので統一感を考慮してSET_EDITOR_TYPEもそれに倣いました。これらの関数がどのような意図や都合で書かれたか分からないため、判断に迷っています。
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
確かにこれ混乱しますね!!
僕も正確なところがちょっとわかんないです。。。
最初は設定ごとにSETのためのmutation/actionがあったのですが、後々に統合されたSET_ROOT_MISC_SETTING
ができました。
なので大多数はSET_ROOT_MISC_SETTING
を使ってますが、どうやらまだ個別にSETしているものが残っていたっぽいです・・・!
今回の場合は多分SET_EDITOR_TYPE
は用意せず、SET_ROOT_MISC_SETTING
を使う形が良さそうに感じました!
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
PRありがとうございます!!!
実装とコメントを見させていただいて、確かにちょっとややこしくなっていることがわかりました 🙇
ということで、整理した後提案を書いてみました!
既存で「どれが開かれているか」を格納しているopenedEditor
と、それとは別にeditorType
が状態(State)に含まれていますね!
実際にUIの表示に使われているのはopenedEditor
で、後者は設定の同期のために使われていそう。
つまり設定の同期が終わった後は同じものを示す変数が2つあり、このままだと何が取りに依存するかわからなくなって難しいことになるかも。
ちょっと提案なのですが設定+状態のeditorType
を追加せず、逆に今までのopenedEditor
を設定に追加するのはどうでしょうか? 👀
多分方針はこんな感じ・・・?
- settingに
openedEditor
を追加- 型は
"talk" | "song"
だけでundefinedは無し - デフォルト値を"talk"にする
- 型は
- 元からあったuiState.openedEditorをなくし、serringState.openedEditorに移動
- あとは微調整して完成?
ちょっとややこしいと思うので、多分こんな感じというのをコメントしていきます!!
コメントの内容以外に↓もすれば完成・・・・なはず・・・!!
SET_OPENED_EDITOR
を消すSET_OPENED_EDITOR
でファイル全体検索すれば・・・!
- 代わりに
SET_ROOT_MISC_SETTING("openedEditor")
を使う
不明だったら何でもコメントください 🙇
src/components/App.vue
Outdated
await store.dispatch("SET_ROOT_MISC_SETTING", { | ||
key: "editorType", | ||
value: openedEditor, | ||
}); |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
ここはなくなる
src/components/App.vue
Outdated
// どちらのエディタを開くか設定 | ||
await store.actions.SET_OPENED_EDITOR({ editor: "talk" }); | ||
await store.actions.SET_OPENED_EDITOR({ | ||
editor: store.state.editorType, | ||
}); |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
ここは以前のコードもなくなる
(SET_OPENED_EDITOR
を呼ばない)
src/store/setting.ts
Outdated
@@ -71,6 +71,7 @@ export const settingStoreState: SettingStoreState = { | |||
}, | |||
showSingCharacterPortrait: true, | |||
playheadPositionDisplayFormat: "MINUTES_SECONDS", | |||
editorType: "talk", |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
openedEditorに
src/store/setting.ts
Outdated
@@ -148,6 +149,7 @@ export const settingStore = createPartialStore<SettingStoreTypes>({ | |||
"undoableTrackOperations", | |||
"showSingCharacterPortrait", | |||
"playheadPositionDisplayFormat", | |||
"editorType", |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
ここもopenedEditor
に
src/store/type.ts
Outdated
editorType: EditorType; | ||
openedEditor: EditorType | undefined; // undefinedのときはどのエディタを開くか定まっていない |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
ここはuiStateなので、editorTypeもopenedEditorも両方消す
src/store/ui.ts
Outdated
editorType: "talk", | ||
openedEditor: undefined, |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
ここも消えるはず
src/store/ui.ts
Outdated
mutations.SET_OPENED_EDITOR({ | ||
editor: await window.backend.getSetting("editorType"), | ||
}); | ||
|
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
HYDRATE_SETTING_STORE
内のmutations.SET_ROOT_MISC_SETTING
があるのでこのコードはなくても良いはず!
(さらに言うと上のmutations.SET_ACTIVE_POINT_SCROLL_MODE
とかもいらなそうだけど・・・まあ一旦放置で・・・。
あ、もし気が向いたら別でプルリクエストとかいただけるとめちゃくちゃ嬉しいです!!)
src/store/ui.ts
Outdated
SET_EDITOR_TYPE: { | ||
mutation(state, { editorType }: { editorType: EditorType }) { | ||
state.editorType = editorType; | ||
}, | ||
async action({ mutations }, { editorType }: { editorType: EditorType }) { |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
ここもなくせそう!
src/type/preload.ts
Outdated
@@ -594,6 +594,7 @@ export const rootMiscSettingSchema = z.object({ | |||
playheadPositionDisplayFormat: z | |||
.enum(["MINUTES_SECONDS", "MEASURES_BEATS"]) | |||
.default("MINUTES_SECONDS"), // 再生ヘッド位置の表示モード | |||
editorType: z.enum(["talk", "song"]).default("talk"), |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
ここをopenedEditorに変える感じで・・・!
(これが今回の提案の肝)
src/type/preload.ts
Outdated
@@ -603,6 +604,7 @@ export const configSchema = z | |||
activePointScrollMode: z | |||
.enum(["CONTINUOUSLY", "PAGE", "OFF"]) | |||
.default("OFF"), | |||
editorType: z.enum(["talk", "song"]).default("talk"), |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
rootMiscSettingSchema
側にあるのでこちらいらないはず!
テストが落ちてそうでした!! 調べてみた感じかなり難しかったので、こちらでPR作ってみました! |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
変更ありがとうございます!!
もうほとんど感染してる気がします!!
これソングで開いたあと保存して再度開いた時、一瞬だけトーク画面が映っちゃいますね!!
Vuex.stateの初期値はundefinedにし、保存されている値の初期値talkにして、undefinedのときは(以前と同様に)何も映さないようにすれば解決しそう・・・?
ということでまたになってしまうのですがプルリクエスト作ってみました 🙇
何かおかし挙動とかあれば・・・・・ 🙇
多分ローカルでnpm iし直したら治ると思います |
ありがとうございます。 |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
大丈夫だと思います。
LGTM!!! 実装ありがとうございました!! またお誘いになってしまうのですが、もしよかったらまた機能追加に挑戦してみませんか・・・!!
もしよければぜひぜひ!!! |
内容
とりあえず動くはずですが、理解して書いたというよりもエラーメッセージの誘導に従っただけな感があるので、設計の方針に沿うかはなんとも分からないです
関連 Issue
#2010