mirror of
https://github.com/SyncrowIOT/web.git
synced 2025-07-09 22:57:21 +00:00
54 lines
1.6 KiB
Dart
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;
|
|
}
|
|
}
|
|
}
|