-
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
エディターのメイン画面でアップデートを通知する #1616
エディターのメイン画面でアップデートを通知する #1616
Conversation
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.
(コメントしようとしたら間違えてrequested changes
にしてしまいました!)
良い感じだと思います!!!
ちょっとこちらでデザインは調整させていただくことになるかもです、ご了承いただければ!
アップデート通知ダイアログをコンポーネントにして EditoHome.vue に追加してみたのですが、わざわざコンポーネントにするのではなく SHOW_CONFIRM_DIALOG や SHOW_NOTIFY_AND_NOT_SHOW_AGAIN_BUTTON を使ったほうがいい気がしています。
よくある「このバージョンをスキップする」ボタンや、あるいは今のバージョンから最新バージョンまででどのような変更が行われるかのリストを表示するなど、ちょっと一般的じゃないダイアログを表示したくなるような気がしています。
であれば今のうちから一般的じゃないダイアログでもいいかもと思いました。
ただまあ今の機能であればSHOW_CONFIRM_DIALOG
でも良いかもです。
どちらでもやりやすいように、という感じです!!
また、設定でアップデートを通知するかどうか変更できるようにしたほうがいいとも思っています(まだ実現できていませんが)。
よくあるのは「このバージョンをスキップする」ボタンでしょうか。
スキップする=二度と表示しないなので、一度見たTipsを二度と表示しないようにするためのConfirmedTips
があって、機能的には近いかもです。
ただこっちは用意されているものだけに対応しているので、どの最新バージョンが来るかわからないバージョンスキップ機能の場合はちょっと実装を変える必要があるかもです。
一旦このプルリクエスト内では最新版があったら何度もダイアログを表示するという仕様にしておいて、後のプルリクエストでスキップできるように目指してみる(あるいはやってみて難しかったら他の方に任せる)というのはどうでしょう?
@@ -0,0 +1,57 @@ | |||
<template> | |||
<q-dialog v-if="isUpdateAvailable" v-model="showDialog"> |
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.
あ、ちょっとお伝えし忘れてたのですが、useDialogPluginComponent
が便利かもしれません。
(このままでも問題ないです!)
return isCheckingFinished.value && latestVersion.value !== ""; | ||
}); | ||
|
||
const showDialog = ref<boolean>(true); |
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.
いまのところ、最新バージョンに更新できるのであれば毎回必ず通知するようになっています。
将来的には最新バージョンがスキップされたかどうかをshowDialogの初期値としたいです。
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.
あ、なるほどです!!v-if="isUpdateAvailable"
が入っているのを見逃していました!
ちょっと相談したいことが・・・!
既存でいろんなダイアログがあるのですが、それらの既存のダイアログは開くかどうかを外のコンポーネントが制御しています。
(isHelpDialogOpenComputed
とかで)
このダイアログも同じように制御するというのはどうでしょう?
その場合おそらくEditorHome.vue
内にuseFetchLatestVersion
などを移動し、isUpdateAvailable
になったらisUpdateNotificationDialogOpenComputed = true
にするなどの実装になるのかなと・・・!
今の実装でも間違っておらず、既存の実装に合わせて欲しいというわがままなお願いなのですが、もしよければ 🙇
コメントありがとうございます!
せっかくなので、どのような変更があったか表示できるようにしたいと思います!
この機能は #543 のコメントにある、
を想定していました。設定 / オプションに、アップデート通知の on/off を切り替える項目を追加しようかなと。 // components/UpdateNotificationDialog.vue
const showDialog = ref<boolean>(true);
→ const showDialog = computed(() => store.state.NotifyUpdate); 「このバージョンをスキップする」ボタンは私には難易度が高そうなので他の方にお願いしようと思います。。 |
了解です!!是非!! もし実装する場合の追加の提案なのですが、このリポジトリをフォークして使っている方のために、このURLを
なるほどです! 実装する場合は設定の「高度な設定」あたりに属するかなと思いました。 |
すみません、、この文の意図が掴めなかったので具体的に教えていただきたいです。
「このバージョンをスキップする」ボタンには個人的に馴染みがなく、どういうものなのか分かっていないです。 最新バージョン 0.14.9 が利用できます!と通知された場合に「スキップする」と以後エディタを立ち上げても再度通知されることはない。 ということでしょうか? on/off 機能について改めて考えてみたのですが、以下の問題点を思いつきました。
on/off 機能よりも「このバージョンをスキップする」ボタンのほうがアップデート通知の意義に沿っている機能な気がしてきました! |
あ、なるほどです! Lines 333 to 337 in aaf0576
最新の更新情報はネット上にしかないのでそれをダウンロードする必要があるかなという意図でした! 🙇
ですです!たぶん想像している通りだと思います。
実装した場合の課題点の洗い出しは手戻り防止になるのでありがたいです!! |
アップデート通知ダイアログから最新バージョンの更新情報を見れるようにしました! 更新情報のURLに関してなのですが、 const latestUpdateInfosURL = import.meta.env.VITE_LATEST_UPDATE_INFOS_URL; と書いたら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/views/EditorHome.vue
Outdated
@@ -7,6 +7,7 @@ | |||
<q-page-container> | |||
<q-page class="main-row-panes"> | |||
<progress-dialog /> | |||
<update-notification-dialog /> |
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.
dialogの場所ですが、↓にいっぱいあるのでこの辺りに追加していただけると!
voicevox/src/views/EditorHome.vue
Lines 159 to 178 in 0346b31
<help-dialog v-model="isHelpDialogOpenComputed" /> | |
<setting-dialog v-model="isSettingDialogOpenComputed" /> | |
<hotkey-setting-dialog v-model="isHotkeySettingDialogOpenComputed" /> | |
<header-bar-custom-dialog v-model="isToolbarSettingDialogOpenComputed" /> | |
<character-order-dialog | |
v-if="orderedAllCharacterInfos.length > 0" | |
v-model="isCharacterOrderDialogOpenComputed" | |
:character-infos="orderedAllCharacterInfos" | |
/> | |
<default-style-list-dialog | |
v-if="orderedAllCharacterInfos.length > 0" | |
v-model="isDefaultStyleSelectDialogOpenComputed" | |
:character-infos="orderedAllCharacterInfos" | |
/> | |
<dictionary-manage-dialog v-model="isDictionaryManageDialogOpenComputed" /> | |
<engine-manage-dialog v-model="isEngineManageDialogOpenComputed" /> | |
<accept-retrieve-telemetry-dialog | |
v-model="isAcceptRetrieveTelemetryDialogOpenComputed" | |
/> | |
<accept-terms-dialog v-model="isAcceptTermsDialogOpenComputed" /> |
return isCheckingFinished.value && latestVersion.value !== ""; | ||
}); | ||
|
||
const showDialog = ref<boolean>(true); |
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.
あ、なるほどです!!v-if="isUpdateAvailable"
が入っているのを見逃していました!
ちょっと相談したいことが・・・!
既存でいろんなダイアログがあるのですが、それらの既存のダイアログは開くかどうかを外のコンポーネントが制御しています。
(isHelpDialogOpenComputed
とかで)
このダイアログも同じように制御するというのはどうでしょう?
その場合おそらくEditorHome.vue
内にuseFetchLatestVersion
などを移動し、isUpdateAvailable
になったらisUpdateNotificationDialogOpenComputed = true
にするなどの実装になるのかなと・・・!
今の実装でも間違っておらず、既存の実装に合わせて欲しいというわがままなお願いなのですが、もしよければ 🙇
ダイアログの制御を (ちなみに自分の環境だと、 |
おっとなるほどです!なにか妙なことになってるかもですね…。 そこ以外思い当たる点がないので、解決が難しそうであればこちらでコード変更させていただこうと思います! 🙇 |
はい。.envで定義していました。 viteについて詳しくないのでそちらにお願いしたいです🙏 |
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です!!!!
ちょっとUI周りというかUX周りというかで、よりユーザービリティが高くなるような提案をいくつかしてみました!
もし良さそうなのあれば・・・!
これが完了し次第マージさせていただこうと思います!!
自分用メモ:表示をデバッグするときは、EditorHomeのisUpdateAvailable
をtrueにし、UpdateNotificationDialog.vue
のsemver.lt
をgt
にする
アップデート内容を通知ダイアログに直接表示するようにしました! |
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作ってみました。
もしよかったら挑戦してみていただければ・・・!!
他にもいろんなissueがあるのでよかったら是非挑戦してみてください・・・!
一点、.env
に設定した変数が利用できない点ですが、こちらで試してみた感じviteの設定がそうなっていることが判明しました・・・。
不正確なことを言って混乱させてしまって申し訳ないです 🙇
↓こちらで @sevenc-nanashi さんが修正してくださいました!
追加で.env
の値を使うようにこちらからコミットさせていただきます!
内容
エディターを起動したときに(新しいバージョンがあれば)アップデートを通知します。
関連 Issue
ref #235
スクリーンショット・動画など
Screen.Recording.2023-10-22.at.16.35.17.mov
その他
アップデート通知ダイアログをコンポーネントにして
EditoHome.vue
に追加してみたのですが、わざわざコンポーネントにするのではなくSHOW_CONFIRM_DIALOG
やSHOW_NOTIFY_AND_NOT_SHOW_AGAIN_BUTTON
を使ったほうがいい気がしています。また、設定でアップデートを通知するかどうか変更できるようにしたほうがいいとも思っています(まだ実現できていませんが)。