1313 * Provides list view with integrated search, filters, and create/edit operations.
1414 */
1515
16- import React , { useEffect , useState , useCallback , useRef } from 'react' ;
16+ import React , { useEffect , useState , useCallback } from 'react' ;
1717import type { ObjectViewSchema , ObjectTableSchema , ObjectFormSchema } from '@object-ui/types' ;
1818import type { ObjectQLDataSource } from '@object-ui/data-objectql' ;
1919import { ObjectTable } from './ObjectTable' ;
@@ -29,7 +29,6 @@ import {
2929 DrawerHeader ,
3030 DrawerTitle ,
3131 DrawerDescription ,
32- DrawerClose ,
3332 Button ,
3433 Input ,
3534} from '@object-ui/components' ;
@@ -78,14 +77,13 @@ export const ObjectView: React.FC<ObjectViewProps> = ({
7877 dataSource,
7978 className,
8079} ) => {
81- const [ objectSchema , setObjectSchema ] = useState < any > ( null ) ;
80+ const [ objectSchema , setObjectSchema ] = useState < Record < string , unknown > | null > ( null ) ;
8281 const [ isFormOpen , setIsFormOpen ] = useState ( false ) ;
8382 const [ formMode , setFormMode ] = useState < FormMode > ( 'create' ) ;
84- const [ selectedRecord , setSelectedRecord ] = useState < any > ( null ) ;
83+ const [ selectedRecord , setSelectedRecord ] = useState < Record < string , unknown > | null > ( null ) ;
8584 const [ searchQuery , setSearchQuery ] = useState ( '' ) ;
8685 const [ showFilters , setShowFilters ] = useState ( false ) ;
8786 const [ refreshKey , setRefreshKey ] = useState ( 0 ) ;
88- const tableKey = useRef ( 0 ) ;
8987
9088 // Fetch object schema from ObjectQL
9189 useEffect ( ( ) => {
@@ -126,10 +124,10 @@ export const ObjectView: React.FC<ObjectViewProps> = ({
126124 } , [ layout , schema ] ) ;
127125
128126 // Handle edit action
129- const handleEdit = useCallback ( ( record : any ) => {
127+ const handleEdit = useCallback ( ( record : Record < string , unknown > ) => {
130128 if ( layout === 'page' && schema . onNavigate ) {
131129 const recordId = record . _id || record . id ;
132- schema . onNavigate ( recordId , 'edit' ) ;
130+ schema . onNavigate ( recordId as string | number , 'edit' ) ;
133131 } else {
134132 setFormMode ( 'edit' ) ;
135133 setSelectedRecord ( record ) ;
@@ -138,10 +136,10 @@ export const ObjectView: React.FC<ObjectViewProps> = ({
138136 } , [ layout , schema ] ) ;
139137
140138 // Handle view action
141- const handleView = useCallback ( ( record : any ) => {
139+ const handleView = useCallback ( ( record : Record < string , unknown > ) => {
142140 if ( layout === 'page' && schema . onNavigate ) {
143141 const recordId = record . _id || record . id ;
144- schema . onNavigate ( recordId , 'view' ) ;
142+ schema . onNavigate ( recordId as string | number , 'view' ) ;
145143 } else {
146144 setFormMode ( 'view' ) ;
147145 setSelectedRecord ( record ) ;
@@ -150,22 +148,22 @@ export const ObjectView: React.FC<ObjectViewProps> = ({
150148 } , [ layout , schema ] ) ;
151149
152150 // Handle row click
153- const handleRowClick = useCallback ( ( record : any ) => {
151+ const handleRowClick = useCallback ( ( record : Record < string , unknown > ) => {
154152 if ( operations . read !== false ) {
155153 handleView ( record ) ;
156154 }
157155 } , [ operations . read , handleView ] ) ;
158156
159157 // Handle delete action
160- const handleDelete = useCallback ( ( _record : any ) => {
158+ const handleDelete = useCallback ( ( _record : Record < string , unknown > ) => {
161159 // Trigger table refresh after delete
162- tableKey . current += 1 ;
160+ setRefreshKey ( prev => prev + 1 ) ;
163161 } , [ ] ) ;
164162
165163 // Handle bulk delete action
166- const handleBulkDelete = useCallback ( ( _records : any [ ] ) => {
164+ const handleBulkDelete = useCallback ( ( _records : Record < string , unknown > [ ] ) => {
167165 // Trigger table refresh after bulk delete
168- tableKey . current += 1 ;
166+ setRefreshKey ( prev => prev + 1 ) ;
169167 } , [ ] ) ;
170168
171169 // Handle form submission
@@ -175,7 +173,6 @@ export const ObjectView: React.FC<ObjectViewProps> = ({
175173 setSelectedRecord ( null ) ;
176174
177175 // Trigger table refresh
178- tableKey . current += 1 ;
179176 setRefreshKey ( prev => prev + 1 ) ;
180177 } , [ ] ) ;
181178
@@ -187,7 +184,6 @@ export const ObjectView: React.FC<ObjectViewProps> = ({
187184
188185 // Handle refresh
189186 const handleRefresh = useCallback ( ( ) => {
190- tableKey . current += 1 ;
191187 setRefreshKey ( prev => prev + 1 ) ;
192188 } , [ ] ) ;
193189
@@ -397,7 +393,7 @@ export const ObjectView: React.FC<ObjectViewProps> = ({
397393
398394 { /* Table */ }
399395 < ObjectTable
400- key = { ` ${ tableKey . current } - ${ refreshKey } ` }
396+ key = { refreshKey }
401397 schema = { tableSchema }
402398 dataSource = { dataSource }
403399 onRowClick = { handleRowClick }
0 commit comments