diff options
Diffstat (limited to 'src/client')
| -rw-r--r-- | src/client/components/updated.vue | 58 | ||||
| -rw-r--r-- | src/client/init.ts | 6 |
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: ใใฎๅฆ็ใฏๅฟ
ใโใฎใฏใฉใคใขใณใๆดๆฐๆๅฆ็ใใๅพใซๆฅใใใจ(ใใผใๅๆง็ฏใฎใใ) |