diff --git a/packages/gitbook/src/components/DocumentView/Table/RecordRow.tsx b/packages/gitbook/src/components/DocumentView/Table/RecordRow.tsx
index 4491f4760..2e4a15933 100644
--- a/packages/gitbook/src/components/DocumentView/Table/RecordRow.tsx
+++ b/packages/gitbook/src/components/DocumentView/Table/RecordRow.tsx
@@ -5,7 +5,6 @@ import { tcls } from '@/lib/tailwind';
import { RecordColumnValue } from './RecordColumnValue';
import type { TableRecordKV, TableViewProps } from './Table';
import { getColumnWidth } from './layout';
-import styles from './table.module.css';
import { getColumnVerticalAlignment } from './utils';
export function RecordRow(
@@ -18,7 +17,15 @@ export function RecordRow(
const { view, autoSizedColumns, fixedColumns, block, context } = props;
return (
-
+
{view.columns.map((column) => {
const columnWidth = getColumnWidth({
column,
@@ -33,7 +40,10 @@ export function RecordRow(
bodyScrollElement.clientWidth + 1
}`;
}, []);
+
useLayoutEffect(() => {
syncStickyLayout();
+ }, [syncStickyLayout]);
+ useScrollListener(syncStickyLayout, bodyScrollRef);
+
+ useEffect(() => {
const elements = [bodyScrollRef.current, bodyTableRef.current].filter(
(element): element is HTMLDivElement => Boolean(element)
);
@@ -70,10 +76,28 @@ export function StickyViewGrid({ className, header, children }: StickyViewGridPr
return (
-
-
+
+
{header}
@@ -82,8 +106,12 @@ export function StickyViewGrid({ className, header, children }: StickyViewGridPr
{children}
diff --git a/packages/gitbook/src/components/DocumentView/Table/Table.tsx b/packages/gitbook/src/components/DocumentView/Table/Table.tsx
index 26c9c07b9..228c738d5 100644
--- a/packages/gitbook/src/components/DocumentView/Table/Table.tsx
+++ b/packages/gitbook/src/components/DocumentView/Table/Table.tsx
@@ -51,12 +51,20 @@ export function Table(props: BlockProps) {
if (withStickyHeader) {
return (
}
@@ -67,8 +75,13 @@ export function Table(props: BlockProps
) {
}
return (
-
-
+
diff --git a/packages/gitbook/src/components/DocumentView/Table/ViewGrid.tsx b/packages/gitbook/src/components/DocumentView/Table/ViewGrid.tsx
index 1672ffc38..dde835a60 100644
--- a/packages/gitbook/src/components/DocumentView/Table/ViewGrid.tsx
+++ b/packages/gitbook/src/components/DocumentView/Table/ViewGrid.tsx
@@ -5,7 +5,6 @@ import { tcls } from '@/lib/tailwind';
import { RecordRow } from './RecordRow';
import type { TableViewProps } from './Table';
import { getColumnWidth, getViewGridLayout } from './layout';
-import styles from './table.module.css';
import { getColumnAlignment } from './utils';
export function ViewGridHeader(
@@ -19,7 +18,14 @@ export function ViewGridHeader(
});
return (
-
+
{view.columns.map((column) => {
const definition = block.data.definition[column];
@@ -31,7 +37,10 @@ export function ViewGridHeader(