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
+6 -3
View File
@@ -13,10 +13,12 @@ import type { FamilyMember } from "@/types/family"
import { db } from "@/lib/db"
import { PhotoGallery } from "@/components/members/photo-gallery"
import { StoryManager } from "@/components/members/story-manager"
import { useDialog } from "@/components/ui/alert-dialog-custom"
export default function MemberProfilePage() {
const { id } = useParams()
const { getMember, updateMember, deleteMember } = useFamily()
const { showConfirm } = useDialog()
const router = useRouter()
const [isEditing, setIsEditing] = useState(false)
const [avatarBlobUrl, setAvatarBlobUrl] = useState<string | undefined>(undefined)
@@ -55,8 +57,9 @@ export default function MemberProfilePage() {
setIsEditing(false)
}
const handleDelete = () => {
if (confirm("确定要删除这位成员吗?这将同时删除其关联关系。")) {
const handleDelete = async () => {
const confirmed = await showConfirm("确定要删除这位成员吗?这将同时删除其关联关系。", "删除成员", "destructive")
if (confirmed) {
deleteMember(member.id)
router.push("/members")
}
@@ -94,7 +97,7 @@ export default function MemberProfilePage() {
className="h-full w-full object-cover"
/>
) : (
member.gender === 'female' ? (
member.gender === 'FEMALE' ? (
<CircleUserRound className="h-20 w-20 text-pink-400" />
) : (
<CircleUser className="h-20 w-20 text-blue-400" />
+12 -7
View File
@@ -14,13 +14,18 @@ export default function NewMemberPage() {
const existingMembers = Object.values(treeData.members)
const handleSave = (newMember: FamilyMember) => {
addMember({
...newMember,
createdAt: new Date().toISOString(),
updatedAt: new Date().toISOString(),
})
router.push(`/members/${newMember.id}`)
const handleSave = async (newMember: FamilyMember) => {
try {
await addMember({
...newMember,
createdAt: new Date().toISOString(),
updatedAt: new Date().toISOString(),
})
router.push(`/members/${newMember.id}`)
} catch (error) {
console.error('添加成员失败:', error)
alert('添加成员失败: ' + (error as Error).message)
}
}
return (