diff --git a/apps/desktop/src/components/cell-detail-panel.tsx b/apps/desktop/src/components/cell-detail-panel.tsx index fd4d070..d4120f2 100644 --- a/apps/desktop/src/components/cell-detail-panel.tsx +++ b/apps/desktop/src/components/cell-detail-panel.tsx @@ -70,7 +70,7 @@ export function CellDetailPanel() { if (!isRightPanelOpen) return null; return ( -
+
{/* Header */}
{/*

Details

*/} diff --git a/apps/desktop/src/components/scroll-horizontal.tsx b/apps/desktop/src/components/scroll-horizontal.tsx index 3f99ef1..ba7949e 100644 --- a/apps/desktop/src/components/scroll-horizontal.tsx +++ b/apps/desktop/src/components/scroll-horizontal.tsx @@ -13,6 +13,7 @@ function ScrollHorizontal({ scrollContainerRef, table }: props) { const [showLeftShadow, setShowLeftShadow] = useState(false); const [showRightShadow, setShowRightShadow] = useState(false); + const [hasVerticalScrollbar, setHasVerticalScrollbar] = useState(false); // Calculate the total width of left-pinned columns const leftPinnedWidth = table.getLeftTotalSize(); @@ -21,7 +22,10 @@ function ScrollHorizontal({ scrollContainerRef, table }: props) { const handleScroll = () => { if (!scrollContainerRef.current) return; - const { scrollLeft, scrollWidth, clientWidth } = scrollContainerRef.current; + const { scrollLeft, scrollWidth, clientWidth, scrollHeight, clientHeight } = scrollContainerRef.current; + + // Check if there's vertical overflow (scrollbar present) + setHasVerticalScrollbar(scrollHeight > clientHeight); // Only show left shadow if scrolled past the pinned columns setShowLeftShadow(scrollLeft > 0); @@ -55,23 +59,39 @@ function ScrollHorizontal({ scrollContainerRef, table }: props) { <> {showLeftShadow && (
- +
)} {/* Right shadow */} {showRightShadow && (
- +
)} diff --git a/apps/desktop/src/components/table/data-table.tsx b/apps/desktop/src/components/table/data-table.tsx index e8f589b..40768fd 100644 --- a/apps/desktop/src/components/table/data-table.tsx +++ b/apps/desktop/src/components/table/data-table.tsx @@ -133,7 +133,7 @@ export function DataTable() { } return ( -
+
{/* Advanced Filter Command */}
@@ -178,8 +178,9 @@ export function DataTable() { {table.getHeaderGroups().map(headerGroup => ( - {headerGroup.headers.map(header => { + {headerGroup.headers.map((header, index) => { const isPinned = header.column.getIsPinned(); + const isLastHeader = index === headerGroup.headers.length - 1; return ( header.column.resetSize(), onMouseDown: header.getResizeHandler(), onTouchStart: header.getResizeHandler(), - className: `absolute bottom-2 h-6 cursor-ew-resize -right-2 px-2 z-40`, + className: `absolute bottom-2 h-6 cursor-ew-resize ${!isLastHeader ? '-right-2 px-2' : 'right-2 pl-6'} z-40`, style: { transform: COLUMN_RESIZE_CONFIG.mode === 'onEnd' &&