diff --git a/packages/katana_scoped/example/pubspec.lock b/packages/katana_scoped/example/pubspec.lock index bb03814c4..2f3ccf154 100644 --- a/packages/katana_scoped/example/pubspec.lock +++ b/packages/katana_scoped/example/pubspec.lock @@ -28,7 +28,7 @@ packages: name: asn1lib url: "https://pub.dartlang.org" source: hosted - version: "1.3.0" + version: "1.4.0" async: dependency: transitive description: @@ -299,19 +299,19 @@ packages: source: hosted version: "6.5.4" katana: - dependency: "direct overridden" + dependency: transitive description: - path: "../../katana" - relative: true - source: path - version: "0.15.8+2" + name: katana + url: "https://pub.dartlang.org" + source: hosted + version: "0.15.10" katana_scoped: dependency: "direct main" description: path: ".." relative: true source: path - version: "1.3.3" + version: "1.5.2" lints: dependency: transitive description: @@ -543,3 +543,4 @@ packages: version: "3.1.1" sdks: dart: ">=2.18.1 <3.0.0" + flutter: ">=2.0.0" diff --git a/packages/katana_scoped/lib/src/scoped.dart b/packages/katana_scoped/lib/src/scoped.dart index 87d970b0b..2ce18c659 100644 --- a/packages/katana_scoped/lib/src/scoped.dart +++ b/packages/katana_scoped/lib/src/scoped.dart @@ -284,7 +284,8 @@ abstract class ScopedWidgetBase extends Widget { /// [widget]に[PageScopedWidget]や[ScopedWidget]を継承したクラスを渡します。 /// /// [ScopedWidgetScope.of]で先祖にあるウィジェットを取り出すことができます。 -class ScopedWidgetScope extends InheritedWidget { +class ScopedWidgetScope + extends InheritedWidget { /// [InheritedWidget] for making [ScopedWidgetBase] retrievable from descendant widgets. /// /// Pass a class inheriting from [PageScopedWidget] or [ScopedWidget] to [widget]. @@ -305,7 +306,7 @@ class ScopedWidgetScope extends InheritedWidget { /// Widgets that inherit from [ScopedWidgetBase]. /// /// [ScopedWidgetBase]を継承したウィジェット。 - final Widget widget; + final TWidget widget; /// O(1) out [TWidget] in ancestor by passing [context]. /// @@ -316,13 +317,13 @@ class ScopedWidgetScope extends InheritedWidget { /// 祖先に[TWidget]が存在しない場合はエラーが出力されます。 static TWidget of(BuildContext context) { final scope = context - .getElementForInheritedWidgetOfExactType() - ?.widget as ScopedWidgetScope?; + .getElementForInheritedWidgetOfExactType>() + ?.widget as ScopedWidgetScope?; assert( - scope != null && scope.widget is TWidget, + scope != null, "Could not find $TWidget. Please define $TWidget in the element above.", ); - return scope!.widget as TWidget; + return scope!.widget; } @override diff --git a/packages/katana_scoped/lib/src/scoped_ref.dart b/packages/katana_scoped/lib/src/scoped_ref.dart index 953943701..b31d02288 100644 --- a/packages/katana_scoped/lib/src/scoped_ref.dart +++ b/packages/katana_scoped/lib/src/scoped_ref.dart @@ -68,6 +68,17 @@ class AppRef implements Ref { ) ?.build(); } + + /// Discard and clear all appscope states. + /// + /// Please use this function to reset the application once, such as when logging out. + /// + /// すべてのアプリスコープの状態を破棄してクリアします。 + /// + /// ログアウト時など一旦アプリをリセットする場合にご利用ください。 + void dispose() { + _scopedValueContainer.dispose(); + } } /// A page-scoped reference passed from [PageScopedWidget.build]. diff --git a/packages/katana_scoped/pubspec.lock b/packages/katana_scoped/pubspec.lock index c1abac310..23976df58 100644 --- a/packages/katana_scoped/pubspec.lock +++ b/packages/katana_scoped/pubspec.lock @@ -14,7 +14,7 @@ packages: name: asn1lib url: "https://pub.dartlang.org" source: hosted - version: "1.3.0" + version: "1.4.0" async: dependency: transitive description: @@ -119,10 +119,10 @@ packages: katana: dependency: "direct main" description: - path: "../katana" - relative: true - source: path - version: "0.15.8+2" + name: katana + url: "https://pub.dartlang.org" + source: hosted + version: "0.15.10" matcher: dependency: transitive description: