From 11ff97e61d63205cb0e1383242a20e3ea86ab0a7 Mon Sep 17 00:00:00 2001 From: pancakes Date: Mon, 24 Mar 2025 01:36:23 +1000 Subject: [PATCH] [frontend/pages] Add undo migration section for migrated accounts --- .../MigrationControllerModel.cs | 3 ++ .../Pages/Settings/Migration.razor | 35 +++++++++++++++++++ 2 files changed, 38 insertions(+) diff --git a/Iceshrimp.Frontend/Core/ControllerModels/MigrationControllerModel.cs b/Iceshrimp.Frontend/Core/ControllerModels/MigrationControllerModel.cs index 754ceb45..be6e8da6 100644 --- a/Iceshrimp.Frontend/Core/ControllerModels/MigrationControllerModel.cs +++ b/Iceshrimp.Frontend/Core/ControllerModels/MigrationControllerModel.cs @@ -16,4 +16,7 @@ internal class MigrationControllerModel(ApiClient api) public Task MigrateAsync(MigrationSchemas.MigrationRequest request) => api.CallAsync(HttpMethod.Post, "/migration/move", data: request); + + public Task UndoAsync() => + api.CallAsync(HttpMethod.Delete, "/migration/move"); } diff --git a/Iceshrimp.Frontend/Pages/Settings/Migration.razor b/Iceshrimp.Frontend/Pages/Settings/Migration.razor index 241b7a0f..1c5202ec 100644 --- a/Iceshrimp.Frontend/Pages/Settings/Migration.razor +++ b/Iceshrimp.Frontend/Pages/Settings/Migration.razor @@ -32,6 +32,23 @@ @Loc["This account has been migrated to another account."] @Loc["Go to account"] + + @Loc["Undoing a migration does not move your followers back to this account. To move your followers back you will need to migrate back to this account manually."] + + + + @Loc["Undo migration"] + + + + + + + + + + + } else { @@ -101,6 +118,7 @@ @code { private MigrationSchemas.MigrationStatusResponse Status { get; set; } = null!; private State State { get; set; } = State.Loading; + private StateButton UndoButton { get; set; } = null!; private StateButton MoveButton { get; set; } = null!; private StateButton AliasButton { get; set; } = null!; private string MoveTo { get; set; } = ""; @@ -134,6 +152,23 @@ MoveButton.State = StateButton.StateEnum.Failed; } } + + private async Task UndoMigrate() + { + UndoButton.State = StateButton.StateEnum.Loading; + + try + { + await Api.Migrations.UndoAsync(); + + Status = await Api.Migrations.GetMigrationStatusAsync(); + } + catch (ApiException e) + { + await Global.NoticeDialog?.Display(e.Response.Message ?? Loc["An unknown error occurred while migrating"], NoticeDialog.NoticeType.Error)!; + MoveButton.State = StateButton.StateEnum.Failed; + } + } private async Task AddAlias() {