Login Flow with shell
the fir time I login, everything is fine, but if I do it again I get this
This also happens if I navigate to the same page twice within the app shell
An item with the same key has already been added. Key: 0'
An item with the same key has already been added. Key: 0'
public partial class LoginPageViewModel
[ObservableProperty]
bool isPopOpen;
[ObservableProperty]
User user = new();
[RelayCommand]
void OpenPopUp() {
IsPopOpen = true;
}
[RelayCommand]
async Task Login() {
IsBusy = true;
//var user = await authenticationService.LoginWithEmailAndPassword(User.Email!, User.Password!);
//var user = await authenticationService.LoginWithEmailAndPassword("[email protected]", "123456");
await appService.NavigateTo($"{nameof(NewLecturePage)}");
public partial class LoginPageViewModel
[ObservableProperty]
bool isPopOpen;
[ObservableProperty]
User user = new();
[RelayCommand]
void OpenPopUp() {
IsPopOpen = true;
}
[RelayCommand]
async Task Login() {
IsBusy = true;
//var user = await authenticationService.LoginWithEmailAndPassword(User.Email!, User.Password!);
//var user = await authenticationService.LoginWithEmailAndPassword("[email protected]", "123456");
await appService.NavigateTo($"{nameof(NewLecturePage)}");
<ShellContent
ContentTemplate="{DataTemplate pages:LoginPage}"
Route="loginPage"
Shell.FlyoutBehavior="Disabled"
Shell.FlyoutItemIsVisible="False" />
<FlyoutItem>
<ShellContent
ContentTemplate="{DataTemplate pages:NewLecturePage}"
Route="NewLecturePage" />
</FlyoutItem>
<ShellContent
ContentTemplate="{DataTemplate pages:LoginPage}"
Route="loginPage"
Shell.FlyoutBehavior="Disabled"
Shell.FlyoutItemIsVisible="False" />
<FlyoutItem>
<ShellContent
ContentTemplate="{DataTemplate pages:NewLecturePage}"
Route="NewLecturePage" />
</FlyoutItem>
public class StartupPageViewModel : BaseViewModel {
private readonly IAppService _appService;
private readonly IConnectivity _connectivity;
public StartupPageViewModel(IAppService appService, IConnectivity connectivity) {
_appService = appService;
_connectivity = connectivity;
CheckInternet(_connectivity.NetworkAccess);
}
private void CheckInternet(NetworkAccess networkAccess) {
if(networkAccess is not NetworkAccess.Internet) {
_appService.NavigateTo($"{nameof(NoInternetPage)}");
} else {
_appService.NavigateTo($"{nameof(LoginPage)}");
}
}
}
public class StartupPageViewModel : BaseViewModel {
private readonly IAppService _appService;
private readonly IConnectivity _connectivity;
public StartupPageViewModel(IAppService appService, IConnectivity connectivity) {
_appService = appService;
_connectivity = connectivity;
CheckInternet(_connectivity.NetworkAccess);
}
private void CheckInternet(NetworkAccess networkAccess) {
if(networkAccess is not NetworkAccess.Internet) {
_appService.NavigateTo($"{nameof(NoInternetPage)}");
} else {
_appService.NavigateTo($"{nameof(LoginPage)}");
}
}
}
0 Replies