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.id})
      : super(baseState: state, child: () => _${rc.pascalCase}State());

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

  static action(String action, {dynamic data, String? id}) =>
      stateAction(action, data: data, state: state, id: id);
}

class _${rc.pascalCase}State extends NyState<${rc.pascalCase}> {
  @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(),
    );
  }
}
''';