Implement activation requirement for protected routes
CI / Backend (build + test) (push) Successful in 1m18s
CI / Frontend (lint + typecheck + build) (push) Successful in 32s

- Added a new `useRequireActivated` hook to enforce user activation before accessing certain routes, redirecting unauthenticated users to the login page and inactive users to the dashboard.
- Updated the `InstructionsPage` and `NewsPage` components to utilize the new activation check, enhancing user flow and security.
- Conditional rendering of navigation links in the `RootLayout` based on user activation status, improving user experience by hiding inaccessible features.
This commit is contained in:
Leonid Pershin
2026-07-13 18:36:14 +03:00
parent 39a8b30b03
commit 7f9a441050
4 changed files with 28 additions and 10 deletions
+10 -6
View File
@@ -44,12 +44,16 @@ function RootLayout() {
<Link to="/dashboard" className="text-muted-foreground hover:text-foreground">
{t('nav.dashboard')}
</Link>
<Link to="/instructions" className="text-muted-foreground hover:text-foreground">
{t('nav.instructions')}
</Link>
<Link to="/news" className="text-muted-foreground hover:text-foreground">
{t('nav.news')}
</Link>
{user.isActivated && (
<>
<Link to="/instructions" className="text-muted-foreground hover:text-foreground">
{t('nav.instructions')}
</Link>
<Link to="/news" className="text-muted-foreground hover:text-foreground">
{t('nav.news')}
</Link>
</>
)}
<Link to="/settings" className="text-muted-foreground hover:text-foreground">
{t('nav.settings')}
</Link>