createState method

Future<void> createState(
  1. String name, {
  2. String withArgument = '',
  3. String onCommand = '',
})

Implementation

Future<void> createState(
  String name, {
  String withArgument = '',
  String onCommand = '',
}) async {
  final isServer = PubspecUtils.isServerProject;
  final extraFolder = PubspecUtils.extraFolder ?? true;
  var sample = StateSample(
    '',
    name,
    isServer,
  );
  if (withArgument.isNotEmpty) {
    sample.customContent = await loadContent(withArgument, name);
  }
  var stateFile = handleFileCreate(
    name,
    'state',
    onCommand,
    onCommand.isNotEmpty ? extraFolder : true,
    sample,
    'states',
  );

  var controllerName = name;
  var controllerPath = findControllerFromName(stateFile.path, controllerName);
  if (controllerPath.isEmpty) {
    controllerName = onCommand;
    controllerPath =
        findControllerFromName(stateFile.path, basename(controllerName));
  }
  var pathSplit = Structure.safeSplitPath(stateFile.path);
  pathSplit.remove('.');
  pathSplit.remove('lib');
  if (controllerPath.isNotEmpty) {
    await addStatesToController(
      controllerPath,
      controllerName,
      pathSplit.join('/'),
      name,
    );
  }
}