From 21a7f1227e1b4bb9cbb2e21a8a3d46f0b7d81336 Mon Sep 17 00:00:00 2001 From: Paul Kaplan Date: Tue, 16 Oct 2018 11:38:26 -0400 Subject: [PATCH] Make share banner actually share projects --- src/views/preview/l10n.json | 4 +++- src/views/preview/presentation.jsx | 7 ++++++- src/views/preview/preview.jsx | 14 +++++++++----- src/views/preview/share-banner.jsx | 11 ++++++++--- 4 files changed, 26 insertions(+), 10 deletions(-) diff --git a/src/views/preview/l10n.json b/src/views/preview/l10n.json index fa64531e9..07782dbe3 100644 --- a/src/views/preview/l10n.json +++ b/src/views/preview/l10n.json @@ -9,5 +9,7 @@ "preview.videoMotionChip": "Video Motion", "preview.comments.header": "Comments", "preview.comments.turnOff": "Turn off commenting", - "preview.comments.turnedOff": "Sorry, comment posting has been turned off for this project." + "preview.comments.turnedOff": "Sorry, comment posting has been turned off for this project.", + "preview.share.notShared": "This project is not shared — so only you can see it. Click share to let everyone see it!", + "preview.share.shareButton": "Share" } diff --git a/src/views/preview/presentation.jsx b/src/views/preview/presentation.jsx index 82f8e9531..980e3c093 100644 --- a/src/views/preview/presentation.jsx +++ b/src/views/preview/presentation.jsx @@ -81,12 +81,16 @@ const PreviewPresentation = ({ onToggleStudio, onToggleComments, onSeeInside, + onShare, onUpdate }) => { const shareDate = ((projectInfo.history && projectInfo.history.shared)) ? projectInfo.history.shared : ''; return (
- + { projectInfo && projectInfo.author && projectInfo.author.id && (
@@ -427,6 +431,7 @@ PreviewPresentation.propTypes = { onReportComment: PropTypes.func.isRequired, onReportSubmit: PropTypes.func.isRequired, onSeeInside: PropTypes.func, + onShare: PropTypes.func, onToggleComments: PropTypes.func, onToggleStudio: PropTypes.func, onUpdate: PropTypes.func, diff --git a/src/views/preview/preview.jsx b/src/views/preview/preview.jsx index d19d2f3c6..aacdb9c45 100644 --- a/src/views/preview/preview.jsx +++ b/src/views/preview/preview.jsx @@ -47,6 +47,7 @@ class Preview extends React.Component { 'handleAddToStudioClick', 'handleAddToStudioClose', 'handleSeeInside', + 'handleShare', 'handleUpdateProjectTitle', 'handleUpdate', 'handleToggleComments', @@ -291,7 +292,12 @@ class Preview extends React.Component { this.props.setPlayer(false); } handleShare () { - // This is just a placeholder, but enables the button in the editor + this.props.updateProject( + this.props.projectInfo.id, + {isPublished: true}, + this.props.user.username, + this.props.user.token + ); } handleUpdate (jsonData) { this.props.updateProject( @@ -370,6 +376,7 @@ class Preview extends React.Component { onReportComment={this.handleReportComment} onReportSubmit={this.handleReportSubmit} onSeeInside={this.handleSeeInside} + onShare={this.handleShare} onToggleComments={this.handleToggleComments} onToggleStudio={this.handleToggleStudio} onUpdate={this.handleUpdate} @@ -525,10 +532,7 @@ const mapStateToProps = state => { state.permissions.admin === true), isLoggedIn: isLoggedIn, // if we don't have projectInfo, assume it's shared until we know otherwise - isShared: !projectInfoPresent || ( - state.preview.projectInfo.history && - state.preview.projectInfo.history.shared && - state.preview.projectInfo.history.shared.length > 0), + isShared: !projectInfoPresent || state.preview.projectInfo.is_published, loved: state.preview.loved, original: state.preview.original, parent: state.preview.parent, diff --git a/src/views/preview/share-banner.jsx b/src/views/preview/share-banner.jsx index 3585e0075..a156c31ef 100644 --- a/src/views/preview/share-banner.jsx +++ b/src/views/preview/share-banner.jsx @@ -1,5 +1,6 @@ const PropTypes = require('prop-types'); const React = require('react'); +const FormattedMessage = require('react-intl').FormattedMessage; const FlexRow = require('../../components/flex-row/flex-row.jsx'); const Button = require('../../components/forms/button.jsx'); @@ -12,10 +13,13 @@ const ShareBanner = props => {
- This project is not shared — so only you can see it. Click share to let everyone see it! + -
@@ -24,6 +28,7 @@ const ShareBanner = props => { }; ShareBanner.propTypes = { + onShare: PropTypes.func, shared: PropTypes.bool.isRequired };