initial pass

This commit is contained in:
Connor Hudson 2016-05-31 16:37:42 -04:00
parent d645e95bd7
commit e402363576
3 changed files with 114 additions and 109 deletions

View file

@ -225,99 +225,101 @@ var Navigation = React.createClass({
<Input type="hidden" name="sort_by" value="datetime_shared" />
</form>
</li>
{this.props.session.user ? [
<li className="link right messages" key="messages">
<a
href="/messages/"
title={formatMessage({id: 'general.messages'})}>
{this.props.session.loaded ? (
this.props.session.user ? [
<li className="link right messages" key="messages">
<a
href="/messages/"
title={formatMessage({id: 'general.messages'})}>
<span className={messageClasses}>{this.state.unreadMessageCount}</span>
<FormattedMessage id="general.messages" />
</a>
</li>,
<li className="link right mystuff" key="mystuff">
<a
href="/mystuff/"
title={formatMessage({id: 'general.myStuff'})}>
<span className={messageClasses}>{this.state.unreadMessageCount}</span>
<FormattedMessage id="general.messages" />
</a>
</li>,
<li className="link right mystuff" key="mystuff">
<a
href="/mystuff/"
title={formatMessage({id: 'general.myStuff'})}>
<FormattedMessage id="general.myStuff" />
</a>
</li>,
<li className="link right account-nav" key="account-nav">
<a className="user-info" href="#" onClick={this.handleAccountNavClick}>
<Avatar src={this.props.session.user.thumbnailUrl} alt="" />
{this.props.session.user.username}
</a>
<Dropdown
as="ul"
isOpen={this.state.accountNavOpen}
onRequestClose={this.closeAccountNav}>
<li>
<a href={this.getProfileUrl()}>
<FormattedMessage id="general.profile" />
</a>
</li>
<li>
<a href="/mystuff/">
<FormattedMessage id="general.myStuff" />
</a>
</li>
{this.props.session.permissions.educator ? [
<FormattedMessage id="general.myStuff" />
</a>
</li>,
<li className="link right account-nav" key="account-nav">
<a className="user-info" href="#" onClick={this.handleAccountNavClick}>
<Avatar src={this.props.session.user.thumbnailUrl} alt="" />
{this.props.session.user.username}
</a>
<Dropdown
as="ul"
isOpen={this.state.accountNavOpen}
onRequestClose={this.closeAccountNav}>
<li>
<a href="/educators/classes/">
<FormattedMessage id="general.myClasses" />
<a href={this.getProfileUrl()}>
<FormattedMessage id="general.profile" />
</a>
</li>
] : []}
{this.props.session.permissions.student ? [
<li>
<a href={'/classes/' + this.props.session.user.classroomId + '/'}>
<FormattedMessage id="general.myClass" />
<a href="/mystuff/">
<FormattedMessage id="general.myStuff" />
</a>
</li>
] : []}
<li>
<a href="/accounts/settings/">
<FormattedMessage id="general.accountSettings" />
</a>
</li>
<li className="divider">
<a href="#" onClick={this.handleLogOut}>
<FormattedMessage id="navigation.signOut" />
</a>
</li>
</Dropdown>
</li>
] : [
<li className="link right join" key="join">
<a href="#" onClick={this.handleJoinClick}>
<FormattedMessage id="general.joinScratch" />
</a>
</li>,
<Registration
key="registration"
isOpen={this.state.registrationOpen}
onRequestClose={this.closeRegistration}
onRegistrationDone={this.completeRegistration} />,
<li className="link right login-item" key="login">
<a
href="#"
onClick={this.handleLoginClick}
className="ignore-react-onclickoutside"
key="login-link">
<FormattedMessage id="general.signIn" />
</a>
<Dropdown
className="login-dropdown with-arrow"
isOpen={this.state.loginOpen}
onRequestClose={this.closeLogin}
key="login-dropdown">
<Login
onLogIn={this.handleLogIn}
error={this.state.loginError} />
</Dropdown>
</li>
]}
{this.props.session.permissions.educator ? [
<li>
<a href="/educators/classes/">
<FormattedMessage id="general.myClasses" />
</a>
</li>
] : []}
{this.props.session.permissions.student ? [
<li>
<a href={'/classes/' + this.props.session.user.classroomId + '/'}>
<FormattedMessage id="general.myClass" />
</a>
</li>
] : []}
<li>
<a href="/accounts/settings/">
<FormattedMessage id="general.accountSettings" />
</a>
</li>
<li className="divider">
<a href="#" onClick={this.handleLogOut}>
<FormattedMessage id="navigation.signOut" />
</a>
</li>
</Dropdown>
</li>
] : [
<li className="link right join" key="join">
<a href="#" onClick={this.handleJoinClick}>
<FormattedMessage id="general.joinScratch" />
</a>
</li>,
<Registration
key="registration"
isOpen={this.state.registrationOpen}
onRequestClose={this.closeRegistration}
onRegistrationDone={this.completeRegistration} />,
<li className="link right login-item" key="login">
<a
href="#"
onClick={this.handleLoginClick}
className="ignore-react-onclickoutside"
key="login-link">
<FormattedMessage id="general.signIn" />
</a>
<Dropdown
className="login-dropdown with-arrow"
isOpen={this.state.loginOpen}
onRequestClose={this.closeLogin}
key="login-dropdown">
<Login
onLogIn={this.handleLogIn}
error={this.state.loginError} />
</Dropdown>
</li>
]) : [
]}
</ul>
<Modal isOpen={this.state.canceledDeletionOpen}
onRequestClose={this.closeCanceledDeletion}

View file

@ -32,6 +32,7 @@ module.exports.setSessionError = function (error) {
};
module.exports.setSession = function (session) {
session.loaded = true;
return {
type: Types.SET_SESSION,
session: session

View file

@ -206,7 +206,7 @@ var Splash = injectIntl(React.createClass({
if (this.state.featuredGlobal.curator_top_projects &&
this.state.featuredGlobal.curator_top_projects.length > 4) {
rows.push(
<Box
key="curator_top_projects"
@ -223,7 +223,7 @@ var Splash = injectIntl(React.createClass({
if (this.state.featuredGlobal.scratch_design_studio &&
this.state.featuredGlobal.scratch_design_studio.length > 4) {
rows.push(
<Box
key="scratch_design_studio"
@ -243,7 +243,7 @@ var Splash = injectIntl(React.createClass({
if (this.props.session.user &&
this.state.featuredGlobal.community_newest_projects &&
this.state.featuredGlobal.community_newest_projects.length > 0) {
rows.push(
<Box
title={
@ -259,14 +259,14 @@ var Splash = injectIntl(React.createClass({
if (this.state.featuredCustom.custom_projects_by_following &&
this.state.featuredCustom.custom_projects_by_following.length > 0) {
rows.push(
<Box title={
formatMessage({
id: 'splash.projectsByScratchersFollowing',
defaultMessage: 'Projects by Scratchers I\'m Following'})}
key="custom_projects_by_following">
<Carousel items={this.state.featuredCustom.custom_projects_by_following} />
</Box>
);
@ -280,7 +280,7 @@ var Splash = injectIntl(React.createClass({
id: 'splash.projectsLovedByScratchersFollowing',
defaultMessage: 'Projects Loved by Scratchers I\'m Following'})}
key="custom_projects_loved_by_following">
<Carousel items={this.state.featuredCustom.custom_projects_loved_by_following} />
</Box>
);
@ -288,14 +288,14 @@ var Splash = injectIntl(React.createClass({
if (this.state.featuredCustom.custom_projects_in_studios_following &&
this.state.featuredCustom.custom_projects_in_studios_following.length > 0) {
rows.push(
<Box title={
formatMessage({
id:'splash.projectsInStudiosFollowing',
defaultMessage: 'Projects in Studios I\'m Following'})}
key="custom_projects_in_studios_following">
<Carousel items={this.state.featuredCustom.custom_projects_in_studios_following} />
</Box>
);
@ -307,7 +307,7 @@ var Splash = injectIntl(React.createClass({
id: 'splash.communityRemixing',
defaultMessage: 'What the Community is Remixing' })}
key="community_most_remixed_projects">
<Carousel items={this.state.featuredGlobal.community_most_remixed_projects} showRemixes={true} />
</Box>,
<Box title={
@ -315,7 +315,7 @@ var Splash = injectIntl(React.createClass({
id: 'splash.communityLoving',
defaultMessage: 'What the Community is Loving' })}
key="community_most_loved_projects">
<Carousel items={this.state.featuredGlobal.community_most_loved_projects} showLoves={true} />
</Box>
);
@ -373,20 +373,22 @@ var Splash = injectIntl(React.createClass({
] : []}
<CNBanner />
<div key="inner" className="inner">
{this.props.session.user ? [
<div key="header" className="splash-header">
{this.shouldShowWelcome() ? [
<Welcome key="welcome"
onDismiss={this.handleDismiss.bind(this, 'welcome')}
messages={messages} />
] : [
<Activity key="activity" items={this.state.activity} />
]}
<News items={this.state.news} messages={messages} />
</div>
] : [
<Intro projectCount={this.state.projectCount} messages={messages} key="intro"/>
]}
{this.props.session.user ? (
this.props.session.user ? [
<div key="header" className="splash-header">
{this.shouldShowWelcome() ? [
<Welcome key="welcome"
onDismiss={this.handleDismiss.bind(this, 'welcome')}
messages={messages} />
] : [
<Activity key="activity" items={this.state.activity} />
]}
<News items={this.state.news} messages={messages} />
</div>
] : [
<Intro projectCount={this.state.projectCount} messages={messages} key="intro"/>
]) : ()
}
{featured}