177177 v-model =" isAcceptRetrieveTelemetryDialogOpenComputed"
178178 />
179179 <accept-terms-dialog v-model =" isAcceptTermsDialogOpenComputed" />
180- <update-notification-dialog
181- v-if =" newUpdateResult.status == 'updateAvailable'"
182- v-model =" isUpdateNotificationDialogOpenComputed"
183- :latest-version =" newUpdateResult.latestVersion"
184- :new-update-infos =" newUpdateResult.newUpdateInfos"
185- @skip-this-version-click =" handleSkipThisVersionClick"
180+ <update-notification-dialog-container
181+ :can-open-dialog =" canOpenNotificationDialog"
186182 />
187183</template >
188184
@@ -193,7 +189,6 @@ import draggable from "vuedraggable";
193189import { QResizeObserver } from " quasar" ;
194190import cloneDeep from " clone-deep" ;
195191import Mousetrap from " mousetrap" ;
196- import semver from " semver" ;
197192import { useStore } from " @/store" ;
198193import HeaderBar from " @/components/HeaderBar.vue" ;
199194import AudioCell from " @/components/AudioCell.vue" ;
@@ -212,8 +207,7 @@ import AcceptTermsDialog from "@/components/AcceptTermsDialog.vue";
212207import DictionaryManageDialog from " @/components/DictionaryManageDialog.vue" ;
213208import EngineManageDialog from " @/components/EngineManageDialog.vue" ;
214209import ProgressDialog from " @/components/ProgressDialog.vue" ;
215- import UpdateNotificationDialog from " @/components/UpdateNotificationDialog.vue" ;
216- import { useFetchNewUpdateInfos } from " @/composables/useFetchNewUpdateInfos" ;
210+ import UpdateNotificationDialogContainer from " @/components/UpdateNotificationDialog/Container.vue" ;
217211import { AudioItem , EngineState } from " @/store/type" ;
218212import {
219213 AudioKey ,
@@ -553,23 +547,6 @@ watch(userOrderedCharacterInfos, (userOrderedCharacterInfos) => {
553547 }
554548});
555549
556- // エディタのアップデート確認
557- if (! import .meta .env .VITE_LATEST_UPDATE_INFOS_URL ) {
558- throw new Error (
559- " 環境変数VITE_LATEST_UPDATE_INFOS_URLが設定されていません。.envに記載してください。"
560- );
561- }
562- const newUpdateResult = useFetchNewUpdateInfos (
563- () => window .electron .getAppInfos ().then ((obj ) => obj .version ), // アプリのバージョン
564- import .meta .env .VITE_LATEST_UPDATE_INFOS_URL
565- );
566- const handleSkipThisVersionClick = (version : string ) => {
567- store .dispatch (" SET_ROOT_MISC_SETTING" , {
568- key: " skipUpdateVersion" ,
569- value: version ,
570- });
571- };
572-
573550// ソフトウェアを初期化
574551const isCompletedInitialStartup = ref (false );
575552onMounted (async () => {
@@ -647,14 +624,7 @@ onMounted(async () => {
647624
648625 // 設定の読み込みを待機する
649626 // FIXME: 設定が必要な処理はINIT_VUEXを実行しているApp.vueで行うべき
650- let vuexReadyTimeout = 0 ;
651- while (! store .state .isVuexReady ) {
652- if (vuexReadyTimeout >= 15000 ) {
653- throw new Error (" Vuexが準備できませんでした" );
654- }
655- await new Promise ((resolve ) => setTimeout (resolve , 300 ));
656- vuexReadyTimeout += 300 ;
657- }
627+ await store .dispatch (" WAIT_VUEX_READY" , { timeout: 15000 });
658628
659629 isAcceptRetrieveTelemetryDialogOpenComputed .value =
660630 store .state .acceptRetrieveTelemetry === " Unconfirmed" ;
@@ -663,22 +633,6 @@ onMounted(async () => {
663633 import .meta .env .MODE !== " development" &&
664634 store .state .acceptTerms !== " Accepted" ;
665635
666- // アップデート通知ダイアログ
667- if (newUpdateResult .value .status === " updateAvailable" ) {
668- const skipUpdateVersion = store .state .skipUpdateVersion ?? " 0.0.0" ;
669- if (semver .valid (skipUpdateVersion ) == undefined ) {
670- // 処理を止めるほどではないので警告だけ
671- store .dispatch (
672- " LOG_WARN" ,
673- ` skipUpdateVersionが不正です: ${skipUpdateVersion } `
674- );
675- } else if (
676- semver .gt (newUpdateResult .value .latestVersion , skipUpdateVersion )
677- ) {
678- isUpdateNotificationDialogOpenComputed .value = true ;
679- }
680- }
681-
682636 isCompletedInitialStartup .value = true ;
683637});
684638
@@ -854,18 +808,15 @@ const isAcceptRetrieveTelemetryDialogOpenComputed = computed({
854808 }),
855809});
856810
857- // アップデート通知
858- const isUpdateNotificationDialogOpenComputed = computed ({
859- get : () =>
811+ // エディタのアップデート確認ダイアログ
812+ const canOpenNotificationDialog = computed (() => {
813+ return (
860814 ! store .state .isAcceptTermsDialogOpen &&
861815 ! store .state .isCharacterOrderDialogOpen &&
862816 ! store .state .isDefaultStyleSelectDialogOpen &&
863817 ! store .state .isAcceptRetrieveTelemetryDialogOpen &&
864- store .state .isUpdateNotificationDialogOpen ,
865- set : (val ) =>
866- store .dispatch (" SET_DIALOG_OPEN" , {
867- isUpdateNotificationDialogOpen: val ,
868- }),
818+ isCompletedInitialStartup .value
819+ );
869820});
870821
871822// ドラッグ&ドロップ
0 commit comments