Skip to content

Commit 33b32ef

Browse files
committed
fix: rename in local file manager
1 parent b5e892b commit 33b32ef

3 files changed

Lines changed: 41 additions & 4 deletions

File tree

TelegramDownloader/Pages/Partials/impl/LocalFileManagerImpl.razor

Lines changed: 11 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -943,7 +943,17 @@
943943

944944
if (newName != null)
945945
{
946-
requestData["name"] = newName;
946+
// For rename action: name = old name, newName = new name
947+
if (action == "rename" && data != null && data.Length > 0)
948+
{
949+
requestData["name"] = data[0].Name; // Old name
950+
requestData["newName"] = newName; // New name
951+
}
952+
else
953+
{
954+
// For create folder action: name = folder name
955+
requestData["name"] = newName;
956+
}
947957
}
948958

949959
if (searchString != null)

TelegramDownloader/Shared/MobileFileManager/MobileFileManager.razor

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -483,7 +483,8 @@
483483
<div class="mfm-modal-overlay" @onclick="CloseRenameDialog">
484484
<div class="mfm-dialog" @onclick:stopPropagation="true">
485485
<h3>Rename</h3>
486-
<input type="text" @bind="RenameText" @ref="renameInput" class="mfm-input" />
486+
<input type="text" @bind="RenameText" @bind:event="oninput" @ref="renameInput"
487+
class="mfm-input" @onkeydown="OnRenameKeyDown" />
487488
<div class="mfm-dialog-actions">
488489
<button class="mfm-btn mfm-btn-secondary" @onclick="CloseRenameDialog">Cancel</button>
489490
<button class="mfm-btn mfm-btn-primary" @onclick="ConfirmRename">Rename</button>

TelegramDownloader/Shared/MobileFileManager/MobileFileManager.razor.cs

Lines changed: 28 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -737,21 +737,47 @@ private void CloseDeleteConfirmDialog()
737737

738738
#region Rename
739739

740-
private void RenameSelected()
740+
private async Task RenameSelected()
741741
{
742742
if (SelectedItems.Count != 1) return;
743743
RenameItem = SelectedItems.First();
744744
RenameText = RenameItem.Name;
745745
ShowRenameDialog = true;
746746
ClearSelection();
747+
await FocusAndSelectRenameInput();
747748
}
748749

749-
private void StartRenameItem(FileManagerDirectoryContent item)
750+
private async Task StartRenameItem(FileManagerDirectoryContent item)
750751
{
751752
RenameItem = item;
752753
RenameText = item.Name;
753754
ShowRenameDialog = true;
754755
CloseContextMenu();
756+
await FocusAndSelectRenameInput();
757+
}
758+
759+
private async Task FocusAndSelectRenameInput()
760+
{
761+
StateHasChanged();
762+
await Task.Delay(50);
763+
try
764+
{
765+
await renameInput.FocusAsync();
766+
await JSRuntime.InvokeVoidAsync("eval", "document.activeElement.select()");
767+
}
768+
catch { }
769+
}
770+
771+
private async Task OnRenameKeyDown(KeyboardEventArgs e)
772+
{
773+
if (e.Key == "Enter")
774+
{
775+
await ConfirmRename();
776+
}
777+
else if (e.Key == "Escape")
778+
{
779+
CloseRenameDialog();
780+
}
755781
}
756782

757783
private async Task ConfirmRename()

0 commit comments

Comments
 (0)