MED-145: send notification to patient when summary completed (#61)

* MED-145: send notification to patient when summary completed

* MED-145: send notification to patient when summary completed

* use aliased imports where possible, revert cart service urls

* save language preference to local db

* remove unnecessary optional chaning
This commit is contained in:
Helena
2025-08-28 13:05:07 +03:00
committed by GitHub
parent 5159325e6d
commit 86dc221cc6
22 changed files with 551 additions and 169 deletions

View File

@@ -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({
<div className="font-bold">
<Trans i18nKey="doctor:bmi" />
</div>
<div>{bmiFromMetric(patient?.weight ?? 0, patient?.height ?? 0)}</div>
<div>
{patient?.weight && patient?.height
? bmiFromMetric(patient.weight, patient.height)
: '-'}
</div>
<div className="font-bold">
<Trans i18nKey="doctor:smoking" />
</div>
@@ -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"
>
<Trans i18nKey="common:saveAsDraft" />
@@ -253,7 +254,9 @@ export default function AnalysisView({
<Button
type="button"
onClick={handleCompleteSubmit}
disabled={isReadOnly}
disabled={
isReadOnly || isDraftSubmitting || form.formState.isSubmitting
}
className="xs:w-1/4 w-full"
>
<Trans i18nKey="common:save" />