Skip to content

Commit 00d17dd

Browse files
Copilothotlong
andcommitted
fix: Address code review feedback - improve type safety and use DOM elements for fallback renderers
Co-authored-by: hotlong <50353452+hotlong@users.noreply.github.com>
1 parent d88c02d commit 00d17dd

2 files changed

Lines changed: 22 additions & 7 deletions

File tree

packages/plugin-aggrid/src/ObjectAgGridImpl.tsx

Lines changed: 18 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -466,15 +466,30 @@ function applyFieldTypeFormatting(colDef: ColDef, field: FieldMetadata): void {
466466
break;
467467

468468
case 'object':
469-
colDef.cellRenderer = () => '<span class="text-gray-500 italic">[Object]</span>';
469+
colDef.cellRenderer = () => {
470+
const span = document.createElement('span');
471+
span.className = 'text-gray-500 italic';
472+
span.textContent = '[Object]';
473+
return span;
474+
};
470475
break;
471476

472477
case 'vector':
473-
colDef.cellRenderer = () => '<span class="text-gray-500 italic">[Vector]</span>';
478+
colDef.cellRenderer = () => {
479+
const span = document.createElement('span');
480+
span.className = 'text-gray-500 italic';
481+
span.textContent = '[Vector]';
482+
return span;
483+
};
474484
break;
475485

476486
case 'grid':
477-
colDef.cellRenderer = () => '<span class="text-gray-500 italic">[Grid]</span>';
487+
colDef.cellRenderer = () => {
488+
const span = document.createElement('span');
489+
span.className = 'text-gray-500 italic';
490+
span.textContent = '[Grid]';
491+
return span;
492+
};
478493
break;
479494

480495
default:

packages/plugin-aggrid/src/field-renderers.tsx

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -7,7 +7,7 @@
77
*/
88

99
import React from 'react';
10-
import { createRoot } from 'react-dom/client';
10+
import { createRoot, type Root } from 'react-dom/client';
1111
import type { ICellRendererParams, ICellEditorParams } from 'ag-grid-community';
1212
import type { FieldMetadata } from '@object-ui/types';
1313

@@ -72,7 +72,7 @@ function getFieldWidget(fieldType: string): React.ComponentType<any> | null {
7272
*/
7373
export class FieldWidgetCellRenderer {
7474
public eGui!: HTMLDivElement;
75-
public root: any;
75+
public root: Root | null = null;
7676

7777
init(params: ICellRendererParams & { field: FieldMetadata }) {
7878
const { value, field } = params;
@@ -132,8 +132,8 @@ export class FieldWidgetCellRenderer {
132132
*/
133133
export class FieldWidgetCellEditor {
134134
public eGui!: HTMLDivElement;
135-
public root: any;
136-
public currentValue: any;
135+
public root: Root | null = null;
136+
public currentValue: unknown;
137137
public params!: ICellEditorParams & { field: FieldMetadata };
138138

139139
init(params: ICellEditorParams & { field: FieldMetadata }) {

0 commit comments

Comments
 (0)