Skip to content
Snippets Groups Projects

Greg 61 Add search field

Merged Andreas Ellewsen requested to merge GREG-61-add-role into master
3 files
+ 44
1
Compare changes
  • Side-by-side
  • Inline
Files
3
import { Button, InputAdornment, TextField } from '@mui/material'
import { Button, InputAdornment, MenuItem, TextField } from '@mui/material'
import Page from 'components/page'
import Page from 'components/page'
import { Link } from 'react-router-dom'
import { Link } from 'react-router-dom'
import SponsorGuestButtons from 'routes/components/sponsorGuestButtons'
import SponsorGuestButtons from 'routes/components/sponsorGuestButtons'
import SearchIcon from '@mui/icons-material/Search'
import SearchIcon from '@mui/icons-material/Search'
import { useTranslation } from 'react-i18next'
import { useTranslation } from 'react-i18next'
 
import { debounce } from 'lodash'
 
import { useState } from 'react'
 
 
type Guest = {
 
first: string
 
last: string
 
pid: string
 
}
function FrontPage() {
function FrontPage() {
const [t] = useTranslation('common')
const [t] = useTranslation('common')
 
const [guests, setGuests] = useState<Guest[]>([])
 
 
const getGuests = async () => {
 
console.log('search not implemented')
 
setGuests([])
 
}
return (
return (
<Page>
<Page>
<SponsorGuestButtons registerNewGuestActive />
<SponsorGuestButtons registerNewGuestActive />
@@ -22,7 +36,20 @@ function FrontPage() {
@@ -22,7 +36,20 @@ function FrontPage() {
}}
}}
fullWidth
fullWidth
placeholder="Mobile phone, e-mail"
placeholder="Mobile phone, e-mail"
 
onChange={debounce(getGuests, 600)}
/>
/>
 
{guests ? (
 
guests.map((guest) => {
 
const guestTo = `/sponsor/guest/${guest.pid}`
 
return (
 
<MenuItem component={Link} to={guestTo}>
 
{guest.first} {guest.last}
 
</MenuItem>
 
)
 
})
 
) : (
 
<></>
 
)}
<Button variant="contained" component={Link} to="register/new">
<Button variant="contained" component={Link} to="register/new">
{t('register.registerButtonText')}
{t('register.registerButtonText')}
</Button>
</Button>
Loading