It works, Just figuring out some ts errors hopefully
This commit is contained in:
parent
be36a793cd
commit
11cb134d4d
7 changed files with 60 additions and 1 deletions
|
@ -524,6 +524,7 @@ mediaListWithOneImageAppearance: "Height of media lists with one image only"
|
||||||
limitTo: "Limit to {x}"
|
limitTo: "Limit to {x}"
|
||||||
noFollowRequests: "You don't have any pending follow requests"
|
noFollowRequests: "You don't have any pending follow requests"
|
||||||
openImageInNewTab: "Open images in new tab"
|
openImageInNewTab: "Open images in new tab"
|
||||||
|
warnForMissingAltText: "Warn you when you forget to put alt text"
|
||||||
dashboard: "Dashboard"
|
dashboard: "Dashboard"
|
||||||
local: "Local"
|
local: "Local"
|
||||||
remote: "Remote"
|
remote: "Remote"
|
||||||
|
@ -1051,6 +1052,9 @@ thisPostMayBeAnnoying: "This note may annoy others."
|
||||||
thisPostMayBeAnnoyingHome: "Post to home timeline"
|
thisPostMayBeAnnoyingHome: "Post to home timeline"
|
||||||
thisPostMayBeAnnoyingCancel: "Cancel"
|
thisPostMayBeAnnoyingCancel: "Cancel"
|
||||||
thisPostMayBeAnnoyingIgnore: "Post anyway"
|
thisPostMayBeAnnoyingIgnore: "Post anyway"
|
||||||
|
thisPostIsMissingAltTextCancel: "Cancel"
|
||||||
|
thisPostIsMissingAltTextIgnore: "Post anyway"
|
||||||
|
thisPostIsMissingAltText: "One of the files attached to this post is missing alt text. Please ensure all the attachments have alt text."
|
||||||
collapseRenotes: "Collapse boosts you've already seen"
|
collapseRenotes: "Collapse boosts you've already seen"
|
||||||
collapseFiles: "Collapse files"
|
collapseFiles: "Collapse files"
|
||||||
autoloadConversation: "Load conversation on replies"
|
autoloadConversation: "Load conversation on replies"
|
||||||
|
|
12
locales/index.d.ts
vendored
12
locales/index.d.ts
vendored
|
@ -4221,6 +4221,18 @@ export interface Locale extends ILocale {
|
||||||
* このまま投稿
|
* このまま投稿
|
||||||
*/
|
*/
|
||||||
"thisPostMayBeAnnoyingIgnore": string;
|
"thisPostMayBeAnnoyingIgnore": string;
|
||||||
|
/**
|
||||||
|
* Cancel
|
||||||
|
*/
|
||||||
|
"thisPostIsMissingAltTextCancel": string;
|
||||||
|
/**
|
||||||
|
* Post anyway
|
||||||
|
*/
|
||||||
|
"thisPostIsMissingAltTextIgnore": string;
|
||||||
|
/**
|
||||||
|
* One of the files attached to this post is missing alt text. Please ensure all the attachments have alt text.
|
||||||
|
*/
|
||||||
|
"thisPostIsMissingAltText": string;
|
||||||
/**
|
/**
|
||||||
* 見たことのあるブーストを省略して表示
|
* 見たことのあるブーストを省略して表示
|
||||||
*/
|
*/
|
||||||
|
|
|
@ -1051,6 +1051,9 @@ thisPostMayBeAnnoying: "この投稿は迷惑になる可能性があります
|
||||||
thisPostMayBeAnnoyingHome: "ホームに投稿"
|
thisPostMayBeAnnoyingHome: "ホームに投稿"
|
||||||
thisPostMayBeAnnoyingCancel: "やめる"
|
thisPostMayBeAnnoyingCancel: "やめる"
|
||||||
thisPostMayBeAnnoyingIgnore: "このまま投稿"
|
thisPostMayBeAnnoyingIgnore: "このまま投稿"
|
||||||
|
thisPostIsMissingAltTextCancel: "Cancel"
|
||||||
|
thisPostIsMissingAltTextIgnore: "Post anyway"
|
||||||
|
thisPostIsMissingAltText: "One of the files attached to this post is missing alt text. Please ensure all the attachments have alt text."
|
||||||
collapseRenotes: "見たことのあるブーストを省略して表示"
|
collapseRenotes: "見たことのあるブーストを省略して表示"
|
||||||
collapseFiles: "ファイルを折りたたむ"
|
collapseFiles: "ファイルを折りたたむ"
|
||||||
autoloadConversation: "返信に会話を読み込む"
|
autoloadConversation: "返信に会話を読み込む"
|
||||||
|
|
|
@ -101,7 +101,7 @@ SPDX-License-Identifier: AGPL-3.0-only
|
||||||
</template>
|
</template>
|
||||||
|
|
||||||
<script lang="ts" setup>
|
<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 mfm from '@transfem-org/sfm-js';
|
||||||
import * as Misskey from 'misskey-js';
|
import * as Misskey from 'misskey-js';
|
||||||
import insertTextAtCursor from 'insert-text-at-cursor';
|
import insertTextAtCursor from 'insert-text-at-cursor';
|
||||||
|
@ -744,6 +744,39 @@ async function post(ev?: MouseEvent) {
|
||||||
visibility.value = 'home';
|
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 = {
|
let postData = {
|
||||||
text: text.value === '' ? null : text.value,
|
text: text.value === '' ? null : text.value,
|
||||||
|
|
|
@ -180,6 +180,7 @@ SPDX-License-Identifier: AGPL-3.0-only
|
||||||
|
|
||||||
<div class="_gaps_m">
|
<div class="_gaps_m">
|
||||||
<div class="_gaps_s">
|
<div class="_gaps_s">
|
||||||
|
<MkSwitch v-model="warnMissingAltText">{{ i18n.ts.warnForMissingAltText }}</MkSwitch>
|
||||||
<MkSwitch v-model="imageNewTab">{{ i18n.ts.openImageInNewTab }}</MkSwitch>
|
<MkSwitch v-model="imageNewTab">{{ i18n.ts.openImageInNewTab }}</MkSwitch>
|
||||||
<MkSwitch v-model="useReactionPickerForContextMenu">{{ i18n.ts.useReactionPickerForContextMenu }}</MkSwitch>
|
<MkSwitch v-model="useReactionPickerForContextMenu">{{ i18n.ts.useReactionPickerForContextMenu }}</MkSwitch>
|
||||||
<MkSwitch v-model="enableInfiniteScroll">{{ i18n.ts.enableInfiniteScroll }}</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 loadRawImages = computed(defaultStore.makeGetterSetter('loadRawImages'));
|
||||||
const highlightSensitiveMedia = computed(defaultStore.makeGetterSetter('highlightSensitiveMedia'));
|
const highlightSensitiveMedia = computed(defaultStore.makeGetterSetter('highlightSensitiveMedia'));
|
||||||
const imageNewTab = computed(defaultStore.makeGetterSetter('imageNewTab'));
|
const imageNewTab = computed(defaultStore.makeGetterSetter('imageNewTab'));
|
||||||
|
const warnMissingAltText = computed(defaultStore.makeGetterSetter('warnMissingAltText'));
|
||||||
const nsfw = computed(defaultStore.makeGetterSetter('nsfw'));
|
const nsfw = computed(defaultStore.makeGetterSetter('nsfw'));
|
||||||
const showFixedPostForm = computed(defaultStore.makeGetterSetter('showFixedPostForm'));
|
const showFixedPostForm = computed(defaultStore.makeGetterSetter('showFixedPostForm'));
|
||||||
const showFixedPostFormInChannel = computed(defaultStore.makeGetterSetter('showFixedPostFormInChannel'));
|
const showFixedPostFormInChannel = computed(defaultStore.makeGetterSetter('showFixedPostFormInChannel'));
|
||||||
|
|
|
@ -71,6 +71,7 @@ const defaultStoreSaveKeys: (keyof typeof defaultStore['state'])[] = [
|
||||||
'animatedMfm',
|
'animatedMfm',
|
||||||
'advancedMfm',
|
'advancedMfm',
|
||||||
'loadRawImages',
|
'loadRawImages',
|
||||||
|
'warnMissingAltText',
|
||||||
'imageNewTab',
|
'imageNewTab',
|
||||||
'dataSaver',
|
'dataSaver',
|
||||||
'disableShowingAnimatedImages',
|
'disableShowingAnimatedImages',
|
||||||
|
|
|
@ -264,6 +264,10 @@ export const defaultStore = markRaw(new Storage('base', {
|
||||||
where: 'device',
|
where: 'device',
|
||||||
default: false,
|
default: false,
|
||||||
},
|
},
|
||||||
|
warnMissingAltText: {
|
||||||
|
where: 'device',
|
||||||
|
default: true,
|
||||||
|
},
|
||||||
imageNewTab: {
|
imageNewTab: {
|
||||||
where: 'device',
|
where: 'device',
|
||||||
default: false,
|
default: false,
|
||||||
|
|
Loading…
Reference in a new issue