chore: fix all Biome lint warnings and MedDetail intake bell icons (#265)
- Backend: refactor nested ternaries, remove unused imports/any types - Frontend: fix exhaustive deps, a11y label associations, array index keys, empty CSS blocks, unused vars, type annotations - MedDetail modal: fix intake schedule bell icons not rendering (use unified intake source with fallback), place bell inline after person name - MedDetail modal: revert schedule rows from grid to flexbox layout Closes #264
This commit is contained in:
@@ -817,11 +817,12 @@ export async function medicationRoutes(app: FastifyInstance) {
|
||||
}
|
||||
takenDoseIdsByMed.get(medId)!.add(dose.doseId);
|
||||
const rawTakenAt = Number(dose.takenAt);
|
||||
const takenAtMs = Number.isFinite(rawTakenAt)
|
||||
? rawTakenAt < 1_000_000_000_000
|
||||
? rawTakenAt * 1000
|
||||
: rawTakenAt
|
||||
: new Date(dose.takenAt).getTime();
|
||||
let takenAtMs: number;
|
||||
if (Number.isFinite(rawTakenAt)) {
|
||||
takenAtMs = rawTakenAt < 1_000_000_000_000 ? rawTakenAt * 1000 : rawTakenAt;
|
||||
} else {
|
||||
takenAtMs = new Date(dose.takenAt).getTime();
|
||||
}
|
||||
takenDoseTimestamps.set(dose.doseId, takenAtMs);
|
||||
});
|
||||
|
||||
@@ -876,11 +877,14 @@ export async function medicationRoutes(app: FastifyInstance) {
|
||||
const intake = intakes[blisterIdx];
|
||||
const intakePerson = intake?.takenBy;
|
||||
const fallbackPeople = parseTakenByJson(row.takenByJson);
|
||||
const peopleForThisIntake = intakePerson
|
||||
? [intakePerson]
|
||||
: fallbackPeople.length > 0
|
||||
? fallbackPeople
|
||||
: [null];
|
||||
let peopleForThisIntake: Array<string | null>;
|
||||
if (intakePerson) {
|
||||
peopleForThisIntake = [intakePerson];
|
||||
} else if (fallbackPeople.length > 0) {
|
||||
peopleForThisIntake = fallbackPeople;
|
||||
} else {
|
||||
peopleForThisIntake = [null];
|
||||
}
|
||||
|
||||
let timeBasedConsumed = 0;
|
||||
let lastAutoConsumedDateMs = 0;
|
||||
|
||||
@@ -77,7 +77,10 @@ export async function refillRoutes(app: FastifyInstance) {
|
||||
const newPackCount = med.packCount + effectivePacksAdded;
|
||||
const newLooseTablets = med.looseTablets + effectiveLoosePillsAdded;
|
||||
|
||||
const consumedRefills = usePrescription ? (isBottle ? 1 : effectivePacksAdded) : 0;
|
||||
let consumedRefills = 0;
|
||||
if (usePrescription) {
|
||||
consumedRefills = isBottle ? 1 : effectivePacksAdded;
|
||||
}
|
||||
const newRemainingRefills = usePrescription
|
||||
? Math.max(0, remainingPrescriptionRefills - consumedRefills)
|
||||
: (med.prescriptionRemainingRefills ?? null);
|
||||
|
||||
@@ -167,11 +167,12 @@ async function getMedicationsNeedingReminder(
|
||||
}
|
||||
takenDoseIdsByMed.get(medId)!.add(dose.doseId);
|
||||
const rawTakenAt = Number(dose.takenAt);
|
||||
const takenAtMs = Number.isFinite(rawTakenAt)
|
||||
? rawTakenAt < 1_000_000_000_000
|
||||
? rawTakenAt * 1000
|
||||
: rawTakenAt
|
||||
: new Date(dose.takenAt).getTime();
|
||||
let takenAtMs: number;
|
||||
if (Number.isFinite(rawTakenAt)) {
|
||||
takenAtMs = rawTakenAt < 1_000_000_000_000 ? rawTakenAt * 1000 : rawTakenAt;
|
||||
} else {
|
||||
takenAtMs = new Date(dose.takenAt).getTime();
|
||||
}
|
||||
takenDoseTimestamps.set(dose.doseId, takenAtMs);
|
||||
}
|
||||
|
||||
@@ -216,7 +217,14 @@ async function getMedicationsNeedingReminder(
|
||||
const intake = intakes[blisterIdx];
|
||||
const intakePerson = intake?.takenBy;
|
||||
const fallbackPeople = parseTakenByJson(row.takenByJson);
|
||||
const peopleForThisIntake = intakePerson ? [intakePerson] : fallbackPeople.length > 0 ? fallbackPeople : [null];
|
||||
let peopleForThisIntake: Array<string | null>;
|
||||
if (intakePerson) {
|
||||
peopleForThisIntake = [intakePerson];
|
||||
} else if (fallbackPeople.length > 0) {
|
||||
peopleForThisIntake = fallbackPeople;
|
||||
} else {
|
||||
peopleForThisIntake = [null];
|
||||
}
|
||||
|
||||
let timeBasedConsumed = 0;
|
||||
let lastAutoConsumedDateMs = 0;
|
||||
|
||||
@@ -152,8 +152,8 @@ async function registerExportRoutes(ctx: TestContext) {
|
||||
});
|
||||
|
||||
// POST /import
|
||||
// biome-ignore lint/suspicious/noExplicitAny: test helper with dynamic import data shape
|
||||
app.post("/import", async (request, reply) => {
|
||||
// biome-ignore lint/suspicious/noExplicitAny: test helper with dynamic import data shape
|
||||
const importData = request.body as any;
|
||||
|
||||
// Basic validation
|
||||
|
||||
@@ -1,5 +1,5 @@
|
||||
import cookie from "@fastify/cookie";
|
||||
import Fastify, { type FastifyInstance } from "fastify";
|
||||
import Fastify from "fastify";
|
||||
import { afterEach, describe, expect, it, vi } from "vitest";
|
||||
|
||||
type OidcMocks = {
|
||||
|
||||
Reference in New Issue
Block a user