devedv
devedv

Reputation: 632

React Native Share Method Multiple Windows

I’m using react native share, to share text content. The issue is multiple windows are opened over each other on clicking share button multiple times. Even I have disabled button on share click but it is of no use as well.

The standard way is if share window is already open, on clicking the share button again the window get closed. How can it be done?

<Button 
 transparent
 disabled={this.state.isShareDisabled}
  onPress={() => this.onShare()}>

onShare() {
    if(!this.state.isShareDisabled)
    {
    this.setState(
        {
            isShareDisabled:true
        }
    )
    Share.share({
      message: “Message test”,
      url: ”www.google.com”,
      title: “Title test”
    }, {
      // Android only:
      dialogTitle: 'Share',
      // iOS only:
      excludedActivityTypes: [
        'com.apple.UIKit.activity.PostToTwitter'
      ]
    }) .then((result) => {
        this.setState(
            {
                isShareDisabled: false,
            }
        )
    })
}
  }

Upvotes: 2

Views: 939

Answers (2)

safina
safina

Reputation: 212

Use dismissed action. Share event support it on both android and iOS.

Upvotes: 1

devedv
devedv

Reputation: 632

I resolved it by doing the following, just required to check dismissedAction.

onShare() {
    if(!this.state.isShareDisabled)
    {
    this.setState(
        {
            isShareDisabled:true
        }
    )

    Share.share({ message:  'test',
         url: 'test url',
         title: 'test title'
         },
{
   // Android only:
   dialogTitle: 'Share',
   // iOS only:
   excludedActivityTypes: [
     'com.apple.UIKit.activity.PostToTwitter'
   ]
}).then(({action, activityType}) => {
  if(action === Share.dismissedAction) {
    this.setState(
        {
            isShareDisabled: false,
        }
    )
    }
  else {
    this.setState(
        {
         isShareDisabled: false,
        }
    )
  }
});
}
  }

Upvotes: 1

Related Questions