Proyectos de Subversion LeadersLinked - SPA

Rev

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

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