ywana-core8 0.0.807 → 0.0.808

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.807",
3
+ "version": "0.0.808",
4
4
  "description": "ywana-core8",
5
5
  "homepage": "https://ywana.github.io/workspace",
6
6
  "author": "Ernesto Roldan Garcia",
@@ -23,7 +23,7 @@ export const CollectionPage = (props) => {
23
23
  canFilter = false, canAdd = false, canDelete = false, searchBy, addValidator,
24
24
  autosave = false, delay = 1000, patch = false, versioning = false,
25
25
  groupBy, levels, sorter, namer,
26
- editor, editorTitle, editorActions,
26
+ editor, editorTitle, editorActions, editValidator,
27
27
  listItemRenderer,
28
28
  filters,
29
29
  footer,
@@ -84,7 +84,7 @@ export const CollectionPage = (props) => {
84
84
  {levels ? <CollectionTree schema={schema} icon={icon} levels={levels} onSelect={onSelect} sorter={sorter} searchBy={searchBy} namer={namer} /> : <CollectionList groupBy={groupBy} onSelect={onSelect} searchBy={searchBy} itemRenderer={listItemRenderer} sorter={sorter} />}
85
85
  </menu>
86
86
  <main key={id} className={`collection-page ${className}`}>
87
- <CollectionEditor icon={icon} schema={schema} layout={editor} autosave={autosave} delay={delay} canDelete={canDelete} onReload={reloadSelection} patch={patch} onChange={onChange} actions={editorActions} title={editorTitle} />
87
+ <CollectionEditor icon={icon} schema={schema} layout={editor} autosave={autosave} delay={delay} canDelete={canDelete} onReload={reloadSelection} patch={patch} onChange={onChange} actions={editorActions} title={editorTitle} validator={editValidator} />
88
88
  {children ? <article>{children}</article> : null}
89
89
  <footer>
90
90
  {footer}
@@ -356,7 +356,7 @@ const CollectionEditor = (props) => {
356
356
  const site = useContext(SiteContext)
357
357
  const [pageContext, setPageContext] = useContext(PageContext)
358
358
  const { selected } = pageContext
359
- const { icon, title, schema, layout, autosave = false, delay = 1000, canDelete, onReload, onChange, patch = false, actions } = props
359
+ const { icon, title, schema, layout, autosave = false, delay = 1000, canDelete, onReload, onChange, patch = false, actions, validator } = props
360
360
  const timer = useRef(null)
361
361
  const [form, setForm] = useState(selected)
362
362
 
@@ -392,8 +392,9 @@ const CollectionEditor = (props) => {
392
392
  }
393
393
 
394
394
  function canSave() {
395
- const can = !equal(form, selected)
396
- return can
395
+ const hasChanged = !equal(form, selected)
396
+ const isValid = validator ? validator(form) : true
397
+ return hasChanged && isValid
397
398
  }
398
399
 
399
400
  async function save() {