searching users

This commit is contained in:
wrzesinski-hubert
2020-12-05 00:16:59 +01:00
parent ff9db515bc
commit 61b0a6f464
5 changed files with 95 additions and 7 deletions

View File

@ -1,6 +1,6 @@
import React, { useState, useContext, useEffect, MouseEvent, useMemo } from 'react';
import { coursesContext } from '../contexts/CoursesProvider';
import { Course } from '../types';
import { Course, User } from '../types';
import styled from 'styled-components';
const DropdownContainer = styled.div`
@ -48,9 +48,10 @@ interface DropdownProps {
}
export const Dropdown = ({ open, input, handleCloseDropdown }: DropdownProps) => {
const { courses, selectBasketNames, addCourseToBasket } = useContext(coursesContext)!;
const { courses, users, selectBasketNames, addCourseToBasket } = useContext(coursesContext)!;
const basketNames = useMemo(() => selectBasketNames(), [selectBasketNames]);
const [filteredCourses, setFilteredCourses] = useState<Array<Course>>([]);
const [filteredUsers, setFilteredUsers] = useState<Array<User>>([]);
const onCourseClick = (event: MouseEvent) => {
const target = event.currentTarget;
@ -81,15 +82,41 @@ export const Dropdown = ({ open, input, handleCloseDropdown }: DropdownProps) =>
filterCourses(input);
}, [basketNames, courses, input]);
useEffect(() => {
const filterUsers = (input: string) => {
const filteredUsers = users.filter(
({ name,surname }) =>
(name+surname)
.toLowerCase()
.normalize('NFD')
.replace(/[\u0300-\u036f]/g, '')
.includes(
input
.toLowerCase()
.normalize('NFD')
.replace(/[\u0300-\u036f]/g, ''),
),
);
setFilteredUsers(filteredUsers);
};
filterUsers(input);
}, [users, input]);
return (
<DropdownContainer>
{open && (
<>
{filteredUsers.map(({ name,surname, id }, index) => (
<CourseContainer key={index} id={id.toString()}>
<p>{name} {surname} </p>
</CourseContainer>
))}
{/*
{filteredCourses.map(({ name, id }, index) => (
<CourseContainer key={index} id={id.toString()} onClick={onCourseClick}>
<p>{name} </p>
</CourseContainer>
))}
))} */}
</>
)}
</DropdownContainer>

View File

@ -159,7 +159,7 @@ export default function ({ handleTransfer }: TopbarProps) {
<FlexboxColumn>
<ClickAwayListener onClickAway={handleCloseDropdown}>
<Flexbox>
{/* <SelectMenu /> */}
<SelectMenu />
<InputWrapper>
{/* <SelectSearch value={value} onChange={Change}>