closePanel method
- @action
Close the panel including all its tabs
Implementation
@action
void closePanel() {
final parent = this.parent;
if (parent == null) return;
parent.panels.removeWhere((element) => element.id == id);
// If only one child panel is left, then we "flatten" it
if (parent.panels.length == 1) {
// Move the tab
parent.tabs = parent.panels.first.tabs;
parent.selectedTab = parent.panels.first.selectedTab;
// Move the panel one level "up"
parent.axis = parent.panels.first.axis;
parent.panels.first.parent = parent.parent;
parent.panels = parent.panels.first.panels;
parent.panels.forEach((p) => p.parent = parent);
parent.panelSizes = <double>[].asObservable();
}
}