feat: type remote device models
This commit is contained in:
@@ -1,6 +1,7 @@
|
||||
import 'package:flutter/material.dart';
|
||||
import 'package:flutter_riverpod/flutter_riverpod.dart';
|
||||
import '../app/error_message.dart';
|
||||
import '../models/ignis_group.dart';
|
||||
import '../providers/providers.dart';
|
||||
import '../widgets/group_card.dart';
|
||||
import 'homes_screen.dart';
|
||||
@@ -175,9 +176,9 @@ class _RemoteScreenState extends ConsumerState<RemoteScreen> {
|
||||
padding: const EdgeInsets.only(top: 8, bottom: 80),
|
||||
itemCount: groups.length,
|
||||
itemBuilder: (context, index) {
|
||||
final g = Map<String, dynamic>.from(groups[index]);
|
||||
final g = groups[index];
|
||||
return Dismissible(
|
||||
key: Key(g['id'].toString()),
|
||||
key: Key(g.id),
|
||||
direction: DismissDirection.endToStart,
|
||||
background: Container(
|
||||
alignment: Alignment.centerRight,
|
||||
@@ -203,7 +204,7 @@ class _RemoteScreenState extends ConsumerState<RemoteScreen> {
|
||||
|
||||
Future<bool> _confirmAndDeleteGroup(
|
||||
BuildContext context,
|
||||
Map<String, dynamic> g,
|
||||
IgnisGroup g,
|
||||
) async {
|
||||
final messenger = ScaffoldMessenger.of(context);
|
||||
final confirmed =
|
||||
@@ -211,7 +212,7 @@ class _RemoteScreenState extends ConsumerState<RemoteScreen> {
|
||||
context: context,
|
||||
builder: (ctx) => AlertDialog(
|
||||
title: const Text('Удалить группу?'),
|
||||
content: Text('Удалить "${g['name']}"?'),
|
||||
content: Text('Удалить "${g.name}"?'),
|
||||
actions: [
|
||||
TextButton(
|
||||
onPressed: () => Navigator.of(ctx).pop(false),
|
||||
@@ -232,7 +233,7 @@ class _RemoteScreenState extends ConsumerState<RemoteScreen> {
|
||||
if (!confirmed) return false;
|
||||
|
||||
try {
|
||||
await ref.read(apiProvider).deleteGroup(g['id'].toString());
|
||||
await ref.read(apiProvider).deleteGroup(g.id);
|
||||
await ref.read(groupsProvider.notifier).refresh();
|
||||
return true;
|
||||
} catch (e) {
|
||||
|
||||
Reference in New Issue
Block a user