Proyectos de Subversion LeadersLinked - SPA

Rev

Rev 3661 | Rev 3664 | 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
 
3661 stevensc 6
import { Grid, PageHeader, SearchBar, Select, 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
 
3661 stevensc 33
      <Select
34
        options={categoriesWithEdition}
35
        value={searchCategory}
36
        onChange={changeCategory}
37
        placeholder='Filtrar por categoría'
38
      />
3452 stevensc 39
 
3661 stevensc 40
      <SearchBar onChange={searchKnowledge} value={searchTerm} />
41
 
3459 stevensc 42
      {loading ? (
43
        <Spinner />
44
      ) : (
3462 stevensc 45
        <Grid
46
          items={knowledges}
3661 stevensc 47
          emptyMessage='No hay conocimientos para mostrar'
3462 stevensc 48
          renderItem={(knowledge) => (
3661 stevensc 49
            <Link to={knowledge.link_view}>
50
              <KnowledgeCard
51
                key={knowledge.link_view}
52
                knowledge={knowledge}
53
                onEdit={editKnowledge}
54
                onDelete={deleteKnowledge}
55
              />
56
            </Link>
3462 stevensc 57
          )}
3661 stevensc 58
          renderFooter={() => <div ref={elementRef} />}
3462 stevensc 59
        />
3459 stevensc 60
      )}
3452 stevensc 61
    </>
62
  );
63
}