UNPKG

@newrelic/gatsby-theme-newrelic

Version:

[![Community Project header](https://github.com/newrelic/opensource-website/raw/master/src/images/categories/Community_Project.png)](https://opensource.newrelic.com/oss-category/#community-project)

31 lines (24 loc) 773 B
import React, { useMemo } from 'react'; import PropTypes from 'prop-types'; import NavigationContext from './NavigationContext'; const sanitizeSearchTerm = (searchTerm) => searchTerm?.replace(/[.*+?^${}()|[\]\\]/g, '\\$&').trim(); const Navigation = ({ className, children, searchTerm }) => { const value = useMemo( () => ({ searchTerm: sanitizeSearchTerm(searchTerm) }), [searchTerm] ); return ( <NavigationContext.Provider value={value}> <nav role="navigation" aria-label="Navigation" className={className}> {children} </nav> </NavigationContext.Provider> ); }; Navigation.propTypes = { children: PropTypes.node.isRequired, className: PropTypes.string, searchTerm: PropTypes.string, }; export default Navigation;