Skip to content

feat: app header - #55

Merged
AlyaEngineer merged 7 commits into
developfrom
feature/1-app-header
Jul 7, 2026
Merged

feat: app header#55
AlyaEngineer merged 7 commits into
developfrom
feature/1-app-header

Conversation

@AlyaEngineer

@AlyaEngineer AlyaEngineer commented Jul 1, 2026

Copy link
Copy Markdown
Owner

Summary

Implements Feature 1 and partially Feature 7 from the RS School requirements - header with navigation, i18n switcher, sticky behavior, and auth-state-dependent buttons. Two acceptance criteria depend on auth (not yet implemented) and are tracked separately.

Changes Made

  • Added LanguageSwitcher component (RU/EN via next-intl)
  • Added AuthNavigation component rendering Sign In/Sign Up (non-authenticated) or History/Sign Out (authenticated); currently driven by a useAuth stub, to be wired to real Supabase auth in Feature 2
  • Implemented sticky Header with scroll-triggered compact animation (useScrollTrigger)
  • Added footer
  • Added navigation link to About page in header and footer
  • Restructured theme (palette.ts, components.ts, typography.ts, theme.ts) to support header color scheme changes
  • Added route/brand constants (src/constants/routes.ts, src/constants/brand.ts)
  • Added tests for Header and Footer components (async server component pattern for Footer)

Not implemented

  • Redirect from private routes on expired/invalid token [10 pts]
  • Sign In / Sign Up buttons redirecting to their respective form routes [15 pts]

These require the real auth flow (story/2-* branches) and will be closed out with Feature 2.

Related issue

Closes #8, #9, #17, #18 , #19, #49, #54

Feature

Feature 1: App Header
Feature 7: General Requirements

Acceptance criteria

Feature 1: App Header
  • Non-auth users see Sign In / Sign Up in header (upper right) — 15
  • Auth users see History / Sign Out in header — 10
  • About link in header and footer — 10
  • Expired/invalid token → redirect from private routes to Main — 10
  • Sign In / Sign Up buttons redirect to respective form route — 15
Feature 2: Sign In / Sign Up
  • Sign In / Sign Up / Sign Out buttons present everywhere they should be — 10
  • Client-side validation (email, password: 8+ chars, letter+digit+special, Unicode) — 20
  • Successful login → redirect to Main — 10
  • Logged-in user on Sign In / Sign Up routes → redirect to Main — 10
Feature 3: Swagger Editor
  • Load/paste schema in JSON and YAML — 25
  • Auto-detect input format (JSON vs YAML) — 20
  • Format switch with JSON ↔ YAML conversion, no data loss — 20
  • Schema validation with error indication — 15
  • Auth users save schema; restored on next login — 10
  • Viewer auto-populates with endpoints on valid schema — 10
  • Responsive split view (horizontal/vertical by orientation) — 20
Feature 4: Swagger Viewer
  • Endpoint list organized by path/method — 20
  • Details: method, path, all param types (path/query/header/cookie) — 25
  • Request schema and example payloads displayed — 20
  • Response schema, examples, all status codes displayed — 25
  • Try-It-Out: fill params/headers/body, execute, show response — 20
  • Generate cURL + copy-to-clipboard — 10
Feature 5: History and Analytics
  • SSR-generated; empty state with links to editor/viewer — 15
  • Requests sorted by timestamp (most recent first) — 10
  • Server-side analytics: duration, status, timestamp, method, request size, response size, error details, endpoint/URL — 45
Feature 6: About Page
  • Public route, accessible to all — 5
  • Info about RS School course — 5
  • Team info (names, roles, GitHub links) — 10
  • Design consistent with the app — 5
Feature 7: General Requirements
  • i18n: 2+ languages with toggler in header — 30
  • Sticky header with animation on stick — 10
  • User-friendly error display — 10
  • Private routes protected (401 if not authenticated) — 5
Feature 8: YouTube Video
  • 5–7 min YouTube walkthrough linked, covers all criteria — 50

Type of change

  • Bug fix (non-breaking change which fixes an issue)
  • New feature (non-breaking change which adds functionality)
  • Breaking change (fix or feature that would break existing functionality)
  • Documentation update

Checklist

  • Self-review done
  • No console errors / warnings / logs
  • No any / @ts-ignore
  • Tests added / updated and passing

