code refactoring

This commit is contained in:
Mohammad Salameh
2024-03-03 19:07:24 +03:00
parent ad511fe3af
commit d9a3f9e2a0
14 changed files with 144 additions and 48 deletions

View File

@ -0,0 +1,44 @@
import 'package:flutter/cupertino.dart';
import 'package:flutter/material.dart';
import 'package:flutter/widgets.dart';
import 'package:syncrow_app/features/devices/model/light_model.dart';
import 'package:syncrow_app/features/shared_widgets/default_container.dart';
class LightInterface extends StatelessWidget {
const LightInterface({super.key, required this.light});
final LightModel light;
@override
Widget build(BuildContext context) {
return SingleChildScrollView(
child: Column(
crossAxisAlignment: CrossAxisAlignment.stretch,
children: [
const SizedBox(height: 20),
Container(
constraints: const BoxConstraints(
maxHeight: 65,
),
margin: const EdgeInsets.symmetric(horizontal: 20, vertical: 10),
child: const DefaultContainer(child: SizedBox.expand()),
),
Container(
constraints: const BoxConstraints(
maxHeight: 310,
),
margin: const EdgeInsets.symmetric(horizontal: 20, vertical: 10),
child: const SizedBox.expand(),
),
Container(
constraints: const BoxConstraints(
maxHeight: 65,
),
margin: const EdgeInsets.symmetric(horizontal: 20, vertical: 10),
child: const SizedBox.expand(),
),
],
),
);
}
}

View File

@ -1,4 +1,5 @@
import 'package:flutter/material.dart';
import 'package:syncrow_app/features/devices/bloc/devices_cubit.dart';
import 'package:syncrow_app/features/devices/view/widgets/lights/light_brightness.dart';
import '../../../../shared_widgets/devices_default_switch.dart';
@ -31,7 +32,7 @@ class LightsList extends StatelessWidget {
BodySmall(text: lights[index].name ?? ""),
IconButton(
onPressed: () {
// LightsCubit.get(context).selectAC(device);
DevicesCubit.get(context).selectDevice(lights[index]);
},
icon: const Icon(
Icons.arrow_forward_ios,

View File

@ -1,17 +1,16 @@
import 'package:flutter/material.dart';
import 'package:flutter/services.dart';
import 'package:flutter_bloc/flutter_bloc.dart';
import 'package:syncrow_app/features/devices/view/widgets/lights/lights_list.dart';
import 'package:syncrow_app/features/devices/view/widgets/lights/lights_view_list.dart';
import '../../../../../generated/assets.dart';
import '../../../../../utils/resource_manager/color_manager.dart';
import '../../../../app_layout/view/widgets/default_app_bar.dart';
import '../../../../app_layout/view/widgets/default_nav_bar.dart';
import '../../../../shared_widgets/text_widgets/body_small.dart';
import '../../../bloc/devices_cubit.dart';
import '../../../bloc/lights/lights_cubit.dart';
import '../../../model/light_model.dart';
import '../universal_switch.dart';
import 'light_interface.dart';
class LightsView extends StatelessWidget {
const LightsView({super.key});
@ -22,6 +21,11 @@ class LightsView extends StatelessWidget {
create: (context) => LightsCubit(),
child: BlocBuilder<LightsCubit, LightsState>(
builder: (context, state) {
LightModel? selectedLight;
if (DevicesCubit.get(context).getSelectedDevice() is LightModel) {
selectedLight =
DevicesCubit.get(context).getSelectedDevice() as LightModel;
}
List<LightModel> lights = [];
for (var device in DevicesCubit.categories[1].devices) {
if (device is LightModel) {
@ -51,24 +55,9 @@ class LightsView extends StatelessWidget {
opacity: 0.4,
),
),
child: Padding(
padding: const EdgeInsets.only(
top: 70, right: 15, left: 15, bottom: 80),
child: SizedBox.expand(
child: SingleChildScrollView(
child: Column(
crossAxisAlignment: CrossAxisAlignment.stretch,
children: [
const BodySmall(text: "All Lights"),
UniversalSwitch(
category: DevicesCubit.categories[1],
),
LightsList(lights: lights),
],
),
),
),
),
child: selectedLight != null
? LightInterface(light: selectedLight)
: LightsViewList(lights: lights),
),
bottomNavigationBar: const DefaultNavBar(),
),

View File

@ -0,0 +1,37 @@
import 'package:flutter/material.dart';
import 'package:syncrow_app/features/devices/view/widgets/lights/lights_list.dart';
import '../../../../shared_widgets/text_widgets/body_small.dart';
import '../../../bloc/devices_cubit.dart';
import '../../../model/light_model.dart';
import '../universal_switch.dart';
class LightsViewList extends StatelessWidget {
const LightsViewList({
super.key,
required this.lights,
});
final List<LightModel> lights;
@override
Widget build(BuildContext context) {
return Padding(
padding: const EdgeInsets.only(top: 70, right: 15, left: 15, bottom: 80),
child: SizedBox.expand(
child: SingleChildScrollView(
child: Column(
crossAxisAlignment: CrossAxisAlignment.stretch,
children: [
const BodySmall(text: "All Lights"),
UniversalSwitch(
category: DevicesCubit.categories[1],
),
LightsList(lights: lights),
],
),
),
),
);
}
}