diff --git a/torchci/pages/hud/[repoOwner]/[repoName]/[branch]/[[...page]].tsx b/torchci/pages/hud/[repoOwner]/[repoName]/[branch]/[[...page]].tsx index 27d23e88ab..46b75abb12 100644 --- a/torchci/pages/hud/[repoOwner]/[repoName]/[branch]/[[...page]].tsx +++ b/torchci/pages/hud/[repoOwner]/[repoName]/[branch]/[[...page]].tsx @@ -283,93 +283,68 @@ function HudTableBody({ ); } -function GroupFilterableHudTable({ - params, - children, - groupNames, - useGrouping, - setUseGrouping, - hideUnstable, - setHideUnstable, - hideGreenColumns, - setHideGreenColumns, -}: { - params: HudParams; - children: React.ReactNode; - groupNames: string[]; - useGrouping: boolean; - setUseGrouping: any; - hideUnstable: boolean; - setHideUnstable: any; - hideGreenColumns: boolean; - setHideGreenColumns: any; -}) { +function FiltersAndSettings({}: {}) { + const router = useRouter(); + const params = packHudParams(router.query); const { jobFilter, handleSubmit } = useTableFilter(params); - const headerNames = groupNames; const [mergeEphemeralLF, setMergeEphemeralLF] = useContext(MergeLFContext); const [settingsPanelOpen, setSettingsPanelOpen] = useState(false); + const [hideUnstable, setHideUnstable] = usePreference("hideUnstable"); + const [hideGreenColumns, setHideGreenColumns] = + useHideGreenColumnsPreference(); + const [useGrouping, setUseGrouping] = useGroupingPreference( + params.nameFilter + ); return ( - <> -
-
- - setUseGrouping(value)} - checkBoxName="groupView" - key="groupView" - labelText={"Use grouped view"} - />, - , - ], - "Filter Options": [ - setHideUnstable(value)} - checkBoxName="hideUnstable" - key="hideUnstable" - labelText={"Hide unstable jobs"} - />, - setHideGreenColumns(value)} - checkBoxName="hideGreenColumns" - key="hideGreenColumns" - labelText={"Hide green columns"} - />, - , - ], - }} - isOpen={settingsPanelOpen} - onToggle={() => setSettingsPanelOpen(!settingsPanelOpen)} - /> -
- - - - {children} -
-
- +
+ + setUseGrouping(value)} + checkBoxName="groupView" + key="groupView" + labelText={"Use grouped view"} + />, + , + ], + "Filter Options": [ + setHideUnstable(value)} + checkBoxName="hideUnstable" + key="hideUnstable" + labelText={"Hide unstable jobs"} + />, + setHideGreenColumns(value)} + checkBoxName="hideGreenColumns" + key="hideGreenColumns" + labelText={"Hide green columns"} + />, + , + ], + }} + isOpen={settingsPanelOpen} + onToggle={() => setSettingsPanelOpen(!settingsPanelOpen)} + /> +
); } @@ -416,18 +391,6 @@ export function MonsterFailuresCheckbox() { ); } -function HudTable({ params }: { params: HudParams }) { - const data = useHudData(params); - if (data === undefined) { - return ; - } - return ( - <> - - - ); -} - function HudHeader({ params }: { params: HudParams }) { function handleBranchSubmit(branch: string) { window.location.href = formatHudUrlForRoute("hud", { ...params, branch }); @@ -525,7 +488,10 @@ export default function Hud() { style={{ marginLeft: "10px" }} /> - +
+ + +

@@ -576,13 +542,9 @@ function CopyPermanentLink({ return ; } -function GroupedHudTable({ - params, - data, -}: { - params: HudParams; - data: RowData[]; -}) { +function GroupedHudTable({ params }: { params: HudParams }) { + const router = useRouter(); + const data = useHudData(params); const { data: unstableIssuesData } = useSWR( `/api/issue/unstable`, fetcher, @@ -592,19 +554,16 @@ function GroupedHudTable({ } ); const jobNames = new Set( - data.flatMap((row) => Array.from(row.nameToJobs.keys())) + data?.flatMap((row) => Array.from(row.nameToJobs.keys())) ); - const [hideUnstable, setHideUnstable] = usePreference("hideUnstable"); - const [hideGreenColumns, setHideGreenColumns] = - useHideGreenColumnsPreference(); - const [useGrouping, setUseGrouping] = useGroupingPreference( - params.nameFilter - ); + const [hideUnstable] = usePreference("hideUnstable"); + const [hideGreenColumns] = useHideGreenColumnsPreference(); + const [useGrouping] = useGroupingPreference(params.nameFilter); const { shaGrid, groupNameMapping, jobsWithFailures, groupsWithFailures } = getGroupingData( - data, + data ?? [], jobNames, (!useGrouping && hideUnstable) || (useGrouping && !hideUnstable), unstableIssuesData ?? [] @@ -614,7 +573,6 @@ function GroupedHudTable({ const { jobFilter } = useTableFilter(params); - const router = useRouter(); useEffect(() => { // Only run on component mount, this assumes that the user's preference is // the value in local storage @@ -681,26 +639,23 @@ function GroupedHudTable({ return true; }); + if (data === undefined) { + return ; + } + return ( - + + + - +
); }