fleet/frontend/pages/ManageControlsPage/Scripts/ScriptsNavItems.tsx
Lucas Manuel Rodriguez 969a08aea2
Fix script library pagination (#32232)
## #32236 

Found this bug while testing > 10 scripts or so per-team for another
story.

@jacobshandling mentioned we were missing passing `currentPage` to
`SideNav`.

---------

Co-authored-by: Jacob Shandling <jacob@fleetdm.com>
2025-08-25 14:49:04 -03:00

45 lines
1.3 KiB
TypeScript

import { useMemo } from "react";
import { InjectedRouter } from "react-router";
import PATHS from "router/paths";
import { ISideNavItem } from "pages/admin/components/SideNav/SideNav";
import ScriptBatchProgress, {
IScriptBatchProgressProps,
} from "./cards/ScriptBatchProgress/ScriptBatchProgress";
import ScriptLibrary, {
IScriptLibraryProps,
} from "./cards/ScriptLibrary/ScriptLibrary";
import { ScriptsLocation } from "./Scripts";
export interface IScriptsCommonProps {
router: InjectedRouter;
location: ScriptsLocation;
teamId: number;
}
/** no distinct props for each card as of now, keeping this as is for easy future updates to any cards */
type IScriptsCardProps = IScriptLibraryProps | IScriptBatchProgressProps;
const useScriptNavItems = (
teamId: number | undefined
): ISideNavItem<IScriptsCardProps>[] => {
return useMemo(
() => [
{
title: "Library",
urlSection: "library",
path: `${PATHS.CONTROLS_SCRIPTS_LIBRARY}?team_id=${teamId || 0}`,
Card: ScriptLibrary,
},
{
title: "Batch progress",
urlSection: "progress",
path: `${PATHS.CONTROLS_SCRIPTS_BATCH_PROGRESS}?team_id=${teamId || 0}`,
Card: ScriptBatchProgress,
},
],
[teamId]
);
};
export default useScriptNavItems;