mirror of
				https://codeberg.org/yeentown/barkey.git
				synced 2025-10-31 05:24:13 +00:00 
			
		
		
		
	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'; | ||||||
|  | @ -745,6 +745,39 @@ async function post(ev?: MouseEvent) { | ||||||
| 		} | 		} | ||||||
| 	} | 	} | ||||||
| 	 | 	 | ||||||
|  | 	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, | ||||||
| 		fileIds: files.value.length > 0 ? files.value.map(f => f.id) : undefined, | 		fileIds: files.value.length > 0 ? files.value.map(f => f.id) : undefined, | ||||||
|  |  | ||||||
|  | @ -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…
	
	Add table
		
		Reference in a new issue