Skip to content

Commit

Permalink
Merge pull request #923 from cboard-org/fix/remove-native-share
Browse files Browse the repository at this point in the history
remove native share
  • Loading branch information
martinbedouret authored May 25, 2021
2 parents b4eb314 + 7e0f507 commit 58b73a3
Show file tree
Hide file tree
Showing 4 changed files with 102 additions and 119 deletions.
159 changes: 87 additions & 72 deletions src/components/Board/BoardShare/BoardShare.component.js
Original file line number Diff line number Diff line change
Expand Up @@ -69,83 +69,98 @@ const BoardShare = ({
</IconButton>
</DialogTitle>
<DialogContent className="ShareDialog__content">
<div className="ShareDialog__Subtitle">
<div>{
isLogged
? <Button
<div className="ShareDialog__content__publish">
{isLogged ? (
<Button
color="primary"
variant={isPublic ? "outlined" : "contained"}
className="ShareDialog__ToggleStatusButton"
variant={isPublic ? 'outlined' : 'contained'}
onClick={publishBoard}
>
{!isPublic ? (
<FormattedMessage {...messages.publishBoard} />
) : (
<FormattedMessage {...messages.unpublishBoard} />
)}
</Button>
) : (
<React.Fragment>
<Alert severity="warning">
<FormattedMessage {...messages.unregisteredWarning} />
</Alert>
<Button
color="primary"
variant="contained"
component={Link}
to="/login-signup"
>
{!isPublic? <FormattedMessage {...messages.publishBoard } /> : <FormattedMessage {...messages.unpublishBoard } />}
<FormattedMessage {...messages.loginSignUp} />
</Button>
: <><Alert severity="warning"><FormattedMessage {...messages.warningUnregisterShareBoard } /></Alert><br/>
<Button
color="primary"
variant="contained"
component={Link} to="/login-signup"
><FormattedMessage {...messages.loginSignUpBtn } /></Button></>
}
</div>
</React.Fragment>
)}
</div>
{isLogged && (<div className="ShareDialog__socialIcons">
<Button disabled={!isPublic} onClick={copyLinkAction} color="primary">
<div className="ShareDialog__socialIcons__copyAction">
<div>
<CopyIcon />
</div>
<FormattedMessage {...messages.copyLink} />
</div>
</Button>
<Button disabled={!isPublic}>
<EmailShareButton
subject={intl.formatMessage(messages.subject)}
body={intl.formatMessage(messages.body, { url: url })}
url={url}
>
<EmailIcon round />
<FormattedMessage id="email" {...messages.email} />
</EmailShareButton>
</Button>
<Button disabled={!isPublic}>
<FacebookShareButton
quote={intl.formatMessage(messages.subject)}
url={url}
>
<FacebookIcon round />
<FormattedMessage id="facebook" {...messages.facebook} />
</FacebookShareButton>
</Button>
<Button disabled={!isPublic}>
<TwitterShareButton
title={intl.formatMessage(messages.subject)}
hashtags={['cboard', 'AAC']}
url={url}
>
<TwitterIcon round />
<FormattedMessage id="twitter" {...messages.twitter} />
</TwitterShareButton>
</Button>
<Button disabled={!isPublic}>
<WhatsappShareButton
title={intl.formatMessage(messages.subject)}
url={url}
>
<WhatsappIcon round />
<FormattedMessage id="whatsapp" {...messages.whatsapp} />
</WhatsappShareButton>
</Button>
<Button disabled={!isPublic}>
<RedditShareButton
title={intl.formatMessage(messages.subject)}
url={url}
{isLogged && (
<div className="ShareDialog__socialIcons">
<Button
disabled={!isPublic}
onClick={copyLinkAction}
color="primary"
>
<RedditIcon round />
<FormattedMessage id="reddit" {...messages.reddit} />
</RedditShareButton>
</Button>
</div>)}
<div className="ShareDialog__socialIcons__copyAction">
<div>
<CopyIcon />
</div>
<FormattedMessage {...messages.copyLink} />
</div>
</Button>
<Button disabled={!isPublic}>
<EmailShareButton
subject={intl.formatMessage(messages.subject)}
body={intl.formatMessage(messages.body, { url: url })}
url={url}
>
<EmailIcon round />
<FormattedMessage id="email" {...messages.email} />
</EmailShareButton>
</Button>
<Button disabled={!isPublic}>
<FacebookShareButton
quote={intl.formatMessage(messages.subject)}
url={url}
>
<FacebookIcon round />
<FormattedMessage id="facebook" {...messages.facebook} />
</FacebookShareButton>
</Button>
<Button disabled={!isPublic}>
<TwitterShareButton
title={intl.formatMessage(messages.subject)}
hashtags={['cboard', 'AAC']}
url={url}
>
<TwitterIcon round />
<FormattedMessage id="twitter" {...messages.twitter} />
</TwitterShareButton>
</Button>
<Button disabled={!isPublic}>
<WhatsappShareButton
title={intl.formatMessage(messages.subject)}
url={url}
>
<WhatsappIcon round />
<FormattedMessage id="whatsapp" {...messages.whatsapp} />
</WhatsappShareButton>
</Button>
<Button disabled={!isPublic}>
<RedditShareButton
title={intl.formatMessage(messages.subject)}
url={url}
>
<RedditIcon round />
<FormattedMessage id="reddit" {...messages.reddit} />
</RedditShareButton>
</Button>
</div>
)}
</DialogContent>
</Dialog>
</React.Fragment>
Expand All @@ -166,4 +181,4 @@ BoardShare.propTypes = {
copyLinkAction: PropTypes.func
};

export default withMobileDialog()(BoardShare);
export default withMobileDialog()(BoardShare);
10 changes: 4 additions & 6 deletions src/components/Board/BoardShare/BoardShare.css
Original file line number Diff line number Diff line change
Expand Up @@ -12,20 +12,18 @@
color: #000;
}

.ShareDialog__container .ShareDialog__Subtitle {
.ShareDialog__container .ShareDialog__content__publish {
display: flex;
flex-wrap: wrap;
justify-content: center;
align-items: center;
position: relative;
padding: 8px 0;
margin-bottom: 15px;
margin-bottom: 16px;
}

.ShareDialog__container
.ShareDialog__Subtitle
.ShareDialog__ToggleStatusButton {
top: 0;
.ShareDialog__content__publish > a {
margin: 16px;
}

.ShareDialog__socialIcons {
Expand Down
20 changes: 6 additions & 14 deletions src/components/Board/BoardShare/BoardShare.messages.js
Original file line number Diff line number Diff line change
Expand Up @@ -9,13 +9,9 @@ export default defineMessages({
id: 'cboard.components.BoardShare.close',
defaultMessage: 'Close'
},
unregisteredWarning:{
unregisteredWarning: {
id: 'cboard.components.BoardShare.unregisteredWarning',
defaultMessage: 'warning — you need to be registered to share a board'
},
loginSingup:{
id: 'cboard.components.BoardShare.loginSingup',
defaultMessage: 'LOGIN or SING UP'
defaultMessage: 'You need to be registered to share a board!'
},
publishBoard: {
id: 'cboard.components.BoardShare.publishBoard',
Expand All @@ -25,13 +21,9 @@ export default defineMessages({
id: 'cboard.components.BoardShare.unpublishBoard',
defaultMessage: 'Unpublish Board'
},
warningUnregisterShareBoard: {
id: 'cboard.components.boardshare.warningUnregisterShareBoard',
defaultMessage: 'warning — you need to be registered to share a board',
},
loginSignUpBtn: {
id: 'cboard.components.boardshare.loginSignUpBtn',
defaultMessage: 'LOGIN or SIGN UP',
loginSignUp: {
id: 'cboard.components.boardshare.loginSignUp',
defaultMessage: 'Login or Sign up'
},
copyLink: {
id: 'cboard.components.BoardShare.copyLink',
Expand Down Expand Up @@ -66,4 +58,4 @@ export default defineMessages({
defaultMessage:
'Hello! I want to share a communication board from the Cboard tool. Please find it at: {url}'
}
});
});
32 changes: 5 additions & 27 deletions src/components/Board/Navbar/Navbar.js
Original file line number Diff line number Diff line change
Expand Up @@ -34,28 +34,7 @@ export class Navbar extends React.Component {
}

onShareClick = () => {
let nativeShare = false;
// https://developer.mozilla.org/en-US/docs/Web/API/Navigator/share#Examples
if (
this.props.board &&
this.props.board.isPublic &&
window &&
window.navigator &&
window.navigator.share
) {
try {
window.navigator.share({
title: this.props.board.name,
text: this.props.board.name,
url: window.location.href
});
nativeShare = true;
} catch (e) {}
}

if (!nativeShare) {
this.setState({ openShareDialog: true });
}
this.setState({ openShareDialog: true });
};

onShareClose = () => {
Expand Down Expand Up @@ -126,7 +105,7 @@ export class Navbar extends React.Component {

const isPublic = board && board.isPublic;
const isOwnBoard = board && board.email === userData.email;
const isLogged = !isCordova() && userData && userData.name && userData.email;
const isLogged = userData && userData.name && userData.email;

return (
<div className={classNames('Navbar', className)}>
Expand Down Expand Up @@ -167,9 +146,7 @@ export class Navbar extends React.Component {
<React.Fragment>
<PrintBoardButton />
{!isMobile.any && <FullScreenButton />}
{isLogged && (
<AnalyticsButton component={Link} to="/analytics" />
)}
{isLogged && <AnalyticsButton component={Link} to="/analytics" />}
<SettingsButton component={Link} to="/settings" />
<BoardShare
label={intl.formatMessage(messages.share)}
Expand All @@ -183,6 +160,7 @@ export class Navbar extends React.Component {
copyLinkAction={this.copyLinkAction}
open={this.state.openShareDialog}
url={this.getBoardToShare()}
fullScreen={false}
/>
</React.Fragment>
)}
Expand Down Expand Up @@ -228,4 +206,4 @@ Navbar.propTypes = {
history: PropTypes.object.isRequired
};

export default withRouter(injectIntl(Navbar));
export default withRouter(injectIntl(Navbar));

0 comments on commit 58b73a3

Please sign in to comment.