-
Notifications
You must be signed in to change notification settings - Fork 308
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
add AccentPhraseに個別idを設定 #1879
base: main
Are you sure you want to change the base?
add AccentPhraseに個別idを設定 #1879
Conversation
AccentPhraseを継承したEditorAccentPhraseという型を作成し、EditorAudioQueryのプロパティとした。 AudioDetail.vueファイルの中でaccentPhrases変数の変更のタイミングで割り振るように
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/type.ts
Outdated
export interface EditorAccentPhrase extends AccentPhrase { | ||
editorID?: string; | ||
} |
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.
すみません、ちょっとご相談です!
editorID?
をオプショナルじゃなくするか、あるいはAudioDetail.vue
内でだけeditorIDが現れる形にするか、どちらかに倒す必要があるかもです 🙇
以下詳細です:
editorID?
とオプショナルにするの、なるほどです!!
ただこうすると、プロジェクトファイルを保存した時にこの ID が保存されたりされなかったりしちゃうかもです。
実際にオプショナルをやめる設計を考えていたのですが、実際試してみると膨大な量の変更が必要になりました 😇
実際に実装してみたのが↓です。まだmerge/splitしたときにアニメーションしてしまう問題が残ってます。
Hiroshiba#2
あるいは、どうにかしてAudioDetail.vue
内でだけアクセント句ごとにeditorIDを持たせるのも良さそうです。
ただその方法ずっと考えてみてたんですが、思いつきませんでした・・・・・・・・。もし思いついたらぜひ知りたいです。。
ということで、2通りの方法どちらかできそうだったりしますか・・・?
前者は大変ですが、僕が書いたとこから続きをやっていただければ・・・!
後者の方は方法が思いついたらぜひお願いしたいです 🙇
長くなってしまってすみません、何かあれば気軽に聞いていただければ!!
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.
ご提案ありがとうございます。
こちら了解しました!
後者は私の方でも検討してみますが、難しそうであればこのまま前者を実装してみます!
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.
ありがとうございます!!
入り組み始めるかもなので、不明な点などあればお気軽にお聞きください!!
これマージコミットって発生しても大丈夫ですか? |
@P0ngCh4ng マージコミット大丈夫です! ちなみにrebaseはgithubコメントとコミットの順番が変わるのでどちらかというとマージのが嬉しい感じです!(細かいのでどこにもこの案内書いてません🙇) |
先日いただいた修正をもとに、とりあえず同じようにaudioDetails.tsの中でactionを走らせてみました。 |
@Hiroshiba |
@P0ngCh4ng おまたせしてしまっていて申し訳ありません 🙇 🙇 🙇 |
すみませんお待たせしました!
課題点は解決していますが、実はちょっとだけ危ない点があるかもと思いました! vueの中でUI操作以外(Vuex.stateのwatch)からVuexの状態を変更してる点です。 実際、テキスト欄を削除するとエラーが出るのを発見しました! そもそもmerge/splitするときにidを変更してしまっても問題なさそうなことに気づきました。 merge/splitは多分この辺なのですが、ここでidを変更するように処理の書き換えをお願いする事ってできたりしますか・・・? 🙇 何度も何度もすみません。。わからないとこがあれば何でも聞いてください!! 🙇 |
了解しました |
@Hiroshiba |
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.
方針は良いと思います!
修正が必要な点として、過去のバージョンで作られたプロジェクトファイルを読み込む際にkeyを追加するマイグレーションが書かれていません。project.tsにマイグレーションのコードがあるので追加をお願いします🙏
レビューありがとうございます! |
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.
修正ありがとうございます!
project.ts
の修正についてなのですが、このPR以前のバージョンで作られたプロジェクトファイルではkey
プロパティが含まれていないので、それを追加する処理を書いてください。
具体的にはproject.ts
の他のマイグレーション処理の後に、他のマイグレーションと同じようにsemverでバージョンを判別しマイグレーションを実行するコードを書いてください。
if (semver.satisfies(projectAppVersion, "<0.17.0", semverSatisfiesOptions)) {
... // アクセント句にkeyプロパティを追加する処理を書く
}
src/store/project.ts
Outdated
@@ -298,7 +300,7 @@ export const projectStore = createPartialStore<ProjectStoreTypes>({ | |||
engineId, | |||
styleId: audioItem.characterIndex, | |||
}) | |||
.then((accentPhrases: AccentPhrase[]) => { |
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.
申し訳ございません、説明不足でした!
このコードはvoicevoxの 0.5より前のバージョンで作られたプロジェクトファイルを編集している箇所なので、keyが含まれていないAccentPhraseのままで大丈夫だと思います!
ご指摘ありがとうございます。 |
マイグレーションのコードは @Hiroshiba マイグレーションのバージョン判定を埋め込んでいるのでメンションしておきます。 |
コンフリクトの解消の方法については、
こちらの方法で問題ないでしょうか? 日にちだいぶ空いてしまいましたが、GW中は時間があるので、作業再開します 🙇 |
@P0ngCh4ng また、先日0.19.0がリリースされたため、バージョン判定は'<0.20.0'でよろしくお願いします! |
@Segu-g これらの問題が残っています。レビューしていただいてもよろしいでしょうか? |
#1992 かも?多分フォーマットかければ治ると思います |
|
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/project.tsの93行目に発生したエラーの解決ができない
すみません、エラーの件見逃してました!
ここのエラーはプロジェクトファイルの型定義である LatestProjectType
の更新のし忘れによって起こっているエラーです。
src\domain\project\schema.ts
にある accentPhraseSchema
に key: accentPhraseKeySchema
を追加すれば良いと思います!
accentPhraseKeySchema追加し忘れ EditorAccentPhraseからAccentPhraseへ戻し忘れ
エラーの修正完了しました! |
すみません!レビューが遅くなってしまいました🙇♂️ PRの修正内容は問題ないと思います!LGTMです! |
AccentPhraseを継承したEditorAccentPhraseという型を作成し、EditorAudioQueryのプロパティとした。
AudioDetail.vueファイルの中でaccentPhrases変数の変更のタイミングで割り振るように
内容
このようなactionとmutationを作成し、AudioDetail.vueの中で呼ぶように。
関連 Issue
#1591
その他
動作的には問題なさそうですが、作成した
SET_ACCENT_PHRASES_EDITORID
を呼び出す場所はここで良いでしょうか?src/openapi/models/AccentPhrase.ts
ファイル内と迷いましたが、まずは実装が簡単そうだった方から選びました。2024-02-27.15.17.16.mov