refactor
This commit is contained in:
		
							parent
							
								
									9e5c8d94bf
								
							
						
					
					
						commit
						dbb6c71c5c
					
				|  | @ -92,7 +92,7 @@ const props = defineProps<{ | |||
| }>(); | ||||
| 
 | ||||
| const channel = ref<Misskey.entities.Channel | null>(null); | ||||
| const name = ref<string | null>(null); | ||||
| const name = ref<string>(''); | ||||
| const description = ref<string | null>(null); | ||||
| const bannerUrl = ref<string | null>(null); | ||||
| const bannerId = ref<string | null>(null); | ||||
|  | @ -114,20 +114,22 @@ watch(() => bannerId.value, async () => { | |||
| async function fetchChannel() { | ||||
| 	if (props.channelId == null) return; | ||||
| 
 | ||||
| 	channel.value = await misskeyApi('channels/show', { | ||||
| 	const result = await misskeyApi('channels/show', { | ||||
| 		channelId: props.channelId, | ||||
| 	}); | ||||
| 
 | ||||
| 	name.value = channel.value.name; | ||||
| 	description.value = channel.value.description; | ||||
| 	bannerId.value = channel.value.bannerId; | ||||
| 	bannerUrl.value = channel.value.bannerUrl; | ||||
| 	isSensitive.value = channel.value.isSensitive; | ||||
| 	pinnedNotes.value = channel.value.pinnedNoteIds.map(id => ({ | ||||
| 	name.value = result.name; | ||||
| 	description.value = result.description; | ||||
| 	bannerId.value = result.bannerId; | ||||
| 	bannerUrl.value = result.bannerUrl; | ||||
| 	isSensitive.value = result.isSensitive; | ||||
| 	pinnedNotes.value = result.pinnedNoteIds.map(id => ({ | ||||
| 		id, | ||||
| 	})); | ||||
| 	color.value = channel.value.color; | ||||
| 	allowRenoteToExternal.value = channel.value.allowRenoteToExternal; | ||||
| 	color.value = result.color; | ||||
| 	allowRenoteToExternal.value = result.allowRenoteToExternal; | ||||
| 
 | ||||
| 	channel.value = result; | ||||
| } | ||||
| 
 | ||||
| fetchChannel(); | ||||
|  | @ -154,15 +156,17 @@ function save() { | |||
| 		name: name.value, | ||||
| 		description: description.value, | ||||
| 		bannerId: bannerId.value, | ||||
| 		pinnedNoteIds: pinnedNotes.value.map(x => x.id), | ||||
| 		color: color.value, | ||||
| 		isSensitive: isSensitive.value, | ||||
| 		allowRenoteToExternal: allowRenoteToExternal.value, | ||||
| 	}; | ||||
| 	} satisfies Misskey.entities.ChannelsCreateRequest; | ||||
| 
 | ||||
| 	if (props.channelId) { | ||||
| 		params.channelId = props.channelId; | ||||
| 		os.apiWithDialog('channels/update', params); | ||||
| 	if (props.channelId != null) { | ||||
| 		os.apiWithDialog('channels/update', { | ||||
| 			...params, | ||||
| 			channelId: props.channelId, | ||||
| 			pinnedNoteIds: pinnedNotes.value.map(x => x.id), | ||||
| 		}); | ||||
| 	} else { | ||||
| 		os.apiWithDialog('channels/create', params).then(created => { | ||||
| 			router.push('/channels/:channelId', { | ||||
|  | @ -175,12 +179,13 @@ function save() { | |||
| } | ||||
| 
 | ||||
| async function archive() { | ||||
| 	if (props.channelId == null) return; | ||||
| 
 | ||||
| 	const { canceled } = await os.confirm({ | ||||
| 		type: 'warning', | ||||
| 		title: i18n.tsx.channelArchiveConfirmTitle({ name: name.value }), | ||||
| 		text: i18n.ts.channelArchiveConfirmDescription, | ||||
| 	}); | ||||
| 
 | ||||
| 	if (canceled) return; | ||||
| 
 | ||||
| 	misskeyApi('channels/update', { | ||||
|  |  | |||
|  | @ -16,7 +16,7 @@ SPDX-License-Identifier: AGPL-3.0-only | |||
| 			</MkTextarea> | ||||
| 
 | ||||
| 			<div class="_gaps_s"> | ||||
| 				<div v-for="file in files" :key="file.id" class="wqugxsfx" :style="{ backgroundImage: file ? `url(${ file.thumbnailUrl })` : null }"> | ||||
| 				<div v-for="file in files" :key="file.id" class="wqugxsfx" :style="{ backgroundImage: file ? `url(${ file.thumbnailUrl })` : '' }"> | ||||
| 					<div class="name">{{ file.name }}</div> | ||||
| 					<button v-tooltip="i18n.ts.remove" class="remove _button" @click="remove(file)"><i class="ti ti-x"></i></button> | ||||
| 				</div> | ||||
|  | @ -88,7 +88,7 @@ async function save() { | |||
| 		router.push('/gallery/:postId', { | ||||
| 			params: { | ||||
| 				postId: props.postId, | ||||
| 			} | ||||
| 			}, | ||||
| 		}); | ||||
| 	} else { | ||||
| 		const created = await os.apiWithDialog('gallery/posts/create', { | ||||
|  | @ -100,7 +100,7 @@ async function save() { | |||
| 		router.push('/gallery/:postId', { | ||||
| 			params: { | ||||
| 				postId: created.id, | ||||
| 			} | ||||
| 			}, | ||||
| 		}); | ||||
| 	} | ||||
| } | ||||
|  |  | |||
|  | @ -9,7 +9,7 @@ SPDX-License-Identifier: AGPL-3.0-only | |||
| 		<MkButton primary @click="createKey">{{ i18n.ts._registry.createKey }}</MkButton> | ||||
| 
 | ||||
| 		<div v-if="scopesWithDomain" class="_gaps_m"> | ||||
| 			<FormSection v-for="domain in scopesWithDomain" :key="domain.domain"> | ||||
| 			<FormSection v-for="domain in scopesWithDomain" :key="domain.domain ?? 'system'"> | ||||
| 				<template #label>{{ domain.domain ? domain.domain.toUpperCase() : i18n.ts.system }}</template> | ||||
| 				<div class="_gaps_s"> | ||||
| 					<FormLink v-for="scope in domain.scopes" :to="`/registry/keys/${domain.domain ?? '@'}/${scope.join('/')}`" class="_monospace">{{ scope.length === 0 ? '(root)' : scope.join('/') }}</FormLink> | ||||
|  |  | |||
|  | @ -160,10 +160,18 @@ SPDX-License-Identifier: AGPL-3.0-only | |||
| 							<template #label><SearchLabel>{{ i18n.ts._accountSettings.makeNotesHiddenBefore }}</SearchLabel></template> | ||||
| 
 | ||||
| 							<div class="_gaps_s"> | ||||
| 								<MkSelect :modelValue="makeNotesHiddenBefore_type" @update:modelValue="makeNotesHiddenBefore = $event === 'relative' ? -604800 : $event === 'absolute' ? Math.floor(Date.now() / 1000) : null"> | ||||
| 									<option :value="null">{{ i18n.ts.none }}</option> | ||||
| 									<option value="relative">{{ i18n.ts._accountSettings.notesHavePassedSpecifiedPeriod }}</option> | ||||
| 									<option value="absolute">{{ i18n.ts._accountSettings.notesOlderThanSpecifiedDateAndTime }}</option> | ||||
| 								<MkSelect | ||||
| 									:items="[{ | ||||
| 										value: null, | ||||
| 										label: i18n.ts.none | ||||
| 									}, { | ||||
| 										value: 'relative', | ||||
| 										label: i18n.ts._accountSettings.notesHavePassedSpecifiedPeriod | ||||
| 									}, { | ||||
| 										value: 'absolute', | ||||
| 										label: i18n.ts._accountSettings.notesOlderThanSpecifiedDateAndTime | ||||
| 									}] as const" :modelValue="makeNotesHiddenBefore_type" @update:modelValue="makeNotesHiddenBefore = $event === 'relative' ? -604800 : $event === 'absolute' ? Math.floor(Date.now() / 1000) : null" | ||||
| 								> | ||||
| 								</MkSelect> | ||||
| 
 | ||||
| 								<MkSelect v-if="makeNotesHiddenBefore_type === 'relative'" v-model="makeNotesHiddenBefore_selection"> | ||||
|  | @ -262,7 +270,7 @@ const makeNotesFollowersOnlyBefore_presets = [ | |||
| const makeNotesFollowersOnlyBefore_isCustomMode = ref( | ||||
| 	makeNotesFollowersOnlyBefore.value != null && | ||||
| 	makeNotesFollowersOnlyBefore.value < 0 && | ||||
| 	!makeNotesFollowersOnlyBefore_presets.some((preset) => preset.value === makeNotesFollowersOnlyBefore.value) | ||||
| 	!makeNotesFollowersOnlyBefore_presets.some((preset) => preset.value === makeNotesFollowersOnlyBefore.value), | ||||
| ); | ||||
| 
 | ||||
| const makeNotesFollowersOnlyBefore_selection = computed({ | ||||
|  | @ -270,14 +278,14 @@ const makeNotesFollowersOnlyBefore_selection = computed({ | |||
| 	set(value) { | ||||
| 		makeNotesFollowersOnlyBefore_isCustomMode.value = value === 'custom'; | ||||
| 		if (value !== 'custom') makeNotesFollowersOnlyBefore.value = value; | ||||
| 	} | ||||
| 	}, | ||||
| }); | ||||
| 
 | ||||
| const makeNotesFollowersOnlyBefore_customMonths = computed({ | ||||
| 	get: () => makeNotesFollowersOnlyBefore.value ? Math.abs(makeNotesFollowersOnlyBefore.value) / (30 * 24 * 60 * 60) : null, | ||||
| 	set(value) { | ||||
| 		if (value != null && value > 0) makeNotesFollowersOnlyBefore.value = -Math.abs(Math.floor(Number(value))) * 30 * 24 * 60 * 60; | ||||
| 	} | ||||
| 	}, | ||||
| }); | ||||
| 
 | ||||
| const makeNotesHiddenBefore_type = computed(() => { | ||||
|  | @ -303,7 +311,7 @@ const makeNotesHiddenBefore_presets = [ | |||
| const makeNotesHiddenBefore_isCustomMode = ref( | ||||
| 	makeNotesHiddenBefore.value != null && | ||||
| 	makeNotesHiddenBefore.value < 0 && | ||||
| 	!makeNotesHiddenBefore_presets.some((preset) => preset.value === makeNotesHiddenBefore.value) | ||||
| 	!makeNotesHiddenBefore_presets.some((preset) => preset.value === makeNotesHiddenBefore.value), | ||||
| ); | ||||
| 
 | ||||
| const makeNotesHiddenBefore_selection = computed({ | ||||
|  | @ -311,14 +319,14 @@ const makeNotesHiddenBefore_selection = computed({ | |||
| 	set(value) { | ||||
| 		makeNotesHiddenBefore_isCustomMode.value = value === 'custom'; | ||||
| 		if (value !== 'custom') makeNotesHiddenBefore.value = value; | ||||
| 	} | ||||
| 	}, | ||||
| }); | ||||
| 
 | ||||
| const makeNotesHiddenBefore_customMonths = computed({ | ||||
| 	get: () => makeNotesHiddenBefore.value ? Math.abs(makeNotesHiddenBefore.value) / (30 * 24 * 60 * 60) : null, | ||||
| 	set(value) { | ||||
| 		if (value != null && value > 0) makeNotesHiddenBefore.value = -Math.abs(Math.floor(Number(value))) * 30 * 24 * 60 * 60; | ||||
| 	} | ||||
| 	}, | ||||
| }); | ||||
| 
 | ||||
| watch([makeNotesFollowersOnlyBefore, makeNotesHiddenBefore], () => { | ||||
|  |  | |||
|  | @ -52,7 +52,7 @@ async function post() { | |||
| 
 | ||||
| const headerActions = computed(() => [{ | ||||
| 	icon: 'ti ti-dots', | ||||
| 	label: i18n.ts.more, | ||||
| 	text: i18n.ts.more, | ||||
| 	handler: (ev: MouseEvent) => { | ||||
| 		os.popupMenu([{ | ||||
| 			text: i18n.ts.embed, | ||||
|  |  | |||
|  | @ -8,9 +8,10 @@ import type { Plugin } from 'chart.js'; | |||
| export const chartVLine = (vLineColor: string) => ({ | ||||
| 	id: 'vLine', | ||||
| 	beforeDraw(chart, args, options) { | ||||
| 		if (chart.tooltip?._active?.length) { | ||||
| 		const tooltip = chart.tooltip as any; | ||||
| 		if (tooltip?._active?.length) { | ||||
| 			const ctx = chart.ctx; | ||||
| 			const xs = chart.tooltip._active.map(a => a.element.x); | ||||
| 			const xs = tooltip._active.map(a => a.element.x); | ||||
| 			const x = xs.reduce((a, b) => a + b, 0) / xs.length; | ||||
| 			const topY = chart.scales.y.top; | ||||
| 			const bottomY = chart.scales.y.bottom; | ||||
|  |  | |||
|  | @ -20,8 +20,8 @@ export function popout(path: string, w?: HTMLElement) { | |||
| 	} else { | ||||
| 		const width = 400; | ||||
| 		const height = 500; | ||||
| 		const x = window.top.outerHeight / 2 + window.top.screenY - (height / 2); | ||||
| 		const y = window.top.outerWidth / 2 + window.top.screenX - (width / 2); | ||||
| 		const x = window.top == null ? 0 : window.top.outerHeight / 2 + window.top.screenY - (height / 2); | ||||
| 		const y = window.top == null ? 0 : window.top.outerWidth / 2 + window.top.screenX - (width / 2); | ||||
| 		window.open(url, url, | ||||
| 			`width=${width}, height=${height}, top=${x}, left=${y}`); | ||||
| 	} | ||||
|  |  | |||
|  | @ -3,6 +3,7 @@ | |||
|  * SPDX-License-Identifier: AGPL-3.0-only | ||||
|  */ | ||||
| 
 | ||||
| /* | ||||
| export class StickySidebar { | ||||
| 	private lastScrollTop = 0; | ||||
| 	private container: HTMLElement; | ||||
|  | @ -53,3 +54,4 @@ export class StickySidebar { | |||
| 		this.lastScrollTop = scrollTop <= 0 ? 0 : scrollTop; | ||||
| 	} | ||||
| } | ||||
| */ | ||||
|  |  | |||
		Loading…
	
		Reference in New Issue