Skip to content

Commit 95ed0cb

Browse files
committed
chore: improve shared file manager
1 parent 29a9636 commit 95ed0cb

3 files changed

Lines changed: 68 additions & 12 deletions

File tree

TelegramDownloader/Pages/Partials/impl/FileManagerImpl.razor

Lines changed: 37 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -90,20 +90,51 @@
9090
};
9191

9292
private string _previousId;
93-
private bool _initialized = false;
93+
private string _previousBsiId;
94+
private bool _firstRenderComplete = false;
95+
private bool _needsRefresh = false;
9496

9597
protected override async Task OnParametersSetAsync()
9698
{
97-
if (_previousId != id)
99+
string currentBsiId = bsi?.Id;
100+
bool idChanged = _previousId != id;
101+
bool bsiChanged = isShared && _previousBsiId != currentBsiId && currentBsiId != null;
102+
103+
if (idChanged || bsiChanged)
98104
{
99105
_previousId = id;
106+
_previousBsiId = currentBsiId;
100107
await LoadDataAsync();
101-
if (_initialized && fm != null)
108+
109+
// Solo marcar refresh si ya pasó el primer render
110+
if (_firstRenderComplete)
102111
{
103-
fm.Path = "/";
104-
await fm.RefreshFilesAsync();
112+
_needsRefresh = true;
105113
}
106-
_initialized = true;
114+
}
115+
}
116+
117+
protected override async Task OnAfterRenderAsync(bool firstRender)
118+
{
119+
if (firstRender)
120+
{
121+
_firstRenderComplete = true;
122+
}
123+
124+
if (_needsRefresh && fm != null)
125+
{
126+
_needsRefresh = false;
127+
fm.Path = "/";
128+
await fm.RefreshFilesAsync();
129+
}
130+
}
131+
132+
public async Task RefreshFileManager()
133+
{
134+
if (fm != null)
135+
{
136+
fm.Path = "/";
137+
await fm.RefreshFilesAsync();
107138
}
108139
}
109140

TelegramDownloader/Pages/Partials/impl/LocalFileManagerImpl.razor

Lines changed: 30 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -78,20 +78,45 @@
7878
};
7979

8080
private string _previousId;
81-
private bool _initialized = false;
81+
private bool _firstRenderComplete = false;
82+
private bool _needsRefresh = false;
8283

8384
protected override async Task OnParametersSetAsync()
8485
{
8586
if (_previousId != id)
8687
{
8788
_previousId = id;
8889
await LoadDataAsync();
89-
if (_initialized && FileManager != null)
90+
91+
// Solo marcar refresh si ya pasó el primer render
92+
if (_firstRenderComplete)
9093
{
91-
FileManager.Path = "/";
92-
await FileManager.RefreshFilesAsync();
94+
_needsRefresh = true;
9395
}
94-
_initialized = true;
96+
}
97+
}
98+
99+
protected override async Task OnAfterRenderAsync(bool firstRender)
100+
{
101+
if (firstRender)
102+
{
103+
_firstRenderComplete = true;
104+
}
105+
106+
if (_needsRefresh && FileManager != null)
107+
{
108+
_needsRefresh = false;
109+
FileManager.Path = "/";
110+
await FileManager.RefreshFilesAsync();
111+
}
112+
}
113+
114+
public async Task RefreshFileManager()
115+
{
116+
if (FileManager != null)
117+
{
118+
FileManager.Path = "/";
119+
await FileManager.RefreshFilesAsync();
95120
}
96121
}
97122

TelegramDownloader/Shared/NavMenu.razor

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -158,7 +158,7 @@
158158
<div class="col-9">
159159

160160
<div class="nav-item" style="padding:inherit;" @onclick="ToggleNavMenu">
161-
<NavLink class="nav-link ellipsis" @onclick="@(async () => await goTo($"/shared/{sc.Id}"))" Match="NavLinkMatch.All">
161+
<NavLink class="nav-link ellipsis" href="@($"/shared/{sc.Id}")" Match="NavLinkMatch.All">
162162
<span aria-hidden="true">
163163

164164

0 commit comments

Comments
 (0)