2929
3030Star this project on [ GitHub] [ github-url ] .
3131
32+ # Initialisation
33+
34+ By default FacebookProvider is loading facebook script immediately with componentDidMount (you are able to use it with SSR).
35+ If you want to download facebook script only when facebook component is rendered you need to add parameter wait to FacebookProvider.
36+ Use only one instance of the FacebookProvider on your page.
37+
38+
3239# Usage
3340
3441## Like button
3542
3643``` js
3744import React , { Component } from ' react' ;
38- import FacebookProvider , { Like } from ' react-facebook' ;
45+ import { FacebookProvider , Like } from ' react-facebook' ;
3946
4047export default class Example extends Component {
4148 render () {
@@ -52,14 +59,16 @@ export default class Example extends Component {
5259
5360``` js
5461import React , { Component } from ' react' ;
55- import FacebookProvider , { Share } from ' react-facebook' ;
62+ import { FacebookProvider , Share } from ' react-facebook' ;
5663
5764export default class Example extends Component {
5865 render () {
5966 return (
6067 < FacebookProvider appId= " 123456789" >
6168 < Share href= " http://www.facebook.com" >
62- < button type= " button" > Share< / button>
69+ {({ handleClick, loading }) => (
70+ < button type= " button" disabled= " loading" onClick= {handleClick}> Share< / button>
71+ )}
6372 < / Share>
6473 < / FacebookProvider>
6574 );
@@ -73,13 +82,15 @@ You can use predefined button with bootstrap and font awesome classNames
7382
7483``` js
7584import React , { Component } from ' react' ;
76- import FacebookProvider , { ShareButton } from ' react-facebook' ;
85+ import { FacebookProvider , ShareButton } from ' react-facebook' ;
7786
7887export default class Example extends Component {
7988 render () {
8089 return (
8190 < FacebookProvider appId= " 123456789" >
82- < ShareButton href= " http://www.facebook.com" / >
91+ < ShareButton href= " http://www.facebook.com" >
92+ Share
93+ < / ShareButton>
8394 < / FacebookProvider>
8495 );
8596 }
@@ -90,7 +101,7 @@ export default class Example extends Component {
90101
91102``` js
92103import React , { Component } from ' react' ;
93- import FacebookProvider , { Comments } from ' react-facebook' ;
104+ import { FacebookProvider , Comments } from ' react-facebook' ;
94105
95106export default class Example extends Component {
96107 render () {
@@ -107,7 +118,7 @@ export default class Example extends Component {
107118
108119``` js
109120import React , { Component } from ' react' ;
110- import FacebookProvider , { CommentsCount } from ' react-facebook' ;
121+ import { FacebookProvider , CommentsCount } from ' react-facebook' ;
111122
112123export default class Example extends Component {
113124 render () {
@@ -120,11 +131,11 @@ export default class Example extends Component {
120131}
121132```
122133
123- ## Login
134+ ## Login Button
124135
125136``` js
126137import React , { Component } from ' react' ;
127- import FacebookProvider , { Login } from ' react-facebook' ;
138+ import { FacebookProvider , LoginButton } from ' react-facebook' ;
128139
129140export default class Example extends Component {
130141 handleResponse = (data ) => {
@@ -138,13 +149,13 @@ export default class Example extends Component {
138149 render () {
139150 return (
140151 < FacebookProvider appId= " 123456789" >
141- < Login
152+ < LoginButton
142153 scope= " email"
143- onResponse = {this .handleResponse }
154+ onCompleted = {this .handleResponse }
144155 onError= {this .handleError }
145156 >
146157 < span> Login via Facebook< / span>
147- < / Login >
158+ < / LoginButton >
148159 < / FacebookProvider>
149160 );
150161 }
@@ -153,11 +164,11 @@ export default class Example extends Component {
153164
154165### Custom login render
155166
156- If you want to use custom component you can use render or component property .
167+ If you want to use custom component you can use children as function .
157168
158169``` js
159170import React , { Component } from ' react' ;
160- import FacebookProvider , { Login } from ' react-facebook' ;
171+ import { FacebookProvider , Login } from ' react-facebook' ;
161172
162173export default class Example extends Component {
163174 handleResponse = (data ) => {
@@ -173,17 +184,18 @@ export default class Example extends Component {
173184 < FacebookProvider appId= " 123456789" >
174185 < Login
175186 scope= " email"
176- onResponse = {this .handleResponse }
187+ onCompleted = {this .handleResponse }
177188 onError= {this .handleError }
178- render= {({ isLoading, isWorking, onClick }) => (
179- < span onClick= {onClick}>
189+ >
190+ {({ loading, handleClick, error, data }) => (
191+ < span onClick= {handleClick}>
180192 Login via Facebook
181- {(isLoading || isWorking) && (
193+ {loading && (
182194 < span> Loading... < / span>
183195 )}
184196 < / span>
185197 )}
186- / >
198+ < / Login >
187199 < / FacebookProvider>
188200 );
189201 }
@@ -194,7 +206,7 @@ export default class Example extends Component {
194206
195207``` js
196208import React , { Component } from ' react' ;
197- import FacebookProvider , { EmbeddedPost } from ' react-facebook' ;
209+ import { FacebookProvider , EmbeddedPost } from ' react-facebook' ;
198210
199211export default class Example extends Component {
200212 render () {
@@ -212,7 +224,7 @@ export default class Example extends Component {
212224
213225``` js
214226import React , { Component } from ' react' ;
215- import FacebookProvider , { Page } from ' react-facebook' ;
227+ import { FacebookProvider , Page } from ' react-facebook' ;
216228
217229export default class Example extends Component {
218230 render () {
@@ -229,13 +241,17 @@ export default class Example extends Component {
229241
230242``` js
231243import React , { Component } from ' react' ;
232- import FacebookProvider , { Feed } from ' react-facebook' ;
244+ import { FacebookProvider , Feed } from ' react-facebook' ;
233245
234246export default class Example extends Component {
235247 render () {
236248 return (
237249 < FacebookProvider appId= " 123456789" >
238- < Feed link= " https://www.facebook.com" / >
250+ < Feed link= " https://www.facebook.com" >
251+ {({ handleClick }) => (
252+ < button type= " button" onClick= {handleClick}> Share on Feed< / button>
253+ )}
254+ < / Feed>
239255 < / FacebookProvider>
240256 );
241257 }
@@ -246,7 +262,7 @@ export default class Example extends Component {
246262
247263``` js
248264import React , { Component } from ' react' ;
249- import FacebookProvider , { MessageUs } from ' react-facebook' ;
265+ import { FacebookProvider , MessageUs } from ' react-facebook' ;
250266
251267export default class Example extends Component {
252268 render () {
@@ -263,7 +279,7 @@ export default class Example extends Component {
263279
264280``` js
265281import React , { Component } from ' react' ;
266- import FacebookProvider , { SendToMessenger } from ' react-facebook' ;
282+ import { FacebookProvider , SendToMessenger } from ' react-facebook' ;
267283
268284export default class Example extends Component {
269285 render () {
@@ -281,7 +297,7 @@ export default class Example extends Component {
281297
282298``` js
283299import React , { Component } from ' react' ;
284- import FacebookProvider , { MessengerCheckbox } from ' react-facebook' ;
300+ import { FacebookProvider , MessengerCheckbox } from ' react-facebook' ;
285301
286302export default class Example extends Component {
287303 render () {
@@ -299,13 +315,35 @@ export default class Example extends Component {
299315
300316``` js
301317import React , { Component } from ' react' ;
302- import FacebookProvider , { CustomChat } from ' react-facebook' ;
318+ import { FacebookProvider , CustomChat } from ' react-facebook' ;
319+
320+ export default class Example extends Component {
321+ render () {
322+ return (
323+ < FacebookProvider appId= " 123456789" >
324+ < CustomChat pageId= " 123456789" minimized= {false }/ >
325+ < / FacebookProvider>
326+ );
327+ }
328+ }
329+ ```
330+
331+ ## API Access
332+
333+ ``` js
334+ import React , { Component } from ' react' ;
335+ import { FacebookProvider , Initialize } from ' react-facebook' ;
303336
304337export default class Example extends Component {
305338 render () {
306339 return (
307340 < FacebookProvider appId= " 123456789" >
308- < CustomChat pageId= " 123456789" minimized= {false }/ >
341+ < Initialize>
342+ {({ isReady, api }) => {
343+ api .ui (... ) // our custom async/await api
344+ // original FB api is available via window.FB
345+ }}
346+ < Initialize>
309347 < / FacebookProvider>
310348 );
311349 }
0 commit comments