refactor: update layout and styling of site dashboard buttons and date range selector for improved usability
This commit is contained in:
@@ -259,77 +259,87 @@ export default function SiteDashboardPage() {
|
|||||||
</button>
|
</button>
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
<div className="flex gap-2">
|
<div className="flex items-center gap-2">
|
||||||
<button
|
<div className="flex items-center gap-2">
|
||||||
onClick={() => setIsExportModalOpen(true)}
|
<Button
|
||||||
className="hidden md:flex items-center gap-2 px-3 py-2 bg-white dark:bg-neutral-900 border border-neutral-200 dark:border-neutral-800 rounded-lg text-sm text-neutral-600 dark:text-neutral-400 hover:text-brand-orange dark:hover:text-brand-orange transition-colors"
|
onClick={() => setIsExportModalOpen(true)}
|
||||||
>
|
variant="primary"
|
||||||
<DownloadIcon className="w-4 h-4" />
|
className="hidden md:inline-flex gap-2 text-sm"
|
||||||
<span>Export</span>
|
>
|
||||||
</button>
|
<DownloadIcon className="w-4 h-4" />
|
||||||
|
Export
|
||||||
<Select
|
</Button>
|
||||||
value={
|
<Select
|
||||||
dateRange.start === new Date().toISOString().split('T')[0] && dateRange.end === new Date().toISOString().split('T')[0]
|
variant="input"
|
||||||
? 'today'
|
className="min-w-[140px]"
|
||||||
: dateRange.start === getDateRange(7).start
|
value={
|
||||||
? '7'
|
dateRange.start === new Date().toISOString().split('T')[0] && dateRange.end === new Date().toISOString().split('T')[0]
|
||||||
: dateRange.start === getDateRange(30).start
|
? 'today'
|
||||||
? '30'
|
: dateRange.start === getDateRange(7).start
|
||||||
: 'custom'
|
? '7'
|
||||||
}
|
: dateRange.start === getDateRange(30).start
|
||||||
onChange={(value) => {
|
? '30'
|
||||||
if (value === '7') {
|
: 'custom'
|
||||||
const range = getDateRange(7)
|
}
|
||||||
setDateRange(range)
|
onChange={(value) => {
|
||||||
saveSettings('7', range)
|
if (value === '7') {
|
||||||
}
|
const range = getDateRange(7)
|
||||||
else if (value === '30') {
|
setDateRange(range)
|
||||||
const range = getDateRange(30)
|
saveSettings('7', range)
|
||||||
setDateRange(range)
|
}
|
||||||
saveSettings('30', range)
|
else if (value === '30') {
|
||||||
}
|
const range = getDateRange(30)
|
||||||
else if (value === 'today') {
|
setDateRange(range)
|
||||||
const today = new Date().toISOString().split('T')[0]
|
saveSettings('30', range)
|
||||||
const range = { start: today, end: today }
|
}
|
||||||
setDateRange(range)
|
else if (value === 'today') {
|
||||||
saveSettings('today', range)
|
const today = new Date().toISOString().split('T')[0]
|
||||||
}
|
const range = { start: today, end: today }
|
||||||
else if (value === 'custom') {
|
setDateRange(range)
|
||||||
setIsDatePickerOpen(true)
|
saveSettings('today', range)
|
||||||
}
|
}
|
||||||
}}
|
else if (value === 'custom') {
|
||||||
options={[
|
setIsDatePickerOpen(true)
|
||||||
{ value: 'today', label: 'Today' },
|
}
|
||||||
{ value: '7', label: 'Last 7 days' },
|
}}
|
||||||
{ value: '30', label: 'Last 30 days' },
|
options={[
|
||||||
{ value: 'custom', label: 'Custom' },
|
{ value: 'today', label: 'Today' },
|
||||||
]}
|
{ value: '7', label: 'Last 7 days' },
|
||||||
/>
|
{ value: '30', label: 'Last 30 days' },
|
||||||
<Button
|
{ value: 'custom', label: 'Custom' },
|
||||||
onClick={() => router.push(`/sites/${siteId}/uptime`)}
|
]}
|
||||||
variant="secondary"
|
/>
|
||||||
className="text-sm"
|
</div>
|
||||||
>
|
<div
|
||||||
Uptime
|
className="h-6 w-px bg-neutral-200 dark:bg-neutral-700 flex-shrink-0"
|
||||||
</Button>
|
aria-hidden
|
||||||
<Button
|
/>
|
||||||
onClick={() => router.push(`/sites/${siteId}/funnels`)}
|
<div className="flex items-center gap-1">
|
||||||
variant="secondary"
|
<Button
|
||||||
className="text-sm"
|
onClick={() => router.push(`/sites/${siteId}/uptime`)}
|
||||||
>
|
variant="ghost"
|
||||||
Funnels
|
className="text-sm"
|
||||||
</Button>
|
>
|
||||||
{canEdit && (
|
Uptime
|
||||||
<Button
|
</Button>
|
||||||
onClick={() => router.push(`/sites/${siteId}/settings`)}
|
<Button
|
||||||
variant="secondary"
|
onClick={() => router.push(`/sites/${siteId}/funnels`)}
|
||||||
className="text-sm"
|
variant="ghost"
|
||||||
>
|
className="text-sm"
|
||||||
Settings
|
>
|
||||||
</Button>
|
Funnels
|
||||||
)}
|
</Button>
|
||||||
</div>
|
{canEdit && (
|
||||||
|
<Button
|
||||||
|
onClick={() => router.push(`/sites/${siteId}/settings`)}
|
||||||
|
variant="ghost"
|
||||||
|
className="text-sm"
|
||||||
|
>
|
||||||
|
Settings
|
||||||
|
</Button>
|
||||||
|
)}
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
|
|||||||
Reference in New Issue
Block a user