Commit Graph
5977 Commits
Author SHA1 Message Date
Mike Cao a1f3ad89f6 Add link and pixel selectors to top nav 2026-02-12 17:01:37 -08:00
Mike Cao dd2d6bca45 Move website selector into top navigation 2026-02-12 16:46:01 -08:00
Mike Cao 400a35d7af Prevent unnecessary chart and board component re-renders 2026-02-12 16:30:43 -08:00
Francis Cao 1f0de47c01 fix mobile nav 2026-02-10 13:22:40 -08:00
Francis Cao 02d28a9c53 Merge branch 'analytics' of https://github.com/umami-software/umami into dev 2026-02-09 17:52:00 -08:00
Francis Cao 078f082721 do not pass in shareId in websiteEditForm 2026-02-09 17:49:10 -08:00
Francis Cao f92aa025f6 do not pass in shareId in websiteEditForm 2026-02-09 17:48:28 -08:00
Francis CaoandGitHub 9e94addada Merge pull request #4006 from diogotcorreia/env-skip-build-geo
feat: add SKIP_BUILD_GEO env variable
2026-02-09 12:49:19 -08:00
Francis Cao 156222e0c9 Fix tooltip sizing for websitechart 2026-02-09 11:19:04 -08:00
Mike CaoandClaude Opus 4.6 2c7ab2b734 Use i18n for board component strings, show controls in edit mode, require website before editing
- Replace raw strings with useMessages hook in BoardColumn and BoardComponentSelect
- Show WebsiteControls on edit screen so users can test filters
- Disable board body editing until a website is selected
- Scope website select to team websites when editing a team board

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-02-09 02:46:30 -08:00
Mike CaoandClaude Opus 4.6 87bde9da1f Add board component selector with live preview
Allows users to select and inject analytics components into board cells.
Includes component registry, renderer, selector modal with category
menu, config fields for MetricsTable, and live preview. Also scopes
website select to team websites when editing a team board.

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-02-09 00:52:46 -08:00
Mike Cao fb6fd293fb Updated zod validation on date range. 2026-02-08 22:58:25 -08:00
Mike CaoandClaude Opus 4.6 ce9e2416fb Add Web Vitals performance tracking (LCP, INP, CLS, FCP, TTFB)
End-to-end performance metrics tracking: dedicated database table with
percentile aggregation, tracker collection behind data-perf attribute,
/api/send handling, report API endpoints, and Performance dashboard page
with threshold-based metric cards, time-series chart, and per-page breakdown.

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-02-08 19:25:20 -08:00
Mike CaoandClaude Opus 4.6 28246b8c52 Fix team boards not appearing after creation
Board creation from team context was not passing teamId to the API,
causing boards to be saved as personal boards instead of team boards.

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-02-08 13:58:46 -08:00
Mike Cao 8cd3c03702 Added opacity to tooltips. 2026-02-08 00:04:13 -08:00
Mike Cao d26ed3b949 Fixed collapse state of website select. 2026-02-07 23:56:06 -08:00
Mike CaoandClaude Opus 4.6 08e4da27c1 Move settings nav into SideNav, matching WebsiteNav pattern
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-02-07 22:00:47 -08:00
Mike CaoandClaude Opus 4.6 04c7216928 Add UserButton to SideNav, refactor NavButton into TeamsButton
- Create UserButton component at bottom of SideNav with Settings, Language,
  Theme, Admin, and Logout menu items
