Changeset 73b69b2 for chapterx-frontend/src/pages/admin
- Timestamp:
- 03/24/26 22:13:36 (3 months ago)
- Branches:
- main
- Children:
- 7fbb91c
- Parents:
- acf690c
- File:
-
- 1 edited
Legend:
- Unmodified
- Added
- Removed
-
chapterx-frontend/src/pages/admin/AdminGenresPage.tsx
racf690c r73b69b2 1 import React, { useState } from 'react'1 import React, { useState, useEffect } from 'react' 2 2 import { useNavigate } from 'react-router-dom' 3 3 import { ArrowLeft, Plus, Trash2, Tag } from 'lucide-react' … … 10 10 export const AdminGenresPage: React.FC = () => { 11 11 const navigate = useNavigate() 12 const { genres, addGenre, deleteGenre } = useStoryStore()12 const { genres, fetchGenres, addGenre, deleteGenre } = useStoryStore() 13 13 const { addToast } = useUIStore() 14 14 const [addOpen, setAddOpen] = useState(false) … … 16 16 const [deleteTarget, setDeleteTarget] = useState<Genre | null>(null) 17 17 18 const handleAdd = () => { 18 useEffect(() => { fetchGenres() }, []) 19 20 const handleAdd = async () => { 19 21 if (!newName.trim()) return 20 22 if (genres.some(g => g.name.toLowerCase() === newName.trim().toLowerCase())) { … … 22 24 return 23 25 } 24 addGenre({ genre_id: Date.now(), name: newName.trim(), story_count: 0 }) 25 addToast(`Genre "${newName.trim()}" added!`) 26 setNewName('') 27 setAddOpen(false) 26 try { 27 await addGenre(newName.trim()) 28 addToast(`Genre "${newName.trim()}" added!`) 29 setNewName('') 30 setAddOpen(false) 31 } catch { 32 addToast('Failed to add genre', 'error') 33 } 28 34 } 29 35 30 const handleDelete = (genre: Genre) => { 31 if (genre.story_count > 0) { 32 addToast('Cannot delete genre with associated stories', 'error') 33 return 36 const handleDelete = async (genre: Genre) => { 37 try { 38 await deleteGenre(genre.genre_id) 39 addToast(`Genre "${genre.name}" deleted`, 'info') 40 } catch { 41 addToast('Failed to delete genre', 'error') 34 42 } 35 deleteGenre(genre.genre_id)36 addToast(`Genre "${genre.name}" deleted`, 'info')37 43 setDeleteTarget(null) 38 44 }
Note:
See TracChangeset
for help on using the changeset viewer.
