meowchannel 2.1.2 copy "meowchannel: ^2.1.2" to clipboard
meowchannel: ^2.1.2 copied to clipboard

Simple&Async state manager with middlewares and workers! And yes, you CAN have more than one store in state without depth struggles!

example/lib/main.dart

import 'package:flutter/material.dart';
import 'package:meowchannel/extensions/flutter/logger/store_logger_module.dart';
import 'package:meowchannel/meowchannel.dart';

import 'note_list_store/note_list_reducer.dart';
import 'note_list_store/note_list_state.dart';
import 'note_list_store/note_list_worker.dart';

import 'note_application.dart';

void main() => runApp(MaterialApp(
  title: 'Notes!',
  theme: ThemeData(
    primarySwatch: Colors.blue,
  ),

  ///
  /// [MultiStoreProvider] is used to inject [Store] instances into every child widget
  /// Here [NoteListState] store is created with some middlewares (see [storeLogger])
  /// 
  home: MultiStoreProvider(
    providers: [
      StoreProvider<NoteListState>(
        create: (context) =>
          ///
          /// This is [Store]
          /// Oh, wait...
          /// This is 100% similar to Redux Store!
          /// 
          /// Same reducers, same middlewares
          /// Adapted for flutter!
          /// 
          /// Caution: only one Store<StateType> can be present in Provider and its children
          ///
          Store<NoteListState>(
            initialState: NoteListState(noteList: []),
            reducer: noteListReducer,
            modules: [
              ///
              /// [WorkerMiddleware] is a wrapper for a group of workers allowing them to receive actions on one channel
              /// (see [NoteListWorker] and its [NoteListWatcher])
              ///
              workerModule([
                noteListWatcher(noteListWorker)
              ]),
              computedModule<NoteListState>({
                'count': Computed<NoteListState, int>((NoteListState state, int? previousValue) => state.noteList.length)
              }),
              storeLoggerModule('noteListStore')
            ]
          ),
      )
    ],
    child: NoteApplication(),
  ),
));
6
likes
70
points
110
downloads

Publisher

verified publishernk2.eu

Weekly Downloads

Simple&Async state manager with middlewares and workers! And yes, you CAN have more than one store in state without depth struggles!

Repository (GitHub)

Documentation

API reference

License

MIT (license)

Dependencies

dataclass_beta, flutter, provider, rxdart, uuid

More

Packages that depend on meowchannel