refactor(client): use setup syntax
This commit is contained in:
		
							parent
							
								
									9132c72545
								
							
						
					
					
						commit
						9db2380c20
					
				
					 3 changed files with 54 additions and 61 deletions
				
			
		|  | @ -8,12 +8,12 @@ | ||||||
| </div> | </div> | ||||||
| </template> | </template> | ||||||
| 
 | 
 | ||||||
| <script lang="ts"> | <script lang="ts" setup> | ||||||
| import { defineComponent } from 'vue'; | import { } from 'vue'; | ||||||
| 
 | 
 | ||||||
| export default defineComponent({ | function focus() { | ||||||
| 
 | 	// TODO | ||||||
| }); | } | ||||||
| </script> | </script> | ||||||
| 
 | 
 | ||||||
| <style lang="scss" scoped> | <style lang="scss" scoped> | ||||||
|  |  | ||||||
|  | @ -30,7 +30,7 @@ export default defineComponent({ | ||||||
| 			} else { | 			} else { | ||||||
| 				if (nextBracketOpen > 0) parsed.push(str.substr(0, nextBracketOpen)); | 				if (nextBracketOpen > 0) parsed.push(str.substr(0, nextBracketOpen)); | ||||||
| 				parsed.push({ | 				parsed.push({ | ||||||
| 					arg: str.substring(nextBracketOpen + 1, nextBracketClose) | 					arg: str.substring(nextBracketOpen + 1, nextBracketClose), | ||||||
| 				}); | 				}); | ||||||
| 			} | 			} | ||||||
| 
 | 
 | ||||||
|  | @ -38,5 +38,5 @@ export default defineComponent({ | ||||||
| 		} | 		} | ||||||
| 
 | 
 | ||||||
| 		return h(this.tag, parsed.map(x => typeof x === 'string' ? (this.textTag ? h(this.textTag, x) : x) : this.$slots[x.arg]())); | 		return h(this.tag, parsed.map(x => typeof x === 'string' ? (this.textTag ? h(this.textTag, x) : x) : this.$slots[x.arg]())); | ||||||
| 	} | 	}, | ||||||
| }); | }); | ||||||
|  |  | ||||||
|  | @ -4,12 +4,13 @@ | ||||||
| 	<div class="ujigsodd"> | 	<div class="ujigsodd"> | ||||||
| 		<MkLoading v-if="fetching"/> | 		<MkLoading v-if="fetching"/> | ||||||
| 		<div v-if="!fetching && images.length > 0" class="stream"> | 		<div v-if="!fetching && images.length > 0" class="stream"> | ||||||
| 			<MkA v-for="image in images" | 			<MkA | ||||||
| 				:key="image.id" | 				v-for="image in images" | ||||||
|  | 				:key="image.note.id + image.file.id" | ||||||
| 				class="img" | 				class="img" | ||||||
| 				:to="notePage(image.note)" | 				:to="notePage(image.note)" | ||||||
| 			> | 			> | ||||||
| 				<ImgWithBlurhash :hash="image.blurhash" :src="thumbnail(image.file)" :alt="image.name" :title="image.name"/> | 				<ImgWithBlurhash :hash="image.file.blurhash" :src="thumbnail(image.file)" :title="image.file.name"/> | ||||||
| 			</MkA> | 			</MkA> | ||||||
| 		</div> | 		</div> | ||||||
| 		<p v-if="!fetching && images.length == 0" class="empty">{{ $ts.nothing }}</p> | 		<p v-if="!fetching && images.length == 0" class="empty">{{ $ts.nothing }}</p> | ||||||
|  | @ -17,32 +18,33 @@ | ||||||
| </MkContainer> | </MkContainer> | ||||||
| </template> | </template> | ||||||
| 
 | 
 | ||||||