Summary by CodeRabbit

  • New Features

    • Added multilingual support for English and Russian, with localized page content, navigation, and metadata.
    • Introduced a new site header, footer, and language switcher for easier navigation.
    • Added updated app branding, fonts, and a refreshed visual theme.
  • Bug Fixes

    • Improved page layout behavior and scrolling on different screen sizes.
    • Standardized link styling and navigation behavior across the app.

YuliaDemir and others added 2 commits July 1, 2026 17:49
* feat: install next+ts+linter+prettier+ husky+redux

* feat: configs + perfectionist + lint fix

* feat: install scss

* refactor: add some folders

* feat: install i18n + basic configs

* feat: add internatiolisation

* feat: language switcher

* feat: dependencies update

* feat: add sticky header

* feat: add mui Button-and-Link-like component

* fix: lint

* style: add style for header

* refactor:  remove css from language selector

* refactor: add const for flex styles in the header boxes

* refactor: history style as link

* fix: add some fixes
@AlyaEngineer AlyaEngineer linked an issue Jul 1, 2026 that may be closed by this pull request
@vercel

vercel Bot commented Jul 1, 2026

Copy link
Copy Markdown

The latest updates on your projects. Learn more about Vercel for GitHub.

Project Deployment Actions Updated (UTC)
swagger-editor-app Ready Ready Preview, Comment Jul 6, 2026 11:52am

@AlyaEngineer AlyaEngineer added the feature-1-header Feature 1: App Header - a header with navigation controls and authentication options label Jul 1, 2026
@AlyaEngineer AlyaEngineer added this to the Week 1 - 22/06 - 28/06 milestone Jul 1, 2026
@coderabbitai

coderabbitai Bot commented Jul 5, 2026

Copy link
Copy Markdown

Review Change Stack

📝 Walkthrough

Walkthrough

This PR adds next-intl locale routing, request handling, and middleware; locale-aware app layout and page rendering; MUI theme/provider setup; and shared header, footer, and language-switching components. It also adds English and Russian message catalogs and removes the prior non-localized app shell files.

Changes

i18n and UI integration

Layer / File(s) Summary
next-intl setup and routing
next.config.ts, package.json, src/i18n/routing.ts, src/i18n/request.ts, src/i18n/navigation.ts, src/proxy.ts, .coderabbit.yaml
Wraps the Next.js config with next-intl, adds locale routing/request/middleware wiring, and updates project dependencies and YAML quoting.
Locale layout and messages
src/i18n/messages/en.json, src/i18n/messages/ru.json, src/app/[locale]/layout.tsx
Adds English and Russian message catalogs and replaces the locale layout with async metadata generation, html lang handling, and provider wrapping.
Theme, fonts, and providers
src/constants/brand.ts, src/constants/routes.ts, src/fonts.ts, src/theme/palette.ts, src/theme/typography.ts, src/theme/components.ts, src/theme/theme.ts, src/theme/index.ts, src/providers/mui-provider.tsx
Adds brand and route constants, font definitions, palette and typography tokens, component overrides, the assembled MUI theme, and the provider that applies theme context and baseline styles.
Header and language switcher
src/components/app-link/app-link.tsx, src/components/auth-navigation/auth-navigation.tsx, src/components/header/header.tsx, src/components/language-switcher/language-switcher.tsx, src/components/index.ts
Adds the shared link wrapper, auth navigation, sticky header, locale switcher, and barrel exports used by the top navigation.
Footer and footer tests
src/components/footer/footer.tsx, src/components/footer/footer.test.tsx
Adds the async footer component, localized footer strings, and tests for its internal link, external link, and year rendering.
Locale page and legacy cleanup
src/app/[locale]/page.tsx, src/app/page.tsx, src/app/globals.css
Makes the locale home page async with translated content and removes the old non-localized page and global CSS rules.

Estimated code review effort: 4 (Complex) | ~45 minutes

Sequence Diagram(s)

sequenceDiagram
  participant User
  participant LanguageSwitcher
  participant Router as src/i18n/navigation.ts
  participant Header

  User->>LanguageSwitcher: select locale
  LanguageSwitcher->>Router: router.replace(pathname, { locale: nextLocale })
  Router->>Header: navigate with new locale
  Header-->>User: render translated navigation
Loading
sequenceDiagram
  participant Browser
  participant proxy as src/proxy.ts
  participant routing as src/i18n/routing.ts
  participant request as src/i18n/request.ts

  Browser->>proxy: request path
  proxy->>routing: apply matcher and locales
  Browser->>request: getRequestConfig
  request->>routing: validate requestLocale
  request->>request: import locale messages
  request-->>Browser: { locale, messages }
