diff --git a/src/boot/after_store.js b/src/boot/after_store.js index 6833307a..ff4ea145 100644 --- a/src/boot/after_store.js +++ b/src/boot/after_store.js @@ -185,6 +185,12 @@ const setSettings = async ({ apiConfig, staticConfig, store }) => { copyInstanceOption('renderMisskeyMarkdown') copyInstanceOption('sidebarRight') + if (config.backendCommitUrl) + copyInstanceOption('backendCommitUrl') + + if (config.frontendCommitUrl) + copyInstanceOption('frontendCommitUrl') + return store.dispatch('setTheme', config['theme']) } diff --git a/src/components/post_status_form/post_status_form.js b/src/components/post_status_form/post_status_form.js index bb16637e..d5732355 100644 --- a/src/components/post_status_form/post_status_form.js +++ b/src/components/post_status_form/post_status_form.js @@ -337,6 +337,7 @@ const PostStatusForm = { watch: { 'newStatus': { deep: true, + flush: 'sync', handler () { this.statusChanged() } diff --git a/src/components/settings_modal/tabs/general_tab.vue b/src/components/settings_modal/tabs/general_tab.vue index 46c17f50..a4c16054 100644 --- a/src/components/settings_modal/tabs/general_tab.vue +++ b/src/components/settings_modal/tabs/general_tab.vue @@ -159,6 +159,16 @@ {{ $t('settings.show_page_backgrounds') }} +
  • + + {{ $t('settings.center_align_bio') }} + +
  • +
  • + + {{ $t('settings.compact_user_info') }} + +
  • {{ $t('settings.stop_gifs') }} diff --git a/src/components/settings_modal/tabs/version_tab.js b/src/components/settings_modal/tabs/version_tab.js index d69b131d..97791a3a 100644 --- a/src/components/settings_modal/tabs/version_tab.js +++ b/src/components/settings_modal/tabs/version_tab.js @@ -1,22 +1,25 @@ import { extractCommit } from 'src/services/version/version.service' -const pleromaFeCommitUrl = 'https://akkoma.dev/AkkomaGang/pleroma-fe/commit/' -const pleromaBeCommitUrl = 'https://akkoma.dev/AkkomaGang/akkoma/commit/' +function joinURL(base, subpath) { + return URL.parse(subpath, base)?.href || "invalid base URL" +} const VersionTab = { data () { const instance = this.$store.state.instance return { + backendCommitUrl: instance.backendCommitUrl, backendVersion: instance.backendVersion, + frontendCommitUrl: instance.frontendCommitUrl, frontendVersion: instance.frontendVersion } }, computed: { frontendVersionLink () { - return pleromaFeCommitUrl + this.frontendVersion + return joinURL(this.frontendCommitUrl, this.frontendVersion) }, backendVersionLink () { - return pleromaBeCommitUrl + extractCommit(this.backendVersion) + return joinURL(this.backendCommitUrl, extractCommit(this.backendVersion)) } } } diff --git a/src/components/status_body/status_body.js b/src/components/status_body/status_body.js index 19cec6c6..7ff6c3aa 100644 --- a/src/components/status_body/status_body.js +++ b/src/components/status_body/status_body.js @@ -41,7 +41,8 @@ const StatusContent = { postLength: this.status.text.length, parseReadyDone: false, renderMisskeyMarkdown, - translateFrom: null + translateFrom: null, + translating: false } }, computed: { @@ -135,7 +136,10 @@ const StatusContent = { }, translateStatus () { const translateTo = this.$store.getters.mergedConfig.translationLanguage || this.$store.state.instance.interfaceLanguage - this.$store.dispatch('translateStatus', { id: this.status.id, language: translateTo, from: this.translateFrom }) + this.translating = true + this.$store.dispatch( + 'translateStatus', { id: this.status.id, language: translateTo, from: this.translateFrom } + ).finally(() => { this.translating = false }) } } } diff --git a/src/components/status_body/status_body.vue b/src/components/status_body/status_body.vue index 882b38c5..ba9a3ded 100644 --- a/src/components/status_body/status_body.vue +++ b/src/components/status_body/status_body.vue @@ -91,6 +91,7 @@ {{ ' ' }}