ywana-core8 0.0.667 → 0.0.669
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/index.cjs +16 -3
- package/dist/index.cjs.map +1 -1
- package/dist/index.modern.js +16 -3
- package/dist/index.modern.js.map +1 -1
- package/dist/index.umd.js +16 -3
- package/dist/index.umd.js.map +1 -1
- package/package.json +1 -1
- package/src/domain/CollectionPage.js +10 -7
package/package.json
CHANGED
@@ -19,18 +19,17 @@ export const CollectionPage = (props) => {
|
|
19
19
|
id = "collection",
|
20
20
|
icon, title, name = "Collection 1", className,
|
21
21
|
schema, url, field, host, page, fetching = false,
|
22
|
-
actions = [], onSelect,
|
22
|
+
actions = [], onSelect, onChange,
|
23
23
|
canFilter = false, canAdd = false, canDelete = false, searchBy, addValidator,
|
24
|
-
autosave = false, delay = 1000, patch = false,
|
24
|
+
autosave = false, delay = 1000, patch = false, versioning = false,
|
25
25
|
groupBy, levels, sorter, namer,
|
26
26
|
editor,
|
27
27
|
footer,
|
28
28
|
children
|
29
29
|
} = props
|
30
30
|
|
31
|
+
const context = CollectionContext(url, field, host, page, fetching, versioning)
|
31
32
|
const [pageContext, setPageContext] = useContext(PageContext)
|
32
|
-
const context = CollectionContext(url, field, host, page, fetching)
|
33
|
-
|
34
33
|
const { all } = pageContext
|
35
34
|
|
36
35
|
useEffect(async () => {
|
@@ -79,7 +78,7 @@ export const CollectionPage = (props) => {
|
|
79
78
|
{levels ? <CollectionTree schema={schema} icon={icon} levels={levels} onSelect={onSelect} sorter={sorter} searchBy={searchBy} namer={namer}/> : <CollectionList groupBy={groupBy} onSelect={onSelect} searchBy={searchBy} />}
|
80
79
|
</menu>
|
81
80
|
<main key={id} className={`collection-page ${className}`}>
|
82
|
-
<CollectionEditor icon={icon} schema={schema} layout={editor} autosave={autosave} delay={delay} canDelete={canDelete} onReload={reloadSelection} patch={patch} />
|
81
|
+
<CollectionEditor icon={icon} schema={schema} layout={editor} autosave={autosave} delay={delay} canDelete={canDelete} onReload={reloadSelection} patch={patch} onChange={onChange} />
|
83
82
|
{children ? <article>{children}</article> : null}
|
84
83
|
<footer>
|
85
84
|
{footer}
|
@@ -318,7 +317,7 @@ export const CollectionTree = (props) => {
|
|
318
317
|
const CollectionEditor = (props) => {
|
319
318
|
const [pageContext, setPageContext] = useContext(PageContext)
|
320
319
|
const { selected } = pageContext
|
321
|
-
const { icon, schema, layout, autosave = false, delay = 1000, canDelete, onReload, patch = false } = props
|
320
|
+
const { icon, schema, layout, autosave = false, delay = 1000, canDelete, onReload, onChange, patch = false } = props
|
322
321
|
const timer = useRef(null)
|
323
322
|
const [form, setForm] = useState(selected)
|
324
323
|
|
@@ -361,6 +360,7 @@ const CollectionEditor = (props) => {
|
|
361
360
|
} else {
|
362
361
|
await pageContext.update(form)
|
363
362
|
}
|
363
|
+
if (onChange) onChange(form)
|
364
364
|
setPageContext(Object.assign({}, pageContext))
|
365
365
|
}
|
366
366
|
|
@@ -392,7 +392,7 @@ const CollectionEditor = (props) => {
|
|
392
392
|
/**
|
393
393
|
* Collection Context
|
394
394
|
*/
|
395
|
-
export const CollectionContext = (url, field, host, page, fetching) => {
|
395
|
+
export const CollectionContext = (url, field, host, page, fetching, versioning = false) => {
|
396
396
|
|
397
397
|
const API = CollectionAPI(url, host)
|
398
398
|
|
@@ -446,6 +446,7 @@ export const CollectionContext = (url, field, host, page, fetching) => {
|
|
446
446
|
|
447
447
|
async create(form) {
|
448
448
|
try {
|
449
|
+
if (versioning) form.version = 1
|
449
450
|
await API.create(form);
|
450
451
|
await this.load();
|
451
452
|
} catch (error) {
|
@@ -456,6 +457,7 @@ export const CollectionContext = (url, field, host, page, fetching) => {
|
|
456
457
|
|
457
458
|
async update(form) {
|
458
459
|
try {
|
460
|
+
if (versioning) form.version = form.version ? form.version + 1 : 1
|
459
461
|
await API.update(form)
|
460
462
|
await this.load()
|
461
463
|
} catch (error) {
|
@@ -466,6 +468,7 @@ export const CollectionContext = (url, field, host, page, fetching) => {
|
|
466
468
|
|
467
469
|
async patch(id, form) {
|
468
470
|
try {
|
471
|
+
if (versioning) form.version = form.version ? form.version + 1 : 1
|
469
472
|
await API.patch(id, form)
|
470
473
|
await this.load()
|
471
474
|
} catch (error) {
|