forked from polka_billy/porridger
Added announcement disposal:
Added ann details button Added modal shown on its click Moved trashbox selection there Added trashboxes mock while testing in restricted area
This commit is contained in:
@ -4,11 +4,11 @@ import { MapContainer, TileLayer } from 'react-leaflet'
|
||||
import { latLng } from 'leaflet'
|
||||
import { useNavigate } from 'react-router-dom'
|
||||
|
||||
import { ClickHandler, LocationMarker, TrashboxMarkers } from '../components'
|
||||
import { useAddAnnouncement, useTrashboxes } from '../hooks/api'
|
||||
import { ClickHandler, LocationMarker } from '../components'
|
||||
import { useAddAnnouncement } from '../hooks/api'
|
||||
import { categories, categoryNames } from '../assets/category'
|
||||
import { stations, lines, lineNames } from '../assets/metro'
|
||||
import { fallbackError, gotError, gotResponse } from '../hooks/useFetch'
|
||||
import { fallbackError, gotResponse } from '../hooks/useFetch'
|
||||
import { useOsmAddresses } from '../hooks/api'
|
||||
import CardLayout from '../components/CardLayout'
|
||||
|
||||
@ -22,9 +22,6 @@ const styles = {
|
||||
function AddPage() {
|
||||
const [addressPosition, setAddressPosition] = useState(latLng(59.972, 30.3227))
|
||||
|
||||
const trashboxes = useTrashboxes(addressPosition)
|
||||
const [selectedTrashbox, setSelectedTrashbox] = useState({ index: -1, category: '' })
|
||||
|
||||
const address = useOsmAddresses(addressPosition)
|
||||
|
||||
const { handleAdd, addButton } = useAddAnnouncement()
|
||||
@ -117,6 +114,7 @@ function AddPage() {
|
||||
capture='environment'
|
||||
/>
|
||||
</Form.Group>
|
||||
|
||||
<Form.Group className='mb-3' controlId='metro'>
|
||||
<Form.Label>
|
||||
Станция метро
|
||||
@ -136,50 +134,6 @@ function AddPage() {
|
||||
</Form.Select>
|
||||
</Form.Group>
|
||||
|
||||
<Form.Group className='mb-3' controlId='trashbox'>
|
||||
<Form.Label>Пункт сбора мусора</Form.Label>
|
||||
<div className='mb-3'>
|
||||
{gotResponse(trashboxes)
|
||||
? (
|
||||
gotError(trashboxes) ? (
|
||||
<p
|
||||
style={styles.map}
|
||||
className='text-danger'
|
||||
>{trashboxes.error}</p>
|
||||
) : (
|
||||
<MapContainer
|
||||
scrollWheelZoom={false}
|
||||
style={styles.map}
|
||||
center={addressPosition}
|
||||
zoom={13}
|
||||
className=''
|
||||
>
|
||||
<TileLayer
|
||||
attribution='© <a href="https://www.openstreetmap.org/copyright">OpenStreetMap</a> contributors'
|
||||
url='https://{s}.tile.openstreetmap.org/{z}/{x}/{y}.png'
|
||||
/>
|
||||
<TrashboxMarkers
|
||||
trashboxes={trashboxes.data}
|
||||
selectTrashbox={setSelectedTrashbox}
|
||||
/>
|
||||
</MapContainer>
|
||||
)
|
||||
) : (
|
||||
<div style={styles.map}>
|
||||
<p>Загрузка...</p>
|
||||
</div>
|
||||
)
|
||||
}
|
||||
</div>
|
||||
{gotResponse(trashboxes) && !gotError(trashboxes) && selectedTrashbox.index > -1 ? (
|
||||
<p>Выбран пункт сбора мусора на {
|
||||
trashboxes.data[selectedTrashbox.index].Address
|
||||
} с категорией {selectedTrashbox.category}</p>
|
||||
) : (
|
||||
<p>Выберите пунк сбора мусора и категорию</p>
|
||||
)}
|
||||
</Form.Group>
|
||||
|
||||
<Button variant='success' type='submit' {...addButton} />
|
||||
</Form>
|
||||
</CardLayout>
|
||||
|
Reference in New Issue
Block a user