diff --git a/frontend/src/component/personalDashboard/PersonalDashboard.tsx b/frontend/src/component/personalDashboard/PersonalDashboard.tsx
index d572d6ae40..f5eacd6176 100644
--- a/frontend/src/component/personalDashboard/PersonalDashboard.tsx
+++ b/frontend/src/component/personalDashboard/PersonalDashboard.tsx
@@ -106,6 +106,158 @@ const AccordionSummarySubtitle = styled(Typography)(({ theme }) => ({
fontWeight: theme.typography.body2.fontWeight,
}));
+const EventTimelinePanel = () => {
+ const { toggleSectionState, expandTimeline } = useDashboardState([], []);
+ const { trackEvent } = usePlausibleTracker();
+
+ const signalsLink = '/integrations/signals';
+ return (
+ toggleSectionState('timeline')}
+ >
+
+ }
+ id='timeline-panel-header'
+ aria-controls='timeline-panel-content'
+ >
+
+
+ Event timeline
+
+
+ Overview of recent activities across all projects in
+ Unleash. Make debugging easier and{' '}
+ {
+ trackEvent('event-timeline', {
+ props: {
+ eventType: 'signals clicked',
+ },
+ });
+ }}
+ >
+ include external signals
+ {' '}
+ to get a fuller overview.
+
+
+
+
+
+
+
+
+
+ );
+};
+
+const FlagPanel = () => {
+ const { personalDashboard, refetch: refetchDashboard } =
+ usePersonalDashboard();
+
+ const projects = personalDashboard?.projects || [];
+
+ const { activeFlag, setActiveFlag, toggleSectionState, expandFlags } =
+ useDashboardState(projects, personalDashboard?.flags ?? []);
+
+ return (
+ toggleSectionState('flags')}
+ >
+ }
+ id='flags-panel-header'
+ aria-controls='flags-panel-content'
+ >
+
+
+ My feature flags
+
+
+ Feature flags you have created or favorited
+
+
+
+
+ 0}
+ flagData={
+ personalDashboard?.flags.length
+ ? {
+ state: 'flags' as const,
+ activeFlag,
+ flags: personalDashboard.flags,
+ }
+ : { state: 'no flags' as const }
+ }
+ setActiveFlag={setActiveFlag}
+ refetchDashboard={refetchDashboard}
+ />
+
+
+ );
+};
+
+const ProjectPanel = () => {
+ const { personalDashboard } = usePersonalDashboard();
+
+ const projects = personalDashboard?.projects || [];
+
+ const {
+ activeProject,
+ setActiveProject,
+ toggleSectionState,
+ expandProjects,
+ } = useDashboardState(projects, personalDashboard?.flags ?? []);
+
+ const personalDashboardProjectDetails =
+ fromPersonalDashboardProjectDetailsOutput(
+ usePersonalDashboardProjectDetails(activeProject),
+ );
+
+ return (
+ toggleSectionState('projects')}
+ >
+
+ }
+ id='projects-panel-header'
+ aria-controls='projects-panel-content'
+ >
+
+ My projects
+
+ Favorite projects, projects you own, and projects you
+ are a member of
+
+
+
+
+
+
+
+ );
+};
+
export const PersonalDashboard = () => {
const { user } = useAuthUser();
const { trackEvent } = usePlausibleTracker();
@@ -117,24 +269,6 @@ export const PersonalDashboard = () => {
usePageTitle(name ? `Dashboard: ${name}` : 'Dashboard');
- const { personalDashboard, refetch: refetchDashboard } =
- usePersonalDashboard();
-
- const projects = personalDashboard?.projects || [];
-
- const {
- activeProject,
- setActiveProject,
- activeFlag,
- setActiveFlag,
- toggleSectionState,
- expandFlags,
- expandProjects,
- expandTimeline,
- } = useDashboardState(projects, personalDashboard?.flags ?? []);
-
- const signalsLink = '/integrations/signals';
-
const [welcomeDialog, setWelcomeDialog] = useLocalStorageState<
'open' | 'closed'
>(
@@ -142,11 +276,6 @@ export const PersonalDashboard = () => {
splash?.personalDashboardKeyConcepts ? 'closed' : 'open',
);
- const personalDashboardProjectDetails =
- fromPersonalDashboardProjectDetailsOutput(
- usePersonalDashboardProjectDetails(activeProject),
- );
-
useEffect(() => {
trackEvent('personal-dashboard', {
props: {
@@ -183,122 +312,12 @@ export const PersonalDashboard = () => {
- {showTimelinePanel && (
- toggleSectionState('timeline')}
- >
-
- }
- id='timeline-panel-header'
- aria-controls='timeline-panel-content'
- >
-
-
- Event timeline
-
-
- Overview of recent activities across all
- projects in Unleash. Make debugging easier and{' '}
- {
- trackEvent('event-timeline', {
- props: {
- eventType: 'signals clicked',
- },
- });
- }}
- >
- include external signals
- {' '}
- to get a fuller overview.
-
-
-
-
-
-
-
-
-
- )}
- toggleSectionState('projects')}
- >
-
- }
- id='projects-panel-header'
- aria-controls='projects-panel-content'
- >
-
-
- My projects
-
-
- Favorite projects, projects you own, and projects
- you are a member of
-
-
-
-
-
-
-
+ {showTimelinePanel && }
+
+
+
+
- toggleSectionState('flags')}
- >
-
- }
- id='flags-panel-header'
- aria-controls='flags-panel-content'
- >
-
-
- My feature flags
-
-
- Feature flags you have created or favorited
-
-
-
-
- 0}
- flagData={
- personalDashboard?.flags.length
- ? {
- state: 'flags' as const,
- activeFlag,
- flags: personalDashboard.flags,
- }
- : { state: 'no flags' as const }
- }
- setActiveFlag={setActiveFlag}
- refetchDashboard={refetchDashboard}
- />
-
-
{