Fixed design issues

This commit is contained in:
Abdullah Alassaf
2024-08-04 19:36:19 +03:00
parent 305680a082
commit a5a2446942
3 changed files with 26 additions and 35 deletions

View File

@ -15,10 +15,13 @@ import 'package:syncrow_app/utils/context_extension.dart';
mixin SceneLogicHelper {
bool isOnlyDelayOrDelayLast(List<SceneStaticFunction> tasks) {
final lastTask = tasks.last;
return tasks.every((task) => task.code == 'delay') ||
lastTask.code == 'delay' ||
lastTask.deviceId == 'delay';
final lastTask = tasks.isNotEmpty ? tasks.last : null;
return tasks.isNotEmpty
? tasks.every((task) => task.code == 'delay') ||
lastTask!.code == 'delay' ||
lastTask.deviceId == 'delay'
: false;
}
void handleSaveButtonPress(
@ -177,24 +180,21 @@ mixin SceneLogicHelper {
}
}
Widget getTheCorrectDialogBody(
SceneStaticFunction taskItem, dynamic functionValue,
Widget getTheCorrectDialogBody(SceneStaticFunction taskItem, dynamic functionValue,
{required bool isAutomation}) {
if (taskItem.operationDialogType == OperationDialogType.temperature) {
return AlertDialogTemperatureBody(
taskItem: taskItem,
functionValue: functionValue ?? taskItem.functionValue,
);
} else if ((taskItem.operationDialogType ==
OperationDialogType.countdown) ||
} else if ((taskItem.operationDialogType == OperationDialogType.countdown) ||
(taskItem.operationDialogType == OperationDialogType.delay)) {
return AlertDialogCountdown(
durationValue: taskItem.functionValue ?? 0,
functionValue: functionValue ?? taskItem.functionValue,
function: taskItem,
);
} else if (taskItem.operationDialogType ==
OperationDialogType.integerSteps) {
} else if (taskItem.operationDialogType == OperationDialogType.integerSteps) {
return AlertDialogSliderSteps(
taskItem: taskItem,
functionValue: functionValue ?? taskItem.functionValue,

View File

@ -60,7 +60,7 @@ class CustomBottomSheetWidget extends StatelessWidget {
),
SceneListTile(
assetPath: Assets.player,
titleString: 'Select Automation',
titleString: 'Select Smart Scene',
minLeadingWidth: 30,
assetHeight: 24,
padding: const EdgeInsets.symmetric(horizontal: 20),
@ -70,8 +70,7 @@ class CustomBottomSheetWidget extends StatelessWidget {
color: ColorsManager.greyColor,
),
onPressed: () {
Navigator.pushNamed(context, Routes.smartAutomationSelectRoute,
arguments: sceneId);
Navigator.pushNamed(context, Routes.smartAutomationSelectRoute, arguments: sceneId);
},
),
SceneListTile(
@ -93,8 +92,7 @@ class CustomBottomSheetWidget extends StatelessWidget {
}
void _onDelayActionPressed(BuildContext context) {
final functionValues =
context.read<CreateSceneBloc>().selectedValues['delay'];
final functionValues = context.read<CreateSceneBloc>().selectedValues['delay'];
final functions = [
SceneStaticFunction(
deviceId: 'delay',
@ -117,8 +115,7 @@ class CustomBottomSheetWidget extends StatelessWidget {
),
title: functions[0].operationName,
onConfirm: () {
final selectedValue =
context.read<CreateSceneBloc>().selectedValues['delay'];
final selectedValue = context.read<CreateSceneBloc>().selectedValues['delay'];
context.read<CreateSceneBloc>().add(TempHoldSceneTasksEvent(
deviceControlModel: DeviceControlModel(
deviceId: '',
@ -141,9 +138,7 @@ class CustomBottomSheetWidget extends StatelessWidget {
for (var element in tempTaskList) {
if (element.code == functions[0].code) {
context
.read<CreateSceneBloc>()
.add(RemoveTempTaskByIdEvent(code: functions[0].code));
context.read<CreateSceneBloc>().add(RemoveTempTaskByIdEvent(code: functions[0].code));
context
.read<CreateSceneBloc>()
.add(RemoveFromSelectedValueById(code: functions[0].code));

View File

@ -24,14 +24,13 @@ class CreateSceneSaveButton extends StatefulWidget {
State<CreateSceneSaveButton> createState() => _CreateSceneSaveButtonState();
}
class _CreateSceneSaveButtonState extends State<CreateSceneSaveButton>
with SceneLogicHelper {
class _CreateSceneSaveButtonState extends State<CreateSceneSaveButton> with SceneLogicHelper {
late TextEditingController sceneNameController;
@override
void initState() {
sceneNameController = TextEditingController(
text: widget.sceneName.isNotEmpty ? widget.sceneName : '');
sceneNameController =
TextEditingController(text: widget.sceneName.isNotEmpty ? widget.sceneName : '');
super.initState();
}
@ -46,12 +45,12 @@ class _CreateSceneSaveButtonState extends State<CreateSceneSaveButton>
return BlocConsumer<CreateSceneBloc, CreateSceneState>(
listener: (context, state) {
if (state is CreateSceneWithTasks) {
if (state.success == true) {
if (state.success) {
navigateToRoute(context, Routes.homeRoute);
sceneNameController.text = '';
CustomSnackBar.greenSnackBar('Scene created successfully');
return;
CustomSnackBar.greenSnackBar(widget.sceneName.isNotEmpty
? 'Scene updated successfully'
: 'Scene created successfully');
}
} else if (state is CreateSceneError) {
CustomSnackBar.displaySnackBar(state.message);
@ -61,8 +60,7 @@ class _CreateSceneSaveButtonState extends State<CreateSceneSaveButton>
return DefaultButton(
onPressed: () {
final sceneBloc = context.read<CreateSceneBloc>();
final isAutomation =
sceneBloc.sceneType == CreateSceneEnum.deviceStatusChanges;
final isAutomation = sceneBloc.sceneType == CreateSceneEnum.deviceStatusChanges;
if (widget.sceneName.isNotEmpty) {
handleSaveButtonPress(
@ -85,13 +83,11 @@ class _CreateSceneSaveButtonState extends State<CreateSceneSaveButton>
elevation: WidgetStateProperty.all(0),
textStyle: WidgetStateProperty.all(context.bodyMedium),
hintStyle: WidgetStateProperty.all(
context.bodyMedium.copyWith(
fontSize: 14,
color: ColorsManager.secondaryTextColor),
context.bodyMedium
.copyWith(fontSize: 14, color: ColorsManager.secondaryTextColor),
),
hintText: 'Enter scene name',
backgroundColor: WidgetStateProperty.all(
ColorsManager.backgroundColor),
backgroundColor: WidgetStateProperty.all(ColorsManager.backgroundColor),
),
),
),