diff options
author | Anton Tananaev <anton@traccar.org> | 2022-05-08 13:16:57 -0700 |
---|---|---|
committer | Anton Tananaev <anton@traccar.org> | 2022-05-08 13:16:57 -0700 |
commit | 2cd374bb9fa941d7e2a6fd8aa5079893a158c98f (patch) | |
tree | f4ee48130592fed5de25dce7af4ac0cbeb017680 /modern/src/EditItemView.js | |
parent | 2352071211b61c10fa5bf5736baaff7809d18bf0 (diff) | |
download | trackermap-web-2cd374bb9fa941d7e2a6fd8aa5079893a158c98f.tar.gz trackermap-web-2cd374bb9fa941d7e2a6fd8aa5079893a158c98f.tar.bz2 trackermap-web-2cd374bb9fa941d7e2a6fd8aa5079893a158c98f.zip |
Reorganize remaining files
Diffstat (limited to 'modern/src/EditItemView.js')
-rw-r--r-- | modern/src/EditItemView.js | 95 |
1 files changed, 0 insertions, 95 deletions
diff --git a/modern/src/EditItemView.js b/modern/src/EditItemView.js deleted file mode 100644 index 550369fc..00000000 --- a/modern/src/EditItemView.js +++ /dev/null @@ -1,95 +0,0 @@ -import React from 'react'; -import { useHistory, useParams } from 'react-router-dom'; -import { makeStyles } from '@material-ui/core/styles'; -import Container from '@material-ui/core/Container'; -import Button from '@material-ui/core/Button'; -import FormControl from '@material-ui/core/FormControl'; - -import { useEffectAsync } from './reactHelper'; -import OptionsLayout from './settings/OptionsLayout'; -import { useTranslation } from './LocalizationProvider'; - -const useStyles = makeStyles((theme) => ({ - container: { - marginTop: theme.spacing(2), - }, - buttons: { - display: 'flex', - justifyContent: 'space-evenly', - '& > *': { - flexBasis: '33%', - }, - }, -})); - -const EditItemView = ({ - children, endpoint, item, setItem, validate, onItemSaved, -}) => { - const history = useHistory(); - const classes = useStyles(); - const t = useTranslation(); - - const { id } = useParams(); - - useEffectAsync(async () => { - if (id) { - const response = await fetch(`/api/${endpoint}/${id}`); - if (response.ok) { - setItem(await response.json()); - } - } else { - setItem({}); - } - }, [id]); - - const handleSave = async () => { - let url = `/api/${endpoint}`; - if (id) { - url += `/${id}`; - } - - const response = await fetch(url, { - method: !id ? 'POST' : 'PUT', - headers: { 'Content-Type': 'application/json' }, - body: JSON.stringify(item), - }); - - if (response.ok) { - if (onItemSaved) { - onItemSaved(await response.json()); - } - history.goBack(); - } - }; - - return ( - <OptionsLayout> - <Container maxWidth="xs" className={classes.container}> - {children} - <FormControl fullWidth margin="normal"> - <div className={classes.buttons}> - <Button - type="button" - color="primary" - variant="outlined" - onClick={() => history.goBack()} - > - {t('sharedCancel')} - </Button> - <Button - type="button" - color="primary" - variant="contained" - onClick={handleSave} - disabled={!validate()} - > - {t('sharedSave')} - </Button> - </div> - </FormControl> - </Container> - </OptionsLayout> - ); -}; - -export default EditItemView; |