diff --git a/package.json b/package.json index 5385ec27..9c77b397 100644 --- a/package.json +++ b/package.json @@ -21,6 +21,7 @@ }, "dependencies": { "@next/font": "^13.1.1", + "@orama/orama": "^2.0.0-beta.10", "@tailwindcss/line-clamp": "^0.4.2", "@tailwindcss/typography": "^0.5.8", "autoprefixer": "^10.4.13", diff --git a/src/components/ActiveMembers.js b/src/components/ActiveMembers.js index 2991915f..f0dd4c73 100644 --- a/src/components/ActiveMembers.js +++ b/src/components/ActiveMembers.js @@ -1,24 +1,38 @@ -import React, { useState } from "react" +import React, { useContext, useState } from "react" + +import { OramaContext } from "context/OramaProvider" import GetActivemembers from "components/GetActivemembers" import Users from "components/Users" // import contributors data import activeMembers from "data/activemembers" import Title from "components/Title" -import { FilterUsers } from "utils/filterUsers" const ActiveMembers = () => { + const { searchDatabase } = useContext(OramaContext) + // state for currentUsers const [currentUsers, setCurrentUsers] = useState(activeMembers) - // filter handler - const searchHandler = (event) => { + // Search handler + const searchHandler = async(event) => { event.preventDefault() - const filterdUsers = FilterUsers( - activeMembers, - event.target.value, - ) - setCurrentUsers(filterdUsers) + + const value = event.target.value + + try { + const results = await searchDatabase( + value + ? { + term: value, + } + : null, + ) + + setCurrentUsers(results) + } catch (error) { + setCurrentUsers([]) + } } const [tab] = useState("Active Members") @@ -50,17 +64,21 @@ const ActiveMembers = () => { - {currentUsers.length - ?
User does not exist!
} + )} +User does not exist!
+ )} ) diff --git a/src/components/Staff.js b/src/components/Staff.js index 97f12d2a..1f0d3651 100644 --- a/src/components/Staff.js +++ b/src/components/Staff.js @@ -1,23 +1,41 @@ -import React, { useState } from "react" +import React, { useContext, useState } from "react" +import { OramaContext } from "context/OramaProvider" + import GetStaff from "components/GetStaff" import Users from "components/Users" // import staff data import staff from "data/staff" import Title from "components/Title" -import { FilterUsersByNameAndDesc } from "utils/filterUsers" const Staff = () => { + const { searchDatabase } = useContext(OramaContext) + const [tab] = useState("Staff") // state for currentUsers const [currentUsers, setCurrentUsers] = useState(staff) - // filter handler - const searchHandler = (event) => { + // Search handler + const searchHandler = async(event) => { event.preventDefault() - const filterdUsers = FilterUsersByNameAndDesc(staff, event.target.value) - setCurrentUsers(filterdUsers) + + const value = event.target.value + + try { + const results = await searchDatabase( + value + ? { + term: value, + } + : null, + ) + + setCurrentUsers(results) + } catch (error) { + setCurrentUsers([]) + } } + return (