diff --git a/example/lib/app.dart b/example/lib/app.dart index 9fad7d2..2b65b72 100644 --- a/example/lib/app.dart +++ b/example/lib/app.dart @@ -7,28 +7,35 @@ import 'todo_edit_page/page.dart'; import 'todo_list_page/page.dart'; //create global page helper -Page connectExtraStore>( +Page pageConfiguration>( Page page) { return page + + ///connect with app-store ..connectExtraStore(GlobalStore.store, (T pagestate, GlobalState appState) { return pagestate.themeColor == appState.themeColor ? pagestate - : (pagestate.clone()..themeColor = appState.themeColor); + : ((pagestate.clone())..themeColor = appState.themeColor); }) + + ///updateMiddleware ..updateMiddleware( view: (List> viewMiddleware) { - viewMiddleware.add(safetyView()); + viewMiddleware.add(safetyView()); + }, + adapter: (List> adapterMiddleware) { + adapterMiddleware.add(safetyAdapter()); }, - // adapter: ); + ; } Widget createApp() { final AbstractRoutes routes = HybridRoutes(routes: [ PageRoutes( pages: >{ - 'todo_list': connectExtraStore(ToDoListPage()), - 'todo_edit': connectExtraStore(TodoEditPage()) + 'todo_list': pageConfiguration(ToDoListPage()), + 'todo_edit': pageConfiguration(TodoEditPage()), }, ), ]); diff --git a/lib/src/redux_middleware/adapter_middleware/safety_adapter.dart b/lib/src/redux_middleware/adapter_middleware/safety_adapter.dart index 4d7687c..70e55d5 100644 --- a/lib/src/redux_middleware/adapter_middleware/safety_adapter.dart +++ b/lib/src/redux_middleware/adapter_middleware/safety_adapter.dart @@ -1,5 +1,6 @@ import 'package:flutter/widgets.dart'; +import '../../../fish_redux.dart'; import '../../redux/redux.dart'; import '../../redux_component/redux_component.dart'; @@ -11,37 +12,41 @@ AdapterMiddleware safetyAdapter({ }) { return (AbstractAdapter adapter, MixedStore store) { return (AdapterBuilder viewBuilder) { - return (dynamic state, Dispatch dispatch, ViewService viewService) { - try { - final ListAdapter result = viewBuilder(state, dispatch, viewService); - return ListAdapter((BuildContext buildContext, int index) { - try { - return result.itemBuilder(buildContext, index); - } catch (e, stackTrace) { - return onError?.call( - e, - stackTrace, - adapter: adapter, - store: store, - type: 1, - ) ?? - Container(width: 0, height: 0); - } - }, result.itemCount); - } catch (e, stackTrace) { - final Widget errorWidget = onError?.call( - e, - stackTrace, - adapter: adapter, - store: store, - type: 0, - ); - return errorWidget == null - ? const ListAdapter(null, 0) - : ListAdapter( - (BuildContext buildContext, int index) => errorWidget, 1); - } - }; + return isDebug() + ? viewBuilder + : (dynamic state, Dispatch dispatch, ViewService viewService) { + try { + final ListAdapter result = + viewBuilder(state, dispatch, viewService); + return ListAdapter((BuildContext buildContext, int index) { + try { + return result.itemBuilder(buildContext, index); + } catch (e, stackTrace) { + return onError?.call( + e, + stackTrace, + adapter: adapter, + store: store, + type: 1, + ) ?? + Container(width: 0, height: 0); + } + }, result.itemCount); + } catch (e, stackTrace) { + final Widget errorWidget = onError?.call( + e, + stackTrace, + adapter: adapter, + store: store, + type: 0, + ); + return errorWidget == null + ? const ListAdapter(null, 0) + : ListAdapter( + (BuildContext buildContext, int index) => errorWidget, + 1); + } + }; }; }; } diff --git a/lib/src/redux_middleware/view_middleware/safety_view.dart b/lib/src/redux_middleware/view_middleware/safety_view.dart index 78cc654..2783086 100644 --- a/lib/src/redux_middleware/view_middleware/safety_view.dart +++ b/lib/src/redux_middleware/view_middleware/safety_view.dart @@ -1,5 +1,6 @@ import 'package:flutter/widgets.dart'; +import '../../../fish_redux.dart'; import '../../redux/redux.dart'; import '../../redux_component/redux_component.dart'; @@ -9,19 +10,21 @@ ViewMiddleware safetyView( onError}) { return (AbstractComponent component, MixedStore store) { return (ViewBuilder viewBuilder) { - return (dynamic state, Dispatch dispatch, ViewService viewService) { - try { - return viewBuilder(state, dispatch, viewService); - } catch (e, stackTrace) { - return onError?.call( - e, - stackTrace, - component: component, - store: store, - ) ?? - Container(width: 0, height: 0); - } - }; + return isDebug() + ? viewBuilder + : (dynamic state, Dispatch dispatch, ViewService viewService) { + try { + return viewBuilder(state, dispatch, viewService); + } catch (e, stackTrace) { + return onError?.call( + e, + stackTrace, + component: component, + store: store, + ) ?? + Container(width: 0, height: 0); + } + }; }; }; }