searching users
This commit is contained in:
@ -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>
|
||||
|
@ -159,7 +159,7 @@ export default function ({ handleTransfer }: TopbarProps) {
|
||||
<FlexboxColumn>
|
||||
<ClickAwayListener onClickAway={handleCloseDropdown}>
|
||||
<Flexbox>
|
||||
{/* <SelectMenu /> */}
|
||||
<SelectMenu />
|
||||
|
||||
<InputWrapper>
|
||||
{/* <SelectSearch value={value} onChange={Change}>
|
||||
|
Reference in New Issue
Block a user