feat: enhance PDF export with top pages/referrers and move export button to page header

This commit is contained in:
Usman Baig
2026-01-30 14:16:26 +01:00
parent c01b042254
commit e19d72ebb8
3 changed files with 90 additions and 28 deletions

View File

@@ -14,10 +14,8 @@ import {
} from 'recharts'
import type { TooltipProps } from 'recharts'
import { formatNumber, formatDuration } from '@/lib/utils/format'
import { ArrowUpRightIcon, ArrowDownRightIcon, DownloadIcon, BarChartIcon } from '@ciphera-net/ui'
import { Button } from '@ciphera-net/ui'
import { ArrowUpRightIcon, ArrowDownRightIcon, BarChartIcon } from '@ciphera-net/ui'
import { Checkbox } from '@ciphera-net/ui'
import ExportModal from './ExportModal'
const COLORS = {
brand: '#FD5E0F',
@@ -164,7 +162,6 @@ function formatAxisValue(value: number): string {
export default function Chart({ data, prevData, stats, prevStats, interval }: ChartProps) {
const [metric, setMetric] = useState<MetricType>('visitors')
const [showComparison, setShowComparison] = useState(false)
const [isExportModalOpen, setIsExportModalOpen] = useState(false)
const { resolvedTheme } = useTheme()
const colors = useMemo(
@@ -214,10 +211,6 @@ export default function Chart({ data, prevData, stats, prevStats, interval }: Ch
return Math.round(((current - previous) / previous) * 100)
}
const handleExport = () => {
setIsExportModalOpen(true)
}
const metrics = [
{
id: 'visitors',
@@ -364,16 +357,6 @@ export default function Chart({ data, prevData, stats, prevStats, interval }: Ch
{/* Vertical Separator */}
<div className="h-4 w-px bg-neutral-200 dark:bg-neutral-800" />
<Button
variant="secondary"
onClick={handleExport}
className="h-8 px-3 text-xs gap-2"
title="Export to CSV"
>
<DownloadIcon className="w-3.5 h-3.5" />
Export
</Button>
</div>
</div>
@@ -494,12 +477,6 @@ export default function Chart({ data, prevData, stats, prevStats, interval }: Ch
</div>
)}
</div>
<ExportModal
isOpen={isExportModalOpen}
onClose={() => setIsExportModalOpen(false)}
data={data}
stats={stats}
/>
</div>
)
}