This commit is contained in:
freedakgmail
2025-11-23 09:13:25 +08:00
parent 81dbf709aa
commit bade25ff26
378 changed files with 769815 additions and 2334 deletions
+8 -6
View File
@@ -6,10 +6,10 @@ import { Input } from "@/components/ui/input"
import { Textarea } from "@/components/ui/textarea"
import { Label } from "@/components/ui/label"
import { Card, CardContent, CardHeader, CardTitle } from "@/components/ui/card"
import { Dialog, DialogContent, DialogHeader, DialogTitle, DialogFooter } from "@/components/ui/dialog"
import { Plus, Edit, Trash, BookOpen, Calendar } from "lucide-react"
import type { FamilyStory } from "@/types/family"
import { v4 as uuidv4 } from "uuid"
import { useDialog } from "@/components/ui/alert-dialog-custom"
interface StoryManagerProps {
stories?: FamilyStory[]
@@ -18,7 +18,8 @@ interface StoryManagerProps {
}
export function StoryManager({ stories = [], onChange, readonly = false }: StoryManagerProps) {
const [isDialogOpen, setIsDialogOpen] = useState(false)
const { showAlert, showConfirm } = useDialog()
const [isEditing, setIsEditing] = useState(false)
const [editingStory, setEditingStory] = useState<FamilyStory | null>(null)
const [formData, setFormData] = useState<Partial<FamilyStory>>({
title: "",
@@ -38,15 +39,16 @@ export function StoryManager({ stories = [], onChange, readonly = false }: Story
setIsDialogOpen(true)
}
const handleDelete = (storyId: string) => {
if (confirm("确定要删除这个故事吗?")) {
const handleDelete = async (storyId: string) => {
const confirmed = await showConfirm("确定要删除这个故事吗?", "删除故事")
if (confirmed) {
onChange(stories.filter(s => s.id !== storyId))
}
}
const handleSave = () => {
const handleSave = async () => {
if (!formData.title || !formData.content) {
alert("请填写标题和内容")
await showAlert("请填写标题和内容", "提示")
return
}