Proyectos de Subversion LeadersLinked - SPA

Rev

Rev 3667 | | Comparar con el anterior | Ultima modificación | Ver Log |

Rev Autor Línea Nro. Línea
3667 stevensc 1
import React from 'react';
3674 stevensc 2
import { Box, Button } from '@mui/material';
3667 stevensc 3
 
4
import { useKnowledges } from '@knowledges/hooks';
5
 
6
import { FilterSelect, FiltersRow, Grid, PageHeader, SearchBar, Spinner } from '@shared/components';
7
import { KnowledgeCard } from '@knowledges/components';
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
 
3674 stevensc 45
      <Grid
46
        items={knowledges}
47
        emptyMessage='No hay conocimientos para mostrar'
48
        renderItem={(knowledge, index) => (
49
          <Box ref={index === knowledges.length - 1 ? elementRef : null}>
3667 stevensc 50
            <KnowledgeCard
51
              key={knowledge.link_view}
52
              knowledge={knowledge}
53
              onEdit={editKnowledge}
54
              onDelete={deleteKnowledge}
55
            />
3674 stevensc 56
          </Box>
57
        )}
58
        renderFooter={() => loading && <Spinner />}
59
      />
3667 stevensc 60
    </>
61
  );
62
}