diff --git a/app/doctor/_components/analysis-view.tsx b/app/doctor/_components/analysis-view.tsx
index 9a369b1..47033a0 100644
--- a/app/doctor/_components/analysis-view.tsx
+++ b/app/doctor/_components/analysis-view.tsx
@@ -53,6 +53,7 @@ export default function AnalysisView({
feedback?: DoctorFeedback;
}) {
const [isConfirmOpen, setIsConfirmOpen] = useState(false);
+ const [isDraftSubmitting, setIsDraftSubmitting] = useState(false);
const { data: user } = useUser();
@@ -106,28 +107,22 @@ export default function AnalysisView({
};
const handleDraftSubmit = async (e: React.FormEvent) => {
+ setIsDraftSubmitting(true);
e.preventDefault();
form.formState.errors.feedbackValue = undefined;
const formData = form.getValues();
- onSubmit(formData, 'DRAFT');
+ await onSubmit(formData, 'DRAFT');
+ setIsDraftSubmitting(false);
};
- const handleCompleteSubmit = async (e: React.FormEvent) => {
- e.preventDefault();
-
- const isValid = await form.trigger();
- if (!isValid) {
- return;
- }
-
+ const handleCompleteSubmit = form.handleSubmit(async () => {
setIsConfirmOpen(true);
- };
+ });
- const confirmComplete = () => {
- const formData = form.getValues();
- onSubmit(formData, 'COMPLETED');
- };
+ const confirmComplete = form.handleSubmit(async (data) => {
+ await onSubmit(data, 'COMPLETED');
+ });
return (
<>
@@ -179,7 +174,11 @@ export default function AnalysisView({
- {bmiFromMetric(patient?.weight ?? 0, patient?.height ?? 0)}
+
+ {patient?.weight && patient?.height
+ ? bmiFromMetric(patient.weight, patient.height)
+ : '-'}
+
@@ -245,7 +244,9 @@ export default function AnalysisView({
type="button"
variant="outline"
onClick={handleDraftSubmit}
- disabled={isReadOnly}
+ disabled={
+ isReadOnly || isDraftSubmitting || form.formState.isSubmitting
+ }
className="xs:w-1/4 w-full"
>
@@ -253,7 +254,9 @@ export default function AnalysisView({