61 lines
1.6 KiB
Dart
61 lines
1.6 KiB
Dart
import 'package:flutter/material.dart';
|
|
import 'package:provider/provider.dart';
|
|
|
|
import '../../../core/theme/colors.dart';
|
|
import '../../../core/theme/theme_provider.dart';
|
|
|
|
class ThemeToggle extends StatelessWidget {
|
|
const ThemeToggle({super.key});
|
|
|
|
@override
|
|
Widget build(BuildContext context) {
|
|
final themeProvider = context.watch<ThemeProvider>();
|
|
|
|
return Row(
|
|
children: [
|
|
Icon(
|
|
themeProvider.isDarkMode ? Icons.dark_mode : Icons.light_mode,
|
|
color: AppColors.primaryTextColor,
|
|
),
|
|
const SizedBox(width: 8),
|
|
Text(
|
|
themeProvider.isDarkMode ? 'Dark Mode' : 'Light Mode',
|
|
style: TextStyle(color: AppColors.primaryTextColor, fontSize: 16),
|
|
),
|
|
const Spacer(),
|
|
Switch(
|
|
value: themeProvider.isDarkMode,
|
|
onChanged: (value) {
|
|
themeProvider.toggleTheme();
|
|
},
|
|
activeColor: AppColors.primaryColor,
|
|
),
|
|
],
|
|
);
|
|
}
|
|
}
|
|
|
|
// Simple icon button version
|
|
class ThemeToggleButton extends StatelessWidget {
|
|
const ThemeToggleButton({super.key});
|
|
|
|
@override
|
|
Widget build(BuildContext context) {
|
|
final themeProvider = context.watch<ThemeProvider>();
|
|
|
|
return IconButton(
|
|
icon: Icon(
|
|
themeProvider.isDarkMode ? Icons.light_mode : Icons.dark_mode,
|
|
color: AppColors.primaryTextColor,
|
|
),
|
|
onPressed: () {
|
|
themeProvider.toggleTheme();
|
|
},
|
|
tooltip:
|
|
themeProvider.isDarkMode
|
|
? 'Switch to Light Mode'
|
|
: 'Switch to Dark Mode',
|
|
);
|
|
}
|
|
}
|