Loading

Possibly related issues

Suggested labels: feature-7-general

Suggested reviewers: Ivan-khodorov, lexarudak

🚥 Pre-merge checks | ✅ 4 | ❌ 1

❌ Failed checks (1 warning)

Check name Status Explanation Resolution
Out of Scope Changes check ⚠️ Warning The PR includes many unrelated additions for #8, such as footer, auth UI, theme, and route/constants work. Split the language-switching work from the extra header/footer/theme changes, or link the additional scope to separate issues.
✅ Passed checks (4 passed)
Check name Status Explanation
Linked Issues check ✅ Passed The PR adds a header language switcher and supports at least two locales, matching #8.
Docstring Coverage ✅ Passed No functions found in the changed files to evaluate docstring coverage. Skipping docstring coverage check.
Description Check ✅ Passed Check skipped - CodeRabbit’s high-level summary is enabled.
Title check ✅ Passed The title is concise and directly reflects the main change: adding an app header.
✨ Finishing Touches
📝 Generate docstrings
  • Create stacked PR
  • Commit on current branch
🧪 Generate unit tests (beta)
  • Create PR with unit tests
  • Commit unit tests in branch feature/1-app-header

Comment @coderabbitai help to get the list of available commands.

@AlyaEngineer
AlyaEngineer removed the request for review from YuliaDemir July 5, 2026 15:02
@AlyaEngineer
AlyaEngineer marked this pull request as ready for review July 6, 2026 10:31

@coderabbitai coderabbitai Bot left a comment

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Actionable comments posted: 2

🧹 Nitpick comments (6)
src/theme/theme.ts (1)

10-14: 📐 Maintainability & Code Quality | 🔵 Trivial | 💤 Low value

Hardcoded design tokens.

