Skip to content

Commit

Permalink
feat: Mounting Completed
Browse files Browse the repository at this point in the history
  • Loading branch information
mathrunet committed Oct 23, 2022
1 parent f35d115 commit 049d686
Show file tree
Hide file tree
Showing 8 changed files with 225 additions and 154 deletions.
78 changes: 25 additions & 53 deletions packages/katana_listenables/example/lib/main.dart
@@ -1,38 +1,17 @@
import 'dart:math';

import 'package:katana_listenables_annotation/katana_listenables_annotation.dart';

import 'package:flutter/material.dart';

part 'main.listenable.dart';

class Test with _$Test {
factory Test({
@listenables
class ListenableValue with _$ListenableValue {
factory ListenableValue({
required TextEditingController name,
ValueNotifier<String> value,
}) = _Test;
}

class _Test with ChangeNotifier implements Test {
_Test({required this.name, this.value}) {
if (name is Listenable) {
name?.addListener(notifyListeners);
}
if (value is Listenable) {
value?.addListener(notifyListeners);
}
}
final TextEditingController name;
final ValueNotifier<String>? value;

@override
void dispose() {
super.dispose();
if (name is Listenable) {
name?.removeListener(notifyListeners);
}
if (value is Listenable) {
value?.removeListener(notifyListeners);
}
}
}) = _ListenableValue;
}

void main() {
Expand All @@ -44,58 +23,51 @@ class MyApp extends StatelessWidget {

@override
Widget build(BuildContext context) {
return LocalizeScope(
localize: l,
builder: (context, localize) {
return MaterialApp(
locale: localize.locale,
localizationsDelegates: localize.delegates(),
supportedLocales: localize.supportedLocales(),
localeResolutionCallback: localize.localeResolutionCallback(),
home: TestPage(),
title: "Flutter Demo",
theme: ThemeData(
primarySwatch: Colors.blue,
),
);
},
return MaterialApp(
home: const ListenablePage(),
title: "Flutter Demo",
theme: ThemeData(
primarySwatch: Colors.blue,
),
);
}
}

class TestPage extends StatefulWidget {
class ListenablePage extends StatefulWidget {
const ListenablePage({super.key});

@override
State<StatefulWidget> createState() => TestPageState();
State<StatefulWidget> createState() => ListenablePageState();
}

class TestPageState extends State<TestPage> {
final test = Test(
name: TextEditingController(text: "ccc"),
class ListenablePageState extends State<ListenablePage> {
final listenable = ListenableValue(
name: TextEditingController(text: "before click"),
);
@override
void initState() {
super.initState();
test.addListener(() {
listenable.addListener(() {
setState(() {});
});
}

@override
Widget build(BuildContext context) {
return Scaffold(
appBar: AppBar(title: Text(l().appTitle)),
appBar: AppBar(title: const Text("Flutter Demo")),
body: ListView(
children: [
ListTile(
title: Text(test.name.text),
title: Text(listenable.name.text),
onTap: () {
test.name.text = "aaa";
listenable.name.text = "after click";
},
),
ListTile(
title: Text(test.value?.value ?? ""),
title: Text(listenable.value?.value ?? ""),
onTap: () {
test.value?.value = Random().rangeInt(0, 100).toString();
listenable.value?.value = Random().nextInt(100).toString();
},
)
],
Expand Down
28 changes: 8 additions & 20 deletions packages/katana_listenables/example/pubspec.lock
Expand Up @@ -148,13 +148,6 @@ packages:
url: "https://pub.dartlang.org"
source: hosted
version: "3.0.2"
csv:
dependency: transitive
description:
name: csv
url: "https://pub.dartlang.org"
source: hosted
version: "5.0.1"
cupertino_icons:
dependency: "direct main"
description:
Expand Down Expand Up @@ -209,11 +202,6 @@ packages:
url: "https://pub.dartlang.org"
source: hosted
version: "2.0.1"
flutter_localizations:
dependency: transitive
description: flutter
source: sdk
version: "0.0.0"
flutter_test:
dependency: "direct dev"
description: flutter
Expand Down Expand Up @@ -296,27 +284,27 @@ packages:
url: "https://pub.dartlang.org"
source: hosted
version: "0.15.6"
katana_localization:
katana_listenables:
dependency: "direct main"
description:
path: ".."
relative: true
source: path
version: "1.1.5"
katana_localization_annotation:
version: "1.0.0"
katana_listenables_annotation:
dependency: "direct overridden"
description:
path: "../../katana_localization_annotation"
path: "../../katana_listenables_annotation"
relative: true
source: path
version: "1.1.3"
katana_localization_builder:
version: "1.0.0"
katana_listenables_builder:
dependency: "direct dev"
description:
path: "../../katana_localization_builder"
path: "../../katana_listenables_builder"
relative: true
source: path
version: "1.1.5"
version: "1.0.0"
lints:
dependency: transitive
description:
Expand Down
2 changes: 1 addition & 1 deletion packages/katana_listenables/example/test/widget_test.dart
Expand Up @@ -8,6 +8,6 @@
import 'package:flutter/material.dart';
import 'package:flutter_test/flutter_test.dart';

import 'package:katana_localization_example/main.dart';
import 'package:katana_listenables_example/main.dart';

void main() {}

0 comments on commit 049d686

Please sign in to comment.