Skip to content

feat: footer with about page link - #59

Merged
AlyaEngineer merged 10 commits into
feature/1-app-headerfrom
story/1-footer-about-page-navigation
Jul 6, 2026
Merged

feat: footer with about page link#59
AlyaEngineer merged 10 commits into
feature/1-app-headerfrom
story/1-footer-about-page-navigation

Conversation

@AlyaEngineer

@AlyaEngineer AlyaEngineer commented Jul 5, 2026

Copy link
Copy Markdown
Owner

Summary

This pull request closes the requirement for a navigation link to the About page in the app footer, and includes several additional changes: fixed a layout shift in the header when clicking the language switcher toggle, added a light/dark color scheme for the app, and integrated fonts into the app.

Changes Made

  • added Footer component (src/components/footer/footer.tsx) with links to About and the project's GitHub
  • added translations for footer links in en.json and ru.json
  • fixed header shift on language switcher toggle click - added disableScrollLock: true to MenuProps on the Select in LanguageSwitcher
  • reorganized theme structure - split theme.ts into palette.ts, components.ts, typography.ts, index.ts; added light/dark schemes via colorSchemes
  • integrated Inter (appFont) and JetBrains Mono (swaggerEditorFont) fonts via next/font with Cyrillic support
  • added test for Footer (footer.test.tsx)

Related issue

Closes #54

Feature

Feature 1: App Header

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 a localized footer with About and GitHub links, plus a current-year copyright line.
    • Introduced consistent app fonts and refreshed theme styling across buttons, menus, toolbars, and app bars.
    • Expanded language support for header and footer text.
  • Bug Fixes

    • Replaced hardcoded navigation labels with translated text for a more consistent multilingual experience.
    • Updated the home page to display the new footer alongside existing content.

@AlyaEngineer AlyaEngineer added this to the Week 1 - 22/06 - 28/06 milestone Jul 5, 2026
@AlyaEngineer AlyaEngineer added feature-1-header Feature 1: App Header - a header with navigation controls and authentication options feature-9-footer Footer with About link labels Jul 5, 2026
@vercel

vercel Bot commented Jul 5, 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 12:51am

@coderabbitai

coderabbitai Bot commented Jul 5, 2026

Copy link
Copy Markdown

Review Change Stack

Important

Review skipped

Auto reviews are disabled on base/target branches other than the default branch.

Please check the settings in the CodeRabbit UI or the .coderabbit.yaml file in this repository. To trigger a single review, invoke the @coderabbitai review command.

⚙️ Run configuration

Configuration used: defaults

Review profile: CHILL

Plan: Pro Plus

Run ID: 418f56a8-bae4-44be-8f30-71b25335a2ae

You can disable this status message by setting the reviews.review_status to false in the CodeRabbit configuration file.

Use the checkbox below for a quick retry:

  • 🔍 Trigger review
📝 Walkthrough

Walkthrough

Adds a Footer component with localized About/GitHub links and copyright, wires it into the home page, applies new Google fonts at the root layout, restructures the MUI theme into palette/typography/components modules, and adds next-intl translations to Header/AuthNavigation labels along with corresponding locale entries.

Changes

Footer, fonts, theme, and localization

Layer / File(s) Summary
Footer component, page wiring, and tests
src/components/footer/footer.tsx, src/components/footer/footer.test.tsx, src/app/[locale]/page.tsx, src/i18n/messages/en.json, src/i18n/messages/ru.json
New async Footer component fetches translations and renders About/GitHub links plus copyright; rendered on Home page; footer translation keys added; tests cover links and copyright year.
Font setup and root layout wiring
src/fonts.ts, src/app/[locale]/layout.tsx, src/app/globals.css
New appFont and swaggerEditorFont Google font exports applied via className on <html>; global CSS drops unused --background variable and gradient body styling.
Modular MUI theme
src/theme/palette.ts, src/theme/typography.ts, src/theme/components.ts, src/theme/theme.ts, src/theme/index.ts
Theme split into lightPalette/darkPalette, typography, and components modules; theme.ts rebuilt with colorSchemes and cssVariables; theme re-exported from index.
Header, AuthNavigation, and translations
src/components/header/header.tsx, src/components/auth-navigation/auth-navigation.tsx, src/components/index.ts, src/components/language-switcher/language-switcher.tsx, src/i18n/messages/en.json, src/i18n/messages/ru.json
Header and AuthNavigation now use useTranslations for labels; Header switches to AppLinkButton with expanded AppBar styling; AppLinkButton barrel export simplified; Select props reformatted; Header.brand translation key added.

Estimated code review effort: 3 (Moderate) | ~25 minutes

Sequence Diagram(s)

sequenceDiagram
  participant Home
  participant Footer
  participant getTranslations
  participant AppLinkButton

  Home->>Footer: render Footer()
  Footer->>getTranslations: getTranslations('footer')
  getTranslations-->>Footer: aboutLink, githubLink strings
  Footer->>AppLinkButton: render About/GitHub links
  Footer-->>Home: AppBar with links and copyright
