Commit Graph

155 Commits

Author SHA1 Message Date
Usman Baig
9893b283cf fix(settings): normalize Account tabs to design standards 2026-03-25 22:24:02 +01:00
Usman Baig
a3b746deeb fix(settings): normalize Reports + Integrations tabs to design standards 2026-03-25 22:22:21 +01:00
Usman Baig
4d9c3aeabd fix(settings): normalize Visibility, Privacy, BotSpam tabs to design standards 2026-03-25 22:21:41 +01:00
Usman Baig
1cbc8064e2 fix(settings): normalize SiteGeneralTab + SiteGoalsTab to design standards 2026-03-25 22:20:42 +01:00
Usman Baig
db12ad04cf feat(settings): create shared DangerZone component 2026-03-25 22:19:37 +01:00
Usman Baig
1c916bb598 fix: deleteAccount requires password — add password input to delete flow 2026-03-25 22:05:01 +01:00
Usman Baig
712169187b refactor(settings): native profile form replacing SharedProfileSettings — consistent save bar 2026-03-25 22:02:19 +01:00
Usman Baig
cbf2125f0a fix: batch PageSpeed frequency and notification toggles into save flow 2026-03-25 21:59:36 +01:00
Usman Baig
f794696e90 fix: script features save with Save Changes instead of instantly 2026-03-25 21:55:14 +01:00
Usman Baig
6c0061733b fix: neutral save bar background, red text only when pending navigation 2026-03-25 21:39:55 +01:00
Usman Baig
c53152fc68 fix: reset save bar visibility and handler on discard 2026-03-25 21:37:31 +01:00
Usman Baig
3f884fca76 feat(settings): wire WorkspaceGeneralTab into dirty tracking + modal save bar 2026-03-25 21:26:48 +01:00
Usman Baig
5d21a81fad refactor(settings): move save bar to modal level — always flush with modal bottom 2026-03-25 21:24:06 +01:00
Usman Baig
549ac273a1 refactor(settings): move save bar to modal level, remove from tabs 2026-03-25 21:23:42 +01:00
Usman Baig
570dda7bd2 fix: remove -mb-6 from sticky bar — prevents jump at scroll bottom 2026-03-25 21:12:45 +01:00
Usman Baig
8ec9edb126 fix: rose warning bar + proper Discard button sizing 2026-03-25 21:09:37 +01:00
Usman Baig
43005fb9ee fix: red warning bar instead of amber when navigating with unsaved changes 2026-03-25 21:05:52 +01:00
Usman Baig
1c21bf5ff6 fix: amber warning style on sticky bar when navigating with unsaved changes 2026-03-25 21:02:00 +01:00
Usman Baig
81fafcf711 fix: discard button in sticky save bar instead of browser confirm 2026-03-25 20:51:39 +01:00
Usman Baig
7181d68d85 fix: replace amber unsaved changes bar with simple confirm() dialog 2026-03-25 20:42:02 +01:00
Usman Baig
0de8f927a4 chore: remove debug console.logs from privacy tab 2026-03-25 20:37:32 +01:00
Usman Baig
eb3c3b2738 debug: add console.logs to privacy tab dirty tracking 2026-03-25 20:33:46 +01:00
Usman Baig
93401cc1a1 fix: dirty tracking — prevent SWR revalidation from resetting form state 2026-03-25 20:27:47 +01:00
Usman Baig
9dceca765c feat(settings): sticky save bar appears only when dirty, replaces static button 2026-03-25 20:18:26 +01:00
Usman Baig
9a3fab3535 feat(settings): unsaved changes guard with inline confirmation bar 2026-03-25 20:09:11 +01:00
Usman Baig
1ad68943c8 fix: reset tabs to default when switching settings context 2026-03-25 18:23:58 +01:00
Usman Baig
688d268fbf fix: proper Google/Bunny logos and BunnyCDN status grid in unified integrations 2026-03-25 18:21:50 +01:00
Usman Baig
0f5a3388a0 fix: use correct PageSpeedConfig field name (frequency, not check_frequency) 2026-03-25 18:16:05 +01:00
Usman Baig
1fef7b175c feat(settings): add filtering and pagination to unified audit tab 2026-03-25 18:11:01 +01:00
Usman Baig
8bef4b7c9f feat(settings): add member removal and pending invitations to unified members tab 2026-03-25 18:08:22 +01:00
Usman Baig
b64c4c036f feat(settings): add working delete org to unified workspace general tab 2026-03-25 18:07:21 +01:00
Usman Baig
851c607b7a feat(settings): add invoice list to unified billing tab 2026-03-25 18:07:16 +01:00
Usman Baig
b164160d6a feat(settings): add bunny setup flow and GSC details to unified integrations tab 2026-03-25 18:04:07 +01:00
Usman Baig
ce992e331f fix(settings): show delete account in unified profile tab 2026-03-25 18:02:47 +01:00
Usman Baig
7dc6e0daf5 fix(settings): add remove password button to unified visibility tab 2026-03-25 18:02:39 +01:00
Usman Baig
f844751142 feat(settings): add report/alert create & edit modals to unified tab 2026-03-25 17:52:56 +01:00
Usman Baig
b3ccb58431 feat(settings): add session review to unified bot & spam tab 2026-03-25 17:48:39 +01:00
Usman Baig
d0d7a97102 feat(settings): add retention, excluded paths, pagespeed to unified privacy tab 2026-03-25 17:46:06 +01:00
Usman Baig
4e6837a9ee feat(settings): add framework picker and verification to unified general tab 2026-03-25 17:42:34 +01:00
Usman Baig
45a8adff0f feat(settings): add danger zone to unified site general tab 2026-03-25 17:38:47 +01:00
Usman Baig
c48023be9f fix(settings): global comma shortcut works on all authenticated pages 2026-03-24 17:05:21 +01:00
Usman Baig
e12a3661fa fix(settings): lock site context to current URL, rename Workspace to Organization
- Site context is locked to the site from the current URL — no dropdown
  switcher. If not on a site page, defaults to Organization context.
