h-1.flutter.0/lib/modules/feature_module.dart
2026-03-04 14:55:40 +09:00

37 lines
849 B
Dart

import 'package:flutter/material.dart';
typedef ModuleCardAction = Future<void> Function(BuildContext context);
class ModuleDashboardCard {
const ModuleDashboardCard({
required this.id,
required this.route,
required this.title,
required this.description,
required this.iconName,
required this.onTap,
this.requiresUnlock = false,
});
final String id;
final String route;
final String title;
final String description;
final String iconName;
final ModuleCardAction onTap;
final bool requiresUnlock;
}
abstract class FeatureModule {
String get key;
bool get isEnabled;
List<ModuleDashboardCard> get dashboardCards;
ModuleDashboardCard? cardByRoute(String route) {
try {
return dashboardCards.firstWhere((card) => card.route == route);
} catch (_) {
return null;
}
}
}