Commit Graph
811 Commits
Author SHA1 Message Date
Yan 54e038f423 clip the canvas wrapper to suppress first-paint overflow
Address Greptile P2 review on PR #4260. Before Chart.js' first
ResizeObserver callback fires the canvas keeps its HTML5 default
size of 300x150. With position: absolute that no longer pushes any
ancestor's intrinsic size, but on a wrapper narrower than 300px the
canvas can still poke past the wrapper for one frame before Chart.js
catches up. Adding overflow: hidden to the relative wrapper clips
that transient overflow and is the pattern Chart.js' own docs
recommend for responsive charts inside flex / grid layouts. No
steady-state behaviour change because the canvas is already sized to
the wrapper once Chart.js takes over; the React tooltip lives
outside this wrapper so it remains visible.
2026-05-08 15:25:14 -04:00
Yan cdc29a812f keep charts responsive when the viewport resizes
The chart canvas in src/components/charts/Chart.tsx was rendered
directly inside the Box wrapper. Chart.js writes inline pixel sizes
onto the canvas, and while the canvas lives in the normal flow that
pixel width propagates up as min and max content through every flex
parent and into the surrounding CSS Grid track on the Tabs panel.
The track therefore stayed at whatever width the canvas had when the
page first loaded, and the chart could only grow on resize, never
shrink, until the user reloaded.

Wrap the canvas in a position-relative div and position the canvas
absolutely. Out-of-flow elements do not contribute to ancestor
intrinsic sizing, so the wrapper now takes its size purely from the
parent layout. Chart.js' ResizeObserver picks up the wrapper size and
resizes the canvas to fit, in both directions, without a reload.

