Skip to content

Commit 9d40b4c

Browse files
committed
Merge branch 'develop'
2 parents 95dbe2c + 70112d9 commit 9d40b4c

28 files changed

+602
-890
lines changed

apps/demo/package.json

Lines changed: 9 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -35,12 +35,15 @@
3535
"@mui/material": "^7.1.2",
3636
"@mui/x-date-pickers": "^7.29.4",
3737
"@ui-controls/progress": "~0.1.0",
38-
"@ui-schema/dictionary": "~0.0.12",
39-
"@ui-schema/ds-material": "~0.4.2",
40-
"@ui-schema/kit-codemirror": "^1.0.0-alpha.1",
41-
"@ui-schema/material-code": "~0.5.0-alpha.1",
42-
"@ui-schema/material-pickers": "^0.4.0-alpha.5",
43-
"@ui-schema/ui-schema": "~0.4.6",
38+
"@ui-schema/dictionary": "~0.1.0-alpha.1",
39+
"@ui-schema/ds-material": "~0.5.0-alpha.1",
40+
"@ui-schema/kit-codemirror": "^1.0.0-alpha.2",
41+
"@ui-schema/material-code": "~0.5.0-alpha.3",
42+
"@ui-schema/material-pickers": "~0.5.0-alpha.1",
43+
"@ui-schema/ui-schema": "~0.5.0-alpha.1",
44+
"@ui-schema/json-schema": "~0.5.0-alpha.1",
45+
"@ui-schema/json-pointer": "~0.5.0-alpha.1",
46+
"@ui-schema/react": "~0.5.0-alpha.1",
4447
"i18next": "^25.2.1",
4548
"i18next-browser-languagedetector": "^8.2.0",
4649
"i18next-chained-backend": "^4.6.2",

apps/demo/src/App.tsx

Lines changed: 24 additions & 21 deletions
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,5 @@
11
import { contentUIDecorators, ContentLeafsProvider } from '@content-ui/react/ContentLeafsContext'
2+
import { Validator } from '@ui-schema/json-schema'
23
import React from 'react'
34
import { StyledEngineProvider, ThemeProvider } from '@mui/material/styles'
45
import CssBaseline from '@mui/material/CssBaseline'
@@ -9,18 +10,26 @@ import { initReactI18next, useTranslation } from 'react-i18next'
910
import { BrowserRouter } from 'react-router-dom'
1011
import resourcesToBackend from 'i18next-resources-to-backend'
1112
import CircularProgress from '@mui/material/CircularProgress'
12-
import { UIMetaProvider } from '@ui-schema/ui-schema/UIMeta'
13+
import { UIMetaProvider } from '@ui-schema/react/UIMeta'
1314
import { SnackProvider } from 'react-use-snack/SnackProvider'
1415
import { browserT } from './t.js'
15-
import { getCustomWidgets } from './components/UISchema.js'
16+
import { getCustomBinding } from './components/UISchema.js'
1617
import { useViewSettings } from './lib/ViewSettings.js'
1718
import I18NextChainedBackend from 'i18next-chained-backend/dist/esm/i18nextChainedBackend.js'
1819
import I18NextLocalStorageBackend from 'i18next-localstorage-backend'
1920
import I18nextBrowserLanguageDetector from 'i18next-browser-languagedetector'
20-
import { UIApiProvider } from '@ui-schema/ui-schema/UIApi'
2121
import { LocalizationProvider } from '@mui/x-date-pickers'
2222
import { AdapterMoment } from '@mui/x-date-pickers/AdapterMoment'
2323
import { contentUIMapping } from './components/ContentUI.js'
24+
import { standardValidators } from '@ui-schema/json-schema/StandardValidators'
25+
import { requiredValidatorLegacy } from '@ui-schema/json-schema/Validators/RequiredValidatorLegacy'
26+
27+
const validator = Validator([
28+
...standardValidators,
29+
requiredValidatorLegacy, // opinionated validator, HTML-like, empty-string = invalid
30+
])
31+
32+
const validate = validator.validate
2433

2534
const themes = customTheme()
2635

@@ -70,11 +79,7 @@ i18n
7079
},
7180
})
7281

73-
const customWidgets = getCustomWidgets()
74-
75-
const loadSchema = (url: string) => {
76-
return fetch(url).then(r => r.json())
77-
}
82+
const customBinding = getCustomBinding()
7883

