Files
tm_app/lib/views/profile/widgets/theme_toggle.dart
T
2025-08-10 16:05:03 +03:30

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',
);
}
}