Clean up
This commit is contained in:
		| @@ -4,7 +4,7 @@ | ||||
| 		<div class="icon" v-if="icon"> | ||||
| 			<Fa :icon="icon"/> | ||||
| 		</div> | ||||
| 		<div class="icon" v-else-if="!input && !select && !user" :class="type"> | ||||
| 		<div class="icon" v-else-if="!input && !select" :class="type"> | ||||
| 			<Fa :icon="faCheck" v-if="type === 'success'"/> | ||||
| 			<Fa :icon="faTimesCircle" v-if="type === 'error'"/> | ||||
| 			<Fa :icon="faExclamationTriangle" v-if="type === 'warning'"/> | ||||
| @@ -13,10 +13,8 @@ | ||||
| 			<Fa :icon="faSpinner" pulse v-if="type === 'waiting'"/> | ||||
| 		</div> | ||||
| 		<header v-if="title" v-html="title"></header> | ||||
| 		<header v-if="title == null && user">{{ $t('enterUsername') }}</header> | ||||
| 		<div class="body" v-if="text" v-html="text"></div> | ||||
| 		<MkInput v-if="input" v-model:value="inputValue" autofocus :type="input.type || 'text'" :placeholder="input.placeholder" @keydown="onInputKeydown"></MkInput> | ||||
| 		<MkInput v-if="user" v-model:value="userInputValue" autofocus @keydown="onInputKeydown"><template #prefix>@</template></MkInput> | ||||
| 		<MkSelect v-if="select" v-model:value="selectedValue" autofocus> | ||||
| 			<template v-if="select.items"> | ||||
| 				<option v-for="item in select.items" :value="item.value">{{ item.text }}</option> | ||||
| @@ -28,8 +26,8 @@ | ||||
| 			</template> | ||||
| 		</MkSelect> | ||||
| 		<div class="buttons" v-if="(showOkButton || showCancelButton) && !actions"> | ||||
| 			<MkButton inline @click="ok" v-if="showOkButton" primary :autofocus="!input && !select && !user" :disabled="!canOk">{{ (showCancelButton || input || select || user) ? $t('ok') : $t('gotIt') }}</MkButton> | ||||
| 			<MkButton inline @click="cancel" v-if="showCancelButton || input || select || user">{{ $t('cancel') }}</MkButton> | ||||
| 			<MkButton inline @click="ok" v-if="showOkButton" primary :autofocus="!input && !select">{{ (showCancelButton || input || select) ? $t('ok') : $t('gotIt') }}</MkButton> | ||||
| 			<MkButton inline @click="cancel" v-if="showCancelButton || input || select">{{ $t('cancel') }}</MkButton> | ||||
| 		</div> | ||||
| 		<div class="buttons" v-if="actions"> | ||||
| 			<MkButton v-for="action in actions" inline @click="() => { action.callback(); close(); }" :primary="action.primary" :key="action.text">{{ action.text }}</MkButton> | ||||
| @@ -46,8 +44,6 @@ import MkModal from '@/components/ui/modal.vue'; | ||||
| import MkButton from '@/components/ui/button.vue'; | ||||
| import MkInput from '@/components/ui/input.vue'; | ||||
| import MkSelect from '@/components/ui/select.vue'; | ||||
| import parseAcct from '../../misc/acct/parse'; | ||||
| import * as os from '@/os'; | ||||
|  | ||||
| export default defineComponent({ | ||||
| 	components: { | ||||
| @@ -77,9 +73,6 @@ export default defineComponent({ | ||||
| 		select: { | ||||
| 			required: false | ||||
| 		}, | ||||
| 		user: { | ||||
| 			required: false | ||||
| 		}, | ||||
| 		icon: { | ||||
| 			required: false | ||||
| 		}, | ||||
| @@ -105,28 +98,12 @@ export default defineComponent({ | ||||
| 	data() { | ||||
| 		return { | ||||
| 			inputValue: this.input && this.input.default ? this.input.default : null, | ||||
| 			userInputValue: null, | ||||
| 			selectedValue: this.select ? this.select.default ? this.select.default : this.select.items ? this.select.items[0].value : this.select.groupedItems[0].items[0].value : null, | ||||
| 			canOk: true, | ||||
| 			faTimesCircle, faQuestionCircle, faSpinner, faInfoCircle, faExclamationTriangle, faCheck | ||||
| 		}; | ||||
| 	}, | ||||
|  | ||||
| 	watch: { | ||||
| 		userInputValue() { | ||||
| 			if (this.user) { | ||||
| 				os.api('users/show', parseAcct(this.userInputValue)).then(u => { | ||||
| 					this.canOk = u != null; | ||||
| 				}).catch(() => { | ||||
| 					this.canOk = false; | ||||
| 				}); | ||||
| 			} | ||||
| 		}, | ||||
| 	}, | ||||
|  | ||||
| 	mounted() { | ||||
| 		if (this.user) this.canOk = false; | ||||
|  | ||||
| 		document.addEventListener('keydown', this.onKeydown); | ||||
| 	}, | ||||
|  | ||||
| @@ -141,21 +118,13 @@ export default defineComponent({ | ||||
| 		}, | ||||
|  | ||||
| 		async ok() { | ||||
| 			if (!this.canOk) return; | ||||
| 			if (!this.showOkButton) return; | ||||
|  | ||||
| 			if (this.user) { | ||||
| 				const user = await os.api('users/show', parseAcct(this.userInputValue)); | ||||
| 				if (user) { | ||||
| 					this.done(false, user); | ||||
| 				} | ||||
| 			} else { | ||||
| 				const result = | ||||
| 					this.input ? this.inputValue : | ||||
| 					this.select ? this.selectedValue : | ||||
| 					true; | ||||
| 				this.done(false, result); | ||||
| 			} | ||||
| 			const result = | ||||
| 				this.input ? this.inputValue : | ||||
| 				this.select ? this.selectedValue : | ||||
| 				true; | ||||
| 			this.done(false, result); | ||||
| 		}, | ||||
|  | ||||
| 		cancel() { | ||||
|   | ||||
		Reference in New Issue
	
	Block a user
	 syuilo
					syuilo