summaryrefslogtreecommitdiff
path: root/packages/frontend/src
diff options
context:
space:
mode:
authorKevinWh0 <45321184+KevinWh0@users.noreply.github.com>2024-02-16 21:53:27 +0100
committerKevinWh0 <45321184+KevinWh0@users.noreply.github.com>2024-02-16 21:53:27 +0100
commit11cb134d4d28f3e9e816affcbb1ba98d68e7d9e2 (patch)
tree49703805799c7bcd767aa27072013d4a6723c5f6 /packages/frontend/src
parentmerge: Fix Note Edits being federated incorrectly (!417) (diff)
downloadsharkey-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.vue35
-rw-r--r--packages/frontend/src/pages/settings/general.vue2
-rw-r--r--packages/frontend/src/pages/settings/preferences-backups.vue1
-rw-r--r--packages/frontend/src/store.ts4
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,