From f633349c8dbe123c5c82dd8bd311fbc7aa9c876a Mon Sep 17 00:00:00 2001 From: Mattsson <111893710+mattssonn@users.noreply.github.com> Date: Wed, 5 Aug 2026 15:18:07 +0200 Subject: [PATCH] feat(analytics): show form field labels in session replays (#1416) * feat(analytics): show form field labels in session replays Replays showed the sidebar after #1412 but form pages were still fully masked, so you could not tell WHICH field a user was interacting with. Tag the shared Label primitive (components/ui/label.tsx, used by every form in the app) with data-ph-unmask: field labels are static i18n chrome, and maskAllInputs keeps every typed value hidden. The one Label whose text is user data, the user-defined dimension name in LineDimensionFields, gets data-ph-mask, which wins even on the same element because maskTextFn checks it first. Co-Authored-By: Claude Fable 5 * fix(analytics): re-mask three Labels that render user data Completing the audit the PR review asked for: a multiline sweep over every Label child found three call sites whose label text is user data, missed by the first single-line pass. Danger-zone confirm labels interpolate the user's email (AccountDangerZone) and the company name (CompanyDangerZone), and the periodisering auto-detect row label is counterparty name + invoice number. All three now carry data-ph-mask. Currency-code and row-count interpolations were reviewed and left visible: categorical UI state, not books data. Co-Authored-By: Claude Fable 5 --------- Co-authored-by: Claude Fable 5 --- .../bookkeeping/year-end/periodisering/page.tsx | 2 ++ components/dimensions/LineDimensionFields.tsx | 3 ++- components/settings/AccountDangerZone.tsx | 3 ++- components/settings/CompanyDangerZone.tsx | 3 ++- components/ui/label.tsx | 5 +++++ instrumentation-client.ts | 9 ++++++++- 6 files changed, 21 insertions(+), 4 deletions(-) diff --git a/app/(dashboard)/bookkeeping/year-end/periodisering/page.tsx b/app/(dashboard)/bookkeeping/year-end/periodisering/page.tsx index 2b9a438a..91abfc6c 100644 --- a/app/(dashboard)/bookkeeping/year-end/periodisering/page.tsx +++ b/app/(dashboard)/bookkeeping/year-end/periodisering/page.tsx @@ -677,7 +677,9 @@ function AutoStep({ />
+ {/* data-ph-mask: source_label is counterparty name + invoice number */}