Files
syncrow-web/lib/pages/routiens/helper/dialog_helper/device_dialog_helper.dart
2024-11-21 00:50:06 +03:00

54 lines
1.6 KiB
Dart

import 'package:flutter/material.dart';
import 'package:syncrow_web/pages/routiens/helper/ac_helper.dart';
import 'package:syncrow_web/pages/routiens/helper/one_gang_switch_helper.dart';
import 'package:syncrow_web/pages/routiens/helper/three_gang_switch_helper.dart';
import 'package:syncrow_web/pages/routiens/helper/two_gang_switch_helper.dart';
import 'package:syncrow_web/pages/routiens/models/device_functions.dart';
class DeviceDialogHelper {
static Future<Map<String, dynamic>?> showDeviceDialog(
BuildContext context,
Map<String, dynamic> data,
) async {
final functions = data['functions'] as List<DeviceFunction>;
try {
final result = await _getDialogForDeviceType(
context,
data['productType'],
functions,
);
if (result != null) {
return {...data, ...result};
}
} catch (e) {
debugPrint('Error: $e');
}
return null;
}
static Future<Map<String, dynamic>?> _getDialogForDeviceType(
BuildContext context,
String productType,
List<DeviceFunction> functions,
) async {
switch (productType) {
case 'AC':
return ACHelper.showACFunctionsDialog(context, functions);
case '1G':
return OneGangSwitchHelper.showSwitchFunctionsDialog(
context, functions);
case '2G':
return TwoGangSwitchHelper.showSwitchFunctionsDialog(
context, functions);
case '3G':
return ThreeGangSwitchHelper.showSwitchFunctionsDialog(
context, functions);
default:
return null;
}
}
}