Conversation
|
The latest updates on your projects. Learn more about Vercel for GitHub.
|
There was a problem hiding this comment.
Pull request overview
Adds a new “Sportpálya támogatás” (sports field support) informational page with HU/EN dictionary content and exposes it via the SPORT navigation menu.
Changes:
- Added new
sport.sportpalyaTamogatasdictionary entries in HU/EN. - Added a new Next.js route and React content component to render the page from the dictionary.
- Updated the SPORT navigation item to link to the new page.
Reviewed changes
Copilot reviewed 5 out of 5 changed files in this pull request and generated 9 comments.
Show a summary per file
| File | Description |
|---|---|
| src/dictionaries/hu.json | Adds Hungarian copy for the sports field support application page. |
| src/dictionaries/en.json | Adds English copy for the same page. |
| src/app/(app)/components/navigation-items.ts | Updates SPORT submenu to link to the new page. |
| src/app/(app)/[lang]/sport/sportpalyaTamogatas/page.tsx | Introduces the page route that loads dictionary content. |
| src/app/(app)/[lang]/sport/sportpalyaTamogatas/components/GymSupportContent.tsx | Adds the UI component that renders the structured content. |
💡 Add Copilot custom instructions for smarter, more guided reviews. Learn how to get started.
| "Sports field subsidy application" | ||
| ), | ||
| href: "#", | ||
| href: link("/sport/sportpalya-tamogatas"), |
There was a problem hiding this comment.
The navigation href points to /sport/sportpalya-tamogatas, but the new route directory is sport/sportpalyaTamogatas (camelCase). This will 404 at runtime. Please align the path by either renaming the folder to sportpalya-tamogatas (consistent with other routes) or updating the href to match the actual segment.
| href: link("/sport/sportpalya-tamogatas"), | |
| href: link("/sport/sportpalyaTamogatas"), |
| @@ -0,0 +1,24 @@ | |||
| import { getDictionary } from '@/get-dictionary'; | |||
| import type { Locale } from '@/i18n-config'; | |||
| import { PageHeader } from '@/components/common/PageHeader'; | |||
There was a problem hiding this comment.
PageHeader is imported but never used in this page component, which will fail lint/TS checks in setups that enforce no-unused-vars. Remove the unused import or render the header here (and remove it from the child component) to keep a single source of truth.
| import { PageHeader } from '@/components/common/PageHeader'; |
| import SportteremContent from './components/GymSupportContent'; | ||
| type SportteremIgenylesPageProps = { | ||
| params: Promise<{ lang: Locale }>; | ||
| }; | ||
| export default async function SportteremIgenylesPage({ | ||
| params, | ||
| }: SportteremIgenylesPageProps) { | ||
| const { lang } = await params; | ||
| const dictionary = await getDictionary(lang); | ||
| return ( | ||
| <div className="min-h-screen bg-gray-50"> | ||
| <div className="container mx-auto px-4 py-8"> | ||
| <main className="container mx-auto py-10 px-4"> | ||
| <SportteremContent |
There was a problem hiding this comment.
The component/page/type names here refer to "Sportterem igénylés" (gym booking), but this route renders the sports field support page (dictionary.sport.sportpalyaTamogatas). Please rename the props type, page function, and local component variable to match the actual page purpose to avoid confusion and incorrect future refactors.
| import SportteremContent from './components/GymSupportContent'; | |
| type SportteremIgenylesPageProps = { | |
| params: Promise<{ lang: Locale }>; | |
| }; | |
| export default async function SportteremIgenylesPage({ | |
| params, | |
| }: SportteremIgenylesPageProps) { | |
| const { lang } = await params; | |
| const dictionary = await getDictionary(lang); | |
| return ( | |
| <div className="min-h-screen bg-gray-50"> | |
| <div className="container mx-auto px-4 py-8"> | |
| <main className="container mx-auto py-10 px-4"> | |
| <SportteremContent | |
| import SportpalyaTamogatasContent from './components/GymSupportContent'; | |
| type SportpalyaTamogatasPageProps = { | |
| params: Promise<{ lang: Locale }>; | |
| }; | |
| export default async function SportpalyaTamogatasPage({ | |
| params, | |
| }: SportpalyaTamogatasPageProps) { | |
| const { lang } = await params; | |
| const dictionary = await getDictionary(lang); | |
| return ( | |
| <div className="min-h-screen bg-gray-50"> | |
| <div className="container mx-auto px-4 py-8"> | |
| <main className="container mx-auto py-10 px-4"> | |
| <SportpalyaTamogatasContent |
| }, | ||
| "selection": { | ||
| "title": "Judging Criteria", | ||
| "description": "The applications are evaluated by the BME Physical Education Center in cooperation with the Hungarian Academy of Sciences. The main criteria are:", |
There was a problem hiding this comment.
This text says the applications are evaluated "in cooperation with the Hungarian Academy of Sciences", but the Hungarian version states cooperation with EHK. This looks like an incorrect translation that will show wrong information to users; please correct the organization name in the EN dictionary entry.
| "description": "The applications are evaluated by the BME Physical Education Center in cooperation with the Hungarian Academy of Sciences. The main criteria are:", | |
| "description": "The applications are evaluated by the BME Physical Education Center in cooperation with the University Student Council (EHK). The main criteria are:", |
| import React, {JSX, ReactNode} from 'react'; | ||
| import { Card, CardContent } from '@/components/ui/card'; | ||
| import { PageHeader } from '@/components/common/PageHeader'; | ||
| import { parseFormattedText } from '@/utils/emailKatt-felkover'; //todo merge masik branchrol h letezzen a fuggveny |
There was a problem hiding this comment.
@/utils/emailKatt-felkover does not exist in this branch (and the comment indicates it is expected from another branch). This will break the build. Please add the missing utility in this PR or switch to an existing formatting utility used elsewhere in the repo.
| import React, {JSX, ReactNode} from 'react'; | ||
| import { Card, CardContent } from '@/components/ui/card'; | ||
| import { PageHeader } from '@/components/common/PageHeader'; |
There was a problem hiding this comment.
React and JSX are imported but not used. This is likely to trigger lint/TS unused import errors; consider importing only ReactNode (or nothing, if your TS/JSX runtime doesn’t require React in scope).
| import React, {JSX, ReactNode} from 'react'; | |
| import { Card, CardContent } from '@/components/ui/card'; | |
| import { PageHeader } from '@/components/common/PageHeader'; | |
| import type { ReactNode } from 'react'; | |
| import { Card, CardContent } from '@/components/ui/card'; |
| <ol className="list-disc pl-5 space-y-1"> | ||
| {content.condition.items.map((item, i) => ( | ||
| <li key={i}>{parseFormattedText(item)}</li> | ||
| ))} | ||
| </ol> |
There was a problem hiding this comment.
This list is rendered as an <ol> but styled with list-disc (bullets), which is inconsistent semantics. Use <ul> for a bulleted list, or change the styling to list-decimal if the order matters.
| <ol className="list-disc pl-5 space-y-1"> | |
| {content.condition.items.map((item, i) => ( | |
| <li key={i}>{parseFormattedText(item)}</li> | |
| ))} | |
| </ol> | |
| <ul className="list-disc pl-5 space-y-1"> | |
| {content.condition.items.map((item, i) => ( | |
| <li key={i}>{parseFormattedText(item)}</li> | |
| ))} | |
| </ul> |
| "sport": { | ||
| "sportpalyaTamogatas": { | ||
| "title": "Sports Field Support Application", | ||
| "description": "The **Budapest University of Technology and Economics Physical Education Center** and the **University Student Council (EHK) ** are announcing a joint application to support the rental of a sports field for **BME student teams**. Our goal is to support regular sports activities among the university's citizens.", |
There was a problem hiding this comment.
Markdown bold formatting has an extra space before the closing ** in **University Student Council (EHK) **, which can render oddly depending on the formatter. Consider changing it to **University Student Council (EHK)**.
| "description": "The **Budapest University of Technology and Economics Physical Education Center** and the **University Student Council (EHK) ** are announcing a joint application to support the rental of a sports field for **BME student teams**. Our goal is to support regular sports activities among the university's citizens.", | |
| "description": "The **Budapest University of Technology and Economics Physical Education Center** and the **University Student Council (EHK)** are announcing a joint application to support the rental of a sports field for **BME student teams**. Our goal is to support regular sports activities among the university's citizens.", |
| "period": { | ||
| "title": "The Period and Location of the Support", | ||
| "items": ["The support applies to **a semester** (fall or spring semester) of the given academic year.", | ||
| "You can apply not only for sports activities carried out at BME sports facilities (BME Sports Center, Bogdánfy Street Sports Complex, Kármán Tódor Dormitory, Bercsényi 28-30 Dormitory)."] |
There was a problem hiding this comment.
This sentence is incomplete/awkward in English ("You can apply not only for sports activities carried out at BME sports facilities ..."). It reads like it’s missing the "but also elsewhere" part that exists in the HU version, so EN users may misunderstand the eligibility. Please revise the EN translation to match the HU meaning.
| "You can apply not only for sports activities carried out at BME sports facilities (BME Sports Center, Bogdánfy Street Sports Complex, Kármán Tódor Dormitory, Bercsényi 28-30 Dormitory)."] | |
| "You can apply not only for sports activities carried out at BME sports facilities (BME Sports Center, Bogdánfy Street Sports Complex, Kármán Tódor Dormitory, Bercsényi 28-30 Dormitory), but also for sports activities held at other external venues."] |
No description provided.