From 6f42d4d3def03204ee27dc661232cb634fab2b7c Mon Sep 17 00:00:00 2001 From: Usman Baig Date: Mon, 16 Mar 2026 14:01:18 +0100 Subject: [PATCH] feat: add Columns/Flow view toggle to journeys page --- app/sites/[id]/journeys/page.tsx | 49 ++++++++++++++++++++++++++++---- 1 file changed, 43 insertions(+), 6 deletions(-) diff --git a/app/sites/[id]/journeys/page.tsx b/app/sites/[id]/journeys/page.tsx index ccf3ebc..f1ddb9d 100644 --- a/app/sites/[id]/journeys/page.tsx +++ b/app/sites/[id]/journeys/page.tsx @@ -2,9 +2,11 @@ import { useEffect, useState } from 'react' import { useParams } from 'next/navigation' +import { motion } from 'framer-motion' import { getDateRange, formatDate } from '@ciphera-net/ui' import { Select, DatePicker } from '@ciphera-net/ui' import ColumnJourney from '@/components/journeys/ColumnJourney' +import SankeyJourney from '@/components/journeys/SankeyJourney' import TopPathsTable from '@/components/journeys/TopPathsTable' import { JourneysSkeleton, useMinimumLoading, useSkeletonFade } from '@/components/skeletons' import { @@ -40,6 +42,7 @@ export default function JourneysPage() { const [depth, setDepth] = useState(DEFAULT_DEPTH) const [committedDepth, setCommittedDepth] = useState(DEFAULT_DEPTH) const [entryPath, setEntryPath] = useState('') + const [viewMode, setViewMode] = useState<'columns' | 'flow'>('columns') useEffect(() => { const t = setTimeout(() => setCommittedDepth(depth), 300) @@ -182,15 +185,49 @@ export default function JourneysPage() { + + {/* View toggle */} +
+ {(['columns', 'flow'] as const).map((mode) => ( + + ))} +
- {/* Journey Columns */} + {/* Journey Chart */}
- + {viewMode === 'columns' ? ( + + ) : ( + + )}
{/* Footer */}