pukaad_ui_app 0.0.5
pukaad_ui_app: ^0.0.5 copied to clipboard
A comprehensive and reusable UI Kit for Pukaad applications, featuring custom inputs, cards, and theme components.
example/lib/main.dart
import 'package:example/core/router/app_router.dart';
import 'package:flutter/material.dart';
import 'package:flutter_riverpod/flutter_riverpod.dart';
import 'package:pukaad_ui_app/pukaad_ui_app.dart';
import 'package:flutter_localizations/flutter_localizations.dart';
import 'package:flutter_quill/flutter_quill.dart';
void main() async {
WidgetsFlutterBinding.ensureInitialized();
LocaleSettings.useDeviceLocale();
// Sync PukaadUIConfig with current locale
_updatePukaadUIConfig();
// Listen to locale changes
LocaleSettings.getLocaleStream().listen((_) {
_updatePukaadUIConfig();
});
// Restore session
final container = ProviderContainer();
// Auth check is handled automatically by the provider's build method
runApp(
TranslationProvider(
child: UncontrolledProviderScope(
container: container,
child: const MyApp(),
),
),
);
}
void _updatePukaadUIConfig() {
PukaadUIConfig.strings = PukaadUIStrings(
forgotPassword: t_ui.auth.forgot_password,
passwordLengthRequirement: t_ui.auth.password_requirements.length,
passwordUpperCaseRequirement: t_ui.auth.password_requirements.uppercase,
passwordDigitRequirement: t_ui.auth.password_requirements.digit,
passwordNoSpaceRequirement: t_ui.auth.password_requirements.no_space,
recaptchaSiteKey: '6LeL5VksAAAAAFOZdKTrS-tZO0t8nhcdtesI8Z-x', // Public site key
);
PukaadUIConfig.websocketUrl = 'wss://api.example.com/ws';
}
class MyApp extends ConsumerWidget {
const MyApp({super.key});
@override
Widget build(BuildContext context, WidgetRef ref) {
final router = ref.watch(goRouterProvider);
return MaterialApp.router(
title: 'Pukaad Personal App',
debugShowCheckedModeBanner: false,
theme: AppTheme.lightTheme,
routerConfig: router,
locale: TranslationProvider.of(context).flutterLocale, // use provider
supportedLocales: AppLocaleUtils.supportedLocales,
localizationsDelegates: [
...GlobalMaterialLocalizations.delegates,
FlutterQuillLocalizations.delegate,
],
);
}
}