From 7fd7e1172bd46abcdfd6316e546e929a9edfb262 Mon Sep 17 00:00:00 2001 From: Leendert de Borst Date: Sun, 19 Apr 2026 13:12:12 +0200 Subject: [PATCH] Refactor accepted extensions from string to array (#1937) --- .../ImportExport/Components/ImportService1Password.razor | 3 ++- .../ImportExport/Components/ImportServiceAliasVault.razor | 6 ++---- .../ImportExport/Components/ImportServiceBitwarden.razor | 3 ++- .../ImportExport/Components/ImportServiceCard.razor | 8 ++++---- .../ImportExport/Components/ImportServiceChrome.razor | 3 ++- .../ImportExport/Components/ImportServiceDashlane.razor | 3 ++- .../ImportExport/Components/ImportServiceDropbox.razor | 3 ++- .../ImportExport/Components/ImportServiceEdge.razor | 3 ++- .../ImportExport/Components/ImportServiceEnpass.razor | 3 ++- .../ImportExport/Components/ImportServiceFirefox.razor | 3 ++- .../ImportExport/Components/ImportServiceGenericCsv.razor | 3 ++- .../ImportExport/Components/ImportServiceKeePass.razor | 3 ++- .../ImportExport/Components/ImportServiceKeePassXC.razor | 3 ++- .../ImportExport/Components/ImportServiceLastPass.razor | 3 ++- .../ImportExport/Components/ImportServiceNordPass.razor | 3 ++- .../ImportExport/Components/ImportServiceProtonPass.razor | 3 ++- .../ImportExport/Components/ImportServiceRoboform.razor | 3 ++- .../ImportExport/Components/ImportServiceStrongbox.razor | 3 ++- 18 files changed, 38 insertions(+), 24 deletions(-) diff --git a/apps/server/AliasVault.Client/Main/Pages/Settings/ImportExport/Components/ImportService1Password.razor b/apps/server/AliasVault.Client/Main/Pages/Settings/ImportExport/Components/ImportService1Password.razor index d02390800..a03aeaa3f 100644 --- a/apps/server/AliasVault.Client/Main/Pages/Settings/ImportExport/Components/ImportService1Password.razor +++ b/apps/server/AliasVault.Client/Main/Pages/Settings/ImportExport/Components/ImportService1Password.razor @@ -11,7 +11,7 @@ ServiceName="1Password" Description="@Localizer["OnePasswordDescription"]" LogoUrl="img/importers/1password.svg" - AcceptedFileTypes=".csv,.1pux" + AcceptedFileExtensions="AcceptedExtensions" ProcessFileCallback="ProcessFile">

@Localizer["OnePasswordInstructionsPart1"]

@Localizer["OnePasswordInstructionsPart2"]

@@ -19,6 +19,7 @@ @code { private IStringLocalizer Localizer => LocalizerFactory.Create("Components.Main.Settings.ImportExport.ImportServices", "AliasVault.Client"); + private static readonly string[] AcceptedExtensions = new[] { ".1pux", ".csv" }; private static async Task> ProcessFile(string filename, byte[] fileBytes) { diff --git a/apps/server/AliasVault.Client/Main/Pages/Settings/ImportExport/Components/ImportServiceAliasVault.razor b/apps/server/AliasVault.Client/Main/Pages/Settings/ImportExport/Components/ImportServiceAliasVault.razor index 7826a0fbb..3c85c1b23 100644 --- a/apps/server/AliasVault.Client/Main/Pages/Settings/ImportExport/Components/ImportServiceAliasVault.razor +++ b/apps/server/AliasVault.Client/Main/Pages/Settings/ImportExport/Components/ImportServiceAliasVault.razor @@ -13,16 +13,14 @@ ServiceName="AliasVault" Description="@Localizer["AliasVaultDescription"]" LogoUrl="img/logo.svg" - AcceptedFileTypes=".csv,.avux,.avex" + AcceptedFileExtensions="AcceptedExtensions" ProcessFileCallback="ProcessFile">

@Localizer["AliasVaultInstructionsPart1"]

-

- @Localizer["AliasVaultSupportedFormatsInfo"] -

@code { private IStringLocalizer Localizer => LocalizerFactory.Create("Components.Main.Settings.ImportExport.ImportServices", "AliasVault.Client"); + private static readonly string[] AcceptedExtensions = new[] { ".avex", ".avux", ".csv" }; private ImportServiceCard? importServiceCard; /// diff --git a/apps/server/AliasVault.Client/Main/Pages/Settings/ImportExport/Components/ImportServiceBitwarden.razor b/apps/server/AliasVault.Client/Main/Pages/Settings/ImportExport/Components/ImportServiceBitwarden.razor index 8cf449a3d..f678b568e 100644 --- a/apps/server/AliasVault.Client/Main/Pages/Settings/ImportExport/Components/ImportServiceBitwarden.razor +++ b/apps/server/AliasVault.Client/Main/Pages/Settings/ImportExport/Components/ImportServiceBitwarden.razor @@ -11,7 +11,7 @@ ServiceName="Bitwarden" Description="@Localizer["BitwardenDescription"]" LogoUrl="img/importers/bitwarden.svg" - AcceptedFileTypes=".csv,.zip" + AcceptedFileExtensions="AcceptedExtensions" ProcessFileCallback="ProcessFile">

@Localizer["BitwardenInstructionsPart1"]

@Localizer["BitwardenInstructionsPart2"]

@@ -19,6 +19,7 @@ @code { private IStringLocalizer Localizer => LocalizerFactory.Create("Components.Main.Settings.ImportExport.ImportServices", "AliasVault.Client"); + private static readonly string[] AcceptedExtensions = new[] { ".csv", ".zip" }; private static async Task> ProcessFile(string filename, byte[] fileBytes) { diff --git a/apps/server/AliasVault.Client/Main/Pages/Settings/ImportExport/Components/ImportServiceCard.razor b/apps/server/AliasVault.Client/Main/Pages/Settings/ImportExport/Components/ImportServiceCard.razor index 4dc3cb5dc..caca3d881 100644 --- a/apps/server/AliasVault.Client/Main/Pages/Settings/ImportExport/Components/ImportServiceCard.razor +++ b/apps/server/AliasVault.Client/Main/Pages/Settings/ImportExport/Components/ImportServiceCard.razor @@ -77,7 +77,7 @@ @ChildContent

@Localizer["supportedFormats"]: - @AcceptedFileTypes + @string.Join(", ", AcceptedFileExtensions)

@string.Format(Localizer["UploadExportFileText"], ServiceName)

@@ -305,17 +305,17 @@ public Func>>? ProcessFileCallback { get; set; } /// - /// Gets or sets the accepted file types (e.g., ".csv", ".avux"). + /// Gets or sets the accepted file extensions (e.g., [".csv", ".avux"]). /// [Parameter] - public string AcceptedFileTypes { get; set; } = string.Empty; + public string[] AcceptedFileExtensions { get; set; } = Array.Empty(); /// /// The effective accept attribute for the file input. Includes application/octet-stream as a fallback /// so that iOS and other mobile platforms allow selecting files with custom extensions (e.g. .avex, .avux, .1pux) /// that don't have a registered MIME type. /// - private string FileAcceptTypes => AcceptedFileTypes + ",application/octet-stream"; + private string FileAcceptTypes => string.Join(",", AcceptedFileExtensions) + ",application/octet-stream"; private bool IsModalOpen { get; set; } = false; private bool IsImporting { get; set; } = false; diff --git a/apps/server/AliasVault.Client/Main/Pages/Settings/ImportExport/Components/ImportServiceChrome.razor b/apps/server/AliasVault.Client/Main/Pages/Settings/ImportExport/Components/ImportServiceChrome.razor index a46bf3f3e..2c0ca9b79 100644 --- a/apps/server/AliasVault.Client/Main/Pages/Settings/ImportExport/Components/ImportServiceChrome.razor +++ b/apps/server/AliasVault.Client/Main/Pages/Settings/ImportExport/Components/ImportServiceChrome.razor @@ -11,7 +11,7 @@ ServiceName="Chrome" Description="@Localizer["ChromeDescription"]" LogoUrl="img/importers/chrome.svg" - AcceptedFileTypes=".csv" + AcceptedFileExtensions="AcceptedExtensions" ProcessFileCallback="ProcessFile">

@Localizer["ChromeInstructionsPart1"]

@Localizer["ChromeInstructionsPart2"]

@@ -19,6 +19,7 @@ @code { private IStringLocalizer Localizer => LocalizerFactory.Create("Components.Main.Settings.ImportExport.ImportServices", "AliasVault.Client"); + private static readonly string[] AcceptedExtensions = new[] { ".csv" }; private static async Task> ProcessFile(string filename, byte[] fileBytes) { diff --git a/apps/server/AliasVault.Client/Main/Pages/Settings/ImportExport/Components/ImportServiceDashlane.razor b/apps/server/AliasVault.Client/Main/Pages/Settings/ImportExport/Components/ImportServiceDashlane.razor index 67d3a2349..9f4dc24d9 100644 --- a/apps/server/AliasVault.Client/Main/Pages/Settings/ImportExport/Components/ImportServiceDashlane.razor +++ b/apps/server/AliasVault.Client/Main/Pages/Settings/ImportExport/Components/ImportServiceDashlane.razor @@ -11,7 +11,7 @@ ServiceName="Dashlane" Description="@Localizer["DashlaneDescription"]" LogoUrl="img/importers/dashlane.svg" - AcceptedFileTypes=".csv" + AcceptedFileExtensions="AcceptedExtensions" ProcessFileCallback="ProcessFile">

@Localizer["DashlaneInstructionsPart1"]

@Localizer["DashlaneInstructionsPart2"]

@@ -19,6 +19,7 @@ @code { private IStringLocalizer Localizer => LocalizerFactory.Create("Components.Main.Settings.ImportExport.ImportServices", "AliasVault.Client"); + private static readonly string[] AcceptedExtensions = new[] { ".csv" }; private static async Task> ProcessFile(string filename, byte[] fileBytes) { diff --git a/apps/server/AliasVault.Client/Main/Pages/Settings/ImportExport/Components/ImportServiceDropbox.razor b/apps/server/AliasVault.Client/Main/Pages/Settings/ImportExport/Components/ImportServiceDropbox.razor index 9faabbe17..5adea599b 100644 --- a/apps/server/AliasVault.Client/Main/Pages/Settings/ImportExport/Components/ImportServiceDropbox.razor +++ b/apps/server/AliasVault.Client/Main/Pages/Settings/ImportExport/Components/ImportServiceDropbox.razor @@ -11,7 +11,7 @@ ServiceName="Dropbox Passwords" Description="@Localizer["DropboxDescription"]" LogoUrl="img/importers/dropbox.svg" - AcceptedFileTypes=".csv" + AcceptedFileExtensions="AcceptedExtensions" ProcessFileCallback="ProcessFile">

@Localizer["DropboxInstructionsPart1"]

@Localizer["UploadFileInstructionCommon"]

@@ -19,6 +19,7 @@ @code { private IStringLocalizer Localizer => LocalizerFactory.Create("Components.Main.Settings.ImportExport.ImportServices", "AliasVault.Client"); + private static readonly string[] AcceptedExtensions = new[] { ".csv" }; private static async Task> ProcessFile(string filename, byte[] fileBytes) { diff --git a/apps/server/AliasVault.Client/Main/Pages/Settings/ImportExport/Components/ImportServiceEdge.razor b/apps/server/AliasVault.Client/Main/Pages/Settings/ImportExport/Components/ImportServiceEdge.razor index f003391fe..3e6a37936 100644 --- a/apps/server/AliasVault.Client/Main/Pages/Settings/ImportExport/Components/ImportServiceEdge.razor +++ b/apps/server/AliasVault.Client/Main/Pages/Settings/ImportExport/Components/ImportServiceEdge.razor @@ -11,7 +11,7 @@ ServiceName="Edge" Description="@Localizer["EdgeDescription"]" LogoUrl="img/importers/edge.svg" - AcceptedFileTypes=".csv" + AcceptedFileExtensions="AcceptedExtensions" ProcessFileCallback="ProcessFile">

@Localizer["EdgeInstructionsPart1"]

@Localizer["EdgeInstructionsPart2"]

@@ -19,6 +19,7 @@ @code { private IStringLocalizer Localizer => LocalizerFactory.Create("Components.Main.Settings.ImportExport.ImportServices", "AliasVault.Client"); + private static readonly string[] AcceptedExtensions = new[] { ".csv" }; private static async Task> ProcessFile(string filename, byte[] fileBytes) { diff --git a/apps/server/AliasVault.Client/Main/Pages/Settings/ImportExport/Components/ImportServiceEnpass.razor b/apps/server/AliasVault.Client/Main/Pages/Settings/ImportExport/Components/ImportServiceEnpass.razor index f46daa4e1..92f69f95e 100644 --- a/apps/server/AliasVault.Client/Main/Pages/Settings/ImportExport/Components/ImportServiceEnpass.razor +++ b/apps/server/AliasVault.Client/Main/Pages/Settings/ImportExport/Components/ImportServiceEnpass.razor @@ -11,7 +11,7 @@ ServiceName="Enpass" Description="@Localizer["EnpassDescription"]" LogoUrl="img/importers/enpass.svg" - AcceptedFileTypes=".csv" + AcceptedFileExtensions="AcceptedExtensions" ProcessFileCallback="ProcessFile">

@Localizer["EnpassInstructionsPart1"]

@Localizer["EnpassInstructionsPart2"]

@@ -19,6 +19,7 @@ @code { private IStringLocalizer Localizer => LocalizerFactory.Create("Components.Main.Settings.ImportExport.ImportServices", "AliasVault.Client"); + private static readonly string[] AcceptedExtensions = new[] { ".csv" }; private static async Task> ProcessFile(string filename, byte[] fileBytes) { diff --git a/apps/server/AliasVault.Client/Main/Pages/Settings/ImportExport/Components/ImportServiceFirefox.razor b/apps/server/AliasVault.Client/Main/Pages/Settings/ImportExport/Components/ImportServiceFirefox.razor index 3b8d4398a..f74a7f780 100644 --- a/apps/server/AliasVault.Client/Main/Pages/Settings/ImportExport/Components/ImportServiceFirefox.razor +++ b/apps/server/AliasVault.Client/Main/Pages/Settings/ImportExport/Components/ImportServiceFirefox.razor @@ -11,7 +11,7 @@ ServiceName="Firefox" Description="@Localizer["FirefoxDescription"]" LogoUrl="img/importers/firefox.svg" - AcceptedFileTypes=".csv" + AcceptedFileExtensions="AcceptedExtensions" ProcessFileCallback="ProcessFile">

@Localizer["FirefoxInstructionsPart1"]

@Localizer["FirefoxInstructionsPart2"]

@@ -19,6 +19,7 @@ @code { private IStringLocalizer Localizer => LocalizerFactory.Create("Components.Main.Settings.ImportExport.ImportServices", "AliasVault.Client"); + private static readonly string[] AcceptedExtensions = new[] { ".csv" }; private static async Task> ProcessFile(string filename, byte[] fileBytes) { diff --git a/apps/server/AliasVault.Client/Main/Pages/Settings/ImportExport/Components/ImportServiceGenericCsv.razor b/apps/server/AliasVault.Client/Main/Pages/Settings/ImportExport/Components/ImportServiceGenericCsv.razor index d6e0c65d8..6f63e7943 100644 --- a/apps/server/AliasVault.Client/Main/Pages/Settings/ImportExport/Components/ImportServiceGenericCsv.razor +++ b/apps/server/AliasVault.Client/Main/Pages/Settings/ImportExport/Components/ImportServiceGenericCsv.razor @@ -11,7 +11,7 @@ ServiceName="Generic CSV" Description="@Localizer["GenericCsvDescription"]" LogoUrl="img/importers/generic-csv.svg" - AcceptedFileTypes=".csv" + AcceptedFileExtensions="AcceptedExtensions" ProcessFileCallback="ProcessFile">

@Localizer["GenericCsvInstructionsPart1"]

    @@ -36,6 +36,7 @@ @code { private IStringLocalizer Localizer => LocalizerFactory.Create("Components.Main.Settings.ImportExport.ImportServices", "AliasVault.Client"); + private static readonly string[] AcceptedExtensions = new[] { ".csv" }; private static async Task> ProcessFile(string filename, byte[] fileBytes) { diff --git a/apps/server/AliasVault.Client/Main/Pages/Settings/ImportExport/Components/ImportServiceKeePass.razor b/apps/server/AliasVault.Client/Main/Pages/Settings/ImportExport/Components/ImportServiceKeePass.razor index cd73c175c..f26d20eb6 100644 --- a/apps/server/AliasVault.Client/Main/Pages/Settings/ImportExport/Components/ImportServiceKeePass.razor +++ b/apps/server/AliasVault.Client/Main/Pages/Settings/ImportExport/Components/ImportServiceKeePass.razor @@ -10,7 +10,7 @@ ServiceName="KeePass" Description="@Localizer["KeePassDescription"]" LogoUrl="img/importers/keepass.svg" - AcceptedFileTypes=".csv" + AcceptedFileExtensions="AcceptedExtensions" ProcessFileCallback="ProcessFile">

    @Localizer["KeePassInstructionsPart1"]

    @Localizer["KeePassInstructionsPart2"]

    @@ -18,6 +18,7 @@ @code { private IStringLocalizer Localizer => LocalizerFactory.Create("Components.Main.Settings.ImportExport.ImportServices", "AliasVault.Client"); + private static readonly string[] AcceptedExtensions = new[] { ".csv" }; private static async Task> ProcessFile(string filename, byte[] fileBytes) { diff --git a/apps/server/AliasVault.Client/Main/Pages/Settings/ImportExport/Components/ImportServiceKeePassXC.razor b/apps/server/AliasVault.Client/Main/Pages/Settings/ImportExport/Components/ImportServiceKeePassXC.razor index 2b192aa36..bd7f0b7ad 100644 --- a/apps/server/AliasVault.Client/Main/Pages/Settings/ImportExport/Components/ImportServiceKeePassXC.razor +++ b/apps/server/AliasVault.Client/Main/Pages/Settings/ImportExport/Components/ImportServiceKeePassXC.razor @@ -10,7 +10,7 @@ ServiceName="KeePassXC" Description="@Localizer["KeePassXCDescription"]" LogoUrl="img/importers/keepassxc.svg" - AcceptedFileTypes=".csv" + AcceptedFileExtensions="AcceptedExtensions" ProcessFileCallback="ProcessFile">

    @Localizer["KeePassXCInstructionsPart1"]

    @Localizer["KeePassXCInstructionsPart2"]

    @@ -18,6 +18,7 @@ @code { private IStringLocalizer Localizer => LocalizerFactory.Create("Components.Main.Settings.ImportExport.ImportServices", "AliasVault.Client"); + private static readonly string[] AcceptedExtensions = new[] { ".csv" }; private static async Task> ProcessFile(string filename, byte[] fileBytes) { diff --git a/apps/server/AliasVault.Client/Main/Pages/Settings/ImportExport/Components/ImportServiceLastPass.razor b/apps/server/AliasVault.Client/Main/Pages/Settings/ImportExport/Components/ImportServiceLastPass.razor index 66aef27df..d75d720d5 100644 --- a/apps/server/AliasVault.Client/Main/Pages/Settings/ImportExport/Components/ImportServiceLastPass.razor +++ b/apps/server/AliasVault.Client/Main/Pages/Settings/ImportExport/Components/ImportServiceLastPass.razor @@ -10,7 +10,7 @@ ServiceName="LastPass" Description="@Localizer["LastPassDescription"]" LogoUrl="img/importers/lastpass.svg" - AcceptedFileTypes=".csv" + AcceptedFileExtensions="AcceptedExtensions" ProcessFileCallback="ProcessFile">

    @Localizer["LastPassInstructionsPart1"]

    @Localizer["LastPassInstructionsPart2"]

    @@ -18,6 +18,7 @@ @code { private IStringLocalizer Localizer => LocalizerFactory.Create("Components.Main.Settings.ImportExport.ImportServices", "AliasVault.Client"); + private static readonly string[] AcceptedExtensions = new[] { ".csv" }; private static async Task> ProcessFile(string filename, byte[] fileBytes) { diff --git a/apps/server/AliasVault.Client/Main/Pages/Settings/ImportExport/Components/ImportServiceNordPass.razor b/apps/server/AliasVault.Client/Main/Pages/Settings/ImportExport/Components/ImportServiceNordPass.razor index 851c82b7a..7ec5d20fe 100644 --- a/apps/server/AliasVault.Client/Main/Pages/Settings/ImportExport/Components/ImportServiceNordPass.razor +++ b/apps/server/AliasVault.Client/Main/Pages/Settings/ImportExport/Components/ImportServiceNordPass.razor @@ -10,7 +10,7 @@ ServiceName="NordPass" Description="@Localizer["NordPassDescription"]" LogoUrl="img/importers/nordpass.svg" - AcceptedFileTypes=".csv" + AcceptedFileExtensions="AcceptedExtensions" ProcessFileCallback="ProcessFile">

    @Localizer["NordPassInstructionsPart1"]

    @Localizer["NordPassInstructionsPart2"]

    @@ -18,6 +18,7 @@ @code { private IStringLocalizer Localizer => LocalizerFactory.Create("Components.Main.Settings.ImportExport.ImportServices", "AliasVault.Client"); + private static readonly string[] AcceptedExtensions = new[] { ".csv" }; private static async Task> ProcessFile(string filename, byte[] fileBytes) { diff --git a/apps/server/AliasVault.Client/Main/Pages/Settings/ImportExport/Components/ImportServiceProtonPass.razor b/apps/server/AliasVault.Client/Main/Pages/Settings/ImportExport/Components/ImportServiceProtonPass.razor index 07dab84a9..05e37f520 100644 --- a/apps/server/AliasVault.Client/Main/Pages/Settings/ImportExport/Components/ImportServiceProtonPass.razor +++ b/apps/server/AliasVault.Client/Main/Pages/Settings/ImportExport/Components/ImportServiceProtonPass.razor @@ -10,7 +10,7 @@ ServiceName="Proton Pass" Description="@Localizer["ProtonPassDescription"]" LogoUrl="img/importers/protonpass.svg" - AcceptedFileTypes=".csv" + AcceptedFileExtensions="AcceptedExtensions" ProcessFileCallback="ProcessFile">

    @Localizer["ProtonPassInstructionsPart1"]

    @Localizer["ProtonPassInstructionsPart2"]

    @@ -18,6 +18,7 @@ @code { private IStringLocalizer Localizer => LocalizerFactory.Create("Components.Main.Settings.ImportExport.ImportServices", "AliasVault.Client"); + private static readonly string[] AcceptedExtensions = new[] { ".csv" }; private static async Task> ProcessFile(string filename, byte[] fileBytes) { diff --git a/apps/server/AliasVault.Client/Main/Pages/Settings/ImportExport/Components/ImportServiceRoboform.razor b/apps/server/AliasVault.Client/Main/Pages/Settings/ImportExport/Components/ImportServiceRoboform.razor index 6ee79e071..521b4a2eb 100644 --- a/apps/server/AliasVault.Client/Main/Pages/Settings/ImportExport/Components/ImportServiceRoboform.razor +++ b/apps/server/AliasVault.Client/Main/Pages/Settings/ImportExport/Components/ImportServiceRoboform.razor @@ -10,7 +10,7 @@ ServiceName="RoboForm" Description="@Localizer["RoboformDescription"]" LogoUrl="img/importers/roboform.svg" - AcceptedFileTypes=".csv" + AcceptedFileExtensions="AcceptedExtensions" ProcessFileCallback="ProcessFile">

    @Localizer["RoboformInstructionsPart1"]

    @Localizer["RoboformInstructionsPart2"]

    @@ -18,6 +18,7 @@ @code { private IStringLocalizer Localizer => LocalizerFactory.Create("Components.Main.Settings.ImportExport.ImportServices", "AliasVault.Client"); + private static readonly string[] AcceptedExtensions = new[] { ".csv" }; private static async Task> ProcessFile(string filename, byte[] fileBytes) { diff --git a/apps/server/AliasVault.Client/Main/Pages/Settings/ImportExport/Components/ImportServiceStrongbox.razor b/apps/server/AliasVault.Client/Main/Pages/Settings/ImportExport/Components/ImportServiceStrongbox.razor index 4103c2954..cec0bf1b6 100644 --- a/apps/server/AliasVault.Client/Main/Pages/Settings/ImportExport/Components/ImportServiceStrongbox.razor +++ b/apps/server/AliasVault.Client/Main/Pages/Settings/ImportExport/Components/ImportServiceStrongbox.razor @@ -10,7 +10,7 @@ ServiceName="Strongbox" Description="@Localizer["StrongboxDescription"]" LogoUrl="img/importers/strongbox.svg" - AcceptedFileTypes=".csv" + AcceptedFileExtensions="AcceptedExtensions" ProcessFileCallback="ProcessFile">

    @Localizer["StrongboxInstructionsPart1"]

    @Localizer["StrongboxInstructionsPart2"]

    @@ -18,6 +18,7 @@ @code { private IStringLocalizer Localizer => LocalizerFactory.Create("Components.Main.Settings.ImportExport.ImportServices", "AliasVault.Client"); + private static readonly string[] AcceptedExtensions = new[] { ".csv" }; private static async Task> ProcessFile(string filename, byte[] fileBytes) {