Skip to content

Commit dc437e7

Browse files
Copilothotlong
andcommitted
fix: resolve all CI build TypeScript errors (TS2347, TS6133)
- ViewConfigPanel.test.tsx: remove type arg from untyped React.useState - view-config-schema.test.tsx: prefix unused specProp with underscore - AppManagementPage.tsx: remove unused Loader2 import - PermissionManagementPage.tsx: remove unused Card, CardContent imports - view-config-schema.tsx: remove unused SectionHeader import, prefix unused params (fieldOptions, fieldSelectWithNone, draft) with underscore - RecordActivityTimeline.tsx: prefix unused loading param with underscore - ROADMAP.md: update build count 42/42 → 43/43 Co-authored-by: hotlong <50353452+hotlong@users.noreply.github.com>
1 parent 5fa91d0 commit dc437e7

File tree

7 files changed

+10
-11
lines changed

7 files changed

+10
-11
lines changed

ROADMAP.md

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -13,7 +13,7 @@
1313

1414
ObjectUI is a universal Server-Driven UI (SDUI) engine built on React + Tailwind + Shadcn. It renders JSON metadata from the @objectstack/spec protocol into pixel-perfect, accessible, and interactive enterprise interfaces.
1515

16-
**Where We Are:** Foundation is **solid and shipping** — 35 packages, 99+ components, 5,700+ tests, 78 Storybook stories, 42/42 builds passing, ~85% protocol alignment. SpecBridge, Expression Engine, Action Engine, data binding, all view plugins (Grid/Kanban/Calendar/Gantt/Timeline/Map/Gallery), Record components, Report engine, Dashboard BI features, mobile UX, i18n (11 locales), WCAG AA accessibility, Designer Phase 1 (ViewDesigner drag-to-reorder ✅), Console through Phase 20 (L3), **AppShell Navigation Renderer** (P0.1), **Flow Designer** (P2.4), **Feed/Chatter UI** (P1.5), **App Creation & Editing Flow** (P1.11), and **System Settings & App Management** (P1.12) — all ✅ complete.
16+
**Where We Are:** Foundation is **solid and shipping** — 35 packages, 99+ components, 5,700+ tests, 78 Storybook stories, 43/43 builds passing, ~85% protocol alignment. SpecBridge, Expression Engine, Action Engine, data binding, all view plugins (Grid/Kanban/Calendar/Gantt/Timeline/Map/Gallery), Record components, Report engine, Dashboard BI features, mobile UX, i18n (11 locales), WCAG AA accessibility, Designer Phase 1 (ViewDesigner drag-to-reorder ✅), Console through Phase 20 (L3), **AppShell Navigation Renderer** (P0.1), **Flow Designer** (P2.4), **Feed/Chatter UI** (P1.5), **App Creation & Editing Flow** (P1.11), and **System Settings & App Management** (P1.12) — all ✅ complete.
1717

1818
**What Remains:** The gap to **Airtable-level UX** is primarily in:
1919
1. ~~**AppShell** — No dynamic navigation renderer from spec JSON (last P0 blocker)~~ ✅ Complete

