~cytrogen/masto-fe

e7dc375aab0a5f9bf2695b7657269f088c9a086d — Eugen Rochko 2 years ago 7bec63e
[Glitch] Change share action from being in action bar to being in dropdown in web UI

Port 1caa5ff39e95f01eb74ee71b76eaa6c0fd7309fd to glitch-soc

Co-authored-by: Claire <claire.github-309c@sitedethib.com>
Signed-off-by: Claire <claire.github-309c@sitedethib.com>
M app/javascript/flavours/glitch/components/status_action_bar.jsx => app/javascript/flavours/glitch/components/status_action_bar.jsx +4 -6
@@ 103,7 103,6 @@ class StatusActionBar extends ImmutablePureComponent {

  handleShareClick = () => {
    navigator.share({
      text: this.props.status.get('search_index'),
      url: this.props.status.get('url'),
    });
  };


@@ 222,6 221,10 @@ class StatusActionBar extends ImmutablePureComponent {

    menu.push({ text: intl.formatMessage(messages.copy), action: this.handleCopy });

    if (publicStatus && 'share' in navigator) {
      menu.push({ text: intl.formatMessage(messages.share), action: this.handleShareClick });
    }

    if (publicStatus) {
      menu.push({ text: intl.formatMessage(messages.embed), action: this.handleEmbed });
    }


@@ 281,10 284,6 @@ class StatusActionBar extends ImmutablePureComponent {
      replyTitle = intl.formatMessage(messages.replyAll);
    }

    const shareButton = ('share' in navigator) && publicStatus && (
      <IconButton className='status__action-bar-button' title={intl.formatMessage(messages.share)} icon='share-alt' onClick={this.handleShareClick} />
    );

    const reblogPrivate = status.getIn(['account', 'id']) === me && status.get('visibility') === 'private';

    let reblogTitle = '';


@@ 314,7 313,6 @@ class StatusActionBar extends ImmutablePureComponent {
        />
        <IconButton className={classNames('status__action-bar-button', { reblogPrivate })} disabled={!publicStatus && !reblogPrivate} active={status.get('reblogged')} title={reblogTitle} icon={reblogIcon} onClick={this.handleReblogClick} counter={withCounters ? status.get('reblogs_count') : undefined} />
        <IconButton className='status__action-bar-button star-icon' animate active={status.get('favourited')} title={intl.formatMessage(messages.favourite)} icon='star' onClick={this.handleFavouriteClick} counter={withCounters ? status.get('favourites_count') : undefined} />
        {shareButton}
        <IconButton className='status__action-bar-button bookmark-icon' disabled={anonymousAccess} active={status.get('bookmarked')} title={intl.formatMessage(messages.bookmark)} icon='bookmark' onClick={this.handleBookmarkClick} />

        {filterButton}

M app/javascript/flavours/glitch/features/account/components/header.jsx => app/javascript/flavours/glitch/features/account/components/header.jsx +0 -1
@@ 152,7 152,6 @@ class Header extends ImmutablePureComponent {
    const { account } = this.props;

    navigator.share({
      text: `${titleFromAccount(account)}\n${account.get('note_plain')}`,
      url: account.get('url'),
    }).catch((e) => {
      if (e.name !== 'AbortError') console.error(e);

M app/javascript/flavours/glitch/features/status/components/action_bar.jsx => app/javascript/flavours/glitch/features/status/components/action_bar.jsx +5 -6
@@ 128,7 128,6 @@ class ActionBar extends PureComponent {

  handleShare = () => {
    navigator.share({
      text: this.props.status.get('search_index'),
      url: this.props.status.get('url'),
    });
  };


@@ 160,6 159,11 @@ class ActionBar extends PureComponent {
      }

      menu.push({ text: intl.formatMessage(messages.copy), action: this.handleCopy });

      if ('share' in navigator) {
        menu.push({ text: intl.formatMessage(messages.share), action: this.handleShare });
      }

      menu.push({ text: intl.formatMessage(messages.embed), action: this.handleEmbed });
      menu.push(null);
    }


@@ 199,10 203,6 @@ class ActionBar extends PureComponent {
      }
    }

    const shareButton = ('share' in navigator) && publicStatus && (
      <div className='detailed-status__button'><IconButton title={intl.formatMessage(messages.share)} icon='share-alt' onClick={this.handleShare} /></div>
    );

    const reblogPrivate = status.getIn(['account', 'id']) === me && status.get('visibility') === 'private';

    let reblogTitle;


@@ 221,7 221,6 @@ class ActionBar extends PureComponent {
        <div className='detailed-status__button'><IconButton title={intl.formatMessage(messages.reply)} icon={status.get('in_reply_to_id', null) === null ? 'reply' : 'reply-all'} onClick={this.handleReplyClick} /></div>
        <div className='detailed-status__button'><IconButton className={classNames({ reblogPrivate })} disabled={!publicStatus && !reblogPrivate} active={status.get('reblogged')} title={reblogTitle} icon='retweet' onClick={this.handleReblogClick} /></div>
        <div className='detailed-status__button'><IconButton className='star-icon' animate active={status.get('favourited')} title={intl.formatMessage(messages.favourite)} icon='star' onClick={this.handleFavouriteClick} /></div>
        {shareButton}
        <div className='detailed-status__button'><IconButton className='bookmark-icon' disabled={!signedIn} active={status.get('bookmarked')} title={intl.formatMessage(messages.bookmark)} icon='bookmark' onClick={this.handleBookmarkClick} /></div>

        <div className='detailed-status__action-bar-dropdown'>