"use client"; import React from "react"; import { extractBranchNumberInputFromBranchId, formatBranchIdFromNumberInput, normalizeBranchIdInput, } from "@/lib/frontend/admin/users/userManagementUx"; import { Input } from "@/components/ui/input"; import { Label } from "@/components/ui/label"; export default function BranchNumberInput({ id, branchId, onBranchIdChange, disabled, invalid = false, describedBy, }) { const [numberDraft, setNumberDraft] = React.useState(() => extractBranchNumberInputFromBranchId(branchId), ); React.useEffect(() => { const normalizedExternalBranchId = normalizeBranchIdInput(branchId); const currentDerivedBranchId = formatBranchIdFromNumberInput(numberDraft); // Keep user typing stable (e.g. "01" stays visible) while syncing true external changes // like dialog open/reset/user switch. if (currentDerivedBranchId === normalizedExternalBranchId) return; setNumberDraft(extractBranchNumberInputFromBranchId(branchId)); }, [branchId, numberDraft]); const wrapperClass = invalid ? "border-destructive" : "border-input"; return (