import {useRef} from 'react'; import {makeStyles, createMuiTheme, ThemeProvider} from '@material-ui/core'; import Typography from '@material-ui/core/Typography'; import TextField from '@material-ui/core/TextField'; import Button from '@material-ui/core/Button'; import Link from '@material-ui/core/Link'; import Icon from '@material-ui/core/Icon'; import Box from '@material-ui/core/Box'; import {DatePicker} from '@material-ui/pickers'; import {useTranslation} from 'react-i18next'; import moment from 'moment'; import useEventStore from '../../stores/useEventStore'; import {caroster} from '../../theme'; const EventDetails = ({onShare}) => { const {t} = useTranslation(); const event = useEventStore(s => s.event); const setEventUpdate = useEventStore(s => s.setEventUpdate); const isEditing = useEventStore(s => s.isEditing); const shareInput = useRef(null); const idPrefix = isEditing ? 'EditEvent' : 'Event'; const classes = useStyles(); if (!event) return null; return (
{isEditing && (
{t('event.fields.name')} setEventUpdate({name: e.target.value})} name="name" id="EditEventName" />
)} {t('event.fields.date')} {isEditing ? ( setEventUpdate({ date: !date ? null : moment(date).format('YYYY-MM-DD'), }) } format="DD/MM/YYYY" cancelLabel={t('generic.cancel')} clearable clearLabel={t('generic.clear')} id={`${idPrefix}Date`} /> ) : ( {event.date ? moment(event.date).format('DD/MM/YYYY') : t('event.fields.empty')} )}
{t('event.fields.address')} {isEditing ? ( setEventUpdate({address: e.target.value})} id={`${idPrefix}Address`} name="address" /> ) : ( {event.address ? ( e.preventDefault} > {event.address} ) : ( t('event.fields.empty') )} )}
{t('event.fields.description')} {isEditing ? ( setEventUpdate({description: e.target.value})} id={`${idPrefix}Description`} name="description" /> ) : ( {event.description ?? t('event.fields.empty')} )}
{t('event.fields.link')} {t('event.fields.link_desc')} { if (shareInput) shareInput.current.select(); }} fullWidth readOnly name="eventShareLink" id="ShareLink" />
); }; const theme = createMuiTheme({ ...caroster, palette: { ...caroster.palette, type: 'dark', }, }); const useStyles = makeStyles(theme => ({ container: { padding: theme.spacing(2, 9), marginBottom: theme.spacing(12), [theme.breakpoints.down('xs')]: { padding: theme.spacing(2), }, }, section: { marginBottom: theme.spacing(2), }, map: { marginTop: theme.spacing(4), }, seeOnGMapButton: { marginLeft: theme.spacing(2), }, })); export default EventDetails;