all repos — caroster @ 5bd547765b3767f6a06f03e35145ab9328a997dc

[Octree] Group carpool to your event https://caroster.io

🎨 Fixes after UX review

#248
Simon Mulquin simon@octree.ch
Mon, 07 Feb 2022 16:57:44 +0000
commit

5bd547765b3767f6a06f03e35145ab9328a997dc

parent

6e98fcd2e34e9ae2a75754bd21b2da2c2160b475

M frontend/components/Toasts/index.tsxfrontend/components/Toasts/index.tsx

@@ -1,15 +1,18 @@

+import {makeStyles} from '@material-ui/core/styles'; import Snackbar from '@material-ui/core/Snackbar'; import useToastStore from '../../stores/useToastStore'; const Toasts = () => { const toast = useToastStore(s => s.toast); const clearToast = useToastStore(s => s.clearToast); + const classes = useStyles(); return ( <Snackbar + className={classes.withMobile} anchorOrigin={{ - vertical: 'top', - horizontal: 'center', + vertical: 'bottom', + horizontal: 'left', }} autoHideDuration={6000} open={!!toast}

@@ -18,5 +21,13 @@ onClose={clearToast}

/> ); }; + +const useStyles = makeStyles(theme => ({ + withMobile: { + [theme.breakpoints.down('sm')]: { + bottom: theme.spacing(8), + }, + } +})); export default Toasts;
M frontend/containers/AddPassengerButtons/index.tsxfrontend/containers/AddPassengerButtons/index.tsx

@@ -7,9 +7,10 @@

interface Props { getOnClickFunction: (addSelf: boolean) => () => void; canAddSelf: boolean; + variant: 'waitingList' | 'travel'; } -const AddPassengerButtons = ({getOnClickFunction, canAddSelf}: Props) => { +const AddPassengerButtons = ({getOnClickFunction, canAddSelf, variant}: Props) => { const classes = useStyles(); const {t} = useTranslation();

@@ -38,7 +39,7 @@ fullWidth

onClick={getOnClickFunction(false)} > <Icon>person_add</Icon> - {t('travel.passengers.add')} + {t(`travel.passengers.add_to_${variant}`)} </Button> </Box> </Box>
M frontend/containers/NewPassengerDialog/AddPassengerCommonFields.tsxfrontend/containers/NewPassengerDialog/AddPassengerCommonFields.tsx

@@ -21,10 +21,8 @@ return (

<Fragment> <Box className={classes.inputBox}> <label htmlFor="name"> - <Typography> - <Icon className={classes.labelIcon}> - person - </Icon>{' '} + <Typography className={classes.label}> + <Icon className={classes.labelIcon}>person</Icon>{' '} {t('travel.passengers.name')} </Typography> </label>

@@ -42,10 +40,8 @@ />

</Box> <Box className={classes.inputBox}> <label htmlFor="email"> - <Typography> - <Icon className={classes.labelIcon}> - mail_outlined - </Icon>{' '} + <Typography className={classes.label}> + <Icon className={classes.labelIcon}>mail_outlined</Icon>{' '} {t('travel.passengers.email')} </Typography> </label>
M frontend/containers/NewPassengerDialog/AddPassengerToWaitingList.tsxfrontend/containers/NewPassengerDialog/AddPassengerToWaitingList.tsx

@@ -103,7 +103,7 @@ />

)} <Box className={classes.inputBox}> <label htmlFor="location"> - <Typography> + <Typography className={classes.label}> <Icon className={classes.labelIcon}>place</Icon>{' '} {t('travel.passengers.location')} </Typography>
M frontend/containers/NewPassengerDialog/useStyles.tsfrontend/containers/NewPassengerDialog/useStyles.ts

@@ -4,9 +4,13 @@ const useStyles = makeStyles(theme => ({

dialogContent: { padding: theme.spacing(1, 3, 3, 3), }, + label: { + verticalAlign: 'text-bottom', + }, labelIcon: { - verticalAlign: 'middle', - fontSize: '1rem' + verticalAlign: 'text-bottom', + fontSize: '1rem', + margin: theme.spacing(0, 0, .125, 0) }, inputBox: { padding: theme.spacing(1, 0),
M frontend/containers/Travel/index.tsxfrontend/containers/Travel/index.tsx

@@ -35,6 +35,7 @@ <Divider />

<AddPassengerButtons getOnClickFunction={props.getAddPassengerFunction} canAddSelf={props.canAddSelf} + variant="travel" /> <Divider /> {!isEditing && (
M frontend/containers/WaitingList/AssignButton.tsxfrontend/containers/WaitingList/AssignButton.tsx

@@ -16,7 +16,7 @@ const {t} = useTranslation();

return ( <ListItemSecondaryAction className={classes.action} onClick={onClick} tabIndex={tabIndex}> - <IconButton className={classes.button} size="small" color="primary"> + <IconButton className={classes.button} color="primary"> {t('passenger.actions.place')} <Icon>chevron_right</Icon> </IconButton>

@@ -30,6 +30,10 @@ top: theme.spacing(3),

}, button: { borderRadius: theme.spacing(1), + margin: theme.spacing(1, 0, 0, 0), + padding: 0, + fontSize: '1rem', + lineHeight: 1.5, }, }));
M frontend/containers/WaitingList/index.tsxfrontend/containers/WaitingList/index.tsx

@@ -122,6 +122,7 @@ <Divider />

<AddPassengerButtons getOnClickFunction={getToggleNewPassengerDialogFunction} canAddSelf={canAddSelf} + variant="waitingList" /> <Divider /> <PassengersList
M frontend/locales/en.jsonfrontend/locales/en.json

@@ -148,6 +148,8 @@ },

"passengers": { "empty": "Available seat", "add": "Add a passenger", + "add_to_travel": "Add a passenger", + "add_to_waitingList": "Add someone", "add_to_car": "Add to car", "add_me": "Add me", "register_to_waiting_list": "Register to waiting list",
M frontend/locales/fr.jsonfrontend/locales/fr.json

@@ -148,6 +148,8 @@ },

"passengers": { "empty": "Place disponible", "add": "Ajouter un passager", + "add_to_travel": "Ajouter un passager", + "add_to_waitingList": "Ajouter quelqu'un", "add_me": "S'ajouter", "add_to_car": "Ajouter à la voiture", "register_to_waiting_list": "Inscription à la liste d'attente",
M frontend/pages/e/[uuid].tsxfrontend/pages/e/[uuid].tsx

@@ -24,6 +24,7 @@ } from '../../generated/graphql';

import ErrorPage from '../_error'; import AddTravel from '../../containers/TravelColumns/AddTravel'; import useProfile from '../../hooks/useProfile'; +import Fab from '../../containers/Fab'; const POLL_INTERVAL = 10000;

@@ -108,7 +109,13 @@ onShare={onShare}

/> <TravelColumns toggle={toggleVehicleChoice} /> <Box className={classes.bottomRight}> - <AddTravel toggle={user ? toggleVehicleChoice : toggleNewTravel} /> + <Fab + onClick={(user ? toggleVehicleChoice : toggleNewTravel)} + aria-label="add-car" + color="primary" + > + {t('travel.creation.title')} + </Fab> </Box> <NewTravelDialog open={openNewTravel} toggle={toggleNewTravel} /> <VehicleChoiceDialog