File tree 4 files changed +58
-1
lines changed
4 files changed +58
-1
lines changed Original file line number Diff line number Diff line change
1
+ # 0.0.3
2
+
3
+ - fix: state remount
4
+
1
5
# 0.0.2
2
6
3
7
- feat: add ticker feature
Original file line number Diff line number Diff line change @@ -150,6 +150,13 @@ class _PhasedState<T> extends State<Phased<T>>
150
150
});
151
151
}
152
152
153
+ @override
154
+ void didUpdateWidget (Phased <T > old) {
155
+ super .didUpdateWidget (old);
156
+ old.state.removeListener (_update);
157
+ widget.state.addListener (_update);
158
+ }
159
+
153
160
@override
154
161
void dispose () {
155
162
_ticker? .dispose ();
Original file line number Diff line number Diff line change 1
1
name : phased
2
2
description : Simplified state management focused on animations
3
3
repository : https://github.com/erickzanardo/phased
4
- version : 0.0.2
4
+ version : 0.0.3
5
5
6
6
environment :
7
7
sdk : ' >=2.18.0 <3.0.0'
Original file line number Diff line number Diff line change @@ -227,5 +227,51 @@ void main() {
227
227
228
228
expect (find.text ('B' ), findsOneWidget);
229
229
});
230
+
231
+ testWidgets ('attaches to a new state' , (tester) async {
232
+ final key = GlobalKey ();
233
+ final state = PhasedState (
234
+ values: [true , false ],
235
+ autostart: false ,
236
+ ticker: Duration (milliseconds: 1 ),
237
+ );
238
+ await tester.pumpWidget (
239
+ MaterialApp (
240
+ home: Scaffold (
241
+ body: StatefulBuilder (
242
+ builder: (context, setState) {
243
+ return Column (
244
+ children: [
245
+ ElevatedButton (
246
+ child: Text ('Rebuild' ),
247
+ onPressed: () {
248
+ setState (() {});
249
+ },
250
+ ),
251
+ Center (
252
+ child: Blink (
253
+ key: key,
254
+ state: state,
255
+ ),
256
+ ),
257
+ ],
258
+ );
259
+ },
260
+ ),
261
+ ),
262
+ ),
263
+ );
264
+
265
+ expect (find.text ('A' ), findsOneWidget);
266
+
267
+ await tester.tap (find.text ('Rebuild' ));
268
+ await tester.pump ();
269
+
270
+ expect (find.text ('B' ), findsOneWidget);
271
+
272
+ await tester.pump ();
273
+
274
+ expect (find.text ('A' ), findsOneWidget);
275
+ });
230
276
});
231
277
}
You can’t perform that action at this time.
0 commit comments