Proyectos de Subversion LeadersLinked - SPA

Rev

Rev 3662 | Rev 3665 | Ir a la última revisión | | Comparar con el anterior | Ultima modificación | Ver Log |

Rev Autor Línea Nro. Línea
3452 stevensc 1
import React from 'react';
3661 stevensc 2
import { Link } from 'react-router-dom';
3452 stevensc 3
 
3661 stevensc 4
import { useKnowledges } from '@knowledges/hooks';
3452 stevensc 5
 
3664 stevensc 6
import { FilterSelect, FiltersRow, Grid, PageHeader, SearchBar, Spinner } from '@shared/components';
3462 stevensc 7
import { KnowledgeCard } from '@knowledges/components';
3452 stevensc 8
 
9
export default function KnowledgesPage() {
10
  const {
3661 stevensc 11
    knowledges,
3452 stevensc 12
    loading,
3661 stevensc 13
    searchTerm,
14
    addUrl,
15
    categoriesWithEdition,
3662 stevensc 16
    searchCategory,
17
    searchKnowledge,
3661 stevensc 18
    changeCategory,
19
    elementRef,
3452 stevensc 20
    addKnowledge,
3661 stevensc 21
    deleteKnowledge,
22
    editKnowledge
3452 stevensc 23
  } = useKnowledges();
24
 
25
  return (
26
    <>
27
      <PageHeader
3661 stevensc 28
        title='Área de conocimiento'
29
        onAdd={addUrl ? () => addKnowledge(addUrl) : null}
30
        labelAdd='Agregar conocimiento'
3452 stevensc 31
      />
32
 
3664 stevensc 33
      <FiltersRow>
34
        <FilterSelect
35
          options={categoriesWithEdition}
36
          value={searchCategory}
37
          onChange={changeCategory}
38
          placeholder='Filtrar por categoría'
39
        />
40
        <SearchBar onChange={searchKnowledge} value={searchTerm} />
41
      </FiltersRow>
3452 stevensc 42
 
3459 stevensc 43
      {loading ? (
44
        <Spinner />
45
      ) : (
3462 stevensc 46
        <Grid
47
          items={knowledges}
3661 stevensc 48
          emptyMessage='No hay conocimientos para mostrar'
3462 stevensc 49
          renderItem={(knowledge) => (
3661 stevensc 50
            <Link to={knowledge.link_view}>
51
              <KnowledgeCard
52
                key={knowledge.link_view}
53
                knowledge={knowledge}
54
                onEdit={editKnowledge}
55
                onDelete={deleteKnowledge}
56
              />
57
            </Link>
3462 stevensc 58
          )}
3661 stevensc 59
          renderFooter={() => <div ref={elementRef} />}
3462 stevensc 60
        />
3459 stevensc 61
      )}
3452 stevensc 62
    </>
63
  );
64
}