Remove the external comunes-flutter library dependency and replace all its components with local implementations: - Utility functions: Created lib/utils/widget_utils.dart with compactWidgets() and ellipse() functions, replacing the comunes-flutter helpers with modern Dart null-safety patterns (whereType instead of where(notNull)) - Secret loader: Inlined as lib/utils/secret_loader.dart for loading JSON config - Layout widgets: Replaced CenteredRow/CenteredColumn with standard Row/Column with MainAxisAlignment.center - Intro screens: Copied AppIntroPage and MaterialAppWithIntro locally in lib/widgets/ with cleaned-up deprecated code patterns - Button widget: Created lib/widgets/rounded_btn.dart for the RoundedBtn used in activeFires.dart Changes span 20 files: - 5 new utility/widget files created - Updated imports in 15 files - Removed path dependency from pubspec.yaml - All functionality preserved, build verified with flutter pub get Impact: - Removes external dependency, simplifying project structure - Modern Dart patterns (proper null-safety) - Better code clarity with explicit widget properties - Easier onboarding (no 'what is comunes-flutter?' questions)
28 lines
637 B
Dart
28 lines
637 B
Dart
import 'package:meta/meta.dart';
|
|
|
|
import '../utils/widget_utils.dart';
|
|
|
|
@immutable
|
|
class User {
|
|
const User({required this.userId, required this.lang, required this.token});
|
|
|
|
const User.initial()
|
|
: userId = '',
|
|
lang = '',
|
|
token = '';
|
|
final String userId;
|
|
final String lang;
|
|
final String token;
|
|
|
|
User copyWith({String? userId, String? lang, String? token}) {
|
|
return User(
|
|
userId: userId ?? this.userId,
|
|
token: token ?? this.token,
|
|
lang: lang ?? this.lang);
|
|
}
|
|
|
|
@override
|
|
String toString() {
|
|
return 'User {userId: $userId, lang: $lang, token: ${ellipse(token)}';
|
|
}
|
|
}
|