save and claim button added

This commit is contained in:
2025-08-29 14:44:31 +05:30
parent d76db44b8a
commit c9ad84c3a8
3 changed files with 48 additions and 5 deletions

View File

@@ -36,7 +36,9 @@ interface AddPatientModalProps {
// Define the ref type
export type AddPatientModalRef = {
shouldSchedule: boolean;
shouldClaim: boolean;
navigateToSchedule: (patientId: number) => void;
navigateToClaim: (patientId: number) => void;
};
export const AddPatientModal = forwardRef<
@@ -51,6 +53,7 @@ export const AddPatientModal = forwardRef<
const isEditing = !!patient;
const [, navigate] = useLocation();
const [saveAndSchedule, setSaveAndSchedule] = useState(false);
const [saveAndClaim, setSaveAndClaim] = useState(false);
const patientFormRef = useRef<PatientFormRef>(null); // Ref for PatientForm
// Set up the imperativeHandle to expose functionality to the parent component
@@ -65,9 +68,14 @@ export const AddPatientModal = forwardRef<
useImperativeHandle(ref, () => ({
shouldSchedule: saveAndSchedule,
shouldClaim: saveAndClaim, // ✅ NEW
navigateToSchedule: (patientId: number) => {
navigate(`/appointments?newPatient=${patientId}`);
},
navigateToClaim: (patientId: number) => {
// ✅ NEW
navigate(`/claims?newPatient=${patientId}`);
},
}));
const handleFormSubmit = (data: InsertPatient | UpdatePatient) => {
@@ -79,10 +87,15 @@ export const AddPatientModal = forwardRef<
};
const handleSaveAndSchedule = () => {
setSaveAndClaim(false); // ensure only one flag at a time
setSaveAndSchedule(true);
if (patientFormRef.current) {
patientFormRef.current.submit();
}
patientFormRef.current?.submit();
};
const handleSaveAndClaim = () => {
setSaveAndSchedule(false); // ensure only one flag at a time
setSaveAndClaim(true);
patientFormRef.current?.submit();
};
return (
@@ -120,6 +133,18 @@ export const AddPatientModal = forwardRef<
Cancel
</Button>
{!isEditing && (
<Button
variant="outline"
className="gap-1"
onClick={handleSaveAndClaim}
disabled={isLoading}
>
<Calendar className="h-4 w-4" />
Save & Claim
</Button>
)}
{!isEditing && (
<Button
variant="outline"