feat(SearchBar): Add basic search bar component

This commit is contained in:
Nikurasu 2024-08-25 12:09:53 +02:00
parent 4e33174ebe
commit 9b9e9fa78e
Signed by: Nikurasu
GPG key ID: 9E7F14C03EF1F271
2 changed files with 34 additions and 1 deletions

View file

@ -0,0 +1,29 @@
import { InputAdornment, TextField } from "@mui/material";
import SearchIcon from '@mui/icons-material/Search';
import { useContext, useState } from "react";
import { urlbar } from "webextension-polyfill";
export default function SearchBar() {
const [searchTerm, setSearchTerm] = useState("")
const handleKeydown = (e: React.KeyboardEvent<HTMLDivElement>) => {
if (e.key === 'Enter') {
window.open(`https://www.google.com/search?udm=14&q=${encodeURIComponent(searchTerm)}`)
}
}
return (
<TextField
value={searchTerm}
onChange={(e) => setSearchTerm(e.target.value)}
onKeyDown={handleKeydown}
InputProps={{
endAdornment: (
<InputAdornment position="end">
<SearchIcon />
</InputAdornment>
)
}}
/>
)
}

View file

@ -8,6 +8,7 @@ import { CurrentPageContext } from '../shared/contexts/CurrentPageContext'
import SettingsPage from '../shared/components/settingsPage' import SettingsPage from '../shared/components/settingsPage'
import LinkList from '../shared/components/LinkList' import LinkList from '../shared/components/LinkList'
import AppSnackBar from '../shared/components/AppSnackBar' import AppSnackBar from '../shared/components/AppSnackBar'
import SearchBar from '../shared/components/SearchBar'
const useLocalStorage = (storageKey: string, fallbackState: any) => { const useLocalStorage = (storageKey: string, fallbackState: any) => {
const [value, setValue] = React.useState( const [value, setValue] = React.useState(
@ -29,7 +30,10 @@ function App() {
<MenuDrawer /> <MenuDrawer />
<Container sx={{ mt: 4, mb: 4 }} maxWidth="lg"> <Container sx={{ mt: 4, mb: 4 }} maxWidth="lg">
{currentPage === 'home' ? ( {currentPage === 'home' ? (
<>
<SearchBar />
<LinkList /> <LinkList />
</>
): null} ): null}
{currentPage === 'edit' ? ( {currentPage === 'edit' ? (
<SettingsPage /> <SettingsPage />