nexstate 1.1.1 copy "nexstate: ^1.1.1" to clipboard
nexstate: ^1.1.1 copied to clipboard

discontinued
outdated

A simple dart package for state management inspired by BLoC package.

example/nexstate_example.dart

import 'dart:async';

import 'package:nexstate/src/nexstate_base.dart';

Future<void> main() async {
  final userStore = UserStore();

  await userStore.dispatch(
    const LogIn(
      User(
        firstName: 'John',
        lastName: 'Doe',
        userName: 'john_doe',
      ),
    ),
  );

  await userStore.dispatchCompound(
    const SwitchAndLogout(
      User(
        firstName: 'Jane',
        lastName: 'Doe',
        userName: 'jane_doe',
      ),
    ),
  );
}

class User {
  final String firstName;
  final String lastName;
  final String userName;

  const User({
    required this.firstName,
    required this.lastName,
    required this.userName,
  });

  @override
  String toString() {
    return {
      'firstName': firstName,
      'lastName': lastName,
      'userName': userName,
    }.toString();
  }
}

class UserStore extends Store<User?> {
  UserStore() : super(null, logger: true);
}

class LogIn extends Action<User?> {
  final User user;

  const LogIn(this.user) : super();

  @override
  Future<User?> activate(User? state) async => user;
}

class LogOut extends Action<User?> {
  const LogOut() : super();

  @override
  Future<User?> activate(User? state) async => null;
}

class SwitchAndLogout extends CompoundAction<User?> {
  final User user;

  const SwitchAndLogout(this.user) : super();

  @override
  Future<void> activate(User? state, Dispatcher<User?> dispatch) async {
    await dispatch(LogIn(user));

    await Future.delayed(
      const Duration(seconds: 2),
      () => dispatch(const LogOut()),
    );
  }
}
2
likes
0
pub points
0%
popularity

Publisher

unverified uploader

A simple dart package for state management inspired by BLoC package.

Homepage
Repository (GitHub)
View/report issues

License

unknown (LICENSE)

Dependencies

nexbounce

More

Packages that depend on nexstate