From 3bad58ee1f2e7961c016303228e39002bbfe28aa Mon Sep 17 00:00:00 2001 From: nextgenai-fc2 Date: Sat, 23 Aug 2025 17:39:38 +0530 Subject: [PATCH 1/4] fix:The view dropdown is getting empty on selecting filter options --- .../websites/[websiteId]/WebsiteExpandedView.tsx | 11 ++++++----- src/components/hooks/useNavigation.ts | 15 ++++++++++++--- src/components/metrics/PagesTable.tsx | 14 +++++++------- src/components/metrics/ReferrersTable.tsx | 12 ++++++------ 4 files changed, 31 insertions(+), 21 deletions(-) diff --git a/src/app/(main)/websites/[websiteId]/WebsiteExpandedView.tsx b/src/app/(main)/websites/[websiteId]/WebsiteExpandedView.tsx index 4858ec734..64df01311 100644 --- a/src/app/(main)/websites/[websiteId]/WebsiteExpandedView.tsx +++ b/src/app/(main)/websites/[websiteId]/WebsiteExpandedView.tsx @@ -18,6 +18,7 @@ import ScreenTable from '@/components/metrics/ScreenTable'; import TagsTable from '@/components/metrics/TagsTable'; import ChannelsTable from '@/components/metrics/ChannelsTable'; import styles from './WebsiteExpandedView.module.css'; +import { sub } from 'date-fns'; const views = { url: PagesTable, @@ -136,8 +137,8 @@ export default function WebsiteExpandedView({ const DetailsComponent = views[view] || (() => null); - const handleChange = (view: any) => { - router.push(renderUrl({ view })); + const handleChange = (view?: any) => { + router.push(renderUrl({ view },false,['subview'])); }; const renderValue = (value: string) => items.find(({ key }) => key === value)?.label; @@ -146,7 +147,7 @@ export default function WebsiteExpandedView({
{formatMessage(labels.back)} - +
); -} +} \ No newline at end of file diff --git a/src/components/hooks/useNavigation.ts b/src/components/hooks/useNavigation.ts index b727ee90a..ff2ac6a0b 100644 --- a/src/components/hooks/useNavigation.ts +++ b/src/components/hooks/useNavigation.ts @@ -6,7 +6,7 @@ export function useNavigation(): { pathname: string; query: { [key: string]: string }; router: any; - renderUrl: (params: any, reset?: boolean) => string; + renderUrl: (params: any, reset?: boolean, removeParams?: string[]) => string; } { const router = useRouter(); const pathname = usePathname(); @@ -22,8 +22,17 @@ export function useNavigation(): { return obj; }, [params]); - function renderUrl(params: any, reset?: boolean) { - return reset ? pathname : buildUrl(pathname, { ...query, ...params }); + function renderUrl(params: any, reset?: boolean, removeParams: string[] = []) { + if (reset) { + return pathname; + } else { + const newParams = { ...query, ...params }; + removeParams.forEach(param => { + delete newParams[param]; + }); + + return buildUrl(pathname, newParams); + } } return { pathname, query, router, renderUrl }; diff --git a/src/components/metrics/PagesTable.tsx b/src/components/metrics/PagesTable.tsx index 59cfda43d..59422f224 100644 --- a/src/components/metrics/PagesTable.tsx +++ b/src/components/metrics/PagesTable.tsx @@ -14,13 +14,13 @@ export function PagesTable({ allowFilter, ...props }: PagesTableProps) { const { router, renderUrl, - query: { view = 'url' }, + query: { subview="url" }, } = useNavigation(); const { formatMessage, labels } = useMessages(); const { domain } = useContext(WebsiteContext); const handleSelect = (key: any) => { - router.push(renderUrl({ view: key }), { scroll: false }); + router.push(renderUrl({ subview: key }), { scroll: false }); }; const buttons = [ @@ -45,11 +45,11 @@ export function PagesTable({ allowFilter, ...props }: PagesTableProps) { const renderLink = ({ x }) => { return ( - {allowFilter && } + {allowFilter && } ); } -export default PagesTable; +export default PagesTable; \ No newline at end of file diff --git a/src/components/metrics/ReferrersTable.tsx b/src/components/metrics/ReferrersTable.tsx index 89729418c..10464652a 100644 --- a/src/components/metrics/ReferrersTable.tsx +++ b/src/components/metrics/ReferrersTable.tsx @@ -15,12 +15,12 @@ export function ReferrersTable({ allowFilter, ...props }: ReferrersTableProps) { const { router, renderUrl, - query: { view = 'referrer' }, + query: { subview = 'referrer' }, } = useNavigation(); const { formatMessage, labels } = useMessages(); const handleSelect = (key: any) => { - router.push(renderUrl({ view: key }), { scroll: false }); + router.push(renderUrl({ subview: key }), { scroll: false }); }; const buttons = [ @@ -35,7 +35,7 @@ export function ReferrersTable({ allowFilter, ...props }: ReferrersTableProps) { ]; const renderLink = ({ x: referrer }) => { - if (view === 'grouped') { + if (subview === 'grouped') { if (referrer === '_other') { return `(${formatMessage(labels.other)})`; } else { @@ -92,15 +92,15 @@ export function ReferrersTable({ allowFilter, ...props }: ReferrersTableProps) { title={formatMessage(labels.referrers)} type="referrer" metric={formatMessage(labels.visitors)} - dataFilter={view === 'grouped' ? groupedFilter : undefined} + dataFilter={subview === 'grouped' ? groupedFilter : undefined} renderLabel={renderLink} > {allowFilter && ( - + )} ); } -export default ReferrersTable; +export default ReferrersTable; \ No newline at end of file From f76f88a261ea2796b82e45d495f7d59c9d958033 Mon Sep 17 00:00:00 2001 From: Gautamkumarsolanki <42197609+Gautamkumarsolanki@users.noreply.github.com> Date: Sat, 23 Aug 2025 17:52:02 +0530 Subject: [PATCH 2/4] Update src/components/metrics/PagesTable.tsx Co-authored-by: greptile-apps[bot] <165735046+greptile-apps[bot]@users.noreply.github.com> --- src/components/metrics/PagesTable.tsx | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/components/metrics/PagesTable.tsx b/src/components/metrics/PagesTable.tsx index 59422f224..09249cd99 100644 --- a/src/components/metrics/PagesTable.tsx +++ b/src/components/metrics/PagesTable.tsx @@ -14,7 +14,7 @@ export function PagesTable({ allowFilter, ...props }: PagesTableProps) { const { router, renderUrl, - query: { subview="url" }, + query: { subview = "url" }, } = useNavigation(); const { formatMessage, labels } = useMessages(); const { domain } = useContext(WebsiteContext); From 94ca8615ecefed51d2e8e79d84a04a51b6f7c1f2 Mon Sep 17 00:00:00 2001 From: nextgenai-fc2 Date: Sat, 23 Aug 2025 17:58:50 +0530 Subject: [PATCH 3/4] formatting issue --- src/app/(main)/websites/[websiteId]/WebsiteExpandedView.tsx | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/src/app/(main)/websites/[websiteId]/WebsiteExpandedView.tsx b/src/app/(main)/websites/[websiteId]/WebsiteExpandedView.tsx index 64df01311..833302249 100644 --- a/src/app/(main)/websites/[websiteId]/WebsiteExpandedView.tsx +++ b/src/app/(main)/websites/[websiteId]/WebsiteExpandedView.tsx @@ -138,7 +138,7 @@ export default function WebsiteExpandedView({ const DetailsComponent = views[view] || (() => null); const handleChange = (view?: any) => { - router.push(renderUrl({ view },false,['subview'])); + router.push(renderUrl({ view }, false, ['subview'])); }; const renderValue = (value: string) => items.find(({ key }) => key === value)?.label; @@ -147,7 +147,7 @@ export default function WebsiteExpandedView({
Date: Sat, 23 Aug 2025 18:07:54 +0530 Subject: [PATCH 4/4] formatting issue --- src/components/metrics/PagesTable.tsx | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/components/metrics/PagesTable.tsx b/src/components/metrics/PagesTable.tsx index 09249cd99..8bde3c8ca 100644 --- a/src/components/metrics/PagesTable.tsx +++ b/src/components/metrics/PagesTable.tsx @@ -71,4 +71,4 @@ export function PagesTable({ allowFilter, ...props }: PagesTableProps) { ); } -export default PagesTable; \ No newline at end of file +export default PagesTable;