| <script lang="ts"> | <script lang="ts" setup> | ||||||
| import { defineComponent } from 'vue'; | import { onMounted } from 'vue'; | ||||||
|  | import * as misskey from 'misskey-js'; | ||||||
| import { getStaticImageUrl } from '@/scripts/get-static-image-url'; | import { getStaticImageUrl } from '@/scripts/get-static-image-url'; | ||||||
| import { notePage } from '@/filters/note'; | import { notePage } from '@/filters/note'; | ||||||
| import * as os from '@/os'; | import * as os from '@/os'; | ||||||
| import MkContainer from '@/components/ui/container.vue'; | import MkContainer from '@/components/ui/container.vue'; | ||||||
| import ImgWithBlurhash from '@/components/MkImgWithBlurhash.vue'; | import ImgWithBlurhash from '@/components/MkImgWithBlurhash.vue'; | ||||||
|  | import { defaultStore } from '@/store'; | ||||||
| 
 | 
 | ||||||
| export default defineComponent({ | const props = defineProps<{ | ||||||
| 	components: { | 	user: misskey.entities.UserDetailed; | ||||||
| 		MkContainer, | }>(); | ||||||
| 		ImgWithBlurhash, | 
 | ||||||
| 	}, | let fetching = $ref(true); | ||||||
| 	props: { | let images = $ref<{ | ||||||
| 		user: { | 	note: misskey.entities.Note; | ||||||
| 			type: Object, | 	file: misskey.entities.DriveFile; | ||||||
| 			required: true | }[]>([]); | ||||||
| 		}, | 
 | ||||||
| 	}, | function thumbnail(image: misskey.entities.DriveFile): string { | ||||||
| 	data() { | 	return defaultStore.state.disableShowingAnimatedImages | ||||||
| 		return { | 		? getStaticImageUrl(image.thumbnailUrl) | ||||||
| 			fetching: true, | 		: image.thumbnailUrl; | ||||||
| 			images: [], | } | ||||||
| 		}; | 
 | ||||||
| 	}, | onMounted(() => { | ||||||
| 	mounted() { |  | ||||||
| 	const image = [ | 	const image = [ | ||||||
| 		'image/jpeg', | 		'image/jpeg', | ||||||
| 		'image/png', | 		'image/png', | ||||||
|  | @ -51,30 +53,21 @@ export default defineComponent({ | ||||||
| 		'image/vnd.mozilla.apng', | 		'image/vnd.mozilla.apng', | ||||||
| 	]; | 	]; | ||||||
| 	os.api('users/notes', { | 	os.api('users/notes', { | ||||||
| 			userId: this.user.id, | 		userId: props.user.id, | ||||||
| 		fileType: image, | 		fileType: image, | ||||||
| 			excludeNsfw: this.$store.state.nsfw !== 'ignore', | 		excludeNsfw: defaultStore.state.nsfw !== 'ignore', | ||||||
| 		limit: 10, | 		limit: 10, | ||||||
| 	}).then(notes => { | 	}).then(notes => { | ||||||
| 		for (const note of notes) { | 		for (const note of notes) { | ||||||
| 			for (const file of note.files) { | 			for (const file of note.files) { | ||||||
| 					this.images.push({ | 				images.push({ | ||||||
| 					note, | 					note, | ||||||
| 						file | 					file, | ||||||
| 				}); | 				}); | ||||||
| 			} | 			} | ||||||
| 		} | 		} | ||||||
| 			this.fetching = false; | 		fetching = false; | ||||||
| 	}); | 	}); | ||||||
| 	}, |  | ||||||
| 	methods: { |  | ||||||
| 		thumbnail(image: any): string { |  | ||||||
| 			return this.$store.state.disableShowingAnimatedImages |  | ||||||
| 				? getStaticImageUrl(image.thumbnailUrl) |  | ||||||
| 				: image.thumbnailUrl; |  | ||||||
| 		}, |  | ||||||
| 		notePage |  | ||||||
| 	}, |  | ||||||
| }); | }); | ||||||
| </script> | </script> | ||||||
| 
 | 
 | ||||||
|  |  | ||||||
		Loading…
	
	Add table
		Add a link
		
	
		Reference in a new issue