This commit is contained in:
NoriDev 2023-09-29 13:34:40 +09:00
parent c6b697cf2a
commit 6b419e9d1f
3 changed files with 24 additions and 7 deletions

View file

@ -8,7 +8,7 @@ import { compareVersions } from 'compare-versions';
import widgets from '@/widgets/index.js';
import directives from '@/directives/index.js';
import components from '@/components/index.js';
import { version, ui, lang, updateLocale } from '@/config.js';
import { version, basedMisskeyVersion, ui, lang, updateLocale } from '@/config.js';
import { applyTheme } from '@/scripts/theme.js';
import { isDeviceDarkmode } from '@/scripts/is-device-darkmode.js';
import { i18n, updateI18n } from '@/i18n.js';
@ -72,6 +72,7 @@ export async function common(createVue: () => App<Element>) {
//#region クライアントが更新されたかチェック
const lastVersion = miLocalStorage.getItem('lastVersion');
const lastBasedMisskeyVersion = miLocalStorage.getItem('lastBasedMisskeyVersion');
if (lastVersion !== version) {
miLocalStorage.setItem('lastVersion', version);
@ -84,11 +85,23 @@ export async function common(createVue: () => App<Element>) {
}
} catch (err) { /* empty */ }
}
if (lastBasedMisskeyVersion !== basedMisskeyVersion) {
miLocalStorage.setItem('lastBasedMisskeyVersion', basedMisskeyVersion);
// テーマリビルドするため
miLocalStorage.removeItem('theme');
try { // 変なバージョン文字列来るとcompareVersionsでエラーになるため
if (lastBasedMisskeyVersion != null && compareVersions(basedMisskeyVersion, lastBasedMisskeyVersion) === 1) {
isClientUpdated = true;
}
} catch (err) { /* empty */ }
}
//#endregion
//#region Detect language & fetch translations
const localeVersion = miLocalStorage.getItem('localeVersion');
const localeOutdated = (localeVersion == null || localeVersion !== version);
const localeOutdated = (localeVersion == null || localeVersion !== version || lastBasedMisskeyVersion !== basedMisskeyVersion);
if (localeOutdated) {
const res = await window.fetch(`/assets/locales/${lang}.${version}.json`);
if (res.status === 200) {

View file

@ -7,7 +7,10 @@ SPDX-License-Identifier: AGPL-3.0-only
<MkModal v-if="!showChangelog" ref="modal" :zPriority="'middle'" @closed="$emit('closed')">
<div :class="$style.root">
<div :class="$style.title"><MkSparkle>{{ i18n.ts.misskeyUpdated }}</MkSparkle></div>
<div :class="$style.version">{{ version }}🚀</div>
<div :class="$style.version">
<div>{{ version }}🚀</div>
<div style="font-size: 0.8em;">{{ basedMisskeyVersion }}</div>
</div>
<MkButton rounded full @click="showChangelog = true; modal.value.close();">{{ i18n.ts.whatIsNew }}</MkButton>
<MkButton :class="$style.gotIt" primary rounded full @click="close">{{ i18n.ts.gotIt }}</MkButton>
</div>
@ -15,7 +18,7 @@ SPDX-License-Identifier: AGPL-3.0-only
<MkModal v-else-if="showChangelog" ref="modal" :zPriority="'middle'" @closed="$emit('closed')">
<div :class="$style.root">
<div :class="$style.title" style="margin: 0 0 1.5em; font-weight: normal;">{{ i18n.ts.whatIsNew }}</div>
<MkButton rounded full @click="whatIsNew">Misskey</MkButton>
<MkButton rounded full @click="whatIsNewMisskey">Misskey</MkButton>
<MkButton rounded full style="margin: 8px 0 0;" @click="whatIsNewCherryPick">CherryPick</MkButton>
<MkButton :class="$style.gotIt" primary rounded full @click="close">{{ i18n.ts.ok }}</MkButton>
</div>
@ -27,7 +30,7 @@ import { onMounted, shallowRef } from 'vue';
import MkModal from '@/components/MkModal.vue';
import MkButton from '@/components/MkButton.vue';
import MkSparkle from '@/components/MkSparkle.vue';
import { version } from '@/config.js';
import { version, basedMisskeyVersion } from '@/config.js';
import { i18n } from '@/i18n.js';
import { confetti } from '@/scripts/confetti.js';
import { unisonReload } from '@/scripts/unison-reload.js';
@ -39,9 +42,9 @@ let showChangelog = $ref(false);
const modal = shallowRef<InstanceType<typeof MkModal>>();
const whatIsNew = () => {
const whatIsNewMisskey = () => {
// modal.value.close();
window.open(`https://misskey-hub.net/docs/releases.html#_${version.replace(/\./g, '-')}`, '_blank');
window.open(`https://misskey-hub.net/docs/releases.html#_${basedMisskeyVersion.replace(/\./g, '-')}`, '_blank');
};
const whatIsNewCherryPick = () => {

View file

@ -7,6 +7,7 @@ type Keys =
'v' |
'basedMisskeyVersion' |
'lastVersion' |
'lastBasedMisskeyVersion' |
'instance' |
'account' |
'accounts' |