2025-09-15 13:53:54 +03:30
|
|
|
import 'package:flutter/material.dart';
|
|
|
|
|
|
|
|
|
|
import 'package:hesabix_ui/l10n/app_localizations.dart';
|
|
|
|
|
import '../core/locale_controller.dart';
|
2025-09-18 10:44:23 +03:30
|
|
|
import '../core/calendar_controller.dart';
|
2025-09-15 13:53:54 +03:30
|
|
|
import '../widgets/language_switcher.dart';
|
2025-09-18 10:44:23 +03:30
|
|
|
import '../widgets/calendar_switcher.dart';
|
2025-09-15 13:53:54 +03:30
|
|
|
import '../theme/theme_controller.dart';
|
|
|
|
|
|
|
|
|
|
class HomePage extends StatelessWidget {
|
|
|
|
|
final LocaleController localeController;
|
2025-09-18 10:44:23 +03:30
|
|
|
final CalendarController calendarController;
|
2025-09-15 13:53:54 +03:30
|
|
|
final ThemeController themeController;
|
2025-09-18 10:44:23 +03:30
|
|
|
const HomePage({super.key, required this.localeController, required this.calendarController, required this.themeController});
|
2025-09-15 13:53:54 +03:30
|
|
|
|
|
|
|
|
@override
|
|
|
|
|
Widget build(BuildContext context) {
|
|
|
|
|
final t = AppLocalizations.of(context);
|
|
|
|
|
return Scaffold(
|
|
|
|
|
appBar: AppBar(
|
|
|
|
|
title: Text(t.appTitle),
|
|
|
|
|
actions: [
|
|
|
|
|
Padding(
|
2025-09-18 10:44:23 +03:30
|
|
|
padding: const EdgeInsets.symmetric(horizontal: 4.0),
|
|
|
|
|
child: CalendarSwitcher(controller: calendarController),
|
|
|
|
|
),
|
|
|
|
|
Padding(
|
|
|
|
|
padding: const EdgeInsets.symmetric(horizontal: 4.0),
|
2025-09-15 13:53:54 +03:30
|
|
|
child: LanguageSwitcher(controller: localeController),
|
|
|
|
|
),
|
|
|
|
|
_ThemeMenu(controller: themeController),
|
|
|
|
|
],
|
|
|
|
|
),
|
|
|
|
|
body: Center(child: Text(t.homeWelcome)),
|
|
|
|
|
);
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
class _ThemeMenu extends StatelessWidget {
|
|
|
|
|
final ThemeController controller;
|
|
|
|
|
const _ThemeMenu({required this.controller});
|
|
|
|
|
@override
|
|
|
|
|
Widget build(BuildContext context) {
|
|
|
|
|
return PopupMenuButton<ThemeMode>(
|
|
|
|
|
icon: const Icon(Icons.color_lens_outlined),
|
|
|
|
|
onSelected: (mode) => controller.setMode(mode),
|
|
|
|
|
itemBuilder: (context) => const [
|
|
|
|
|
PopupMenuItem(value: ThemeMode.system, child: Text('System')),
|
|
|
|
|
PopupMenuItem(value: ThemeMode.light, child: Text('Light')),
|
|
|
|
|
PopupMenuItem(value: ThemeMode.dark, child: Text('Dark')),
|
|
|
|
|
],
|
|
|
|
|
);
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|