diff --git a/frontend/src/components/MedDetailModal.tsx b/frontend/src/components/MedDetailModal.tsx index 637be46..f67b5a5 100644 --- a/frontend/src/components/MedDetailModal.tsx +++ b/frontend/src/components/MedDetailModal.tsx @@ -626,7 +626,7 @@ export function MedDetailModal({
+ {/* Intake Schedule Section */} + {selectedMed.blisters.length > 0 && ( +
+

+ {t("modal.intakeSchedule")}{" "} + {selectedMed.intakeRemindersEnabled && ( + + + )} +

+
+ {selectedMed.blisters.map((blister, idx) => { + // When using new intakes format with per-intake takenBy, + // each intake already represents one person's dose — don't multiply. + // For legacy intakes (no per-intake takenBy), multiply by personCount. + const intake = selectedMed.intakes?.[idx]; + const hasPerIntakeTakenBy = !!intake?.takenBy; + const personCount = hasPerIntakeTakenBy ? 1 : Math.max(1, selectedMed.takenBy?.length || 1); + const totalUsage = blister.usage * personCount; + return ( +
+ + {totalUsage} {totalUsage !== 1 ? t("common.pills") : t("common.pill")} + {selectedMed.pillWeightMg && + ` (${totalUsage * selectedMed.pillWeightMg} ${selectedMed.doseUnit ?? "mg"})`} + + + {blister.every === 1 ? t("common.daily") : t("common.everyNDays", { count: blister.every })} + + {hasPerIntakeTakenBy && intake.takenBy && ( + {intake.takenBy} + )} + {intake?.intakeRemindersEnabled && ( + + + )} + + {t("modal.at")}{" "} + {new Date(blister.start).toLocaleTimeString(getSystemLocale(i18n.language), { + hour: "2-digit", + minute: "2-digit", + })} + +
+ ); + })} +
+
+ )} + {/* Prescription Details Section */} {selectedMed.prescriptionEnabled && (
@@ -839,50 +891,6 @@ export function MedDetailModal({
)} - {/* Intake Schedule Section */} - {selectedMed.blisters.length > 0 && ( -
-

- {t("modal.intakeSchedule")}{" "} - {selectedMed.intakeRemindersEnabled && ( - - - )} -

-
- {selectedMed.blisters.map((blister, idx) => { - // When using new intakes format with per-intake takenBy, - // each intake already represents one person's dose — don't multiply. - // For legacy intakes (no per-intake takenBy), multiply by personCount. - const intake = selectedMed.intakes?.[idx]; - const hasPerIntakeTakenBy = !!intake?.takenBy; - const personCount = hasPerIntakeTakenBy ? 1 : Math.max(1, selectedMed.takenBy?.length || 1); - const totalUsage = blister.usage * personCount; - return ( -
- - {totalUsage} {totalUsage !== 1 ? t("common.pills") : t("common.pill")} - {selectedMed.pillWeightMg && - ` (${totalUsage * selectedMed.pillWeightMg} ${selectedMed.doseUnit ?? "mg"})`} - - - {blister.every === 1 ? t("common.daily") : t("common.everyNDays", { count: blister.every })} - - - {t("modal.at")}{" "} - {new Date(blister.start).toLocaleTimeString(getSystemLocale(i18n.language), { - hour: "2-digit", - minute: "2-digit", - })} - -
- ); - })} -
-
- )} - {/* Coverage Status Section */} {medCoverage && status && (
@@ -909,10 +917,10 @@ export function MedDetailModal({ {selectedMed.notes && (

+ {t("modal.notes")}{" "} {" "} - {t("modal.notes")} +

{selectedMed.notes}
@@ -1111,7 +1119,7 @@ export function MedDetailModal({