Improve error handling by creating a function handler for connections on servers that use KY, and use the status key in
the response as the key to success instead of catch. Use catch if an error occurs between the client and server, not
between the server and backend.
Implement the toast element belonging to heroUI into the project and perform testing by adding the toast registry into
the provider, then running it as an error handler during authentication.
Removed disableDevtools from the security features because it was redundant with the popup feature, which caused the
authentication popup to always close.
Send the frontend callback URI to the backend as required by the OAuth vendor. The frontend explicitly sends the
callback URI for flexibility in the backend system.
A custom React hook that ensures a function is executed only once across the entire application, even in React Strict
Mode or during development hot reloads. Maintains a global registry to track execution status using a unique key.
Adding new hooks as a replacement for `useEffects(() => {}, [])` in React by adding React strict mode safety, which
means that this function will only be executed once, even in development mode.
Create a provider option in the callback handler to define the provider name for flexibility when used with multiple
providers and requiring multiple endpoints.
Complete the OAuth process by adding a redirect when pressing the login button with the provider. When the button is
pressed, the system will request the authentication URL from the backend, then the user will be redirected.
The reconstruction includes moving the Navbar component from shared to widget because Navbar is a group of elements, and
removing the login-signup form due to changes in logic that will use a popup flow to improve the user experience without
navigating to another page for authentication.
Create .env.example to help you figure out what variables should be in the .env file. Run the command `bun run
env:publish` to sync the .env.example file with the .env file.