From 1d00dfe76a72f8a4519796033e696ef1526413d7 Mon Sep 17 00:00:00 2001 From: fzaninotto Date: Mon, 2 Nov 2020 14:52:43 +0100 Subject: [PATCH] [Demo] use stepper for customer actions --- examples/demo/src/visitors/Aside.tsx | 279 +++++++++++++-------------- 1 file changed, 139 insertions(+), 140 deletions(-) diff --git a/examples/demo/src/visitors/Aside.tsx b/examples/demo/src/visitors/Aside.tsx index dad7dcd6242..7c98d2bb9da 100644 --- a/examples/demo/src/visitors/Aside.tsx +++ b/examples/demo/src/visitors/Aside.tsx @@ -7,29 +7,29 @@ import { DateField, useTranslate, useGetList, - linkToRecord, Record, RecordMap, Identifier, + ReferenceField, + useLocale, } from 'react-admin'; import { - Tooltip, Typography, Card, CardContent, - CardHeader, - Avatar, - IconButton, Box, + Link, + Stepper, + Step, + StepLabel, + StepContent, } from '@material-ui/core'; -import { Link } from 'react-router-dom'; +import { Link as RouterLink } from 'react-router-dom'; import AccessTimeIcon from '@material-ui/icons/AccessTime'; -import ContentCreate from '@material-ui/icons/Create'; import { makeStyles } from '@material-ui/core/styles'; import order from '../orders'; import review from '../reviews'; -import ProductReferenceField from '../products/ProductReferenceField'; import StarRatingField from '../reviews/StarRatingField'; import { Order as OrderRecord, Review as ReviewRecord } from '../types'; @@ -65,8 +65,19 @@ interface EventListProps { record?: Record; basePath?: string; } + +const useEventStyles = makeStyles({ + stepper: { + background: 'none', + border: 'none', + marginLeft: '0.3em', + }, +}); + const EventList: FC = ({ record, basePath }) => { const translate = useTranslate(); + const classes = useEventStyles(); + const locale = useLocale(); const { data: orders, ids: orderIds } = useGetList( 'commands', { page: 1, perPage: 100 }, @@ -180,22 +191,56 @@ const EventList: FC = ({ record, basePath }) => { - - {events.map(event => - event.type === 'order' ? ( - - ) : ( - - ) - )} + + {events.map(event => ( + + { + const Component = + event.type === 'order' + ? order.icon + : review.icon; + return ( + + ); + }} + > + {new Date(event.date).toLocaleString(locale, { + weekday: 'long', + year: 'numeric', + month: 'short', + day: 'numeric', + hour: 'numeric', + minute: 'numeric', + })} + + + {event.type === 'order' ? ( + + ) : ( + + )} + + + ))} + ); }; @@ -230,26 +275,11 @@ const mixOrdersAndReviews = ( : []; const events = eventsFromOrders.concat(eventsFromReviews); events.sort( - (e1, e2) => new Date(e1.date).getTime() - new Date(e2.date).getTime() + (e1, e2) => new Date(e2.date).getTime() - new Date(e1.date).getTime() ); return events; }; -const useEventStyles = makeStyles({ - card: { - margin: '0 0 1em 1em', - }, - cardHeader: { - alignItems: 'flex-start', - }, - clamp: { - display: '-webkit-box', - '-webkit-line-clamp': 3, - '-webkit-box-orient': 'vertical', - overflow: 'hidden', - }, -}); - interface OrderProps { record?: OrderRecord; basePath?: string; @@ -257,53 +287,39 @@ interface OrderProps { const Order: FC = ({ record, basePath }) => { const translate = useTranslate(); - const classes = useEventStyles(); return record ? ( - - - - - } - action={} - title={`${translate('resources.commands.name', { - smart_count: 1, - })} #${record.reference}`} - subheader={ - <> - {record.date} - - {translate('resources.commands.nb_items', { - smart_count: record.basket.length, - _: '1 item |||| %{smart_count} items', - })} -  -  - -  -  - - - - } - /> - + <> + + + {translate('resources.commands.name', { + smart_count: 1, + })}{' '} + #{record.reference} + + + + {translate('resources.commands.nb_items', { + smart_count: record.basket.length, + _: '1 item |||| %{smart_count} items', + })} +  -  + +  -  + + + ) : null; }; @@ -312,65 +328,48 @@ interface ReviewProps { basePath?: string; } +const useReviewStyles = makeStyles({ + clamp: { + display: '-webkit-box', + '-webkit-line-clamp': 3, + '-webkit-box-orient': 'vertical', + overflow: 'hidden', + }, +}); + const Review: FC = ({ record, basePath }) => { + const classes = useReviewStyles(); const translate = useTranslate(); - const classes = useEventStyles(); return record ? ( - - + + + {translate('resources.reviews.relative_to_poster')} " + - - - } - action={} - title={ - - {translate('resources.reviews.relative_to_poster')}{' '} - - - } - subheader={ - <> - {record.date} - - - {record.comment} - - - } - /> - - ) : null; -}; - -interface EditButtonProps { - record?: Record; - basePath?: string; -} - -const EditButton: FC = ({ record, basePath }) => { - const translate = useTranslate(); - return ( - - + + " + + + + + + - - - - ); + {record.comment} + + + ) : null; }; export default Aside;