diff --git a/src/components/OrderDetailsPanel/OrderDetailsPanel.css b/src/components/OrderDetailsPanel/OrderDetailsPanel.css index 0b01a556..3f2ea112 100644 --- a/src/components/OrderDetailsPanel/OrderDetailsPanel.css +++ b/src/components/OrderDetailsPanel/OrderDetailsPanel.css @@ -4,6 +4,10 @@ margin: 35px 24px 0 24px; } +.mainTitle { + display: block; +} + .messagesContainer { display: flex; flex-direction: column; @@ -14,6 +18,10 @@ margin: 24px 24px 0 24px; } +.transitionDate { + white-space: nowrap; +} + .bookingBreakdownTitle { margin: 47px 24px 0 24px; color: var(--matterColorAnti); diff --git a/src/components/OrderDetailsPanel/OrderDetailsPanel.js b/src/components/OrderDetailsPanel/OrderDetailsPanel.js index c42e2821..246561e4 100644 --- a/src/components/OrderDetailsPanel/OrderDetailsPanel.js +++ b/src/components/OrderDetailsPanel/OrderDetailsPanel.js @@ -3,7 +3,7 @@ import { FormattedDate, FormattedMessage } from 'react-intl'; import * as propTypes from '../../util/propTypes'; import { createSlug } from '../../util/urlHelpers'; import { types } from '../../util/sdkLoader'; -import { Avatar, BookingInfo, NamedLink } from '../../components'; +import { BookingInfo, NamedLink } from '../../components'; import css from './OrderDetailsPanel.css'; @@ -14,6 +14,85 @@ const formatName = (user, defaultName) => { return defaultName; }; +const orderTitle = (orderState, listingLink, customerName) => { + switch (orderState) { + case propTypes.TX_STATE_PREAUTHORIZED: + return ( + + + + + + + ); + case propTypes.TX_STATE_ACCEPTED: + return ( + + + + + + + ); + case propTypes.TX_STATE_REJECTED: + return ( + + ); + case propTypes.TX_STATE_DELIVERED: + return ( + + ); + default: + return null; + } +}; + +const orderMessage = (orderState, listingTitle, providerName, lastTransitionedAt) => { + const transitionDate = ( + + + + ); + switch (orderState) { + case propTypes.TX_STATE_PREAUTHORIZED: + return ( + + ); + case propTypes.TX_STATE_ACCEPTED: + return ( + + ); + case propTypes.TX_STATE_REJECTED: + return ( + + ); + case propTypes.TX_STATE_DELIVERED: + return ( + + ); + default: + return null; + } +}; + const OrderDetailsPanel = props => { const { className, @@ -50,92 +129,14 @@ const OrderDetailsPanel = props => { :

{'priceRequiredMessage'}

; // orderState affects to both title and message section - let stateMsgData = {}; - switch (orderState) { - case propTypes.TX_STATE_PREAUTHORIZED: - stateMsgData = { - title: ( - - ), - message: ( -
- -
- ), - }; - break; - case propTypes.TX_STATE_ACCEPTED: - stateMsgData = { - title: ( - - ), - message: ( -
- - -
- ), - }; - break; - case propTypes.TX_STATE_REJECTED: - stateMsgData = { - title: ( - - ), - message: ( -
- - -
- ), - }; - break; - case propTypes.TX_STATE_DELIVERED: - stateMsgData = { - title: ( - - ), - message: ( -
- - -
- ), - }; - break; - default: - stateMsgData = { title: null, message: null }; - } + const title = orderTitle(orderState, listingLink, customerName); + const message = orderMessage(orderState, listingLink, providerName, lastTransitionedAt); return (
-

{stateMsgData.title}

+

{title}

- {stateMsgData.message} + {message}

diff --git a/src/components/OrderDetailsPanel/OrderDetailsPanel.test.js b/src/components/OrderDetailsPanel/OrderDetailsPanel.test.js index a0e9af4c..23505cdf 100644 --- a/src/components/OrderDetailsPanel/OrderDetailsPanel.test.js +++ b/src/components/OrderDetailsPanel/OrderDetailsPanel.test.js @@ -19,6 +19,7 @@ describe('OrderDetailsPanel', () => { ), listing: createListing('listing1'), provider: createUser('provider'), + customer: createUser('customer'), }; const tree = renderShallow(); expect(tree).toMatchSnapshot(); diff --git a/src/components/OrderDetailsPanel/__snapshots__/OrderDetailsPanel.test.js.snap b/src/components/OrderDetailsPanel/__snapshots__/OrderDetailsPanel.test.js.snap index ff16a639..bffc413f 100644 --- a/src/components/OrderDetailsPanel/__snapshots__/OrderDetailsPanel.test.js.snap +++ b/src/components/OrderDetailsPanel/__snapshots__/OrderDetailsPanel.test.js.snap @@ -2,34 +2,42 @@ exports[`OrderDetailsPanel matches snapshot 1`] = `

- - listing1 title - , - } - } /> -

-
-
+ + + + + listing1 title + , } } /> -
+ +

+
+