diff --git a/locales/ja-JP.yml b/locales/ja-JP.yml index 7fcea0855..ddc953a05 100644 --- a/locales/ja-JP.yml +++ b/locales/ja-JP.yml @@ -38,6 +38,7 @@ common: signin: "ログイン" signup: "新規登録" signout: "ログアウト" + reload-to-apply-the-setting: "この設定を反映するにはページをリロードする必要があります。今すぐリロードしますか?" got-it: "わかった" customization-tips: diff --git a/src/client/app/desktop/views/components/settings.vue b/src/client/app/desktop/views/components/settings.vue index fb67f52e5..9e61dba50 100644 --- a/src/client/app/desktop/views/components/settings.vue +++ b/src/client/app/desktop/views/components/settings.vue @@ -463,17 +463,26 @@ export default Vue.extend({ circleIcons: { get() { return this.$store.state.settings.circleIcons; }, - set(value) { this.$store.dispatch('settings/set', { key: 'circleIcons', value }); } + set(value) { + this.$store.dispatch('settings/set', { key: 'circleIcons', value }); + this.reload(); + } }, contrastedAcct: { get() { return this.$store.state.settings.contrastedAcct; }, - set(value) { this.$store.dispatch('settings/set', { key: 'contrastedAcct', value }); } + set(value) { + this.$store.dispatch('settings/set', { key: 'contrastedAcct', value }); + this.reload(); + } }, showFullAcct: { get() { return this.$store.state.settings.showFullAcct; }, - set(value) { this.$store.dispatch('settings/set', { key: 'showFullAcct', value }); } + set(value) { + this.$store.dispatch('settings/set', { key: 'showFullAcct', value }); + this.reload(); + } }, showVia: { @@ -517,6 +526,17 @@ export default Vue.extend({ }); }, methods: { + reload() { + this.$root.dialog({ + type: 'warning', + text: this.$t('@.reload-to-apply-the-setting'), + showCancelButton: true + }).then(({ canceled }) => { + if (!canceled) { + location.reload(); + } + }); + }, customizeHome() { location.href = '/?customize'; }, diff --git a/src/client/app/mobile/views/pages/settings.vue b/src/client/app/mobile/views/pages/settings.vue index 5371c300e..aec06adee 100644 --- a/src/client/app/mobile/views/pages/settings.vue +++ b/src/client/app/mobile/views/pages/settings.vue @@ -308,7 +308,10 @@ export default Vue.extend({ circleIcons: { get() { return this.$store.state.settings.circleIcons; }, - set(value) { this.$store.dispatch('settings/set', { key: 'circleIcons', value }); } + set(value) { + this.$store.dispatch('settings/set', { key: 'circleIcons', value }); + this.reload(); + } }, lineWidth: { @@ -318,12 +321,18 @@ export default Vue.extend({ contrastedAcct: { get() { return this.$store.state.settings.contrastedAcct; }, - set(value) { this.$store.dispatch('settings/set', { key: 'contrastedAcct', value }); } + set(value) { + this.$store.dispatch('settings/set', { key: 'contrastedAcct', value }); + this.reload(); + } }, showFullAcct: { get() { return this.$store.state.settings.showFullAcct; }, - set(value) { this.$store.dispatch('settings/set', { key: 'showFullAcct', value }); } + set(value) { + this.$store.dispatch('settings/set', { key: 'showFullAcct', value }); + this.reload(); + } }, showVia: { @@ -396,6 +405,18 @@ export default Vue.extend({ this.$root.signout(); }, + reload() { + this.$root.dialog({ + type: 'warning', + text: this.$t('@.reload-to-apply-the-setting'), + showCancelButton: true + }).then(({ canceled }) => { + if (!canceled) { + location.reload(); + } + }); + }, + checkForUpdate() { this.checkingForUpdate = true; checkForUpdate(this.$root, true, true).then(newer => {