summaryrefslogtreecommitdiff
path: root/src/client
diff options
context:
space:
mode:
Diffstat (limited to 'src/client')
-rw-r--r--src/client/components/updated.vue58
-rw-r--r--src/client/init.ts6
2 files changed, 62 insertions, 2 deletions
diff --git a/src/client/components/updated.vue b/src/client/components/updated.vue
new file mode 100644
index 0000000000..5033d866fb
--- /dev/null
+++ b/src/client/components/updated.vue
@@ -0,0 +1,58 @@
+<template>
+<MkModal ref="modal" @click="$refs.modal.close()" @closed="$emit('closed')">
+ <div class="ewlycnyt">
+ <div class="title">{{ $ts.misskeyUpdated }}</div>
+ <div class="version">โœจ{{ version }}๐Ÿš€</div>
+ <MkButton full @click="whatIsNew">{{ $ts.whatIsNew }}</MkButton>
+ <MkButton primary full @click="$refs.modal.close()">{{ $ts.gotIt }}</MkButton>
+ </div>
+</MkModal>
+</template>
+
+<script lang="ts">
+import { defineComponent } from 'vue';
+import MkModal from '@client/components/ui/modal.vue';
+import MkButton from '@client/components/ui/button.vue';
+import { version } from '@client/config';
+
+export default defineComponent({
+ components: {
+ MkModal,
+ MkButton,
+ },
+
+ data() {
+ return {
+ version: version,
+ };
+ },
+
+ methods: {
+ whatIsNew() {
+ this.$refs.modal.close();
+ this.$router.push('/docs/general/changelog');
+ }
+ }
+});
+</script>
+
+<style lang="scss" scoped>
+.ewlycnyt {
+ position: relative;
+ padding: 32px;
+ min-width: 320px;
+ max-width: 480px;
+ box-sizing: border-box;
+ text-align: center;
+ background: var(--panel);
+ border-radius: var(--radius);
+
+ > .title {
+ font-weight: bold;
+ }
+
+ > .version {
+ margin: 1em 0;
+ }
+}
+</style>
diff --git a/src/client/init.ts b/src/client/init.ts
index 95aa18862c..2feeaf0ce1 100644
--- a/src/client/init.ts
+++ b/src/client/init.ts
@@ -7,6 +7,7 @@ import '@client/style.scss';
import * as Sentry from '@sentry/browser';
import { Integrations } from '@sentry/tracing';
import { computed, createApp, watch, markRaw } from 'vue';
+import compareVersions from 'compare-versions';
import widgets from '@client/widgets';
import directives from '@client/directives';
@@ -206,8 +207,9 @@ if (lastVersion !== version) {
// ใƒ†ใƒผใƒžใƒชใƒ“ใƒซใƒ‰ใ™ใ‚‹ใŸใ‚
localStorage.removeItem('theme');
- // TODO: ใƒใƒผใ‚ธใƒงใƒณใŒๆ–ฐใ—ใใชใฃใŸๆ™‚ใ ใ‘ใƒ€ใ‚คใ‚ขใƒญใ‚ฐๅ‡บใ™
- //popup();
+ if (lastVersion != null && compareVersions(version, lastVersion) === 1) {
+ popup(import('@client/components/updated.vue'), {}, {}, 'closed');
+ }
}
// NOTE: ใ“ใฎๅ‡ฆ็†ใฏๅฟ…ใšโ†‘ใฎใ‚ฏใƒฉใ‚คใ‚ขใƒณใƒˆๆ›ดๆ–ฐๆ™‚ๅ‡ฆ็†ใ‚ˆใ‚ŠๅพŒใซๆฅใ‚‹ใ“ใจ(ใƒ†ใƒผใƒžๅ†ๆง‹็ฏ‰ใฎใŸใ‚)