"use client"; import { UserIcon, PencilIcon, CheckIcon, XMarkIcon } from "@heroicons/react/24/outline"; import { Button } from "@/components/atoms/button"; import { Input } from "@/components/atoms/input"; import { Label } from "@/components/atoms/label"; /** Data required for displaying personal info card */ interface PersonalInfoData { firstname: string | null | undefined; lastname: string | null | undefined; email: string; phonenumber: string | null | undefined; sfNumber: string | null | undefined; dateOfBirth: string | null | undefined; gender: string | null | undefined; } interface PersonalInfoCardProps { /** User profile data including read-only fields */ data: PersonalInfoData; /** Email value for editing (may differ from data.email during edit) */ editEmail: string; /** Phone number value for editing (may differ from data.phonenumber during edit) */ editPhoneNumber: string; isEditing: boolean; isSaving: boolean; onEdit: () => void; onCancel: () => void; onChange: (field: "email" | "phonenumber", value: string) => void; onSave: () => void; } function ReadOnlyField({ label, value, hint, }: { label: string; value: string | null | undefined; hint: string; }) { return (
{value || Not provided}
{hint}
{email}
Email can be updated from the portal.
{phonenumber || Not provided}
)}