Merge branch 'fix/v1437-review' into release/v1.43.7

# Conflicts:
#	src/app/api/analytics/route.ts
This commit is contained in:
Marc-André Bombeck committed 2026-10-20 06:20:42 +02:00
commit 45c027aee2
217 files changed
+3636 -2127

No files matched your search

+6 -3
View File
@@ -243,7 +243,7 @@ export function EntityLinkPicker({
onChange,
searchPlaceholder,
emptyLabel,
error = false,
error = null,
errorLabel,
onRetry,
extraAction,
@@ -263,9 +263,11 @@ export function EntityLinkPicker({
/**
* The option read failed. Renders an error row with Retry instead of the
* empty label: a failed read must never pass for "nothing to link", which
* is exactly how a refused page size once hid a whole vault.
* is exactly how a refused page size once hid a whole vault. Pass the
* failed read's error (or any truthy value for a failure without one); the
* row reads its status.
*/
error?: boolean;
error?: unknown;
errorLabel?: string;
onRetry?: () => void;
/**
@@ -369,6 +371,7 @@ export function EntityLinkPicker({
<Skeleton className="h-9 w-full rounded-md" />
) : error ? (
<QueryErrorRow
error={error}
message={errorLabel}
onRetry={onRetry}
slot={`${slot}-error`}
+2 -2
View File
@@ -365,7 +365,7 @@ function MedicationPicker({ selected, onChange, known }: PickerProps) {
title={t("links.related.pick.medication")}
slot="related-link-medication"
pending={list.isPending}
error={list.isError}
error={list.error}
errorLabel={t("links.picker.loadError")}
onRetry={() => void list.refetch()}
selected={selected}
@@ -403,7 +403,7 @@ function DosePicker({ selected, onChange, anchor, known }: PickerProps) {
title={t("links.related.pick.vaccination")}
slot="related-link-vaccination"
pending={doses.isPending}
error={doses.isError}
error={doses.error}
errorLabel={t("links.picker.loadError")}
onRetry={() => void doses.refetch()}
selected={selected}
@@ -199,9 +199,11 @@ export function useLinkPickerPages<T extends { id: string }>({
return mergeWindowPages(newer.data?.pages ?? [], older.data?.pages ?? []);
}, [searching, search.data, newer.data, older.data]);
const activeError = searching
? search.isError
: older.isError || (newerRequested && newer.isError);
// The failed read's error itself, not a flag: the picker's error row reads
// the status to tell a refusal or a spent budget from a real failure.
const activeError: unknown = searching
? search.error
: (older.error ?? (newerRequested ? newer.error : null));
return {
items,