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/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "ywana-core8",
3
- "version": "0.0.667",
3
+ "version": "0.0.669",
4
4
  "description": "ywana-core8",
5
5
  "homepage": "https://ywana.github.io/workspace",
6
6
  "author": "Ernesto Roldan Garcia",
@@ -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) {