7984
export const App: React.ComponentType<{}> = () => {
8085
const {theme, lang} = useViewSettings()
@@ -105,19 +110,17 @@ export const App: React.ComponentType<{}> = () => {
105110
<BrowserRouter>
106111
<React.Suspense fallback={<CircularProgress/>}>
107112
<SnackProvider>
108-
<UIApiProvider
109-
loadSchema={loadSchema}
110-
/* disables localStorage cache of e.g. loaded schemas */
111-
noCache
112-
>
113-
<LocalizationProvider dateAdapter={AdapterMoment}>
114-
<UIMetaProvider t={browserT} widgets={customWidgets}>
115-
<ContentLeafsProvider deco={contentUIDecorators} renderMap={contentUIMapping}>
116-
<Layout/>
117-
</ContentLeafsProvider>
118-
</UIMetaProvider>
119-
</LocalizationProvider>
120-
</UIApiProvider>
113+
<LocalizationProvider dateAdapter={AdapterMoment}>
114+
<UIMetaProvider
115+
t={browserT}
116+
binding={customBinding}
117+
validate={validate}
118+
>
119+
<ContentLeafsProvider deco={contentUIDecorators} renderMap={contentUIMapping}>
120+
<Layout/>
121+
</ContentLeafsProvider>
122+
</UIMetaProvider>
123+
</LocalizationProvider>
121124
</SnackProvider>
122125
</React.Suspense>
123126
</BrowserRouter>

apps/demo/src/components/CustomWidgets/WidgetCode.tsx

Lines changed: 0 additions & 89 deletions
This file was deleted.

apps/demo/src/components/CustomWidgets/WidgetMarkdownEditor.tsx

Lines changed: 8 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -1,9 +1,9 @@
11
import { ViewerBoxRouter } from '@content-ui/md-mui/ViewerBoxRouter'
22
import { ContentParser } from '@content-ui/md/parser/ContentParser'
33
import { ContentSelectionProvider } from '@content-ui/react/ContentSelectionContext'
4-
import { UIMetaReadContextType } from '@ui-schema/ui-schema/UIMetaReadContext'
4+
import { TranslateTitle, WidgetProps } from '@ui-schema/react'
5+
import { UIMetaReadContextType } from '@ui-schema/react/UIMetaReadContext'
56
import React from 'react'
6-
import { TransTitle, WidgetProps, WithScalarValue } from '@ui-schema/ui-schema'
77
import { SettingsProvider } from '@content-ui/react/LeafSettings'
88
import Box from '@mui/material/Box'
99
import FormLabel from '@mui/material/FormLabel'
@@ -19,7 +19,7 @@ import { useContentEditor } from '@content-ui/input/useContentEditor'
1919
import { useContent } from '@content-ui/react/useContent'
2020
import { ContentFileProvider } from '@content-ui/react/ContentFileContext'
2121

22-
export const WidgetMarkdownEditor: React.ComponentType<WidgetProps & WithScalarValue & { readOnly?: boolean } & UIMetaReadContextType> = (
22+
export const WidgetMarkdownEditor: React.ComponentType<WidgetProps & { readOnly?: boolean } & UIMetaReadContextType> = (
2323
{
2424
storeKeys, schema, value,
2525
valid, required, showValidity,
@@ -93,7 +93,7 @@ export const WidgetMarkdownEditor: React.ComponentType<WidgetProps & WithScalarV
9393
<Box mb={0.5} style={{display: 'flex', alignItems: 'center'}}>
9494
<FormLabel error={(!valid && showValidity)} style={{marginRight: 'auto'}}>
9595
{hideTitle ? null : <>
96-
<TransTitle storeKeys={storeKeys} schema={schema}/>
96+
<TranslateTitle storeKeys={storeKeys} schema={schema}/>
9797
{required ? ' *' : null}
9898
</>}
9999
</FormLabel>
@@ -131,9 +131,12 @@ export const WidgetMarkdownEditor: React.ComponentType<WidgetProps & WithScalarV
131131
preview={preview}
132132
refWarningBox={refWarningBox}
133133
CodeMirror={CustomCodeMirror}
134+
codeMirrorProps={{
135+
extensions: extensions,
136+
dense: Boolean(schema.getIn(['view', 'dense'])),
137+
}}
134138
ViewerBox={ViewerBoxRouter}
135139
onChange={readOnly ? undefined : handleOnChange}
136-
extensions={extensions}
137140
textValue={textValue}
138141
bigSize={bigSize}
139142
processing={processing}

apps/demo/src/components/CustomWidgets/WidgetMarkdownViewer.tsx

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -1,15 +1,15 @@
11
import { ContentParser } from '@content-ui/md/parser/ContentParser'
2-
import { UIMetaReadContextType } from '@ui-schema/ui-schema/UIMetaReadContext'
2+
import { UIMetaReadContextType } from '@ui-schema/react/UIMetaReadContext'
3+
import { TranslateTitle, WidgetProps } from '@ui-schema/react'
34
import React from 'react'
4-
import { TransTitle, WidgetProps, WithScalarValue } from '@ui-schema/ui-schema'
55
import Box from '@mui/material/Box'
66
import FormLabel from '@mui/material/FormLabel'
77
import { ValidityHelperText } from '@ui-schema/ds-material/Component/LocaleHelperText'
88
import { ViewerBoxRouter } from '@content-ui/md-mui/ViewerBoxRouter'
99
import { ViewerFromText } from '@content-ui/react/ViewerFromText'
1010
import { SettingsProvider } from '@content-ui/react/LeafSettings'
1111

12-
export const WidgetMarkdownViewer: React.ComponentType<WidgetProps & WithScalarValue & UIMetaReadContextType> = (
12+
export const WidgetMarkdownViewer: React.ComponentType<WidgetProps & UIMetaReadContextType> = (
1313
{
1414
storeKeys, schema, value, readActive, readDense,
1515
valid, required, errors, showValidity,
@@ -23,7 +23,7 @@ export const WidgetMarkdownViewer: React.ComponentType<WidgetProps & WithScalarV
2323
<Box mb={0.5}>
2424
<FormLabel error={(!valid && showValidity)}>
2525
{hideTitle ? null : <>
26-
<TransTitle storeKeys={storeKeys} schema={schema}/>
26+
<TranslateTitle storeKeys={storeKeys} schema={schema}/>
2727
{required ? ' *' : null}
2828
{readOnly ? <em style={{paddingLeft: 3}}>ro</em> : null}
2929
</>}

apps/demo/src/components/CustomWidgets/WidgetPickers.tsx

Lines changed: 0 additions & 94 deletions
This file was deleted.

0 commit comments

Comments
 (0)