generateScreen method

void generateScreen(
  1. ProjectContext ctx,
  2. String screenName, {
  3. required String feature,
})

Generate a single screen for the project's architecture.

Implementation

void generateScreen(
  ProjectContext ctx,
  String screenName, {
  required String feature,
}) {
  final snake = StringUtils.toSnakeCase(screenName);
  if (!StringUtils.isValidPackageName(snake)) {
    throw StateError(
      'Invalid screen name "$screenName". Use lowercase letters, '
      'numbers, and underscores (e.g., user_profile).',
    );
  }

  switch (ctx.architecture) {
    case 'clean':
      _generateCleanScreen(ctx, snake, feature: feature);
      break;
    case 'mvvm':
      _generateMvvmScreen(ctx, snake);
      break;
    case 'feature-first':
      _generateFeatureFirstScreen(ctx, snake, feature: feature);
      break;
    case 'simple':
      _generateSimpleScreen(ctx, snake);
      break;
    default:
      throw StateError(
        'Unknown architecture "${ctx.architecture}" in srik.yaml.',
      );
  }
}