import 'package:flutter/material.dart'; import 'package:flutter_bloc/flutter_bloc.dart'; import 'package:flutter_svg/flutter_svg.dart'; import 'package:syncrow_app/features/devices/bloc/devices_cubit.dart'; import 'package:syncrow_app/features/devices/model/room_model.dart'; import 'package:syncrow_app/features/shared_widgets/custom_switch.dart'; import 'package:syncrow_app/features/shared_widgets/default_container.dart'; import 'package:syncrow_app/features/shared_widgets/text_widgets/body_large.dart'; import 'package:syncrow_app/utils/context_extension.dart'; import 'package:syncrow_app/utils/resource_manager/constants.dart'; class RoomPage extends StatelessWidget { const RoomPage({super.key, required this.room}); final RoomModel room; @override Widget build(BuildContext context) { return Padding( padding: const EdgeInsets.symmetric(horizontal: Constants.defaultPadding), child: SingleChildScrollView( child: BlocBuilder( builder: (context, state) { return GridView.builder( gridDelegate: const SliverGridDelegateWithFixedCrossAxisCount( crossAxisCount: 2, crossAxisSpacing: 10, mainAxisSpacing: 10, childAspectRatio: 1.5, ), padding: const EdgeInsets.only(top: 10), physics: const NeverScrollableScrollPhysics(), shrinkWrap: true, itemCount: room.categories.length, itemBuilder: (_, index) { return InkWell( onTap: () { DevicesCubit.get(context).selectCategory(index); //Navigate to the chosen category view without animation // Navigator.push( // context, // CustomPageRoute( // builder: (context) { // return DevicesCubit.get(context) // .chosenCategoryView!; // }, // ), // ); }, child: DefaultContainer( child: Padding( padding: const EdgeInsets.only(top: 10, right: 10, left: 10), child: Column( crossAxisAlignment: CrossAxisAlignment.start, mainAxisAlignment: MainAxisAlignment.spaceBetween, children: [ Row( crossAxisAlignment: CrossAxisAlignment.start, mainAxisAlignment: MainAxisAlignment.spaceBetween, children: [ SvgPicture.asset( room.categories[index].icon, fit: BoxFit.contain, ), CustomSwitch( category: room.categories[index], ), ], ), Expanded( child: FittedBox( fit: BoxFit.scaleDown, child: BodyLarge( text: room.categories[index].name, style: context.bodyLarge.copyWith( fontWeight: FontWeight.bold, height: 0, fontSize: 24, color: Colors.grey, ), ), ), ), ], ), ), ), ); }, ); }, ), ), ); } }