/
githubmirror
/
Files
Обзор
Документация
Войти
/
githubmirror
/
Files
Код
Запросы
0
Пакеты
0
Релизы
0
Аналитика
Безопасность
main
src/Files.App/Helpers/Navigation/MultitaskingTabsHelpers.cs
60 строк
2 KB
Yair
Code Quality: Ran code cleanup (#17307)
25 июл 2025, 03:57
Не верифицирован
25 июл 2025, 03:57
4558bc2
Код
Авторство
О чём код?
// Copyright (c) Files Community // Licensed under the MIT License. namespace Files.App.Helpers { public static class MultitaskingTabsHelpers { public static void CloseTabsToTheLeft(TabBarItem clickedTab, ITabBar multitaskingControl) { if (multitaskingControl is not null) { var tabs = MainPageViewModel.AppInstances; var currentIndex = tabs.IndexOf(clickedTab); tabs.Take(currentIndex).ToList().ForEach(tab => multitaskingControl.CloseTab(tab)); } } public static void CloseTabsToTheRight(TabBarItem clickedTab, ITabBar multitaskingControl) { if (multitaskingControl is not null) { var tabs = MainPageViewModel.AppInstances; var currentIndex = tabs.IndexOf(clickedTab); tabs.Skip(currentIndex + 1).ToList().ForEach(tab => multitaskingControl.CloseTab(tab)); } } public static void CloseOtherTabs(TabBarItem clickedTab, ITabBar multitaskingControl) { if (multitaskingControl is not null) { var tabs = MainPageViewModel.AppInstances; tabs.Where((t) => t != clickedTab).ToList().ForEach(tab => multitaskingControl.CloseTab(tab)); } } public static void CloseAllTabs(ITabBar multitaskingControl) { if (multitaskingControl is not null) { var tabs = MainPageViewModel.AppInstances; tabs.ToList().ForEach(tab => multitaskingControl.CloseTab(tab)); } } public static Task MoveTabToNewWindow(TabBarItem tab, ITabBar multitaskingControl) { int index = MainPageViewModel.AppInstances.IndexOf(tab); TabBarItemParameter tabItemArguments = MainPageViewModel.AppInstances[index].NavigationParameter; multitaskingControl?.CloseTab(MainPageViewModel.AppInstances[index]); return tabItemArguments is not null ? NavigationHelpers.OpenTabInNewWindowAsync(tabItemArguments.Serialize()) : NavigationHelpers.OpenPathInNewWindowAsync("Home"); } } }