import 'package:comunic/ui/widgets/tablet_mode/calls/call_window_widget.dart'; import 'package:flutter/material.dart'; /// Tablets mode calls area /// /// @author Pierre Hubert class CallsArea extends StatefulWidget { const CallsArea({Key key}) : super(key: key); @override CallsAreaState createState() => CallsAreaState(); } class CallsAreaState extends State { final _openCalls = Map(); @override Widget build(BuildContext context) { return Stack( children: _openCalls .map((convID, key) => MapEntry( convID, CallWindowWidget( key: key, convID: convID, onClose: () => closeCall(convID), ))) .values .toList(), ); } /// Open a new call void openCall(int convID) { if (!_openCalls.containsKey(convID)) { setState(() { _openCalls[convID] = UniqueKey(); }); } } /// Close a call void closeCall(int convID) { if (_openCalls.containsKey(convID)) setState(() => _openCalls.remove(convID)); } }