use dynamic instead of bool to accept mant types and fix schedual view to accept curtain code and value

This commit is contained in:
Rafeek-Khoudare
2025-06-27 17:55:27 +03:00
parent 0c0bf96c07
commit 26e8ff7ee2
3 changed files with 19 additions and 6 deletions

View File

@ -12,10 +12,17 @@ import 'package:syncrow_web/pages/device_managment/water_heater/helper/add_sched
import 'package:syncrow_web/pages/device_managment/water_heater/models/water_heater_status_model.dart'; import 'package:syncrow_web/pages/device_managment/water_heater/models/water_heater_status_model.dart';
class BuildScheduleView extends StatelessWidget { class BuildScheduleView extends StatelessWidget {
const BuildScheduleView( const BuildScheduleView({
{super.key, required this.deviceUuid, required this.category}); super.key,
required this.deviceUuid,
required this.category,
this.code,
this.value,
});
final String deviceUuid; final String deviceUuid;
final String category; final String category;
final String? code;
final String? value;
@override @override
Widget build(BuildContext context) { Widget build(BuildContext context) {
@ -59,11 +66,14 @@ class BuildScheduleView extends StatelessWidget {
context, context,
schedule: null, schedule: null,
isEdit: false, isEdit: false,
code: code,
value: value,
); );
if (entry != null) { if (entry != null) {
context.read<ScheduleBloc>().add( context.read<ScheduleBloc>().add(
ScheduleAddEvent( ScheduleAddEvent(
category: entry.category, category: entry.category,
code: entry.function.code,
time: entry.time, time: entry.time,
functionOn: entry.function.value, functionOn: entry.function.value,
selectedDays: entry.days, selectedDays: entry.days,
@ -74,7 +84,7 @@ class BuildScheduleView extends StatelessWidget {
), ),
if (state.scheduleMode == ScheduleModes.countdown || if (state.scheduleMode == ScheduleModes.countdown ||
state.scheduleMode == ScheduleModes.inching) state.scheduleMode == ScheduleModes.inching)
CountdownInchingView( CountdownInchingView(
deviceId: deviceUuid, deviceId: deviceUuid,
), ),
const SizedBox(height: 20), const SizedBox(height: 20),

View File

@ -17,6 +17,8 @@ class ScheduleDialogHelper {
BuildContext context, { BuildContext context, {
ScheduleEntry? schedule, ScheduleEntry? schedule,
bool isEdit = false, bool isEdit = false,
String? code,
String? value,
}) { }) {
final initialTime = schedule != null final initialTime = schedule != null
? _convertStringToTimeOfDay(schedule.time) ? _convertStringToTimeOfDay(schedule.time)
@ -118,7 +120,9 @@ class ScheduleDialogHelper {
final entry = ScheduleEntry( final entry = ScheduleEntry(
category: schedule?.category ?? 'switch_1', category: schedule?.category ?? 'switch_1',
time: _formatTimeOfDayToISO(selectedTime), time: _formatTimeOfDayToISO(selectedTime),
function: Status(code: 'switch_1', value: functionOn), function: Status(
code: code ?? 'switch_1',
value: value ?? functionOn),
days: _convertSelectedDaysToStrings(selectedDays), days: _convertSelectedDaysToStrings(selectedDays),
scheduleId: schedule?.scheduleId, scheduleId: schedule?.scheduleId,
); );

View File

@ -393,7 +393,7 @@ class DevicesManagementApi {
required String deviceId, required String deviceId,
required String time, required String time,
required String code, required String code,
required bool value, required dynamic value,
required List<String> days, required List<String> days,
}) async { }) async {
final response = await HTTPService().post( final response = await HTTPService().post(
@ -416,5 +416,4 @@ class DevicesManagementApi {
); );
return response; return response;
} }
} }