From 3c41b0cebe07a5aa4c14c75e2d7daa531fa85f0d Mon Sep 17 00:00:00 2001 From: Vesa Luusua Date: Wed, 11 Jan 2017 01:20:25 +0200 Subject: [PATCH] ConversationPage, OrderPage, SalesConversationPage --- src/Routes.js | 33 ++++ .../ConversationPage/ConversationPage.js | 11 ++ src/containers/OrderPage/OrderPage.js | 17 ++ src/containers/OrderPage/OrderPage.test.js | 16 ++ .../__snapshots__/OrderPage.test.js.snap | 170 ++++++++++++++++++ .../SalesConversationPage.js | 17 ++ src/containers/index.js | 6 + 7 files changed, 270 insertions(+) create mode 100644 src/containers/ConversationPage/ConversationPage.js create mode 100644 src/containers/OrderPage/OrderPage.js create mode 100644 src/containers/OrderPage/OrderPage.test.js create mode 100644 src/containers/OrderPage/__snapshots__/OrderPage.test.js.snap create mode 100644 src/containers/SalesConversationPage/SalesConversationPage.js diff --git a/src/Routes.js b/src/Routes.js index e6dd22ef..53fa4409 100644 --- a/src/Routes.js +++ b/src/Routes.js @@ -3,11 +3,14 @@ import { Match, Miss, Redirect } from 'react-router'; import { AuthenticationPage, CheckoutPage, + ConversationPage, InboxPage, LandingPage, ListingPage, + OrderPage, ProfilePage, EditProfilePage, + SalesConversationPage, SearchPage, NotFoundPage, } from './containers'; @@ -102,6 +105,36 @@ class Routes extends React.Component { pattern="/sales" component={ (props) => } /> + {/* Order/Conversation and mobile views */} + + } /> + } /> + } /> + } /> + } /> + } /> + diff --git a/src/containers/ConversationPage/ConversationPage.js b/src/containers/ConversationPage/ConversationPage.js new file mode 100644 index 00000000..4dc0ee79 --- /dev/null +++ b/src/containers/ConversationPage/ConversationPage.js @@ -0,0 +1,11 @@ +import React from 'react'; +import { Page } from '../../components'; + +export default (props) => { + const { params } = props; + return ( + +

Conversation id: { params.id }

+
+ ); +}; diff --git a/src/containers/OrderPage/OrderPage.js b/src/containers/OrderPage/OrderPage.js new file mode 100644 index 00000000..9aa9d10b --- /dev/null +++ b/src/containers/OrderPage/OrderPage.js @@ -0,0 +1,17 @@ +import React from 'react'; +import { Link } from 'react-router'; +import { Page } from '../../components'; + +export default (props) => { + const { params } = props; + return ( + +

Order id: { params.id }

+ Discussion tab +
+ Details tab +

Mobile layout needs different views for discussion and details.

+

Discussion view is the default if route doesn't specify mobile tab (e.g. /order/1234)

+
+ ); +}; diff --git a/src/containers/OrderPage/OrderPage.test.js b/src/containers/OrderPage/OrderPage.test.js new file mode 100644 index 00000000..63ca6f4f --- /dev/null +++ b/src/containers/OrderPage/OrderPage.test.js @@ -0,0 +1,16 @@ +import React from 'react'; +import { BrowserRouter } from 'react-router'; +import renderer from 'react-test-renderer'; +import OrderPage from './OrderPage'; + +describe('OrderPage', () => { + it('matches snapshot', () => { + const component = renderer.create( + + + + ); + const tree = component.toJSON(); + expect(tree).toMatchSnapshot(); + }); +}); diff --git a/src/containers/OrderPage/__snapshots__/OrderPage.test.js.snap b/src/containers/OrderPage/__snapshots__/OrderPage.test.js.snap new file mode 100644 index 00000000..32a56395 --- /dev/null +++ b/src/containers/OrderPage/__snapshots__/OrderPage.test.js.snap @@ -0,0 +1,170 @@ +exports[`OrderPage matches snapshot 1`] = ` +
+ +

+ Order page +

+

+ Order id: + 1234 +

+ + Discussion tab + +
+ + Details tab + +

+ Mobile layout needs different views for discussion and details. +

+

+ Discussion view is the default if route doesn\'t specify mobile tab (e.g. + + /order/1234 + + ) +

+
+`; diff --git a/src/containers/SalesConversationPage/SalesConversationPage.js b/src/containers/SalesConversationPage/SalesConversationPage.js new file mode 100644 index 00000000..082eac17 --- /dev/null +++ b/src/containers/SalesConversationPage/SalesConversationPage.js @@ -0,0 +1,17 @@ +import React from 'react'; +import { Link } from 'react-router'; +import { Page } from '../../components'; + +export default (props) => { + const { params } = props; + return ( + +

Sale id: { params.id }

+ Discussion tab +
+ Details tab +

Mobile layout needs different views for discussion and details.

+

Discussion view is the default if route doesn't specify mobile tab (e.g. /order/1234)

+
+ ); +}; diff --git a/src/containers/index.js b/src/containers/index.js index 5ad48c86..fae9e86e 100644 --- a/src/containers/index.js +++ b/src/containers/index.js @@ -1,21 +1,27 @@ import AuthenticationPage from './AuthenticationPage/AuthenticationPage'; import CheckoutPage from './CheckoutPage/CheckoutPage'; +import ConversationPage from './ConversationPage/ConversationPage'; import EditProfilePage from './EditProfilePage/EditProfilePage'; import InboxPage from './InboxPage/InboxPage'; import LandingPage from './LandingPage/LandingPage'; import ListingPage from './ListingPage/ListingPage'; +import OrderPage from './OrderPage/OrderPage'; import ProfilePage from './ProfilePage/ProfilePage'; +import SalesConversationPage from './SalesConversationPage/SalesConversationPage'; import SearchPage from './SearchPage/SearchPage'; import NotFoundPage from './NotFoundPage/NotFoundPage'; export { AuthenticationPage, CheckoutPage, + ConversationPage, EditProfilePage, InboxPage, LandingPage, ListingPage, + OrderPage, ProfilePage, + SalesConversationPage, SearchPage, NotFoundPage, };