From eabfec9075284e0925ce70f555c13117f5d88197 Mon Sep 17 00:00:00 2001 From: Mike Cao Date: Fri, 3 Oct 2025 23:05:15 -0700 Subject: [PATCH] Updated website edit. --- .../[websiteId]/WebsiteSettingsPage.tsx | 7 ++-- src/app/(main)/websites/WebsitesTable.tsx | 35 +++++-------------- .../(reports)/breakdown/BreakdownPage.tsx | 18 ++++------ .../websites/[websiteId]/WebsiteLayout.tsx | 15 +++++--- .../websites/[websiteId]/WebsiteNav.tsx | 2 +- .../settings/WebsiteSettingsHeader.tsx | 19 ++++++++-- src/components/common/PageHeader.tsx | 1 + src/components/common/SideMenu.tsx | 8 ++--- 8 files changed, 47 insertions(+), 58 deletions(-) diff --git a/src/app/(main)/settings/websites/[websiteId]/WebsiteSettingsPage.tsx b/src/app/(main)/settings/websites/[websiteId]/WebsiteSettingsPage.tsx index 18f2a625..d5c129ee 100644 --- a/src/app/(main)/settings/websites/[websiteId]/WebsiteSettingsPage.tsx +++ b/src/app/(main)/settings/websites/[websiteId]/WebsiteSettingsPage.tsx @@ -1,5 +1,4 @@ 'use client'; -import { Column } from '@umami/react-zen'; import { WebsiteProvider } from '@/app/(main)/websites/WebsiteProvider'; import { WebsiteSettings } from '@/app/(main)/websites/[websiteId]/settings/WebsiteSettings'; import { WebsiteSettingsHeader } from '@/app/(main)/websites/[websiteId]/settings/WebsiteSettingsHeader'; @@ -7,10 +6,8 @@ import { WebsiteSettingsHeader } from '@/app/(main)/websites/[websiteId]/setting export function WebsiteSettingsPage({ websiteId }: { websiteId: string }) { return ( - - - - + + ); } diff --git a/src/app/(main)/websites/WebsitesTable.tsx b/src/app/(main)/websites/WebsitesTable.tsx index 3f781cb7..d6d74390 100644 --- a/src/app/(main)/websites/WebsitesTable.tsx +++ b/src/app/(main)/websites/WebsitesTable.tsx @@ -1,15 +1,13 @@ import { ReactNode } from 'react'; -import { Row, Text, Icon, DataTable, DataColumn, MenuItem } from '@umami/react-zen'; +import { Icon, DataTable, DataColumn } from '@umami/react-zen'; +import { LinkButton } from '@/components/common/LinkButton'; import { useMessages, useNavigation } from '@/components/hooks'; -import { MenuButton } from '@/components/input/MenuButton'; -import { Eye, SquarePen } from '@/components/icons'; +import { SquarePen } from '@/components/icons'; import { Empty } from '@/components/common/Empty'; export function WebsitesTable({ data = [], showActions, - allowEdit, - allowView, renderLink, }: { data: Record[]; @@ -37,28 +35,11 @@ export function WebsitesTable({ const websiteId = row.id; return ( - - {allowView && ( - - - - - - {formatMessage(labels.view)} - - - )} - {allowEdit && ( - - - - - - {formatMessage(labels.edit)} - - - )} - + + + + + ); }} diff --git a/src/app/(main)/websites/[websiteId]/(reports)/breakdown/BreakdownPage.tsx b/src/app/(main)/websites/[websiteId]/(reports)/breakdown/BreakdownPage.tsx index 33355d70..eff072fd 100644 --- a/src/app/(main)/websites/[websiteId]/(reports)/breakdown/BreakdownPage.tsx +++ b/src/app/(main)/websites/[websiteId]/(reports)/breakdown/BreakdownPage.tsx @@ -1,13 +1,12 @@ 'use client'; import { useState } from 'react'; -import { Button, Column, Box, Text, Icon, DialogTrigger, Modal, Dialog } from '@umami/react-zen'; +import { Button, Column, Box, DialogTrigger, Popover, Dialog, IconLabel } from '@umami/react-zen'; import { useDateRange, useMessages } from '@/components/hooks'; import { ListCheck } from '@/components/icons'; import { Panel } from '@/components/common/Panel'; import { Breakdown } from './Breakdown'; import { WebsiteControls } from '@/app/(main)/websites/[websiteId]/WebsiteControls'; import { FieldSelectForm } from '@/app/(main)/websites/[websiteId]/(reports)/breakdown/FieldSelectForm'; -import { SectionHeader } from '@/components/common/SectionHeader'; export function BreakdownPage({ websiteId }: { websiteId: string }) { const { @@ -18,9 +17,7 @@ export function BreakdownPage({ websiteId }: { websiteId: string }) { return ( - - - + { return ( - - + {({ close }) => ( )} - + ); diff --git a/src/app/(main)/websites/[websiteId]/WebsiteLayout.tsx b/src/app/(main)/websites/[websiteId]/WebsiteLayout.tsx index cf75e86a..e25541e9 100644 --- a/src/app/(main)/websites/[websiteId]/WebsiteLayout.tsx +++ b/src/app/(main)/websites/[websiteId]/WebsiteLayout.tsx @@ -2,17 +2,24 @@ import { ReactNode } from 'react'; import { Column, Grid } from '@umami/react-zen'; import { WebsiteProvider } from '@/app/(main)/websites/WebsiteProvider'; +import { useNavigation } from '@/components/hooks'; import { PageBody } from '@/components/common/PageBody'; import { WebsiteHeader } from './WebsiteHeader'; import { WebsiteNav } from './WebsiteNav'; export function WebsiteLayout({ websiteId, children }: { websiteId: string; children: ReactNode }) { + const { pathname } = useNavigation(); + + const isSettings = pathname.endsWith('/settings'); + return ( - - - - + + {!isSettings && ( + + + + )} {children} diff --git a/src/app/(main)/websites/[websiteId]/WebsiteNav.tsx b/src/app/(main)/websites/[websiteId]/WebsiteNav.tsx index 2ec171b4..1c211eff 100644 --- a/src/app/(main)/websites/[websiteId]/WebsiteNav.tsx +++ b/src/app/(main)/websites/[websiteId]/WebsiteNav.tsx @@ -1,9 +1,9 @@ +import { Text } from '@umami/react-zen'; import { Eye, User, Clock, Sheet, Tag, ChartPie, UserPlus } from '@/components/icons'; import { Lightning, Path, Money, Compare, Target, Funnel, Magnet, Network } from '@/components/svg'; import { useMessages, useNavigation } from '@/components/hooks'; import { SideMenu } from '@/components/common/SideMenu'; import { WebsiteSelect } from '@/components/input/WebsiteSelect'; -import { Text } from '@umami/react-zen'; export function WebsiteNav({ websiteId }: { websiteId: string }) { const { formatMessage, labels } = useMessages(); diff --git a/src/app/(main)/websites/[websiteId]/settings/WebsiteSettingsHeader.tsx b/src/app/(main)/websites/[websiteId]/settings/WebsiteSettingsHeader.tsx index 97a0108f..216142ec 100644 --- a/src/app/(main)/websites/[websiteId]/settings/WebsiteSettingsHeader.tsx +++ b/src/app/(main)/websites/[websiteId]/settings/WebsiteSettingsHeader.tsx @@ -1,9 +1,22 @@ +import Link from 'next/link'; import { PageHeader } from '@/components/common/PageHeader'; -import { Globe } from '@/components/icons'; -import { useWebsite } from '@/components/hooks'; +import { Globe, ArrowLeft } from '@/components/icons'; +import { useMessages, useNavigation, useWebsite } from '@/components/hooks'; +import { IconLabel, Row } from '@umami/react-zen'; export function WebsiteSettingsHeader() { const website = useWebsite(); + const { formatMessage, labels } = useMessages(); + const { renderUrl } = useNavigation(); - return } />; + return ( + <> + + + } label={formatMessage(labels.website)} /> + + + } /> + + ); } diff --git a/src/components/common/PageHeader.tsx b/src/components/common/PageHeader.tsx index 4049e0c6..27d33a72 100644 --- a/src/components/common/PageHeader.tsx +++ b/src/components/common/PageHeader.tsx @@ -24,6 +24,7 @@ export function PageHeader({ justifyContent="space-between" alignItems="center" paddingY="6" + marginBottom="6" border={showBorder ? 'bottom' : undefined} width="100%" {...props} diff --git a/src/components/common/SideMenu.tsx b/src/components/common/SideMenu.tsx index 5135cd7a..2848e304 100644 --- a/src/components/common/SideMenu.tsx +++ b/src/components/common/SideMenu.tsx @@ -1,14 +1,13 @@ import { ReactNode } from 'react'; import { - Text, Heading, NavMenu, NavMenuItem, - Icon, Row, Column, NavMenuGroup, NavMenuProps, + IconLabel, } from '@umami/react-zen'; import Link from 'next/link'; @@ -47,10 +46,7 @@ export function SideMenu({ return ( - - {icon} - {label} - + {label} );