Proyectos de Subversion LeadersLinked - SPA

Rev

Rev 3665 | Ir a la última revisión | Mostrar el archivo completo | | | Autoría | Ultima modificación | Ver Log |

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