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
Usman Baig
d6d42b5759
fix: portal delete modal to body so backdrop-blur covers header
...
The modal was rendered inside <main> which is a sibling of the
fixed header. Browser compositing didn't apply backdrop-blur
across the header's separate GPU layer. Using createPortal to
render at document.body matches how the delete account modal
works (rendered as sibling to header via SettingsModalWrapper).
2026-03-13 20:35:04 +01:00