- Move Settings/Logout/Admin/Docs/Support out of NavButton into UserButton
- Remove LanguageButton and ThemeButton from SideNav bottom
- Refactor NavButton into TeamsButton with simplified team switching
- Simplify WebsiteNav and move TeamsButton to App top bar

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-02-07 21:34:42 -08:00
Mike Cao f1b314e90b Added dotenv-cli. 2026-02-07 19:42:19 -08:00
Mike Cao cee391f024 Removed translations scripts. 2026-02-07 19:36:08 -08:00
Mike CaoandClaude Opus 4.6 e1ee5eba27 Translate all 51 locale files, reducing untranslated keys from 6,017 to 862.
12 batch translation scripts covering all language families: East Asian, Romance,
Germanic, Nordic, Slavic, Other European, South/Southeast Asian, Tamil, Sinhala,
Urdu, and Burmese. Remaining untranslated keys are intentional loanwords (URL, UTM,
SMS, etc.) and en-GB which is intentionally identical to en-US.

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-02-07 13:04:45 -08:00
Mike CaoandClaude Opus 4.6 a954824f65 Add 46 missing translation keys to all locale files.
These keys existed in messages.ts but were missing from the JSON files,
previously relying on react-intl defaultMessage fallback.

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-02-07 11:24:01 -08:00
Mike CaoandClaude Opus 4.6 50edb71687 Simplify i18n: remove old react-intl artifacts, rename formatMessage to t, replace FormattedMessage with t.rich().
- Rewrite messages.ts to plain string key maps (remove MessageDescriptor)
- Rewrite useMessages hook to expose t from useTranslations() directly
- Rename formatMessage → t across 193 consumer files
- Replace custom FormattedMessage component with next-intl t.rich()
- Update 52 language files to use rich text tags (<b>, <a>)
- Remove all direct imports from @/components/messages in favor of useMessages()

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-02-07 11:19:04 -08:00
Mike Cao 80cad6ea65 Merge remote-tracking branch 'origin/dev' into dev 2026-02-07 03:40:11 -08:00
Mike Cao af2c823c1b Fixed tooltip text sizes. 2026-02-07 03:39:56 -08:00
Mike CaoandClaude Opus 4.6 f595da612c Fix website reports route type error and pass teamId to board WebsiteSelect.
Remove invalid 3rd parameter from GET handler and parse report type from
query params instead. Pass teamId to WebsiteSelect in BoardEditHeader so
it shows team websites in team context.

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-02-07 03:25:24 -08:00
Mike CaoandClaude Opus 4.6 a1890e9261 Replace react-intl with next-intl and consolidate lang files.
Migrate i18n from react-intl to next-intl, eliminating the formatjs
compilation pipeline. Translation files now live as nested JSON in
public/intl/messages/ (single source of truth), removing the duplicated
src/lang/ directory and the copy/compile build steps. The useMessages()
hook API is preserved so all 195+ consumer components are unchanged.

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-02-07 01:51:29 -08:00
Mike CaoandClaude Opus 4.6 0a3cf7a9ff Rename session recording to session replay across the codebase.
Renames all files, components, database schema, API routes, hooks,
messages, and build config from "recording" to "replay" terminology.

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-02-07 00:38:47 -08:00
Mike Cao fed8d4c71a Fixed maximize button on Panel. 2026-02-07 00:16:15 -08:00
Francis Cao 795a1caadf fix panel and metrics card css 2026-02-06 17:24:11 -08:00
Francis Cao 895abdbbaf Clean up colors and Selects 2026-02-06 16:48:45 -08:00
Mike CaoandClaude Opus 4.6 72b5c658e2 Add rrweb-based session recording feature.
Implements full session recording with rrweb for DOM capture and rrweb-player
for playback. Includes: Prisma schema for SessionRecording model, chunked
gzip-compressed storage, recorder script built via Rollup, collection API
endpoint, recordings list/playback UI pages, website recording settings,
and cascade delete support.

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-02-06 15:49:59 -08:00
Francis Cao 9b814aa1ca revert prisma schema to latest, add global css for scroll-bar, fix css 2026-02-06 15:06:10 -08:00
Mike CaoandClaude Opus 4.6 c479a20cc0 Migrate old CSS variables to new react-zen design system.
Journey component, global.css, and variables.css all referenced old
CSS custom properties (--base-color-*, --primary-color, --text-base)
that no longer exist in @umami/react-zen. Mapped them to the new
variable names and removed the dead variables.css file.

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-02-06 11:47:53 -08:00
Mike CaoandClaude Opus 4.6 b9eb5f9800 Fix missing back button in WebsiteNav by defaulting sidenav-collapsed state to false.
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-02-06 05:01:11 -08:00
Mike CaoandClaude Opus 4.6 ce8c108fac Fix team boards endpoint calling getTeamPixels instead of getTeamBoards.
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-02-06 04:56:42 -08:00
Mike CaoandClaude Opus 4.6 18702e130e Decompose BoardPage into individual components and remove debug logging.
Extract BoardRow, BoardColumn, BoardViewHeader, BoardEditHeader, and
boardConstants into separate files. Remove 9 console.log statements
from BoardBody and BoardProvider.

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-02-06 04:47:23 -08:00
Mike CaoandClaude Opus 4.6 5f404f62d8 Bold text for selected items in SideNav and WebsiteNav.
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-02-06 04:43:21 -08:00
Mike CaoandClaude Opus 4.6 3467184b8f Consolidate WebsiteNavSection into WebsiteNav and fix scrollbar flash.
Move sidebar rendering logic into WebsiteNav with isCollapsed prop so
SideNav uses WebsiteNav directly instead of duplicating code. Add
overflow hidden to prevent horizontal scrollbar during expand transition.

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-02-06 04:27:37 -08:00
Mike CaoandClaude Opus 4.6 dea3c41ecc Fix WebsiteSelect showing empty value on initial load.
Fall back to queried website name when local state hasn't been set yet,
since useState only captures the initial value which is undefined before
the query resolves.

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-02-06 04:04:53 -08:00
Mike CaoandClaude Opus 4.6 b3a77d7c04 Fix CompareTables select width, WebsiteSelect min height, and MetricCard gap.
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-02-06 04:00:42 -08:00
Mike CaoandClaude Opus 4.6 635317ecfb Combine WebsiteNav into SideNav when viewing a website.
Replace the separate 240px WebsiteNav sidebar with website navigation
integrated into the main SideNav. When a websiteId is active, SideNav
shows a back arrow, WebsiteSelect dropdown, and grouped nav items
instead of the main links. Extract shared useWebsiteNavItems hook used
by both SideNav and WebsiteNav (still used by MobileNav).

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-02-06 03:57:28 -08:00
Mike CaoandClaude Opus 4.6 84522b2475 Fix ChangeLabel colors to use react-zen theme variables.
Replace old CSS variables with new theme tokens for success, error,
and neutral states.

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-02-06 03:31:20 -08:00
Mike Cao 403bdfd6e2 Fixed previous select width. 2026-02-06 03:24:29 -08:00
Mike CaoandClaude Opus 4.6 d9f8a0418c Fix WebsiteDateFilter width and date popup minimum width.
Remove unnecessary wrapper Row around DateFilter and set min-width
on the date picker popover to 200px.

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-02-06 03:22:16 -08:00
Mike CaoandClaude Opus 4.6 18c3ffc2d8 Fix NavButton text not showing and remove unused Sidebar.
Show NavButton text whenever sidebar is not collapsed, not only on
pages without sub-navigation. Also remove unused Sidebar component.

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-02-06 03:12:47 -08:00
Mike CaoandClaude Opus 4.6 28c9c7d3ec Fix Select component usage by removing items prop and render functions.
Replace render function children with mapped ListItem elements and remove
the unsupported items prop across all Select instances.

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-02-06 02:46:38 -08:00
Mike CaoandClaude Opus 4.6 1b347531dc Add hover background to MetricsTable rows.
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-02-06 02:24:41 -08:00
Mike CaoandClaude Opus 4.6 c6dd3fb6ff Rename SideMenu to NavMenu, fix tooltips, and update react-zen.
- Rename SideMenu to NavMenu with visible group title labels and selected item highlighting
- Update react-zen to 0.242.0 and fix responsive breakpoints (xs -> base)
- Style floating tooltips with inverted background across WorldMap, charts, and WeeklyTraffic
- Add CSS variables for primary color and use IconLabel consistently
- Remove stray console.log from LoadingPanel

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-02-06 01:58:55 -08:00
Mike CaoandClaude Opus 4.6 7cafc3e61d Replace numeric prop values with named react-zen values.
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-02-05 23:41:10 -08:00