apps/console/src/__tests__/ViewConfigPanel.test.tsx

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -51,7 +51,7 @@ vi.mock('@object-ui/components', () => {
5151

5252
// ConfigPanelRenderer mock — renders schema sections with proper collapse/visibility
5353
function ConfigPanelRenderer({ open, onClose, schema, draft, isDirty, onFieldChange, onSave, onDiscard, panelRef, role, ariaLabel, tabIndex, testId, saveLabel, discardLabel, className }: any) {
54-
const [collapsed, setCollapsed] = React.useState<Record<string, boolean>>({});
54+
const [collapsed, setCollapsed] = React.useState({});
5555
if (!open) return null;
5656

5757
return React.createElement('div', {

apps/console/src/__tests__/view-config-schema.test.tsx

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -665,7 +665,7 @@ describe('spec alignment', () => {
665665
emptyState: '_emptyState',
666666
aria: '_ariaLabel', // compound: label/describedBy/live
667667
};
668-
for (const [specProp, fieldKey] of Object.entries(specPropertyToFieldKey)) {
668+
for (const [_specProp, fieldKey] of Object.entries(specPropertyToFieldKey)) {
669669
expect(keys).toContain(fieldKey);
670670
}
671671
});

apps/console/src/pages/system/AppManagementPage.tsx

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -24,7 +24,6 @@ import {
2424
Star,
2525
ExternalLink,
2626
Search,
27-
Loader2,
2827
} from 'lucide-react';
2928
import { toast } from 'sonner';
3029
import { useMetadata } from '../../context/MetadataProvider';

apps/console/src/pages/system/PermissionManagementPage.tsx

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -7,7 +7,7 @@
77

88
import { useState, useEffect, useCallback } from 'react';
99
import { useAuth } from '@object-ui/auth';
10-
import { Button, Card, CardContent, Badge, Input } from '@object-ui/components';
10+
import { Button, Badge, Input } from '@object-ui/components';
1111
import { Plus, Key, Loader2, Trash2, Search } from 'lucide-react';
1212
import { toast } from 'sonner';
1313
import { useAdapter } from '../../context/AdapterProvider';

apps/console/src/utils/view-config-schema.tsx

Lines changed: 5 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -12,7 +12,7 @@
1212
*/
1313

1414
import React from 'react';
15-
import { Input, Switch, Checkbox, FilterBuilder, SortBuilder, ConfigRow, SectionHeader } from '@object-ui/components';
15+
import { Input, Switch, Checkbox, FilterBuilder, SortBuilder, ConfigRow } from '@object-ui/components';
1616
import type { ConfigPanelSchema, ConfigField } from '@object-ui/components';
1717
import type { FilterGroup, SortItem } from '@object-ui/components';
1818
import { ArrowUp, ArrowDown } from 'lucide-react';
@@ -98,7 +98,7 @@ export function buildViewConfigSchema(opts: ViewSchemaFactoryOptions): ConfigPan
9898

9999
function buildPageConfigSection(
100100
t: ViewSchemaFactoryOptions['t'],
101-
fieldOptions: FieldOption[],
101+
_fieldOptions: FieldOption[],
102102
objectDef: ViewSchemaFactoryOptions['objectDef'],
103103
updateField: ViewSchemaFactoryOptions['updateField'],
104104
): ConfigPanelSchema['sections'][number] {
@@ -426,7 +426,7 @@ function buildPageConfigSection(
426426
function buildDataSection(
427427
t: ViewSchemaFactoryOptions['t'],
428428
fieldOptions: FieldOption[],
429-
fieldSelectWithNone: Array<{ value: string; label: string }>,
429+
_fieldSelectWithNone: Array<{ value: string; label: string }>,
430430
objectDef: ViewSchemaFactoryOptions['objectDef'],
431431
updateField: ViewSchemaFactoryOptions['updateField'],
432432
filterGroupValue: FilterGroup,
@@ -551,7 +551,7 @@ function buildDataSection(
551551
key: '_filterBy',
552552
label: t('console.objectView.filterBy'),
553553
type: 'custom',
554-
render: (_value, _onChange, draft) => {
554+
render: (_value, _onChange, _draft) => {
555555
const filterCount = filterGroupValue.conditions.length;
556556
const filterSummary = filterCount > 0
557557
? t('console.objectView.filtersCount', { count: filterCount })
@@ -964,7 +964,7 @@ function buildDataSection(
964964
function buildAppearanceSection(
965965
t: ViewSchemaFactoryOptions['t'],
966966
fieldOptions: FieldOption[],
967-
fieldSelectWithNone: Array<{ value: string; label: string }>,
967+
_fieldSelectWithNone: Array<{ value: string; label: string }>,
968968
updateField: ViewSchemaFactoryOptions['updateField'],
969969
): ConfigPanelSchema['sections'][number] {
970970
return {

packages/plugin-detail/src/RecordActivityTimeline.tsx

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -133,7 +133,7 @@ export const RecordActivityTimeline: React.FC<RecordActivityTimelineProps> = ({
133133
onFilterChange,
134134
hasMore = false,
135135
onLoadMore,
136-
loading = false,
136+
loading: _loading = false,
137137
onAddComment,
138138
onAddReply,
139139
onToggleReaction,

0 commit comments

Comments
 (0)