Loading

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 several unrelated changes—theme/font refactors, language-switcher layout tweaks, and extra footer work—beyond the About-page footer link. Split the About-page footer work from unrelated refactors, or explain why the font/theme/layout changes are required for #54.
✅ Passed checks (4 passed)
Check name Status Explanation
Linked Issues check ✅ Passed The PR adds the requested footer About link and also adds the header About navigation mentioned in #54.
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 clearly captures the main user-visible change: adding a footer with an About page link.
✨ Finishing Touches
🧪 Generate unit tests (beta)
  • Create PR with unit tests
  • Commit unit tests in branch story/1-footer-about-page-navigation

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

@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

🧹 Nitpick comments (2)
src/theme/theme.ts (2)

7-11: 🧹 Nitpick | 🔵 Trivial

Scheme switching currently relies on OS prefers-color-scheme only.

No colorSchemeSelector/defaultColorScheme is configured, so until a manual toggle is wired up, dark/light will only apply "with the default CSS media prefers-color-scheme method... users won't be able to toggle between modes because the styles are based on the browser media." If a manual toggle is planned later, you'll need colorSchemeSelector: 'class' (or similar) plus InitColorSchemeScript.

🤖 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 7 - 11, The theme setup in theme.ts only
defines colorSchemes, so it still follows the OS prefers-color-scheme and cannot
support a manual toggle. Update the createTheme configuration to include a
non-media-based scheme mechanism such as colorSchemeSelector: 'class' and a
defaultColorScheme, and make sure the app bootstrapping includes
InitColorSchemeScript so the active mode can be applied and toggled
consistently.

7-20: 🎯 Functional Correctness | 🔵 Trivial | ⚡ Quick win

Header and Footer override the global MuiAppBar styles. The local sx on both AppBars replaces the themed gradient and border tint with background.paper/divider, so the MuiAppBar rule in src/theme/components.ts never applies here. If these bars should use the shared AppBar look, drop the local color/border overrides; otherwise remove the theme override.

🤖 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 7 - 20, The Header and Footer AppBars are
overriding the shared MuiAppBar theme styling with local sx values, so the
global gradient and border tint from the AppBar override in components/theme
setup are never applied. Update the AppBar usage in the Header/Footer components
to rely on the themed MuiAppBar styling by removing the local background/border
overrides, or if the local look is intentional, remove the MuiAppBar override
from the shared theme configuration. Use the MuiAppBar rule in the theme
components setup and the Header/Footer AppBar instances as the places to adjust.
🤖 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/components.ts`:
- Around line 19-30: The hover shadow in MuiButton.styleOverrides.contained is
using an invalid length unit, so the browser drops the entire boxShadow
declaration. Update the contained hover style in components.ts to use the
correct px unit in the template string, keeping the existing
alpha(theme.palette.primary.main, 0.32) color logic intact so the hover effect
renders properly.

---

Nitpick comments:
In `@src/theme/theme.ts`:
- Around line 7-11: The theme setup in theme.ts only defines colorSchemes, so it
still follows the OS prefers-color-scheme and cannot support a manual toggle.
Update the createTheme configuration to include a non-media-based scheme
mechanism such as colorSchemeSelector: 'class' and a defaultColorScheme, and
make sure the app bootstrapping includes InitColorSchemeScript so the active
mode can be applied and toggled consistently.
- Around line 7-20: The Header and Footer AppBars are overriding the shared
MuiAppBar theme styling with local sx values, so the global gradient and border
tint from the AppBar override in components/theme setup are never applied.
Update the AppBar usage in the Header/Footer components to rely on the themed
MuiAppBar styling by removing the local background/border overrides, or if the
local look is intentional, remove the MuiAppBar override from the shared theme
configuration. Use the MuiAppBar rule in the theme components setup and the
Header/Footer AppBar instances as the places to adjust.
🪄 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: defaults

Review profile: CHILL

Plan: Pro Plus

Run ID: 891091c6-4a1d-4497-9cee-fcda0343296e

📥 Commits

Reviewing files that changed from the base of the PR and between 90dfdf4 and 9188099.

📒 Files selected for processing (17)
  • 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/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

Comment thread src/theme/components.ts
Comment thread src/components/auth-navigation/auth-navigation.tsx Outdated
Comment thread src/components/footer/footer.tsx Outdated
Comment thread src/components/footer/footer.tsx Outdated
Comment thread src/components/language-switcher/language-switcher.tsx
@AlyaEngineer
AlyaEngineer merged commit 991b1d4 into feature/1-app-header Jul 6, 2026
3 checks passed
AlyaEngineer added a commit that referenced this pull request Jul 7, 2026
* Story/1 sticky header general (#50)

* 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

* feat: footer with about page link (#59)

* 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

* refactor: remove leftover placeholder before merge

* fix: add InitColorSchemeScript to prevent SSR flash

* style: apply Prettier formatting

---------

Co-authored-by: YuliaDemir <129578495+YuliaDemir@users.noreply.github.com>
This was referenced Jul 7, 2026
@AlyaEngineer
AlyaEngineer deleted the story/1-footer-about-page-navigation branch July 8, 2026 11:01
@coderabbitai coderabbitai Bot mentioned this pull request Jul 13, 2026
42 tasks
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 feature-9-footer Footer with About link

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants