Skip to content

Commit e4f1365

Browse files
committed
feat: implemting a widget which is reactive to a stream using rx_widgets
1 parent 767b2d2 commit e4f1365

File tree

7 files changed

+76
-5
lines changed

7 files changed

+76
-5
lines changed

lib/building_block_getx.dart

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -4,7 +4,7 @@ import 'package:get/get.dart';
44
import 'binding/detail_binding.dart';
55
import 'binding/home_binding.dart';
66
import 'binding/initial_binding.dart';
7-
import 'view/detail.dart';
7+
import 'view/detail_v1.dart';
88
import 'view/home.dart';
99

1010
void main() {
@@ -25,7 +25,7 @@ class MyApp extends StatelessWidget {
2525
),
2626
getPages: [
2727
GetPage(name: "/home", page: () => HomeScreen(), binding: HomeBinding()),
28-
GetPage(name: "/detail", page: () => DetailScreenV2(), binding: DetailBinding()),
28+
GetPage(name: "/detail", page: () => DetailScreenV1(), binding: DetailBinding()),
2929
],
3030
initialRoute: "/home",
3131
);

lib/main.dart

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -4,7 +4,7 @@ import 'package:get/get.dart';
44
import 'binding/detail_binding.dart';
55
import 'binding/home_binding.dart';
66
import 'binding/initial_binding.dart';
7-
import 'view/detail.dart';
7+
import 'view/detail_v2.dart';
88
import 'view/home.dart';
99

1010
void main() {

lib/view/detail.dart renamed to lib/view/detail_v1.dart

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -3,7 +3,7 @@ import 'package:get/get.dart';
33
import 'package:getx_websocket_example/services/data.service_v2.dart';
44
import 'package:getx_websocket_example/services/logging.service.dart';
55

6-
class DetailScreenV2 extends GetWidget<DataServiceV2> {
6+
class DetailScreenV1 extends GetWidget<DataServiceV2> {
77
final logger = LoggingService().logger;
88

99
@override

lib/view/detail_v2.dart

Lines changed: 42 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,42 @@
1+
import 'package:flutter/material.dart';
2+
import 'package:get/get.dart';
3+
import 'package:getx_websocket_example/model/user-data-profile.entity.dart';
4+
import 'package:getx_websocket_example/services/data.service_v2.dart';
5+
import 'package:getx_websocket_example/services/logging.service.dart';
6+
import 'package:rx_widgets/rx_widgets.dart';
7+
8+
class DetailScreenV2 extends GetWidget<DataServiceV2> {
9+
final logger = LoggingService().logger;
10+
11+
@override
12+
Widget build(BuildContext context) {
13+
logger.v('DetailScreen 1.1');
14+
controller.fetchUserDataProfile();
15+
return Scaffold(
16+
appBar: AppBar(
17+
title: ReactiveBuilder<UserDataProfile>(
18+
stream: controller.userDataProfile.stream,
19+
builder: (BuildContext context, data) {
20+
return Text(data.name);
21+
},
22+
),
23+
leading: IconButton(
24+
icon: Icon(Icons.arrow_back),
25+
onPressed: () {
26+
Get.back();
27+
},
28+
),
29+
),
30+
body: ReactiveBuilder<UserDataProfile>(
31+
stream: controller.userDataProfile.stream,
32+
builder: (BuildContext context, data) {
33+
return Center(
34+
child: Text(
35+
data.email,
36+
style: TextStyle(fontSize: 24),
37+
),
38+
);
39+
},
40+
));
41+
}
42+
}

lib/view/home.dart

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -3,7 +3,7 @@ import 'package:flutter/material.dart';
33
import 'package:get/get.dart';
44
import 'package:getx_websocket_example/controller/home_controller.dart';
55

6-
import 'detail.dart';
6+
import 'detail_v2.dart';
77

88
class HomeScreen extends StatelessWidget {
99
@override

pubspec.lock

Lines changed: 28 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -109,6 +109,34 @@ packages:
109109
url: "https://pub.dartlang.org"
110110
source: hosted
111111
version: "1.8.0"
112+
quiver_hashcode:
113+
dependency: transitive
114+
description:
115+
name: quiver_hashcode
116+
url: "https://pub.dartlang.org"
117+
source: hosted
118+
version: "2.0.0"
119+
rx_command:
120+
dependency: transitive
121+
description:
122+
name: rx_command
123+
url: "https://pub.dartlang.org"
124+
source: hosted
125+
version: "5.3.0"
126+
rx_widgets:
127+
dependency: "direct main"
128+
description:
129+
name: rx_widgets
130+
url: "https://pub.dartlang.org"
131+
source: hosted
132+
version: "3.1.0"
133+
rxdart:
134+
dependency: transitive
135+
description:
136+
name: rxdart
137+
url: "https://pub.dartlang.org"
138+
source: hosted
139+
version: "0.25.0"
112140
sky_engine:
113141
dependency: transitive
114142
description: flutter

pubspec.yaml

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -26,6 +26,7 @@ dependencies:
2626
get: 4.1.2
2727
web_socket_channel: 1.2.0
2828
logger: ^1.0.0
29+
rx_widgets: ^3.1.0
2930

3031

3132
# The following adds the Cupertino Icons font to your application.

0 commit comments

Comments
 (0)