1
1
@JS ('window' )
2
2
library facebook;
3
3
4
- import 'dart:async' ;
5
-
6
- import 'package:dart_browser_loader/dart_browser_loader.dart' ;
7
4
import 'package:js/js.dart' ;
8
5
9
- void addFacebookScript () {
10
- loadScript ('//connect.facebook.net/en_US/sdk.js' , id: 'facebook-jssdk' );
11
- }
12
-
13
6
@JS ('fbAsyncInit' )
14
- external set _fbAsyncInit (Function function);
15
-
16
- Future <void > fbAsyncInit () {
17
- final completer = new Completer <void >();
18
- _fbAsyncInit = allowInterop (completer.complete);
19
- return completer.future;
20
- }
7
+ external set fbAsyncInit (Function function);
21
8
22
9
@JS ()
23
10
@anonymous
@@ -69,62 +56,8 @@ class JsLoginStatusResponse {
69
56
{String status, JsAuthResponse authResponse});
70
57
}
71
58
72
- class AuthResponse {
73
- final String accessToken;
74
- final String expiresIn;
75
- final String signedRequest;
76
- final String userID;
77
-
78
- AuthResponse .fromJsObject (JsAuthResponse jsObject)
79
- : accessToken = jsObject.accessToken,
80
- expiresIn = jsObject.expiresIn,
81
- signedRequest = jsObject.signedRequest,
82
- userID = jsObject.userID;
83
- }
84
-
85
- enum LoginStatus {
86
- connected,
87
- notAuthorized,
88
- unknown,
89
- }
90
-
91
- LoginStatus _stringToLoginStatus (String status) {
92
- switch (status) {
93
- case 'connected' :
94
- return LoginStatus .connected;
95
- case 'not_authorized' :
96
- return LoginStatus .notAuthorized;
97
- case 'unknown' :
98
- return LoginStatus .unknown;
99
- default :
100
- return LoginStatus .unknown;
101
- }
102
- }
103
-
104
- class LoginStatusResponse {
105
- final LoginStatus status;
106
- final AuthResponse authResponse;
107
-
108
- LoginStatusResponse (String status, this .authResponse)
109
- : status = _stringToLoginStatus (status);
110
-
111
- LoginStatusResponse .fromJsObject (JsLoginStatusResponse jsObject)
112
- : status = _stringToLoginStatus (jsObject.status),
113
- authResponse = jsObject.authResponse != null
114
- ? new AuthResponse .fromJsObject (jsObject.authResponse)
115
- : null ;
116
- }
117
-
118
59
@JS ('FB.getLoginStatus' )
119
- external void _getLoginStatus (Function f);
120
-
121
- Future <LoginStatusResponse > getLoginStatus () {
122
- final completer = new Completer <LoginStatusResponse >();
123
- _getLoginStatus (allowInterop ((JsLoginStatusResponse response) {
124
- completer.complete (new LoginStatusResponse .fromJsObject (response));
125
- }));
126
- return completer.future;
127
- }
60
+ external void getLoginStatus (Function f);
128
61
129
62
@JS ()
130
63
@anonymous
@@ -135,22 +68,38 @@ class JsScope {
135
68
}
136
69
137
70
@JS ('FB.login' )
138
- external void _login (Function f, JsScope scope);
139
-
140
- Future <LoginStatusResponse > login ([List <String > scopes]) {
141
- scopes ?? = ['public_profile' ];
142
- final completer = new Completer <LoginStatusResponse >();
143
- _login (allowInterop ((JsLoginStatusResponse response) {
144
- completer.complete (new LoginStatusResponse .fromJsObject (response));
145
- }), new JsScope (scope: scopes.join ("," )));
146
- return completer.future;
147
- }
71
+ external void login (Function f, JsScope scope);
148
72
149
73
@JS ('FB.logout' )
150
- external void _logout (Function f);
74
+ external void logout (Function f);
151
75
152
- Future <void > logout () {
153
- final completer = new Completer ();
154
- _logout (allowInterop (completer.complete));
155
- return completer.future;
76
+ abstract class UiParams {
77
+ String get method;
156
78
}
79
+
80
+ @JS ()
81
+ @anonymous
82
+ class ShareDialogParams implements UiParams {
83
+ external String get method;
84
+ external String get href;
85
+ external String get hashtag;
86
+ external String get quote;
87
+ external bool get mobile_iframe;
88
+
89
+ external factory ShareDialogParams ({
90
+ String method = 'share' ,
91
+ String href,
92
+ String hashtag,
93
+ String quote,
94
+ bool mobile_iframe = false ,
95
+ });
96
+ }
97
+
98
+ @JS ()
99
+ @anonymous
100
+ class UiResponseData {
101
+ external String get errorMessage;
102
+ }
103
+
104
+ @JS ('FB.ui' )
105
+ external void ui (params, Function f);
0 commit comments