chore(components): remove storyform.vue
this is to rename it
This commit is contained in:
		
							parent
							
								
									e62924f6ec
								
							
						
					
					
						commit
						8a7c10b63a
					
				| @ -1,181 +0,0 @@ | |||||||
| <script setup lang="ts"> |  | ||||||
| 	import draggable from "vuedraggable"; |  | ||||||
| 	import { v4 } from "uuid"; |  | ||||||
| 	import lmove from "lodash-move"; |  | ||||||
| 	import { |  | ||||||
| 		Field, |  | ||||||
| 		Form as veeForm, |  | ||||||
| 		FieldArray, |  | ||||||
| 		FieldEntry, |  | ||||||
| 		useForm, |  | ||||||
| 	} from "vee-validate"; |  | ||||||
| 	import { storySchema } from "@client/storyFormSchema"; |  | ||||||
| 	import { |  | ||||||
| 		FormChapter, |  | ||||||
| 		FormStory, |  | ||||||
| 		defaultChapter, |  | ||||||
| 	} from "@client/types/form/story"; |  | ||||||
| 	import { autoEdit, autoSave } from "@client/utils"; |  | ||||||
| 
 |  | ||||||
| 	import findUser from "~/components/findUser.vue"; |  | ||||||
| 
 |  | ||||||
| 	import singleChapter from "./singleChapter.vue"; |  | ||||||
| 	import icon from "~/components/icon.vue"; |  | ||||||
| 
 |  | ||||||
| 	const props = defineProps<{ |  | ||||||
| 		data: FormStory; |  | ||||||
| 		canDraft?: boolean; |  | ||||||
| 		endpoint: string; |  | ||||||
| 		endpointMethod: "put" | "post"; |  | ||||||
| 		submitText?: string; |  | ||||||
| 	}>(); |  | ||||||
| 	let drag = false; |  | ||||||
| 	let acData = ref(props.data); |  | ||||||
| 	const expandos = ref<string[]>([]); |  | ||||||
| 
 |  | ||||||
