import * as React from 'react'; import get from 'lodash/get'; import Box from '@wcpos/components/src/box'; import Tabs from '@wcpos/components/src/tabs'; import Tree from '@wcpos/components/src/tree'; import Form from '@wcpos/react-native-jsonschema-form'; import { useT } from '../../../contexts/translations'; /** * */ export const EditFormWithJSONTree = ({ json, schema, uiSchema, onChange }) => { const [index, setIndex] = React.useState(0); const t = useT(); const rootName = get(uiSchema, 'ui:rootFieldId', 'root'); /** * */ const renderScene = React.useCallback( ({ route }) => { switch (route.key) { case 'form': return (
); case 'json': return ; default: return null; } }, [schema, uiSchema, json, onChange, rootName] ); /** * */ const routes = React.useMemo( () => [ { key: 'form', title: t('Form', { _tags: 'core' }) }, { key: 'json', title: t('JSON', { _tags: 'core' }) }, ], [t] ); /** * */ return ( navigationState={{ index, routes }} renderScene={renderScene} onIndexChange={setIndex} /> ); };