checkForAlreadyExists method

void checkForAlreadyExists(
  1. String moduleName,
  2. bool wrapWithModuleFolder,
  3. String? name
)

Implementation

void checkForAlreadyExists(String moduleName, bool wrapWithModuleFolder, String? name) {
  var newFileModel = Structure.model(
    name,
    'page',
    wrapWithModuleFolder,
    on: onCommand,
    folderName: wrapWithModuleFolder ? moduleName : null,
  );

  // Use full page folder path: lib/presentation/<module>/<name>
  var path = Structure.replaceAsExpected(path: newFileModel.path!);

  if (Directory(path).existsSync()) {
    final menu = Menu(
      [
        LocaleKeys.options_yes.tr,
        LocaleKeys.options_no.tr,
        LocaleKeys.options_rename.tr,
      ],
      title: Translation(LocaleKeys.ask_existing_page.trArgs([name])).toString(),
    );
    final result = menu.choose();
    if (result.index == 0) {
      _writeFiles(moduleName, path, name!, overwrite: true);
    } else if (result.index == 2) {
      var newName = ask(LocaleKeys.ask_new_page_name.tr);
      checkForAlreadyExists(moduleName, wrapWithModuleFolder, newName.trim().snakeCase);
    }
  } else {
    Directory(path).createSync(recursive: true); // Fix: Ensure the subdirectory is created
    _writeFiles(moduleName, path, name!, overwrite: false);
  }
}