-
-
Notifications
You must be signed in to change notification settings - Fork 2.1k
Description
Describe the problem
I have a "form" like this:
<script>
let value = "";
</script>
<input type="text" placeholder="Game ID..." bind:value/>
<button type="button" on:click={async () => await goto(`/game/${value}/`} disabled={!value}>Join game</button>
Currently, if some error occurs while trying to join the game (e.g: if the game doesn't exist), the error will be shown by the /game/[gameId]/
route, meaning the user needs to navigate back. Ideally, the error message would be displayed as part of the form.
Describe the proposed solution
I'm not sure exactly how the flow from beforeNavigate to onNavigate to afterNavigate works, but I assume SvelteKit would be aware of errors during onNavigate
in which case $page.error
should be set before the onNavigate
callback is called and then onNavigate
should have a cancel
method similarly to beforeNavigate
. Alternatively, there could be a dedicated onNavigationError
Alternatives considered
Have a route which checks if a game exists, then call that before calling goto
. However, this means I need to check if the game exists twice, which isn't ideal.
Importance
would make my life easier
Additional Information
No response