Sign Up for Free

RunKit +

Try any Node.js package right in your browser

This is a playground to test code. It runs a full Node.js environment and already has all of npm’s 400,000 packages pre-installed, including react-social with all npm packages installed. Try it out:

require("react/package.json"); // react is a peer dependency. var reactSocial = require("react-social")

This service is provided by RunKit and is not affiliated with npm, Inc or the package authors.

react-social v1.10.0

React social buttons and counts for Facebook, Pinterest, Google etc ...

react-social

NPM version Build Status Dependency Status Download Count

Simple React components for social (Facebook, Google, VKontakte, Pinterest ...) buttons and counts.

Install

npm install react-social --save

Example

import { FacebookButton, FacebookCount } from "react-social";

class App extends Component {
  render {
    let url = "https://github.com";

    return (
      <FacebookButton url={url} appId={appId}>
        <FacebookCount url={url} />
        {" Share " + url}
      </FacebookButton>
    );
  }
}

Count API

WARNING: GooglePlusCount, TwitterCount and PocketCount uses the donreach API which has a limit of 1000 request per day, if you have an alternative please do not hesitate to make a PR

  • FacebookCount
  • TwitterCount
  • GooglePlusCount
  • PinterestCount
  • LinkedInCount
  • RedditCount
  • VKontakteCount
  • TumblrCount
  • PocketCount

Props

element

Change the element the component renders into, default is span.

url

The url you want to get the count of, default is window.location.

token
  • FacebookButton

Optional access token.

onCount

Callback for when the count is updated. Callback takes one argument count.

Methods

getCount()

Return the social count.

Button API

  • FacebookButton
  • TwitterButton
  • GooglePlusButton
  • PinterestButton
  • LinkedInButton
  • RedditButton
  • VKontakteButton
  • EmailButton
  • XingButton
  • TumblrButton
  • PocketButton
  • OdnoklassnikiButton
  • MyMailRuButton

Props

element

Change the element the component renders into, default is button.

url

The url you want to share, default is window.location.

target

The target you want to open, default is _blank.

windowOptions

Pass options to window.open.

message
  • TwitterButton
  • FacebookButton
  • XingButton
  • TumblrButton
  • PocketButton
  • VKButton
  • PinterestButton (required)
  • OdnoklassnikiButton (required)
  • MyMailRuButton (required)

A message that's prepended before the url.

title
  • VKButton
  • RedditButton
  • LinkedInButton
  • OdnoklassnikiButton (required)
  • MyMailRuButton (required)

Title of your shared content.

media
  • PinterestButton (required)
  • FacebookButton (optional)
  • OdnoklassnikiButton (required)
  • MyMailRuButton (required)

Url of an image.

appId
  • FacebookButton (required)

Facebook app id.

sharer
  • FacebookButton

Facebook has 2 different share dialogs. By default we're showing Feed Dialog which has more options, but supports only sharing to user's feed. You can set sharer option to true and we'll show Share Dialog where user can choose between their feed and also pages they have access to.

Styles

There are no styles included, the components pass all their props down to their element like className and style so you can easily style them yourself.

Notice

  • When rendered server side counts will be 0 since they depend on JSONP.
  • GooglePlusCount, TwitterCount and PocketCount uses the donreach API which has a limit of 1000 requests per day.

Contributors

  • Ola Holmström (@olahol)
  • Alexandr Sugak (@AlexSugak)
  • Jon Principe (@jprincipe)
  • Jean-Baptiste Quenot (@jbq)
  • Kurt Weiberth (@kweiberth)
  • Bartek Gruszka (@bartekgruszka)
  • Josh Owens (@queso)
  • Maxime Mezrahi (@maxs15)
  • Arvin Tehrani (@arvinkx)
  • Dennis Stücken (@dstuecken)
  • Jonas (@jonashaefele)
  • River Kanies (@riverKanies)
  • Pavel Linkesch (@orthes)
  • Vincent (@vkammerer)
  • Alexey Balmasov (@balmasich)
  • Amitom (@Amitom)
  • Ryan Nevius (@rnevius)
  • David Lakata (@dlakata)
  • Roman Kosovichev (@roma-so)
  • Igor Pnev (@exdeniz)
  • Belevskij Sergeij (@r72cccp)

MIT Licensed

RunKit is a free, in-browser JavaScript dev environment for prototyping Node.js code, with every npm package installed. Sign up to share your code.
Sign Up for Free