Skip to content
Simple React components for social buttons (Facebook, Twitter and Pinterest) and social counts.
HTML JavaScript
Branch: master
Clone or download
Permalink
Type Name Latest commit message Commit time
Failed to load latest commit information.
example examples for all buttons added May 20, 2016
.editorconfig v0.1.0 Jan 20, 2015
.gitignore v0.1.0 Jan 20, 2015
.jshintrc
.npmignore v0.1.0 Jan 20, 2015
.travis.yml fix tape-run Apr 27, 2016
CHANGELOG.md Update changelog and bump version to 1.10.0. Sep 16, 2017
README.md Change `imageUrl` to `media` and `description` to `message` in `Odnok… Sep 16, 2017
bower.json Fix AMD and bower dependencies. Sep 16, 2017
package-lock.json Use `create-react-class` and `prop-types`. Sep 16, 2017
package.json Fix AMD and bower dependencies. Sep 16, 2017
react-social.js Fix AMD and bower dependencies. Sep 16, 2017
test.js MyMailRu share button added Jul 20, 2017

README.md

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

You can’t perform that action at this time.