Colors (#faf5ff, #7c3aed, etc.) and dimensions (borderRadius: 50, controlHeight) are hardcoded inline rather than centralized as named tokens/constants. Fine for now, but as the theme grows this will get harder to keep consistent (e.g., primary.main #7c3aed duplicated conceptually across gradient stops).

Also applies to: 93-101

🤖 Prompt for AI Agents
Verify each finding against current code. Fix only still-valid issues, skip the
rest with a brief reason, keep changes minimal, and validate.

In `@src/theme/theme.ts` around lines 10 - 14, The theme styling in theme.ts still
uses hardcoded color values and sizing directly in the theme object, which
should be centralized. Refactor the inline values used in the theme
configuration (including the gradient, border, shadow, text color, and the
repeated primary purple concept) into named design tokens/constants and reuse
them via the theme setup, especially in the theme creation logic and the related
style block noted in the review. Keep the existing look while ensuring values
like the primary color, radii, and control sizing are defined once and
referenced consistently.
src/app/[locale]/layout.tsx (1)

19-44: 🎯 Functional Correctness | 🔵 Trivial | ⚡ Quick win

Missing locale validation before rendering/metadata generation.

Both generateMetadata and RootLayout use the raw locale from params without validating it against routing.locales. The official next-intl setup guide validates this and calls notFound() for unsupported locales before proceeding. Without it, an invalid locale segment (e.g. /fr/...) won't 404 — <html lang={locale}> renders the invalid value while message loading silently falls back to defaultLocale via i18n/request.ts, producing content/lang-attribute mismatch.

🔧 Proposed fix
 import { NextIntlClientProvider } from 'next-intl';
 import { getTranslations } from 'next-intl/server';
+import { hasLocale } from 'next-intl';
+import { notFound } from 'next/navigation';

 import { MuiProvider } from '`@/providers/mui-provider`';
+import { routing } from '`@/i18n/routing`';

 export async function generateMetadata({ params }: MetadataProps): Promise<Metadata> {
   const { locale } = await params;
+  if (!hasLocale(routing.locales, locale)) {
+    notFound();
+  }

   const t = await getTranslations({
     locale,
     namespace: 'Metadata',
   });
   ...
 }

 export default async function RootLayout({ children, params }: Props) {
   const { locale } = await params;
+  if (!hasLocale(routing.locales, locale)) {
+    notFound();
+  }

   return (
🤖 Prompt for AI Agents
Verify each finding against current code. Fix only still-valid issues, skip the
rest with a brief reason, keep changes minimal, and validate.

In `@src/app/`[locale]/layout.tsx around lines 19 - 44, Add locale guarding in
both generateMetadata and RootLayout by validating the params.locale against
routing.locales before using it. If the locale is not supported, call notFound()
immediately so invalid locale routes 404 instead of rendering with a mismatched
lang value. Keep the validation close to the locale extraction in these
functions, and continue using getTranslations and NextIntlClientProvider only
after the locale has been confirmed valid.
src/i18n/messages/en.json (1)

18-18: 📐 Maintainability & Code Quality | 🔵 Trivial | ⚡ Quick win

Remove leftover debug/scaffold translation key.

"check": "check english" looks like leftover bootstrap/test content (also consumed twice in page.tsx via t('check')) rather than real product copy. Consider removing it and the corresponding usage before merge, alongside the same key in ru.json.

🤖 Prompt for AI Agents
Verify each finding against current code. Fix only still-valid issues, skip the
rest with a brief reason, keep changes minimal, and validate.

In `@src/i18n/messages/en.json` at line 18, Remove the leftover scaffold
translation key and its usage: delete the `check` entry from the i18n message
files (including the matching key in `ru.json`) and update `page.tsx` to stop
calling `t('check')` in both places. Use the translation lookup in `page.tsx`
and the `messages/en.json` / `messages/ru.json` entries to locate and clean up
the debug-only copy.
src/components/auth-navigation/auth-navigation.tsx (2)

3-3: 📐 Maintainability & Code Quality | 🔵 Trivial | 💤 Low value

Inconsistent import path — bypasses the barrel.

header.tsx imports link components via @/components, but this file imports AppLinkButton directly from '../app-link/app-link'. Given src/components/index.ts also exports the same component under AppLink, this inconsistency (and the redundant aliasing) is worth consolidating — see the related comment in src/components/index.ts.

🤖 Prompt for AI Agents
Verify each finding against current code. Fix only still-valid issues, skip the
rest with a brief reason, keep changes minimal, and validate.

In `@src/components/auth-navigation/auth-navigation.tsx` at line 3, The
auth-navigation import is bypassing the shared components barrel and using a
direct path for AppLinkButton, which is inconsistent with the rest of the
codebase. Update auth-navigation.tsx to import the component through the
components barrel used elsewhere, and align the naming with the existing AppLink
export from src/components/index.ts so the aliasing is no longer redundant.

Source: Path instructions


6-10: 📐 Maintainability & Code Quality | 🔵 Trivial | ⚡ Quick win

Remove commented-out useAuth() call.

Line 10 leaves //useAuth(); as dead code alongside the hardcoded stub object. As per path instructions, "Flag commented-out code blocks (dead code left in comments) - penalized per block."

Suggested cleanup
-  const { isAuthenticated, isAuthLoading, signOut } = {
-    isAuthenticated: true,
-    isAuthLoading: false,
-    signOut: () => {},
-  }; //useAuth();
+  // TODO(Feature 2): replace with real useAuth()
+  const { isAuthenticated, isAuthLoading, signOut } = {
+    isAuthenticated: true,
+    isAuthLoading: false,
+    signOut: () => {},
+  };
🤖 Prompt for AI Agents
Verify each finding against current code. Fix only still-valid issues, skip the
rest with a brief reason, keep changes minimal, and validate.

In `@src/components/auth-navigation/auth-navigation.tsx` around lines 6 - 10,
Remove the commented-out useAuth() call from auth-navigation.tsx and keep the
AuthNavigation logic using either the stubbed object or the real hook, but not
both. Update the destructuring in AuthNavigation so the dead commented code is
deleted entirely and the remaining symbols isAuthenticated, isAuthLoading, and
signOut stay clear and intentional.

Source: Path instructions

src/components/index.ts (1)

1-2: 📐 Maintainability & Code Quality | 🔵 Trivial | 💤 Low value

Remove the unused AppLinkBase barrel export.

src/components/index.ts re-exports AppLinkButton as both AppLinkBase and AppLink, but AppLinkBase has no consumers in the repo. Keeping a single public name avoids a redundant API surface and confusion.

🤖 Prompt for AI Agents
Verify each finding against current code. Fix only still-valid issues, skip the
rest with a brief reason, keep changes minimal, and validate.

In `@src/components/index.ts` around lines 1 - 2, Remove the redundant AppLinkBase
barrel export from the components index so only the public AppLink alias
remains. Update src/components/index.ts to keep the AppLinkButton export as
AppLink and delete the AppLinkBase re-export, since AppLinkBase has no consumers
and should not be part of the public API.

Source: Path instructions

🤖 Prompt for all review comments with AI agents
Verify each finding against current code. Fix only still-valid issues, skip the
rest with a brief reason, keep changes minimal, and validate.

Inline comments:
In `@src/app/`[locale]/page.tsx:
- Around line 8-87: Remove the leftover placeholder/debug JSX from the home page
and replace it with the real `HomePage` content. In the `[locale]/page.tsx`
component, eliminate the repeated `t('check')` `<div>` blocks and render the
intended translation-driven sections instead, using the existing `title` and
`description` message keys from the page/catalog setup so the page no longer
ships with duplicate scaffold markup.

In `@src/components/header/header.tsx`:
- Around line 41-56: The header and auth navigation labels are hardcoded English
strings and are not using the existing next-intl messages. Update the Header and
auth navigation components to call useTranslations for the Header namespace, and
replace the literal text in AppLink/AuthNavigation with translation keys for
“Swagger Editor”, “About”, “History”, “Sign Out”, “Sign In”, and “Sign Up”. Keep
the existing component structure intact and ensure the labels render from the
message catalog so the language switcher updates the visible navigation text.

---

Nitpick comments:
In `@src/app/`[locale]/layout.tsx:
- Around line 19-44: Add locale guarding in both generateMetadata and RootLayout
by validating the params.locale against routing.locales before using it. If the
locale is not supported, call notFound() immediately so invalid locale routes
404 instead of rendering with a mismatched lang value. Keep the validation close
to the locale extraction in these functions, and continue using getTranslations
and NextIntlClientProvider only after the locale has been confirmed valid.

In `@src/components/auth-navigation/auth-navigation.tsx`:
- Line 3: The auth-navigation import is bypassing the shared components barrel
and using a direct path for AppLinkButton, which is inconsistent with the rest
of the codebase. Update auth-navigation.tsx to import the component through the
components barrel used elsewhere, and align the naming with the existing AppLink
export from src/components/index.ts so the aliasing is no longer redundant.
- Around line 6-10: Remove the commented-out useAuth() call from
auth-navigation.tsx and keep the AuthNavigation logic using either the stubbed
object or the real hook, but not both. Update the destructuring in
AuthNavigation so the dead commented code is deleted entirely and the remaining
symbols isAuthenticated, isAuthLoading, and signOut stay clear and intentional.

In `@src/components/index.ts`:
- Around line 1-2: Remove the redundant AppLinkBase barrel export from the
components index so only the public AppLink alias remains. Update
src/components/index.ts to keep the AppLinkButton export as AppLink and delete
the AppLinkBase re-export, since AppLinkBase has no consumers and should not be
part of the public API.

In `@src/i18n/messages/en.json`:
- Line 18: Remove the leftover scaffold translation key and its usage: delete
the `check` entry from the i18n message files (including the matching key in
`ru.json`) and update `page.tsx` to stop calling `t('check')` in both places.
Use the translation lookup in `page.tsx` and the `messages/en.json` /
`messages/ru.json` entries to locate and clean up the debug-only copy.

In `@src/theme/theme.ts`:
- Around line 10-14: The theme styling in theme.ts still uses hardcoded color
values and sizing directly in the theme object, which should be centralized.
Refactor the inline values used in the theme configuration (including the
gradient, border, shadow, text color, and the repeated primary purple concept)
into named design tokens/constants and reuse them via the theme setup,
especially in the theme creation logic and the related style block noted in the
review. Keep the existing look while ensuring values like the primary color,
radii, and control sizing are defined once and referenced consistently.
🪄 Autofix (Beta)

Fix all unresolved CodeRabbit comments on this PR:

  • Push a commit to this branch (recommended)
  • Create a new PR with the fixes

ℹ️ Review info
⚙️ Run configuration

Configuration used: Path: .coderabbit.yaml

Review profile: CHILL

Plan: Pro Plus

Run ID: a9104a81-8e59-4d48-bd6f-9cb8be184e17

📥 Commits

Reviewing files that changed from the base of the PR and between 21cef07 and 3405848.

⛔ Files ignored due to path filters (1)
  • package-lock.json is excluded by !**/package-lock.json
📒 Files selected for processing (21)
  • next.config.ts
  • package.json
  • src/app/[locale]/layout.tsx
  • src/app/[locale]/page.tsx
  • src/app/globals.css
  • src/app/layout.tsx
  • src/app/page.module.css
  • src/app/page.tsx
  • src/components/app-link/app-link.tsx
  • src/components/auth-navigation/auth-navigation.tsx
  • src/components/header/header.tsx
  • src/components/index.ts
  • src/components/language-switcher/language-switcher.tsx
  • src/i18n/messages/en.json
  • src/i18n/messages/ru.json
  • src/i18n/navigation.ts
  • src/i18n/request.ts
  • src/i18n/routing.ts
  • src/providers/mui-provider.tsx
  • src/proxy.ts
  • src/theme/theme.ts
💤 Files with no reviewable changes (3)
  • src/app/page.tsx
  • src/app/page.module.css
  • src/app/layout.tsx

Comment thread src/app/[locale]/page.tsx
Comment thread src/components/header/header.tsx Outdated
* feat: add Inter and JetBrains Mono fonts via next/font

* feat: reorganize theme into palette, components, typography, theme modules

* feat: add i18n translations for header navigation links

* fix: prevent header layout shift on language switcher toggle click

* feat: add footer with translated links and styling

* test: add tests for footer

* fix: correct invalid box-shadow offset

* fix: fix header height

* fix: fix language switcher

* refactor: extract routes and external links into constants

@coderabbitai coderabbitai Bot left a comment

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Actionable comments posted: 1

🤖 Prompt for all review comments with AI agents
Verify each finding against current code. Fix only still-valid issues, skip the
rest with a brief reason, keep changes minimal, and validate.

Inline comments:
In `@src/theme/theme.ts`:
- Around line 7-21: The theme setup enables color schemes and CSS variables, so
the root layout must initialize the correct scheme before rendering the app.
Update the `src/app/[locale]/layout.tsx` root layout to include
`InitColorSchemeScript` as the first child inside `<body>`, alongside the
existing theme usage from `theme`, so the initial SSR color scheme matches the
client and avoids flash/hydration mismatch.
🪄 Autofix (Beta)

Fix all unresolved CodeRabbit comments on this PR:

  • Push a commit to this branch (recommended)
  • Create a new PR with the fixes

ℹ️ Review info
⚙️ Run configuration

Configuration used: Path: .coderabbit.yaml

Review profile: CHILL

Plan: Pro Plus

Run ID: 56fadd97-cefb-4228-a368-3bff6b9ad91b

📥 Commits

Reviewing files that changed from the base of the PR and between 3405848 and 991b1d4.

📒 Files selected for processing (19)
  • src/app/[locale]/layout.tsx
  • src/app/[locale]/page.tsx
  • src/app/globals.css
  • src/components/auth-navigation/auth-navigation.tsx
  • src/components/footer/footer.test.tsx
  • src/components/footer/footer.tsx
  • src/components/header/header.tsx
  • src/components/index.ts
  • src/components/language-switcher/language-switcher.tsx
  • src/constants/brand.ts
  • src/constants/routes.ts
  • src/fonts.ts
  • src/i18n/messages/en.json
  • src/i18n/messages/ru.json
  • src/theme/components.ts
  • src/theme/index.ts
  • src/theme/palette.ts
  • src/theme/theme.ts
  • src/theme/typography.ts
💤 Files with no reviewable changes (1)
  • src/app/globals.css
✅ Files skipped from review due to trivial changes (4)
  • src/constants/routes.ts
  • src/i18n/messages/ru.json
  • src/theme/components.ts
  • src/theme/index.ts
🚧 Files skipped from review as they are similar to previous changes (6)
  • src/i18n/messages/en.json
  • src/components/auth-navigation/auth-navigation.tsx
  • src/components/language-switcher/language-switcher.tsx
  • src/components/header/header.tsx
  • src/app/[locale]/layout.tsx
  • src/app/[locale]/page.tsx

Comment thread src/theme/theme.ts
Comment thread src/app/[locale]/page.tsx

import { Footer } from '@/components/footer/footer';

export default async function Home() {

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

i'm not sure this is home

@AlyaEngineer
AlyaEngineer merged commit 068e0a8 into develop Jul 7, 2026
3 checks passed
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

feature-1-header Feature 1: App Header - a header with navigation controls and authentication options

Projects

None yet

3 participants