Proyectos de Subversion LeadersLinked - SPA

Rev

Rev 3664 | Rev 3667 | 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';
2
 
3661 stevensc 3
import { useKnowledges } from '@knowledges/hooks';
3452 stevensc 4
 
3664 stevensc 5
import { FilterSelect, FiltersRow, Grid, PageHeader, SearchBar, Spinner } from '@shared/components';
3462 stevensc 6
import { KnowledgeCard } from '@knowledges/components';
3665 stevensc 7
import { Button } from '@mui/material';
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,
3665 stevensc 22
    editKnowledge,
23
    clearFilters
3452 stevensc 24
  } = useKnowledges();
25
 
26
  return (
27
    <>
28
      <PageHeader
3661 stevensc 29
        title='Área de conocimiento'
30
        onAdd={addUrl ? () => addKnowledge(addUrl) : null}
31
        labelAdd='Agregar conocimiento'
3452 stevensc 32
      />
33
 
3664 stevensc 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} />
3665 stevensc 42
        <Button onClick={clearFilters}>Limpiar filtros</Button>
3664 stevensc 43
      </FiltersRow>
3452 stevensc 44
 
3459 stevensc 45
      {loading ? (
46
        <Spinner />
47
      ) : (
3462 stevensc 48
        <Grid
49
          items={knowledges}
3661 stevensc 50
          emptyMessage='No hay conocimientos para mostrar'
3462 stevensc 51
          renderItem={(knowledge) => (
3665 stevensc 52
            <KnowledgeCard
53
              key={knowledge.link_view}
54
              knowledge={knowledge}
55
              onEdit={editKnowledge}
56
              onDelete={deleteKnowledge}
57
            />
3462 stevensc 58
          )}
3661 stevensc 59
          renderFooter={() => <div ref={elementRef} />}
3462 stevensc 60
        />
3459 stevensc 61
      )}
3452 stevensc 62
    </>
63
  );
64
}