refactor(components): create story actions component and related functions
This commit is contained in:
		
							parent
							
								
									c795e5d293
								
							
						
					
					
						commit
						8f24c9ff3d
					
				
							
								
								
									
										28
									
								
								components/story/atoms/actions.vue
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										28
									
								
								components/story/atoms/actions.vue
									
									
									
									
									
										Normal file
									
								
							| @ -0,0 +1,28 @@ | |||||||
|  | <script setup lang="ts"> | ||||||
|  | 	import { theme } from "ant-design-vue"; | ||||||
|  | 	import { IStory } from "@models/stories"; | ||||||
|  | 	import { deleteStory } from "@client/storyActions"; | ||||||
|  | 	const props = defineProps<{ story: IStory }>(); | ||||||
|  | </script> | ||||||
|  | 
 | ||||||
|  | <template> | ||||||
|  | 	<a-popconfirm title="Are you sure you want to delete this story?" @confirm="() => deleteStory(story._id!)"> | ||||||
|  | 		<a-tooltip title="Delete"> | ||||||
|  | 			<a-button type="ghost"> | ||||||
|  | 				<icon istyle="regular" name="trash" :icolor="theme.useToken().token.value.colorError" /> | ||||||
|  | 			</a-button> | ||||||
|  | 		</a-tooltip> | ||||||
|  | 	</a-popconfirm> | ||||||
|  | 	<a-tooltip title="Edit"> | ||||||
|  | 		<a-button type="ghost" @click="$router.push(`/story/${story._id}/edit`)"> | ||||||
|  | 			<icon istyle="regular" name="pen-to-square" /> | ||||||
|  | 		</a-button> | ||||||
|  | 	</a-tooltip> | ||||||
|  | 	<a-tooltip title="View"> | ||||||
|  | 		<a-button type="ghost" @click="$router.push(`/story/${story._id}/${story.chapters.length}`)"> | ||||||
|  | 			<icon istyle="regular" name="eye" /> | ||||||
|  | 		</a-button> | ||||||
|  | 	</a-tooltip> | ||||||
|  | </template> | ||||||
|  | 
 | ||||||
|  | <style scoped></style> | ||||||
							
								
								
									
										6
									
								
								lib/client/storyActions.ts
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										6
									
								
								lib/client/storyActions.ts
									
									
									
									
									
										Normal file
									
								
							| @ -0,0 +1,6 @@ | |||||||
|  | import { useApiFetch } from "#imports"; | ||||||
|  | 
 | ||||||
|  | export async function deleteStory(id: number) { | ||||||
|  | 	await useApiFetch(`/story/${id}`, { method: "delete" }); | ||||||
|  | 	await navigateTo("/my-stuff/stories"); | ||||||
|  | } | ||||||
		Loading…
	
	
			
			x
			
			
		
	
		Reference in New Issue
	
	Block a user