import 'package:flutter/material.dart'; import '../theme/app_color.dart'; // Mode Button Widget class ModeButton extends StatelessWidget { final String mode; final bool isSelected; final VoidCallback onPressed; const ModeButton({ super.key, required this.mode, required this.isSelected, required this.onPressed, }); @override Widget build(BuildContext context) { return Expanded( child: Padding( padding: const EdgeInsets.symmetric(horizontal: 4), child: ElevatedButton( onPressed: onPressed, style: ElevatedButton.styleFrom( backgroundColor: isSelected ? AppColor.primary : Colors.white, foregroundColor: isSelected ? Colors.white : AppColor.textDark, elevation: isSelected ? 2 : 0, shape: RoundedRectangleBorder( borderRadius: BorderRadius.circular(8), side: BorderSide( color: isSelected ? AppColor.primary : Colors.grey.shade300, ), ), padding: const EdgeInsets.symmetric(vertical: 12), ), child: Text( mode, style: const TextStyle(fontSize: 14, fontWeight: FontWeight.w600), ), ), ), ); } } // Control Switch Card Widget class ControlSwitchCard extends StatelessWidget { final String title; final bool isActive; final VoidCallback onPressed; const ControlSwitchCard({ super.key, required this.title, required this.isActive, required this.onPressed, }); @override Widget build(BuildContext context) { return Container( width: double.infinity, margin: const EdgeInsets.only(bottom: 12), decoration: BoxDecoration( color: Colors.white, borderRadius: BorderRadius.circular(8), boxShadow: [ BoxShadow( color: Colors.grey.shade200, blurRadius: 4, offset: const Offset(0, 2), ), ], ), child: Material( color: Colors.transparent, child: InkWell( onTap: onPressed, borderRadius: BorderRadius.circular(8), child: Padding( padding: const EdgeInsets.all(16), child: Row( mainAxisAlignment: MainAxisAlignment.spaceBetween, children: [ Text( title, style: TextStyle( fontSize: 16, fontWeight: FontWeight.w600, color: AppColor.textDark, ), ), Container( padding: const EdgeInsets.symmetric( horizontal: 16, vertical: 8, ), decoration: BoxDecoration( color: isActive ? AppColor.primary : Colors.grey.shade300, borderRadius: BorderRadius.circular(6), ), child: Text( isActive ? 'ON' : 'OFF', style: TextStyle( fontSize: 14, fontWeight: FontWeight.bold, color: isActive ? Colors.white : Colors.grey.shade600, ), ), ), ], ), ), ), ), ); } } // POT Card Widget class PotCard extends StatelessWidget { final String potName; final VoidCallback onTap; const PotCard({super.key, required this.potName, required this.onTap}); @override Widget build(BuildContext context) { return InkWell( onTap: onTap, child: Container( decoration: BoxDecoration( color: Colors.white, borderRadius: BorderRadius.circular(12), boxShadow: [ BoxShadow( color: Colors.grey.shade200, blurRadius: 4, offset: const Offset(0, 2), ), ], ), child: Column( mainAxisAlignment: MainAxisAlignment.center, children: [ Container( padding: const EdgeInsets.all(16), decoration: BoxDecoration( color: AppColor.primary.withOpacity(0.1), shape: BoxShape.circle, ), child: Icon(Icons.grass, size: 40, color: AppColor.primary), ), const SizedBox(height: 12), Text( potName, style: TextStyle( fontSize: 16, fontWeight: FontWeight.bold, color: AppColor.textDark, ), ), ], ), ), ); } }