Parameter search & inline display for Past Runs and Run History pages (#3985)
This commit is contained in:
@@ -0,0 +1,48 @@
|
||||
import { useCallback, useMemo, useState } from "react";
|
||||
|
||||
function toSet(ids: Iterable<string>): Set<string> {
|
||||
return new Set(ids);
|
||||
}
|
||||
|
||||
function useParameterExpansion() {
|
||||
const [manuallyExpandedRows, setManuallyExpandedRows] = useState<Set<string>>(
|
||||
new Set(),
|
||||
);
|
||||
const [autoExpandedRows, setAutoExpandedRows] = useState<Set<string>>(
|
||||
new Set(),
|
||||
);
|
||||
|
||||
const toggleExpanded = useCallback((id: string) => {
|
||||
setManuallyExpandedRows((prev) => {
|
||||
const next = new Set(prev);
|
||||
if (next.has(id)) {
|
||||
next.delete(id);
|
||||
} else {
|
||||
next.add(id);
|
||||
}
|
||||
return next;
|
||||
});
|
||||
}, []);
|
||||
|
||||
const expandedRows = useMemo(() => {
|
||||
const combined = new Set(autoExpandedRows);
|
||||
for (const id of manuallyExpandedRows) {
|
||||
combined.add(id);
|
||||
}
|
||||
return combined;
|
||||
}, [autoExpandedRows, manuallyExpandedRows]);
|
||||
|
||||
const updateAutoExpandedRows = useCallback((ids: Iterable<string>) => {
|
||||
setAutoExpandedRows(toSet(ids));
|
||||
}, []);
|
||||
|
||||
return {
|
||||
expandedRows,
|
||||
toggleExpanded,
|
||||
setManuallyExpandedRows,
|
||||
manuallyExpandedRows,
|
||||
setAutoExpandedRows: updateAutoExpandedRows,
|
||||
};
|
||||
}
|
||||
|
||||
export { useParameterExpansion };
|
||||
Reference in New Issue
Block a user