fix(bases): give kanban its own scroll container so column auto-scroll works

This commit is contained in:
Philipinho
2026-05-25 15:55:56 +01:00
parent ee3c5ce9d9
commit f0b7bdef17
@@ -190,6 +190,8 @@ export function BaseView({ pageId, embedded }: BaseViewProps) {
baselineConfig: activeView?.config, baselineConfig: activeView?.config,
}); });
const isKanban = effectiveView?.type === "kanban";
const handleCellUpdate = useCallback( const handleCellUpdate = useCallback(
(rowId: string, propertyId: string, value: unknown) => { (rowId: string, propertyId: string, value: unknown) => {
updateRowMutation.mutate({ updateRowMutation.mutate({
@@ -389,6 +391,7 @@ export function BaseView({ pageId, embedded }: BaseViewProps) {
base={base} base={base}
rows={rows} rows={rows}
openRowId={openRowId} openRowId={openRowId}
canEdit={canSave}
onClose={closeRow} onClose={closeRow}
/> />
</> </>
@@ -405,32 +408,65 @@ export function BaseView({ pageId, embedded }: BaseViewProps) {
> >
{banner} {banner}
{toolbar} {toolbar}
<div className={classes.tableScrollport} ref={setScrollportEl}> {isKanban ? (
<ViewRenderer <div
base={base} ref={setScrollportEl}
rows={rows} style={{
effectiveView={effectiveView} flex: 1,
table={table} minHeight: 0,
pageId={pageId} display: "flex",
embedded={embedded} flexDirection: "column",
hasNextPage={!!hasNextPage} }}
isFetchingNextPage={isFetchingNextPage} >
onFetchNextPage={fetchNextPage} <ViewRenderer
onCellUpdate={handleCellUpdate} base={base}
onAddRow={handleAddRow} rows={rows}
onColumnReorder={handleColumnReorder} effectiveView={effectiveView}
onResizeEnd={handleResizeEnd} table={table}
onRowReorder={handleRowReorder} pageId={pageId}
onCardClick={handleCardClick} embedded={embedded}
persistViewConfig={persistViewConfig} hasNextPage={!!hasNextPage}
scrollportEl={scrollportEl} isFetchingNextPage={isFetchingNextPage}
/> onFetchNextPage={fetchNextPage}
</div> onCellUpdate={handleCellUpdate}
onAddRow={handleAddRow}
onColumnReorder={handleColumnReorder}
onResizeEnd={handleResizeEnd}
onRowReorder={handleRowReorder}
onCardClick={handleCardClick}
persistViewConfig={persistViewConfig}
scrollportEl={scrollportEl}
/>
</div>
) : (
<div className={classes.tableScrollport} ref={setScrollportEl}>
<ViewRenderer
base={base}
rows={rows}
effectiveView={effectiveView}
table={table}
pageId={pageId}
embedded={embedded}
hasNextPage={!!hasNextPage}
isFetchingNextPage={isFetchingNextPage}
onFetchNextPage={fetchNextPage}
onCellUpdate={handleCellUpdate}
onAddRow={handleAddRow}
onColumnReorder={handleColumnReorder}
onResizeEnd={handleResizeEnd}
onRowReorder={handleRowReorder}
onCardClick={handleCardClick}
persistViewConfig={persistViewConfig}
scrollportEl={scrollportEl}
/>
</div>
)}
</div> </div>
<RowDetailModal <RowDetailModal
base={base} base={base}
rows={rows} rows={rows}
openRowId={openRowId} openRowId={openRowId}
canEdit={canSave}
onClose={closeRow} onClose={closeRow}
/> />
</> </>