- Published on
React Context Hook For Search Values
To implement a simple on-page search functionality
import React, { useState, useContext, createContext } from 'react'
const searchContext = createContext()
export function ProvideSearch({ children }) {
const search = useProvideSearch()
return <searchContext.Provider value={search}>{children}</searchContext.Provider>
}
export const useSearch = () => {
return useContext(searchContext)
}
function useProvideSearch() {
const [search, setSearch] = useState('')
const onSearch = (e) => {
e.preventDefault()
const searchValue = e.target.value
const valueWithoutSlash = searchValue.replace('/', '')
setSearch(valueWithoutSlash)
return valueWithoutSlash
}
return {
onSearch,
search,
}
}