Skip to content

Commit d12ef5b

Browse files
authored
Merge pull request #317 from reactioncommerce/feat-300-nnnnat-add-viewerInfo
feat: 300 nnnnat add viewer info
2 parents fec9d70 + 5d49063 commit d12ef5b

File tree

4 files changed

+44
-22
lines changed

4 files changed

+44
-22
lines changed

src/components/Header/Header.js

Lines changed: 28 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -10,6 +10,7 @@ import { NavigationDesktop } from "components/NavigationDesktop";
1010
import { NavigationMobile, NavigationToggleMobile } from "components/NavigationMobile";
1111
import AccountDropdown from "components/AccountDropdown";
1212
import ShopLogo from "@reactioncommerce/components/ShopLogo/v1";
13+
import ViewerInfo from "@reactioncommerce/components/ViewerInfo/v1";
1314
import Link from "components/Link";
1415
import MiniCart from "components/MiniCart";
1516

@@ -46,7 +47,8 @@ class Header extends Component {
4647
}).isRequired,
4748
uiStore: PropTypes.shape({
4849
toggleMenuDrawerOpen: PropTypes.func.isRequired
49-
}).isRequired
50+
}).isRequired,
51+
viewer: PropTypes.object
5052
};
5153

5254
static defaultProps = {
@@ -57,8 +59,31 @@ class Header extends Component {
5759
this.props.uiStore.toggleMenuDrawerOpen();
5860
};
5961

62+
// TODO: quick fix until we figure out the viewer name stuff.
63+
// See https://github.com/reactioncommerce/reaction/issues/4646
64+
get splitNames() {
65+
const { viewer: { name } } = this.props;
66+
const firstName =
67+
name &&
68+
name
69+
.split(" ")
70+
.slice(0, -1)
71+
.join(" ");
72+
const lastName =
73+
name &&
74+
name
75+
.split(" ")
76+
.slice(-1)
77+
.join(" ");
78+
79+
return {
80+
firstName,
81+
lastName
82+
};
83+
}
84+
6085
render() {
61-
const { classes: { appBar, controls, toolbar, title }, shop } = this.props;
86+
const { classes: { appBar, controls, toolbar, title }, shop, viewer } = this.props;
6287

6388
return (
6489
<AppBar position="static" elevation={0} className={appBar}>
@@ -79,7 +104,7 @@ class Header extends Component {
79104
</Hidden>
80105
</div>
81106

82-
<AccountDropdown />
107+
{viewer ? <ViewerInfo viewer={{ ...this.splitNames, ...viewer }} /> : <AccountDropdown />}
83108
<MiniCart />
84109
</Toolbar>
85110
<NavigationMobile />

src/components/Layout/Layout.js

Lines changed: 4 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -26,20 +26,21 @@ class Layout extends Component {
2626
classes: PropTypes.object,
2727
shop: PropTypes.shape({
2828
name: PropTypes.string
29-
}).isRequired
29+
}).isRequired,
30+
viewer: PropTypes.object
3031
};
3132

3233
static defaultProps = {
3334
classes: {}
3435
};
3536

3637
render() {
37-
const { classes, children, shop } = this.props;
38+
const { classes, children, shop, viewer } = this.props;
3839

3940
return (
4041
<React.Fragment>
4142
<div className={classes.root}>
42-
<Header shop={shop} />
43+
<Header shop={shop} viewer={viewer} />
4344
<main className={classes.main}>
4445
<article className={classes.article}>{children}</article>
4546
</main>

src/containers/account/viewer.gql

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -5,5 +5,6 @@ query viewer {
55
address
66
}
77
name
8+
primaryEmailAddress
89
}
910
}

src/pages/_app.js

Lines changed: 11 additions & 16 deletions
Original file line numberDiff line numberDiff line change
@@ -67,7 +67,7 @@ export default class App extends NextApp {
6767
}
6868

6969
render() {
70-
const { Component, pageProps, shop, ...rest } = this.props;
70+
const { Component, pageProps, shop, viewer, ...rest } = this.props;
7171
const { route } = this.props.router;
7272
const { stripe } = this.state;
7373

@@ -79,22 +79,17 @@ export default class App extends NextApp {
7979
generateClassName={this.pageContext.generateClassName}
8080
>
8181
<RuiThemeProvider theme={componentTheme}>
82-
<MuiThemeProvider
83-
theme={this.pageContext.theme}
84-
sheetsManager={this.pageContext.sheetsManager}
85-
>
82+
<MuiThemeProvider theme={this.pageContext.theme} sheetsManager={this.pageContext.sheetsManager}>
8683
<CssBaseline />
87-
{
88-
(route === "/checkout" || route === "/login") ? (
89-
<StripeProvider stripe={stripe}>
90-
<Component pageContext={this.pageContext} shop={shop} {...rest} {...pageProps} />
91-
</StripeProvider>
92-
) : (
93-
<Layout shop={shop}>
94-
<Component pageContext={this.pageContext} shop={shop} {...rest} {...pageProps} />
95-
</Layout>
96-
)
97-
}
84+
{route === "/checkout" || route === "/login" ? (
85+
<StripeProvider stripe={stripe}>
86+
<Component pageContext={this.pageContext} shop={shop} {...rest} {...pageProps} />
87+
</StripeProvider>
88+
) : (
89+
<Layout shop={shop} viewer={viewer}>
90+
<Component pageContext={this.pageContext} shop={shop} {...rest} {...pageProps} />
91+
</Layout>
92+
)}
9893
</MuiThemeProvider>
9994
</RuiThemeProvider>
10095
</JssProvider>

0 commit comments

Comments
 (0)