diff --git a/Website/components/datamodelview/List.tsx b/Website/components/datamodelview/List.tsx index f301d07..cf1ce9d 100644 --- a/Website/components/datamodelview/List.tsx +++ b/Website/components/datamodelview/List.tsx @@ -147,8 +147,9 @@ export const List = ({ }: IListProps) => { const virtualItems = rowVirtualizer.getVirtualItems(); // Find the first visible item + const padding = 16; const firstVisibleItem = virtualItems.find(v => { - return v.start <= scrollOffset && v.end >= scrollOffset; + return v.start <= scrollOffset && (v.end - padding) >= scrollOffset; }); if (firstVisibleItem) { @@ -202,7 +203,6 @@ export const List = ({ }: IListProps) => { return item.type === 'entity' && item.entity.SchemaName === datamodelView.currentSection; }); if (isInView) { - console.log("List: setting loading false"); dispatch({ type: 'SET_LOADING', payload: false }); } } diff --git a/Website/components/datamodelview/SidebarDatamodelView.tsx b/Website/components/datamodelview/SidebarDatamodelView.tsx index b55545b..d8d98c1 100644 --- a/Website/components/datamodelview/SidebarDatamodelView.tsx +++ b/Website/components/datamodelview/SidebarDatamodelView.tsx @@ -23,6 +23,7 @@ export const SidebarDatamodelView = ({ }: ISidebarDatamodelViewProps) => { const isTouch = useTouch(); const dispatch = useSidebarDispatch(); const { currentSection, currentGroup, scrollToSection } = useDatamodelView(); + const dataModelDispatch = useDatamodelViewDispatch(); const { groups } = useDatamodelData(); @@ -81,8 +82,8 @@ export const SidebarDatamodelView = ({ }: ISidebarDatamodelViewProps) => { }; const handleSectionClick = (sectionId: string) => { - console.log("Loading true for section click"); dataModelDispatch({ type: 'SET_LOADING', payload: true }); + dataModelDispatch({ type: 'SET_CURRENT_SECTION', payload: sectionId }); if (scrollToSection) { scrollToSection(sectionId); } @@ -136,14 +137,16 @@ export const SidebarDatamodelView = ({ }: ISidebarDatamodelViewProps) => { )} onClick={e => { e.stopPropagation(); + handleGroupClick(group.Name); if (group.Entities.length > 0) handleSectionClick(group.Entities[0].SchemaName); }} aria-label={`Link to first entity in ${group.Name}`} tabIndex={0} > { - e.stopPropagation(); - if (group.Entities.length > 0) handleGroupClick(group.Name); + e.preventDefault(); + handleGroupClick(group.Name); + if (group.Entities.length > 0) handleSectionClick(group.Entities[0].SchemaName); }} /> @@ -168,7 +171,10 @@ export const SidebarDatamodelView = ({ }: ISidebarDatamodelViewProps) => { isMatch ? "ring-1 ring-yellow-300" : "" )} key={entity.SchemaName} - onClick={() => handleSectionClick(entity.SchemaName)} + onClick={() => { + handleGroupClick(group.Name) + handleSectionClick(entity.SchemaName) + }} > {entity.IconBase64 ? icon : }