Skip to content

Commit 03cdb5d

Browse files
Copilothotlong
andcommitted
fix: complete remaining Airtable UX gaps
- ListView default density changed from 'comfortable' to 'compact' - ListView density toggle highlight checks against 'compact' (new default) - ObjectGrid singleClickEdit defaults to true (click-to-edit by default) - Update test to match new default density - Update ROADMAP.md with complete status Co-authored-by: hotlong <50353452+hotlong@users.noreply.github.com>
1 parent 9b0a4cc commit 03cdb5d

File tree

4 files changed

+11
-5
lines changed

4 files changed

+11
-5
lines changed

ROADMAP.md

Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -764,8 +764,14 @@ ObjectUI is a universal Server-Driven UI (SDUI) engine built on React + Tailwind
764764

765765
**Default Compact Row Height:**
766766
- [x] ObjectGrid default changed from `'medium'` to `'compact'` (32-36px rows)
767+
- [x] ListView default density changed from `'comfortable'` to `'compact'`
767768
- [x] Row height toggle preserved in toolbar
768769

770+
**Single-Click Edit Mode:**
771+
- [x] Added `singleClickEdit` prop to `DataTableSchema` and `ObjectGridSchema`
772+
- [x] ObjectGrid defaults `singleClickEdit` to `true` (click-to-edit by default)
773+
- [x] InlineEditing component already compatible (click-to-edit native)
774+
769775
**Column Header Minimal Style:**
770776
- [x] Headers use `text-xs font-normal text-muted-foreground` (was `text-[11px] font-semibold uppercase tracking-wider`)
771777
- [x] Sort arrows inline with header text

packages/plugin-grid/src/ObjectGrid.tsx

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -971,7 +971,7 @@ export const ObjectGrid: React.FC<ObjectGridProps> = ({
971971
resizableColumns: schema.resizable ?? schema.resizableColumns ?? true,
972972
reorderableColumns: schema.reorderableColumns ?? false,
973973
editable: schema.editable ?? false,
974-
singleClickEdit: schema.singleClickEdit ?? false,
974+
singleClickEdit: schema.singleClickEdit ?? true,
975975
className: schema.className,
976976
cellClassName: rowHeightMode === 'compact'
977977
? 'px-3 py-1 text-[13px] leading-tight'

packages/plugin-list/src/ListView.tsx

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -469,7 +469,7 @@ export const ListView: React.FC<ListViewProps> = ({
469469
};
470470
return map[schema.rowHeight] || 'comfortable';
471471
}
472-
return 'comfortable';
472+
return 'compact';
473473
}, [schema.densityMode, schema.rowHeight]);
474474
const density = useDensityMode(resolvedDensity);
475475

@@ -1312,7 +1312,7 @@ export const ListView: React.FC<ListViewProps> = ({
13121312
size="sm"
13131313
className={cn(
13141314
"h-7 px-2 text-muted-foreground hover:text-primary text-xs hidden lg:flex transition-colors duration-150",
1315-
density.mode !== 'comfortable' && "bg-primary/10 border border-primary/20 text-primary"
1315+
density.mode !== 'compact' && "bg-primary/10 border border-primary/20 text-primary"
13161316
)}
13171317
onClick={density.cycle}
13181318
title={`Density: ${density.mode}`}

packages/plugin-list/src/__tests__/ListView.test.tsx

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -300,8 +300,8 @@ describe('ListView', () => {
300300

301301
renderWithProvider(<ListView schema={schema} />);
302302

303-
// Default density mode is 'comfortable'
304-
const densityButton = screen.getByTitle('Density: comfortable');
303+
// Default density mode is 'compact'
304+
const densityButton = screen.getByTitle('Density: compact');
305305
expect(densityButton).toBeInTheDocument();
306306
});
307307

0 commit comments

Comments
 (0)