18 Commits

Author SHA1 Message Date
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
336520e401 feat: show brief success state before closing export modal
Progress bar turns green at 100%, button shows "Done", then modal
auto-closes after 600ms. Gives visual confirmation without fake delay.
2026-03-16 11:48:47 +01:00
Usman Baig
e4291c44a8 feat: add progress bar to export modal
Show step-by-step progress during PDF/XLSX exports with percentage,
stage label, and animated orange bar. Yields to UI thread between
stages so the browser can repaint.
2026-03-16 11:32:17 +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
f10b903a80 perf: add export loading state and virtual scrolling for large lists
Export modal now shows a loading indicator and doesn't freeze the UI.
Large list modals use virtual scrolling for smooth performance.
2026-03-10 20:45:49 +01:00
Usman Baig
06f54176f1 refactor: enhance type safety by replacing any types with stricter types across the codebase, improving error handling and reducing potential bugs 2026-02-22 20:29:16 +01:00
Usman Baig
ae91147b6c chore: update @ciphera-net/ui dependency to version 0.0.57 in package.json and package-lock.json; refactor imports across multiple components for consistency 2026-02-17 20:49:55 +01:00
Usman Baig
a390fb2129 feat: enhance Campaigns component with sortable columns, export functionality, and improved loading state 2026-02-11 19:46:12 +01:00
Usman Baig
16d8765f46 feat: enhance Top Referrers display by merging referrer rows and adding friendly names 2026-02-11 16:57:01 +01:00
Usman Baig
ddbb2494b1 feat: add getReferrerDisplayName utility to enhance referrer display in ExportModal and TopReferrers components 2026-02-11 16:43:35 +01:00
Usman Baig
e19d72ebb8 feat: enhance PDF export with top pages/referrers and move export button to page header 2026-01-30 14:16:26 +01:00
Usman Baig
c01b042254 feat: enhance PDF export with summary cards and improved styling 2026-01-30 14:09:29 +01:00
Usman Baig
1b53a2de8b feat: enhance PDF export with Ciphera branding and styling 2026-01-30 14:03:25 +01:00
Usman Baig
24098c4999 fix: handle undefined values in PDF export 2026-01-30 13:58:24 +01:00
Usman Baig
c845a1dffb feat: add PDF export functionality to ExportModal and update dependencies for jsPDF and jsPDF-autotable 2026-01-30 13:47:28 +01:00
Usman Baig
8d197fa3e0 feat: add XLSX export functionality to ExportModal and update dependencies in package.json and package-lock.json 2026-01-29 23:45:34 +01:00
Usman Baig
5d67561506 fix: cast filteredItem to any for dynamic field assignment in ExportModal 2026-01-29 20:56:30 +01:00
Usman Baig
35980d31e3 feat: integrate ExportModal for data export functionality in Chart component 2026-01-29 20:51:06 +01:00