## Summary
- Migrated about, updates, and roadmap pages from Pages Router to App
Router
- Fixed profile page data loading and display
- Created API route handlers for proxying backend calls
- Fixed translation format issues with next-intl
## Changes
- Created new App Router pages under `/app/[locale]/`
- Fixed translation interpolation from `{{variable}}` to `{variable}`
format
- Added API routes for characters, raids, summons, and weapons
- Fixed infinite recursion in ChangelogUnit by renaming fetch function
- Converted from useTranslation to useTranslations hook
## Test plan
- [x] About page loads and displays correctly
- [x] Updates page fetches and displays changelog data
- [x] Roadmap page renders without errors
- [x] Profile page shows user teams correctly
- [x] All translations render properly
🤖 Generated with [Claude Code](https://claude.ai/code)
---------
Co-authored-by: Claude <noreply@anthropic.com>
29 lines
No EOL
760 B
TypeScript
29 lines
No EOL
760 B
TypeScript
import { NextRequest, NextResponse } from 'next/server';
|
|
import { fetchFromApi } from '~/app/lib/api-utils';
|
|
|
|
// GET handler for fetching a single weapon
|
|
export async function GET(
|
|
request: NextRequest,
|
|
{ params }: { params: { id: string } }
|
|
) {
|
|
try {
|
|
const { id } = params;
|
|
|
|
if (!id) {
|
|
return NextResponse.json(
|
|
{ error: 'Weapon ID is required' },
|
|
{ status: 400 }
|
|
);
|
|
}
|
|
|
|
const data = await fetchFromApi(`/weapons/${id}`);
|
|
|
|
return NextResponse.json(data);
|
|
} catch (error: any) {
|
|
console.error(`Error fetching weapon ${params.id}`, error);
|
|
return NextResponse.json(
|
|
{ error: error.message || 'Failed to fetch weapon' },
|
|
{ status: error.response?.status || 500 }
|
|
);
|
|
}
|
|
} |