Implemented devices groups

This commit is contained in:
Abdullah Alassaf
2024-06-26 22:30:56 +03:00
parent 1fb8a8d035
commit 61c225af45
34 changed files with 1257 additions and 738 deletions

View File

@ -1,79 +1,72 @@
import 'package:flutter/material.dart';
import 'package:flutter_bloc/flutter_bloc.dart';
import 'package:syncrow_app/features/devices/bloc/devices_cubit.dart';
import 'package:syncrow_app/features/devices/model/device_model.dart';
import 'package:syncrow_app/features/shared_widgets/text_widgets/body_medium.dart';
import 'package:syncrow_app/utils/resource_manager/color_manager.dart';
class DevicesDefaultSwitch extends StatelessWidget {
const DevicesDefaultSwitch({
super.key,
required this.model,
});
const DevicesDefaultSwitch(
{super.key, required this.switchValue, required this.action, this.secondAction});
final DeviceModel model;
final bool switchValue;
final Function action;
final Function? secondAction;
@override
Widget build(BuildContext context) {
return BlocBuilder<DevicesCubit, DevicesState>(
builder: (context, state) {
return Row(
children: <Widget>[
Expanded(
child: InkWell(
onTap: () {
DevicesCubit.getInstance().turnOnOffDevice(model);
},
child: Container(
height: 60,
decoration: BoxDecoration(
color: model.isOnline ?? false
? ColorsManager.primaryColor
: Colors.white,
borderRadius: const BorderRadius.only(
topLeft: Radius.circular(15),
bottomLeft: Radius.circular(15),
),
),
child: Center(
child: BodyMedium(
text: "ON",
fontColor: model.isOnline ?? false ? Colors.white : null,
fontWeight: FontWeight.bold,
),
),
return Row(
children: <Widget>[
Expanded(
child: InkWell(
onTap: () {
action();
},
child: Container(
height: 60,
decoration: BoxDecoration(
color: switchValue ? ColorsManager.primaryColor : Colors.white,
borderRadius: const BorderRadius.only(
topLeft: Radius.circular(15),
bottomLeft: Radius.circular(15),
),
),
child: Center(
child: BodyMedium(
text: "ON",
fontColor: switchValue ? Colors.white : null,
fontWeight: FontWeight.bold,
),
),
),
Expanded(
child: InkWell(
onTap: () {
DevicesCubit.getInstance().turnOnOffDevice(model);
},
child: Container(
height: 60,
decoration: BoxDecoration(
color: model.isOnline ?? false
? Colors.white
: ColorsManager.primaryColor,
borderRadius: const BorderRadius.only(
topRight: Radius.circular(15),
bottomRight: Radius.circular(15),
),
),
child: Center(
child: BodyMedium(
text: "OFF",
fontColor: model.isOnline ?? false ? null : Colors.white,
fontWeight: FontWeight.bold,
),
),
),
),
Expanded(
child: InkWell(
onTap: () {
if (secondAction != null) {
secondAction!();
} else {
action();
}
},
child: Container(
height: 60,
decoration: BoxDecoration(
color: switchValue ? Colors.white : ColorsManager.primaryColor,
borderRadius: const BorderRadius.only(
topRight: Radius.circular(15),
bottomRight: Radius.circular(15),
),
),
child: Center(
child: BodyMedium(
text: "OFF",
fontColor: switchValue ? null : Colors.white,
fontWeight: FontWeight.bold,
),
),
),
],
);
},
),
),
],
);
}
}