using System.Text.Json.Serialization; using CommunityToolkit.Mvvm.DependencyInjection; using Flow.Launcher.Plugin; namespace Flow.Launcher.Infrastructure.UserSettings { public class CustomExplorerViewModel : BaseModel { // We should not initialize API in static constructor because it will create another API instance private static IPublicAPI api = null; private static IPublicAPI API => api ??= Ioc.Default.GetRequiredService(); public string Name { get; set; } [JsonIgnore] public string DisplayName => Name == "Explorer" ? API.GetTranslation("fileManagerExplorer") : Name; public string Path { get; set; } public string FileArgument { get; set; } = "\"%d\""; public string DirectoryArgument { get; set; } = "\"%d\""; public bool Editable { get; init; } = true; public CustomExplorerViewModel Copy() { return new CustomExplorerViewModel { Name = Name, Path = Path, FileArgument = FileArgument, DirectoryArgument = DirectoryArgument, Editable = Editable }; } public void OnDisplayNameChanged() { OnPropertyChanged(nameof(DisplayName)); } } }