File tree 3 files changed +23
-17
lines changed
3 files changed +23
-17
lines changed Original file line number Diff line number Diff line change 14
14
// limitations under the License.
15
15
16
16
import 'dart:async' ;
17
- // ignore: deprecated_member_use (#756)
18
- import 'dart:html' ;
19
-
17
+ import 'package:web/web.dart' ;
20
18
import 'src/generated/echo.pbgrpc.dart' ;
21
19
22
20
class EchoApp {
@@ -57,13 +55,23 @@ class EchoApp {
57
55
}
58
56
59
57
void _addMessage (String message, String cssClass) {
60
- final classes = cssClass.split (' ' );
61
- querySelector ('#first' )! .after (DivElement ()
62
- ..classes.add ('row' )
63
- ..append (Element .tag ('h2' )
64
- ..append (SpanElement ()
65
- ..classes.add ('label' )
66
- ..classes.addAll (classes)
58
+ document.querySelector ('#first' )! .after (HTMLDivElement ()
59
+ ..classList.add ('row' )
60
+ ..append (HTMLHeadingElement .h2 ()
61
+ ..append (HTMLSpanElement ()
62
+ ..classList.add ('label' )
63
+ ..classList.addAll (cssClass)
67
64
..text = message)));
68
65
}
69
66
}
67
+
68
+ // The documentation of DOMTokenList.add implies it can handle multiple classes,
69
+ // but in Chrome at least it does not.
70
+ extension AddAll on DOMTokenList {
71
+ void addAll (String cssClass) {
72
+ final classes = cssClass.split (' ' );
73
+ for (final c in classes) {
74
+ add (c);
75
+ }
76
+ }
77
+ }
Original file line number Diff line number Diff line change @@ -9,6 +9,7 @@ dependencies:
9
9
grpc :
10
10
path : ../../
11
11
protobuf : ^3.0.0
12
+ web : ^1.1.0
12
13
13
14
dev_dependencies :
14
15
build_runner : ^2.4.13
Original file line number Diff line number Diff line change 12
12
// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
13
13
// See the License for the specific language governing permissions and
14
14
// limitations under the License.
15
-
16
- // ignore: deprecated_member_use (#756)
17
- import 'dart:html' ;
18
-
19
15
import 'package:grpc/grpc_web.dart' ;
20
16
import 'package:grpc_web/app.dart' ;
21
17
import 'package:grpc_web/src/generated/echo.pbgrpc.dart' ;
18
+ import 'package:web/web.dart' ;
22
19
23
20
void main () {
24
21
final channel = GrpcWebClientChannel .xhr (Uri .parse ('http://localhost:8080' ));
25
22
final service = EchoServiceClient (channel);
26
23
final app = EchoApp (service);
27
24
28
- final button = querySelector ('#send' ) as ButtonElement ;
25
+ final button = document. querySelector ('#send' ) as HTMLButtonElement ;
29
26
button.onClick.listen ((e) async {
30
- final msg = querySelector ('#msg' ) as TextInputElement ;
31
- final value = msg.value! .trim ();
27
+ final msg = document. querySelector ('#msg' ) as HTMLInputElement ;
28
+ final value = msg.value.trim ();
32
29
msg.value = '' ;
33
30
34
31
if (value.isEmpty) return ;
You can’t perform that action at this time.
0 commit comments