X-Git-Url: https://git.arvados.org/arvados.git/blobdiff_plain/1200472db41ac1494849f894a8c345d41cd830fd..9aefffe7db795c8b4aacfc8c2dbfc2eab17ad363:/services/workbench2/src/components/multiselect-toolbar/ms-toolbar-overflow-wrapper.tsx diff --git a/services/workbench2/src/components/multiselect-toolbar/ms-toolbar-overflow-wrapper.tsx b/services/workbench2/src/components/multiselect-toolbar/ms-toolbar-overflow-wrapper.tsx index 47b019e0ff..32f977e1a4 100644 --- a/services/workbench2/src/components/multiselect-toolbar/ms-toolbar-overflow-wrapper.tsx +++ b/services/workbench2/src/components/multiselect-toolbar/ms-toolbar-overflow-wrapper.tsx @@ -38,7 +38,6 @@ const styles: StyleRulesCallback = (theme: ArvadosTheme) => ({ type WrapperProps = { children: OverflowChild[]; menuLength: number; - isTransitioning: boolean; }; export const IntersectionObserverWrapper = withStyles(styles)((props: WrapperProps & WithStyles) => { @@ -54,6 +53,7 @@ export const IntersectionObserverWrapper = withStyles(styles)((props: WrapperPro const updatedEntries: Record = {}; entries.forEach((entry) => { const targetid = entry.target.dataset.targetid as string; + //if true, the element is visible if (entry.isIntersecting) { updatedEntries[targetid] = true; } else { @@ -64,12 +64,13 @@ export const IntersectionObserverWrapper = withStyles(styles)((props: WrapperPro setVisibilityMap((prev) => ({ ...prev, ...updatedEntries, - [lastEntryId]: !props.isTransitioning && Object.keys(updatedEntries)[0] === lastEntryId, + [lastEntryId]: Object.keys(updatedEntries)[0] === lastEntryId, })); }; + //ensures that the last element is always visible if the second to last is visible useEffect(() => { - if ((prevNumHidden.current === 2 || prevNumHidden.current === 0) && numHidden === 1) { + if ((prevNumHidden.current > 1 || prevNumHidden.current === 0) && numHidden === 1) { setVisibilityMap((prev) => ({ ...prev, [lastEntryId]: true,