Proyectos de Subversion LeadersLinked - SPA

Rev

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

Rev Autor Línea Nro. Línea
3619 stevensc 1
import React, { useEffect, useState } from 'react';
2
 
3
import { useDebounce } from '@hooks';
4
import { useAlert, useApi } from '@shared/hooks';
5
import { searchUsers } from '@shared/services';
6
 
7
import { List, ListItem, SearchBar, Spinner } from '@shared/components';
8
 
9
export const SearchUserModal = ({ onSelect }) => {
10
  const [search, setSearch] = useState('');
11
  const debouncedSearch = useDebounce(search, 500);
12
 
13
  const { showError } = useAlert();
14
 
15
  const { data, loading, execute } = useApi(searchUsers, {
16
    onError: (error) => showError(error.message)
17
  });
18
 
19
  useEffect(() => {
20
    execute(debouncedSearch);
3624 stevensc 21
  }, [debouncedSearch]);
3619 stevensc 22
 
23
  return (
24
    <>
25
      <SearchBar
26
        label='Busca un usuario'
27
        placeholder='Escribe el nombre del usuario'
28
        onChange={setSearch}
29
        value={search}
30
      />
3626 stevensc 31
      {loading ? (
32
        <Spinner />
33
      ) : (
34
        <List
35
          items={data}
36
          keyExtractor={(item) => item.uuid}
37
          renderItem={(item) => (
38
            <ListItem title={item.name} image={item.image} onClick={() => onSelect(item)} />
39
          )}
40
          emptyMessage='No se encontraron usuarios'
41
          style={{ marginTop: '1rem' }}
42
        />
43
      )}
3619 stevensc 44
    </>
45
  );
46
};