ywana-core8 0.0.530 → 0.0.533

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.530",
3
+ "version": "0.0.533",
4
4
  "description": "ywana-core8",
5
5
  "homepage": "https://ywana.github.io/workspace",
6
6
  "author": "Ernesto Roldan Garcia",
@@ -20,6 +20,11 @@ menu.collection-page>main {
20
20
  overflow:auto;
21
21
  }
22
22
 
23
+ menu.collection-page>main>.search-box {
24
+ border-top: dotted 1px var(--divider-color);
25
+ padding: 0 1rem 1rem 1rem;
26
+ }
27
+
23
28
  main.collection-page {
24
29
  display: flex;
25
30
  flex-direction: column;
@@ -2,7 +2,7 @@ import equal from 'deep-equal'
2
2
  import React, { Fragment, useContext, useEffect, useRef, useState, useMemo } from 'react'
3
3
  import { HTTPClient, Session } from '../http'
4
4
  import { PageContext } from '../site'
5
- import { Button, Header, Icon, List, Menu, MenuIcon, MenuItem, Text, Tree, TreeItem, TreeNode } from '../html'
5
+ import { Button, Header, Icon, List, Menu, MenuIcon, MenuItem, Text, Tree, TreeItem, TreeNode, TextField } from '../html'
6
6
  import { Content, TYPES } from './ContentType'
7
7
  import { ContentEditor, TabbedContentEditor, TreededContentEditor } from './ContentEditor'
8
8
  import { CreateContentDialog } from './CreateContentDialog'
@@ -169,6 +169,7 @@ export const CollectionTree = (props) => {
169
169
  const { icon="description", levels, onSelect, sorter } = props
170
170
  const [pageContext, setPageContext] = useContext(PageContext)
171
171
  const { all = [] } = pageContext
172
+ const [ filter, setFilter] = useState()
172
173
 
173
174
  function clear() {
174
175
  pageContext.clear()
@@ -182,6 +183,10 @@ export const CollectionTree = (props) => {
182
183
  if (onSelect) onSelect(id)
183
184
  }
184
185
 
186
+ function search(id, value) {
187
+ setFilter(value)
188
+ }
189
+
185
190
  function group(items, by) {
186
191
  return items.reduce((nodes, field) => {
187
192
  let node = nodes.find(n => n.name === field[by])
@@ -214,12 +219,16 @@ export const CollectionTree = (props) => {
214
219
  }
215
220
 
216
221
  const items = sorter ? sorter(all) : all
217
- const nodes = generateNodes(levels, items)
222
+ const items2 = filter ? items.filter(item => item.name.toUpperCase().indexOf(filter.toUpperCase())>= 0) : items
223
+ const nodes = generateNodes(levels, items2)
218
224
  return (
219
225
  <main>
220
226
  <Tree>
221
227
  {renderNodes(nodes)}
222
228
  </Tree>
229
+ <div className='search-box'>
230
+ <TextField icon="search" label="Buscar" onChange={search} outlined className="search-box"/>
231
+ </div>
223
232
  </main>
224
233
  )
225
234
  }
@@ -181,8 +181,6 @@ export const FieldEditor = ({ field, onChange, content, outlined = false }) => {
181
181
  return null
182
182
  } else {
183
183
  switch (type) {
184
- case TYPES.IMAGE:
185
- return <div className='photo'><img url={value} /></div>
186
184
  case TYPES.ENTITY:
187
185
  return <EntityEditor field={field} value={value1} onChange={change} />
188
186
  case TYPES.STRING:
@@ -272,10 +270,17 @@ export const StringEditor = ({ field, value = '', onChange, content, outlined })
272
270
 
273
271
  function renderFormat(format, options) {
274
272
  switch (format) {
273
+ case FORMATS.IMG:
274
+ return (
275
+ <div className='img-field'>
276
+ <img src={value} />
277
+ <TextField outlined={outlined} id={id} label={label} value={value} onChange={change} readOnly={!editable} />
278
+ </div>
279
+ )
275
280
  case FORMATS.COLOR: return <ColorField id={id} onChange={change} value={value} />
276
281
  case FORMATS.HTML: return <Editor id={id} value={value} onChange={change} content={content} />
277
282
  case FORMATS.DATE: return <TextField outlined={outlined} id={id} type="date" label={label} value={value} onChange={change} readOnly={!editable} />
278
- case FORMATS.DATERANGE: return <DateRange id={id} label={label} value={value} onChange={change} readOnly={!editable}/>
283
+ case FORMATS.DATERANGE: return <DateRange id={id} label={label} value={value} onChange={change} readOnly={!editable} />
279
284
  case FORMATS.TOKENS:
280
285
  return <TokenField id={id} label={label} onChange={change} options={buildOptions()} tokens={value} />
281
286
  default: