widgetStateManagedStub function

String widgetStateManagedStub(
  1. ReCase rc
)

This stub is used to create a State Managed Widget in the /resources/widgets/ directory.

Implementation

String widgetStateManagedStub(ReCase rc) => '''
import 'package:flutter/material.dart';
import 'package:nylo_framework/nylo_framework.dart';

class ${rc.pascalCase} extends NyStateManaged {
  ${rc.pascalCase}({super.key, super.stateName})
      : super(child: () => _${rc.pascalCase}State(stateName));

  static String state = "${rc.snakeCase}";

  static String _stateFor(String? state) =>
      state == null ? ${rc.pascalCase}.state : "\${${rc.pascalCase}.state}_\$state";

  static action(String action, {dynamic data, String? stateName}) {
    return stateAction(action, data: data, state: _stateFor(stateName));
  }
}

class _${rc.pascalCase}State extends NyState<${rc.pascalCase}> {
  _${rc.pascalCase}State(String? stateName) {
    this.stateName = ${rc.pascalCase}._stateFor(stateName);
  }

  @override
  get init => () {
   // initialization logic here
  };

  @override
  Map<String, Function> get stateActions => {
    "my_action": (data) {},
    "clear_data": () {
      // Invoke actions from anywhere in your app
      // ${rc.pascalCase}.action("my_action", data: "hello world");
      // ${rc.pascalCase}.action("clear_data");
    },
  };

  @override
  Widget view(BuildContext context) {
    return Container(
      child: Text("My Widget").bodyMedium(),
    );
  }
}
''';