- Renamed "Workspace" to "Organization" in all user-facing text.
- Removed unused CaretDown import and dropdown state.
2026-03-24 16:52:59 +01:00
Usman Baig
ea2c47b53f feat(settings): Phase 2 — all 15 tabs implemented
Site tabs:
- Visibility (public toggle, share link, password protection)
- Privacy (data collection toggles, geo level, retention info)
- Bot & Spam (filtering toggle, stats cards)
- Reports (scheduled reports + alert channels list with test/pause/delete)
- Integrations (GSC + BunnyCDN connect/disconnect cards)

Workspace tabs:
- Members (member list, invite form with role selector)
- Notifications (dynamic toggles from API categories)
- Audit Log (action log with timestamps)

Account tabs:
- Security (wraps existing ProfileSettings security tab)
- Devices (wraps existing TrustedDevicesCard + SecurityActivityCard)

No more "Coming soon" placeholders. All tabs are functional.
2026-03-23 21:29:49 +01:00
Usman Baig
e55a3c4ce4 fix(settings): fixed modal height prevents bottom-edge twitch on context switch 2026-03-23 21:09:24 +01:00
Usman Baig
d050d32d24 fix(settings): remove flicker and scrollbar flash on context switch 2026-03-23 21:04:31 +01:00
Usman Baig
3c17895d64 feat(settings): unified settings modal with context switcher (Phase 1)
New unified settings modal accessible via `,` keyboard shortcut.
Three-context switcher: Site (with site dropdown), Workspace, Account.
Horizontal tabs per context with animated transitions.

Phase 1 tabs implemented:
- Site → General (name, timezone, domain, tracking script with copy)
- Site → Goals (CRUD with inline create/edit)
- Workspace → General (org name, slug, danger zone)
- Workspace → Billing (plan card, usage, cancel/resume, portal)
- Account → Profile (wraps existing ProfileSettings)

Phase 2 tabs show "Coming soon" placeholder:
- Site: Visibility, Privacy, Bot & Spam, Reports, Integrations
- Workspace: Members, Notifications, Audit Log
- Account: Security, Devices

Old settings pages and profile modal remain functional.
2026-03-23 20:57:20 +01:00
Usman Baig
a3c1af7c95 fix: frontend consistency audit — 55 files cleaned up
Consistency fixes:
- Extract getThisWeekRange/getThisMonthRange to shared lib/utils/dateRanges.ts
  (removed 4 identical copy-pasted definitions)
- Add error boundaries for behavior, cdn, search, pagespeed pages
  (4 new error.tsx files — previously fell through to generic parent error)
- Add "View setup guide" CTA to empty states on journeys and behavior pages
  (previously showed text with no actionable button)
- Fix non-lazy useState initializer in funnel detail page
- Fix Bot & Spam settings header from text-xl to text-2xl (matches all other sections)
- Add useMinimumLoading to PageSpeed skeleton (consistent with all other pages)

Cleanup:
- Remove 438 redundant dark: class prefixes (app is dark-mode only)
  text-neutral-500 dark:text-neutral-400 → text-neutral-400 (206 occurrences)
  text-neutral-900 dark:text-white → text-white (232 occurrences)
- Remove dead @stripe/react-stripe-js and @stripe/stripe-js packages
  (billing migrated to Polar, no code imports Stripe)
- Remove duplicate motion package (framer-motion is the one actually used)
2026-03-23 19:50:16 +01:00
Usman Baig
eca21bf627 feat(billing): update frontend for polar migration
Update billing types, remove invoice preview, replace Stripe invoice
display with Polar orders, update tax ID from array to single object,
remove upcoming invoice amount display.
2026-03-23 16:36:54 +01:00
Usman Baig
24c71f7991 fix: mobile responsiveness across all pages
- SiteNav: add horizontal scroll for 8 tabs on mobile
- NotificationCenter: full-width dropdown on mobile
- ContentStats/Locations/TechSpecs: scrollable tab bars
- FrustrationTable: fix selector text overflow
- FrustrationByPageTable: horizontal scroll on mobile
- CDN: better stat card grid breakpoints
- Home: reduce stat card height, prevent button wrap
- Billing: shorter invoice labels on mobile
- Bump @ciphera-net/ui to 0.2.6 (AppLauncher mobile fix)
2026-03-15 18:15:06 +01:00
Usman Baig
25210013d3 feat: centralise date/time formatting with European conventions
All dates now use day-first ordering (14 Mar 2025) and 24-hour time
(14:30) via a single formatDate.ts module, replacing scattered inline
toLocaleDateString/toLocaleTimeString calls across 12 files.
2026-03-14 13:31:30 +01:00