onClick usage
By this example you can learn how to work with click
events inside <Autoview />
component. As well as how to use clickEventHandler utility to construct desired onClick
event callback function.
import React from 'react'; import { RepositoryProvider, AutoView, CoreSchemaMetaSchema, AutoEventHandler, AutoEvent } from '@autoviews/core'; import {set} from 'json-pointer'; import {Box} from '@mui/material'; import {data} from './data'; import schema from './schema.json'; import {repo} from './repo'; type ActiveStateClickEvent = AutoEvent & {data: {type: string; value: boolean}}; export default function App() { const [currentData, setData] = React.useState(data); const clickHandler: AutoEventHandler<ActiveStateClickEvent> = ( _, {pointer, data} ) => { if (data.type !== 'CHANGE_ACTIVE_STATE') { return; } const newDocument = [...currentData]; set(newDocument, pointer, data.value); setData(newDocument); }; return ( <> <Box sx={{margin: '20px 16px'}}> Click on the status to change it: </Box> <RepositoryProvider components={repo}> <AutoView schema={schema as CoreSchemaMetaSchema} data={currentData} onClick={clickHandler} /> </RepositoryProvider> </> ); }