1
0
mirror of https://github.com/Unleash/unleash.git synced 2025-06-04 01:18:20 +02:00

fix: make args optiona

This commit is contained in:
Thomas Heartman 2025-02-07 11:17:27 +01:00
parent e31cb875dc
commit 5416afa630
No known key found for this signature in database
GPG Key ID: BD1F880DAED1EE78
2 changed files with 23 additions and 25 deletions

View File

@ -107,7 +107,7 @@ const AccordionSummarySubtitle = styled(Typography)(({ theme }) => ({
}));
const EventTimelinePanel = () => {
const { toggleSectionState, expandTimeline } = useDashboardState([], []);
const { toggleSectionState, expandTimeline } = useDashboardState();
const { trackEvent } = usePlausibleTracker();
const signalsLink = '/integrations/signals';
@ -163,7 +163,7 @@ const FlagPanel = () => {
const projects = personalDashboard?.projects || [];
const { activeFlag, setActiveFlag, toggleSectionState, expandFlags } =
useDashboardState(projects, personalDashboard?.flags ?? []);
useDashboardState({ flags: personalDashboard?.flags ?? [] });
return (
<SectionAccordion
@ -214,7 +214,7 @@ const ProjectPanel = () => {
setActiveProject,
toggleSectionState,
expandProjects,
} = useDashboardState(projects, personalDashboard?.flags ?? []);
} = useDashboardState({ projects });
const personalDashboardProjectDetails =
fromPersonalDashboardProjectDetailsOutput(

View File

@ -5,10 +5,11 @@ import type {
} from 'openapi';
import { useEffect } from 'react';
export const useDashboardState = (
projects: PersonalDashboardSchemaProjectsItem[],
flags: PersonalDashboardSchemaFlagsItem[],
) => {
type StateProps = {
projects?: PersonalDashboardSchemaProjectsItem[];
flags?: PersonalDashboardSchemaFlagsItem[];
};
export const useDashboardState = (props?: StateProps) => {
type State = {
activeProject: string | undefined;
activeFlag: PersonalDashboardSchemaFlagsItem | undefined;
@ -35,34 +36,31 @@ export const useDashboardState = (
useEffect(() => {
const updates: Partial<State> = {};
const setDefaultFlag =
flags.length &&
(!state.activeFlag ||
!flags.some((flag) => flag.name === state.activeFlag?.name));
if (setDefaultFlag) {
updates.activeFlag = flags[0];
if (
props?.flags?.length &&
(!state.activeFlag ||
!props.flags.some(
(flag) => flag.name === state.activeFlag?.name,
))
) {
updates.activeFlag = props.flags[0];
}
const setDefaultProject =
projects.length &&
if (
props?.projects?.length &&
(!state.activeProject ||
!projects.some(
!props.projects.some(
(project) => project.id === state.activeProject,
));
if (setDefaultProject) {
updates.activeProject = projects[0].id;
))
) {
updates.activeProject = props.projects[0].id;
}
if (Object.keys(updates).length) {
updateState(updates);
}
}, [
JSON.stringify(projects),
JSON.stringify(flags),
JSON.stringify(state),
]);
}, [JSON.stringify(props), JSON.stringify(state)]);
const { activeFlag, activeProject } = state;