| 	function logSubmit(values, actions) { |  | ||||||
| 		console.debug("VALUE"); |  | ||||||
| 		console.debug(values); |  | ||||||
| 		console.debug(actions); |  | ||||||
| 	} |  | ||||||
| 	function onSubmit(values, actions) { |  | ||||||
| 		logSubmit(values, actions); |  | ||||||
| 	} |  | ||||||
| 	function inval({ values, errors, results }) { |  | ||||||
| 		logSubmit(values, undefined); |  | ||||||
| 	} |  | ||||||
| 	const { values, setFieldValue, handleSubmit } = useForm({ |  | ||||||
| 		keepValuesOnUnmount: true, |  | ||||||
| 		validationSchema: storySchema, |  | ||||||
| 		initialValues: props.data, |  | ||||||
| 	}); |  | ||||||
| 	const subCb = handleSubmit(onSubmit); |  | ||||||
| </script> |  | ||||||
| <template> |  | ||||||
| 	<!-- <vee-form |  | ||||||
| 		:keep-values="true" |  | ||||||
| 		v-slot="{ values, setFieldValue }" |  | ||||||
| 		:validation-schema="storySchema" |  | ||||||
| 		:initial-values="data" |  | ||||||
| 		@submit="onSubmit" |  | ||||||
| 		@invalid-submit="inval" |  | ||||||
| 	> --> |  | ||||||
| 	<form |  | ||||||
| 		@submit="subCb" |  | ||||||
| 		@change=" |  | ||||||
| 			() => |  | ||||||
| 				canDraft ? autoSave(values) : autoEdit(values, endpoint, endpointMethod) |  | ||||||
| 		" |  | ||||||
| 	> |  | ||||||
| 		<!-- <a-form v-bind:model="acData"> --> |  | ||||||
| 		<Field name="title" v-slot="{ value, field, errorMessage }"> |  | ||||||
| 			<a-form-item |  | ||||||
| 				label="Title" |  | ||||||
| 				:help="errorMessage" |  | ||||||
| 				:validate-status="!!errorMessage ? 'error' : ''" |  | ||||||
| 			> |  | ||||||
| 				<a-input v-bind="field" :value="value" /> |  | ||||||
| 			</a-form-item> |  | ||||||
| 		</Field> |  | ||||||
| 		<a-form-item label="Co-author (optional)"> |  | ||||||
| 			<find-user :initial-option="null" fieldName="coAuthor" :multi="false" /> |  | ||||||
| 		</a-form-item> |  | ||||||
| 		<Field |  | ||||||
| 			:unchecked-value="false" |  | ||||||
| 			:value="true" |  | ||||||
| 			type="checkbox" |  | ||||||
| 			name="completed" |  | ||||||
| 			v-slot="{ value, field, errorMessage }" |  | ||||||
| 		> |  | ||||||
| 			<a-checkbox v-bind="field"> Complete </a-checkbox> |  | ||||||
| 		</Field> |  | ||||||
| 		<a-divider /> |  | ||||||
| 		<!-- <test1/> --> |  | ||||||
| 		<field-array name="chapters" v-slot="{ fields, push, remove, move }"> |  | ||||||
| 			<draggable |  | ||||||
| 				:component-data="{ type: 'transtion-group' }" |  | ||||||
| 				@start="drag = true" |  | ||||||
| 				@end="drag = false" |  | ||||||
| 				v-model="values.chapters" |  | ||||||
| 				tag="div" |  | ||||||
| 				item-key="uuidKey" |  | ||||||
| 				@change=" |  | ||||||
| 					(e) => { |  | ||||||
| 						if (e.moved) { |  | ||||||
| 							// log.debug(e.moved); |  | ||||||
| 							move(e.moved.oldIndex, e.moved.newIndex); |  | ||||||
| 							acData.chapters = lmove( |  | ||||||
| 								acData.chapters, |  | ||||||
| 								e.moved.oldIndex, |  | ||||||
| 								e.moved.newIndex, |  | ||||||
| 							); |  | ||||||
| 							// log.debug(toRaw(acData.chapters.map((a) => toRaw(a)))); |  | ||||||
| 						} |  | ||||||
| 					} |  | ||||||
| 				" |  | ||||||
| 			> |  | ||||||
| 				<template #item="{ element, index }"> |  | ||||||
| 					<a-collapse v-model:active-key="expandos" collapsible="icon"> |  | ||||||
| 						<a-collapse-panel :key="`${element.uuidKey}`"> |  | ||||||
| 							<template #header> |  | ||||||
| 								{{ values.chapters[index]?.chapterTitle || "Untitled" }} |  | ||||||
| 								<a-button |  | ||||||
| 									@click=" |  | ||||||
| 										(e) => { |  | ||||||
| 											let localFields = toRaw(fields); |  | ||||||
| 											// log.debug(`${index} | ${element.index}`); |  | ||||||
| 											// log.debug('fields->', localFields); |  | ||||||
| 											acData.chapters.splice(index, 1); |  | ||||||
| 											remove(index); |  | ||||||
| 											// todo renumber |  | ||||||
| 											// renumber() |  | ||||||
| 										} |  | ||||||
| 									" |  | ||||||
| 								> |  | ||||||
| 									<icon istyle="regular" name="trash" /> |  | ||||||
| 								</a-button> |  | ||||||
| 							</template> |  | ||||||
| 							<single-chapter :data="element" :name="`chapters[${index}]`" /> |  | ||||||
| 						</a-collapse-panel> |  | ||||||
| 					</a-collapse> |  | ||||||
| 				</template> |  | ||||||
| 				<template #footer> |  | ||||||
| 					<a-button |  | ||||||
| 						@click=" |  | ||||||
| 							(e) => { |  | ||||||
| 								if (!Array.isArray(values.chapters)) { |  | ||||||
| 									// noinspection TypeScriptValidateTypes |  | ||||||
| 									setFieldValue('chapters', []); |  | ||||||
| 								} |  | ||||||
| 								const chaps = [...toRaw(values.chapters)]; |  | ||||||
| 								let lastIndex = chaps.length - 1; |  | ||||||
| 								if (lastIndex < 0) lastIndex = 0; |  | ||||||
| 								let lastChapter = chaps[lastIndex]; |  | ||||||
| 								// log.debug('chaptrs->', chaps); |  | ||||||
| 								// log.debug('lastIndex->', lastIndex, lastChapter); |  | ||||||
| 								let newChapter = Object.assign({}, defaultChapter, { |  | ||||||
| 									summary: lastChapter?.summary || '', |  | ||||||
| 									index: (lastChapter?.index || 0) + 1, |  | ||||||
| 									bands: lastChapter?.bands || [], |  | ||||||
| 									characters: lastChapter?.characters || [], |  | ||||||
| 									relationships: lastChapter?.relationships || [], |  | ||||||
| 									uuidKey: v4(), |  | ||||||
| 									genre: lastChapter?.genre || [], |  | ||||||
| 								}); |  | ||||||
| 								// log.debug('nc->', newChapter); |  | ||||||
| 								push(newChapter); |  | ||||||
| 								acData.chapters.push(newChapter); |  | ||||||
| 							} |  | ||||||
| 						" |  | ||||||
| 					> |  | ||||||
| 						Add chapter |  | ||||||
| 					</a-button> |  | ||||||
| 				</template> |  | ||||||
| 			</draggable> |  | ||||||
| 		</field-array> |  | ||||||
| 		<a-button type="primary" html-type="submit">{{ |  | ||||||
| 			submitText || "Post" |  | ||||||
| 		}}</a-button> |  | ||||||
| 	</form> |  | ||||||
| 	<!-- </vee-form> --> |  | ||||||
| </template> |  | ||||||
		Loading…
	
	
			
			x
			
			
		
	
		Reference in New Issue
	
	Block a user