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

View File

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