Commit Graph
2299 Commits
Author SHA1 Message Date
Mike Cao c0ea3aefbe Migrate tests to Vitest 2026-05-14 22:05:34 -07:00
Mike CaoandGitHub cbe4d79b3c Merge pull request #4260 from yancat160/fix/chart-canvas-overflow-on-resize
fix: keep charts responsive when the viewport resizes
2026-05-14 22:43:38 -04:00
Mike CaoandGitHub 9c1db27218 Merge pull request #4099 from sputnik-mac/fix/redirect-logged-in-user-from-login-4094
fix: redirect logged-in users from login page to dashboard
2026-05-14 05:55:33 -04:00
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 ea8ebb1a54 update RRWebplayer config to fix seek issues and warning suppression 2026-04-15 20:17:50 -07:00
Mike Cao 80fee9f321 fix blank screen by using router.replace instead of redirect in useEffect 2026-04-15 20:04:30 -07:00
Francis Cao 66a5881fde fix sessionreplay seek issues 2026-04-15 19:56:50 -07:00
Mike Cao 7b8403c0cc Updated nextjs. Changed middleware to proxy. 2026-04-15 18:25:14 -07:00
Francis Cao 137fd6fd5c fix ambiguoius session_id errors 2026-04-15 15:12:02 -07:00
Francis Cao 9d477b25b4 Fix share page permissions 2026-04-15 14:55:28 -07:00
Mike Cao f41c0221c4 fix docker prisma migrate and remove stray query log 2026-04-15 14:22:04 -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 17a31820fa fix filters persisting across website change 2026-04-15 10:55:30 -07:00
Francis Cao 04eb4b675e 3.1 relational bug fixes 2026-04-15 10:31:21 -07:00
Francis Cao a87d899e17 fix sharetoken permissions on mixed boards 2026-04-13 11:32:47 -07:00
Francis Cao 5e6f88f123 fix board share permissions 2026-04-13 11:15:28 -07:00
Francis Cao 3a31ad35b0 revert tracker double init logic 2026-04-11 10:48:22 -07:00
Francis Cao 18a6c2995a move multiple init guard to be per website ID not window 2026-04-08 10:45:32 -07:00
Francis Cao 54d3c43300 Revert "Merge pull request #4048 from AlejandroGispert/fix/3981-login-email-case"
This reverts commit b6341596bf, reversing
changes made to 07356323c1.
2026-04-07 11:26:58 -07:00
Francis Cao 6b13b1cc13 Fix catchall nav issue 2026-04-07 10:56:19 -07:00
Mike CaoandGitHub f8f86d72aa Merge branch 'dev' into tracker-fetch-priority-low 2026-04-04 17:12:29 -04:00
Mike CaoandGitHub b6341596bf Merge pull request #4048 from AlejandroGispert/fix/3981-login-email-case
fix: make signin email case-insensitive
2026-04-01 23:25:56 -04:00
Francis Cao edbb291628 fix undefined share params allowing access to pages 2026-03-31 15:15:39 -07:00
Francis Cao 1d04a02fd8 Hide replays from share page 2026-03-31 13:43:03 -07:00
Francis Cao 163e46d1f1 Fix session avatar href 2026-03-31 13:36:23 -07:00
Francis Cao 26ced6cdf2 sharePage hotfix 2026-03-31 13:17:33 -07:00
Mike CaoandGitHub 3f673557a9 Merge pull request #4112 from sputnik-mac/fix/revenue-chart-timezone-4107
fix: use settings timezone in revenue chart date range
2026-03-29 20:25:10 -07:00
Mike Cao c4e52e7dcd Remove fs-extra dependency in favor of native node:fs 2026-03-29 23:12:45 -04:00
Mike CaoandGitHub 224bbbb8de Merge pull request #3606 from fauzora/fix/tracker-single-init
fix(tracker): prevent multiple initialization when script injected more than once
2026-03-29 20:05:32 -07:00
Francis Cao 09e5196ea3 Goal/Funnel mobile friendly changes. Polish event-data filters UI/UX 2026-03-28 10:28:59 -07:00
Francis Cao 35680918c0 add page icons to collapsed share menu 2026-03-26 15:30:11 -07:00
Mike Cao 9e76bd4cf8 More fixes. 2026-03-25 13:57:32 -07:00
Mike Cao b881ac5f34 Syntax fixes. 2026-03-25 13:54:23 -07:00
Mike CaoandGitHub 9fd4fe628d Merge pull request #4054 from Yashh56/cache-control
feat: add cache control headers to GET response
2026-03-25 13:42:23 -07:00
Mike CaoandGitHub fb785180d5 Merge branch 'dev' into feat-funnel-per-step-filters 2026-03-25 13:40:12 -07:00
Francis Cao 54dbfe1ca9 Support wildcard for goals report Closes #4086 2026-03-25 09:19:08 -07:00
Serhii Zghama e6f3f3b4b4 fix: use settings timezone in revenue chart date range
The revenue chart was using the browser's local timezone instead of
the timezone configured in Umami settings. This caused the chart to
show different time boundaries than the stats shown in the header
(total, average, transactions).

The fix mirrors the same pattern used by EventsChart: pass timezone
from useTimezone() into useDateRange() so that parseDateRange()
computes start/end dates relative to the correct timezone.

Fixes #4107
2026-03-25 16:39:50 +07:00
Francis Cao 9c8f7704df Fix tooltip in darkmode 2026-03-24 15:29:13 -07:00
Mike Cao a3f4750eae Send session replay data to Kafka when available instead of direct ClickHouse insert 2026-03-23 17:27:11 -07:00
Francis Cao 3ad2aa5065 revert null cls changes 2026-03-23 17:17:03 -07:00
Francis Cao 352ed56b55 show 0 values for CLS 2026-03-23 17:05:12 -07:00
Francis Cao de739c66a1 correct performance tracker inconsistency issues 2026-03-23 16:39:15 -07:00
Mike Cao 7582aed67b Update session replay payload to use { type, payload } format 2026-03-23 16:30:53 -07:00
Francis Cao aea373ca56 fix EventDataValues query 2026-03-23 16:22:06 -07:00
Francis Cao 08b2942e10 remvoe replay from share page 2026-03-23 15:12:17 -07:00
Francis Cao 6cec5f246b fix share pages for new screens 2026-03-23 14:57:53 -07:00
Francis Cao 85f57e90c5 update session replay tracking code UI/UX 2026-03-23 14:44:31 -07:00