Verified in playwright with resize 1280 to 800 (canvas 925 to 699)
and 800 to 1400 (canvas 699 to 1117), both without reload, and that
the click-to-toggle legend, the focusLabel hover behaviour, and the
website overview / revenue charts that share this component all
still render and update normally.
2026-05-08 10:16:58 -04:00
Francis Cao 9d477b25b4 Fix share page permissions 2026-04-15 14:55:28 -07:00
Mike Cao 1b6fc1bd51 Use local Link wrapper with cloud-mode prefetch default 2026-04-15 11:21:49 -07:00
Francis Cao 0b4d8040b7 Merge branch 'analytics' of https://github.com/umami-software/umami into dev 2026-04-15 11:03:19 -07:00
Francis Cao 28cfcd0c80 disable active link 2026-04-15 11:02:46 -07:00
Francis Cao 04eb4b675e 3.1 relational bug fixes 2026-04-15 10:31:21 -07:00
Francis Cao 09e5196ea3 Goal/Funnel mobile friendly changes. Polish event-data filters UI/UX 2026-03-28 10:28:59 -07:00
Mike Cao b881ac5f34 Syntax fixes. 2026-03-25 13:54:23 -07:00
Mike Cao fb785180d5 Merge branch 'dev' into feat-funnel-per-step-filters 2026-03-25 13:40:12 -07:00
Francis Cao 9c8f7704df Fix tooltip in darkmode 2026-03-24 15:29:13 -07:00
Francis Cao 85f57e90c5 update session replay tracking code UI/UX 2026-03-23 14:44:31 -07:00
Mike Cao 60376624db Merge branch 'dev' of https://github.com/umami-software/umami into dev 2026-03-22 09:55:00 -07:00
Mike Cao e0009cb414 Added download to breakdown report. 2026-03-22 09:54:41 -07:00
Francis Cao cd2b303e89 use team redis keys to resolve team gated features 2026-03-21 11:21:07 -07:00
Rudy B. c88313dfff refactor(hooks): extract useOperatorLabels hook shared between useFilters and Funnel 2026-03-16 21:51:17 +01:00
Rudy B. 8f0ccf84a9 feat(funnels): add per-step filter UI to funnel creation form 2026-03-16 21:51:16 +01:00
Mike Cao 31f322630d Add Badge component and use it for performance page ratings 2026-03-15 20:44:25 -07:00
Mike Cao 6e1a05f686 Gate replays. 2026-03-15 18:03:36 -07:00
Francis Cao 6623d711e7 clean up sharetable spacing 2026-03-11 09:38:55 -07:00
Mike Cao 9941181697 Move pixel and link editing to dedicated pages 2026-03-09 22:09:54 -07:00
Francis Cao 48f8cd0ece update performance css, small replay fixes 2026-03-09 18:13:31 -07:00
Francis Cao a28ea79228 saved session replays updates and polish 2026-03-09 15:00:36 -07:00
Francis Cao 1bffb3cbf3 saved session replay implementation checkpoint 2026-03-09 13:51:08 -07:00
Mike Cao 64bf4c378c Add sharing to pixel and link detail pages 2026-03-09 01:26:02 -07:00
Mike Cao c4226bc63d Add board share management UI 2026-03-08 22:24:24 -07:00
Mike Cao b429e7b24d Extract reusable board entity badge 2026-03-06 23:54:48 -08:00
Mike Cao f76b22b303 Add board type binding support 2026-03-06 23:54:46 -08:00
Francis Cao acfd4462e3 Improvements to revenue screen 2026-03-06 09:58:43 -08:00
Francis Cao 38577a9c0c fix toggle behavior and reorder replays table with play at beginning. Add missing messages script 2026-03-05 13:31:00 -08:00
Francis Cao 72bb63fe5e remove listable currency implementation. use formatCount 2026-03-05 12:52:04 -08:00
Francis Cao 383922ab17 performance page polish 2026-03-05 12:21:34 -08:00
Francis Cao f6a6d2cc31 performance updates checkpoint 2026-03-05 10:12:30 -08:00
Mike Cao c921231bb9 Make websiteId optional in filter controls to enable dashboard filtering
Allows BoardControls to render filter bar and date picker without
requiring a websiteId. Website-specific features (segments, cohorts,
filter value autocomplete, save segment) are gracefully hidden when
no websiteId is available.
2026-03-04 21:30:05 -08:00
Francis Cao 5a0243a42b allow event filter on Replays page 2026-03-03 23:20:25 -08:00
Francis Cao 0e1d6cef6b refactor session replays to be per visit. sessions persist too long resulting in low-quality recordings 2026-03-03 22:59:25 -08:00
Francis Cao 4ecef2e290 add better metrics to revenue page AOV/ARPU 2026-03-03 16:00:39 -08:00
Francis Cao 5e68661c5d session replay updates. add clickhouse implementation, filters, tables 2026-03-03 12:47:27 -08:00
Francis Cao 80e366fdf6 Fix incorrect merge conflict 2026-03-02 10:33:04 -08:00
Francis Cao 8d2724eaa3 Merge branch 'dev' into master 2026-03-02 10:24:32 -08:00
Gouttfiandgreptile-apps[bot] d8b8ce4aeb Apply suggestion from @greptile-apps[bot]
Co-authored-by: greptile-apps[bot] <165735046+greptile-apps[bot]@users.noreply.github.com>
2026-02-28 11:43:12 +01:00
Gouttfi b74c03173d Fixe issue #4058 2026-02-28 11:26:26 +01:00
Francis Cao b5f91f11f0 update formatMessage to t. add session replay labels 2026-02-27 16:42:58 -08:00
Mike Cao 0196b0d95d Fix issues. 2026-02-26 10:29:24 -08:00
Mike Cao e73d827d21 Merge branch 'session-recording' into dev 2026-02-25 02:32:07 -08:00
Mike Cao e2ab4af493 Merge branch 'performance' into dev 2026-02-25 02:27:46 -08:00
Francis Cao 0651168823 fix bug when removed filter do not update 2026-02-21 23:05:16 -08:00
Francis Cao cc1e4438d0 implement OR logic to filters, segments, cohorts 2026-02-21 20:00:43 -08:00
Francis Cao 79c06787cd enable using same filters 2026-02-21 14:56:29 -08:00
Francis Cao 682995524e Merge branch 'dev' into fix/pagination 2026-02-21 14:32:06 -08:00