Header.js 1020 B

1234567891011121314151617181920212223242526272829
  1. import './Header.css';
  2. import logo from 'src/chad-logo-256.png';
  3. import { BaseLink, useRoute } from 'react-router5'
  4. import Settings from '../Settings';
  5. import UserInfo from '../UserInfo';
  6. function handleSearch(e, router) {
  7. if (e.charCode === 13) router.navigate('browser', {filter: e.target.value});
  8. }
  9. export default function Header({settings, dispatch}) {
  10. const { router } = useRoute()
  11. const { name, params } = router.getState();
  12. return (
  13. <header className="Header">
  14. <BaseLink router={router} routeName="browser" routeOptions={{ reload: true }}>
  15. <img src={logo} className="Header-logo" alt="Chad music" />
  16. </BaseLink>
  17. <h1 className="Header-title">Chad Music</h1>
  18. <input className="Header-search" type="text"
  19. placeholder="Search albums"
  20. defaultValue={name === "browser" ? params.filter : ''}
  21. onKeyPress={(e) => handleSearch(e, router)}/>
  22. <Settings state={settings} dispatch={dispatch} />
  23. <UserInfo />
  24. </header>
  25. );
  26. }