diff options
| author | KevinWh0 <45321184+KevinWh0@users.noreply.github.com> | 2024-02-16 21:53:27 +0100 |
|---|---|---|
| committer | KevinWh0 <45321184+KevinWh0@users.noreply.github.com> | 2024-02-16 21:53:27 +0100 |
| commit | 11cb134d4d28f3e9e816affcbb1ba98d68e7d9e2 (patch) | |
| tree | 49703805799c7bcd767aa27072013d4a6723c5f6 /packages/frontend/src | |
| parent | merge: Fix Note Edits being federated incorrectly (!417) (diff) | |
| download | sharkey-11cb134d4d28f3e9e816affcbb1ba98d68e7d9e2.tar.gz sharkey-11cb134d4d28f3e9e816affcbb1ba98d68e7d9e2.tar.bz2 sharkey-11cb134d4d28f3e9e816affcbb1ba98d68e7d9e2.zip | |
It works, Just figuring out some ts errors hopefully
Diffstat (limited to 'packages/frontend/src')
| -rw-r--r-- | packages/frontend/src/components/MkPostForm.vue | 35 | ||||
| -rw-r--r-- | packages/frontend/src/pages/settings/general.vue | 2 | ||||
| -rw-r--r-- | packages/frontend/src/pages/settings/preferences-backups.vue | 1 | ||||
| -rw-r--r-- | packages/frontend/src/store.ts | 4 |
4 files changed, 41 insertions, 1 deletions
diff --git a/packages/frontend/src/components/MkPostForm.vue b/packages/frontend/src/components/MkPostForm.vue index 65ffb7b7a5..25e51fd52c 100644 --- a/packages/frontend/src/components/MkPostForm.vue +++ b/packages/frontend/src/components/MkPostForm.vue @@ -101,7 +101,7 @@ SPDX-License-Identifier: AGPL-3.0-only </template> <script lang="ts" setup> -import { inject, watch, nextTick, onMounted, defineAsyncComponent, provide, shallowRef, ref, computed } from 'vue'; +import { inject, watch, nextTick, onMounted, defineAsyncComponent, provide, shallowRef, ref, computed, toRaw } from 'vue'; import * as mfm from '@transfem-org/sfm-js'; import * as Misskey from 'misskey-js'; import insertTextAtCursor from 'insert-text-at-cursor'; @@ -744,6 +744,39 @@ async function post(ev?: MouseEvent) { visibility.value = 'home'; } } + + if (defaultStore.state.warnMissingAltText) { + const filesData = toRaw(files.value); + for (let i = 0; i < filesData.length; i++) { + const file = filesData[i]; + const isMissingAltText = !file.comment; + if (isMissingAltText) { + const { canceled, result } = await os.actions({ + type: 'warning', + text: i18n.ts.thisPostIsMissingAltText, + actions: [{ + value: 'cancel', + text: i18n.ts.thisPostIsMissingAltTextCancel, + }, { + value: 'ignore', + text: i18n.ts.thisPostIsMissingAltTextIgnore, + }], + }); + + if (canceled) return; + if (result === 'cancel') return; + if (result === 'home') { + visibility.value = 'home'; + } + + // await os.alert({ + // type: 'info', + // text: i18n.ts.thisPostIsMissingAltText, + // }); + // return; + } + } + } let postData = { text: text.value === '' ? null : text.value, diff --git a/packages/frontend/src/pages/settings/general.vue b/packages/frontend/src/pages/settings/general.vue index 3b2946e2b7..9247e25fc8 100644 --- a/packages/frontend/src/pages/settings/general.vue +++ b/packages/frontend/src/pages/settings/general.vue @@ -180,6 +180,7 @@ SPDX-License-Identifier: AGPL-3.0-only <div class="_gaps_m"> <div class="_gaps_s"> + <MkSwitch v-model="warnMissingAltText">{{ i18n.ts.warnForMissingAltText }}</MkSwitch> <MkSwitch v-model="imageNewTab">{{ i18n.ts.openImageInNewTab }}</MkSwitch> <MkSwitch v-model="useReactionPickerForContextMenu">{{ i18n.ts.useReactionPickerForContextMenu }}</MkSwitch> <MkSwitch v-model="enableInfiniteScroll">{{ i18n.ts.enableInfiniteScroll }}</MkSwitch> @@ -337,6 +338,7 @@ const oneko = computed(defaultStore.makeGetterSetter('oneko')); const loadRawImages = computed(defaultStore.makeGetterSetter('loadRawImages')); const highlightSensitiveMedia = computed(defaultStore.makeGetterSetter('highlightSensitiveMedia')); const imageNewTab = computed(defaultStore.makeGetterSetter('imageNewTab')); +const warnMissingAltText = computed(defaultStore.makeGetterSetter('warnMissingAltText')); const nsfw = computed(defaultStore.makeGetterSetter('nsfw')); const showFixedPostForm = computed(defaultStore.makeGetterSetter('showFixedPostForm')); const showFixedPostFormInChannel = computed(defaultStore.makeGetterSetter('showFixedPostFormInChannel')); diff --git a/packages/frontend/src/pages/settings/preferences-backups.vue b/packages/frontend/src/pages/settings/preferences-backups.vue index ad0903caee..9aa2012a81 100644 --- a/packages/frontend/src/pages/settings/preferences-backups.vue +++ b/packages/frontend/src/pages/settings/preferences-backups.vue @@ -71,6 +71,7 @@ const defaultStoreSaveKeys: (keyof typeof defaultStore['state'])[] = [ 'animatedMfm', 'advancedMfm', 'loadRawImages', + 'warnMissingAltText', 'imageNewTab', 'dataSaver', 'disableShowingAnimatedImages', diff --git a/packages/frontend/src/store.ts b/packages/frontend/src/store.ts index d695caa95f..a1f552487c 100644 --- a/packages/frontend/src/store.ts +++ b/packages/frontend/src/store.ts @@ -264,6 +264,10 @@ export const defaultStore = markRaw(new Storage('base', { where: 'device', default: false, }, + warnMissingAltText: { + where: 'device', + default: true, + }, imageNewTab: { where: 'device', default: false, |