Files
GearBox/src/client/components/onboarding/OnboardingHobbyPicker.tsx
Jean-Luc Makiola 8d7a668da4
All checks were successful
CI / ci (push) Successful in 1m23s
CI / e2e (push) Has been skipped
CI / deploy (push) Successful in 1m20s
fix: resolve lint errors from phase 32/33/34 execution
Auto-fixed formatting issues and removed unused imports introduced
by background execution agents across currency, i18n, and sharing code.

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
2026-04-13 18:32:32 +02:00

48 lines
1.4 KiB
TypeScript

import { useTranslation } from "react-i18next";
import { HOBBIES } from "@/shared/hobbyConfig";
import { HobbyCard } from "./HobbyCard";
interface OnboardingHobbyPickerProps {
selectedHobbies: string[];
onToggleHobby: (hobbyId: string) => void;
onContinue: () => void;
}
export function OnboardingHobbyPicker({
selectedHobbies,
onToggleHobby,
onContinue,
}: OnboardingHobbyPickerProps) {
const { t } = useTranslation("onboarding");
return (
<div className="flex flex-col items-center justify-center min-h-screen px-8">
<div className="max-w-2xl text-center">
<h1 className="text-3xl font-bold text-gray-900 mb-2">
{t("hobby.title")}
</h1>
<p className="text-base text-gray-500 mb-8">{t("hobby.subtitle")}</p>
<div className="flex flex-wrap justify-center gap-4 mb-8">
{HOBBIES.map((hobby) => (
<HobbyCard
key={hobby.id}
name={hobby.name}
icon={hobby.icon}
descriptor={hobby.descriptor}
selected={selectedHobbies.includes(hobby.id)}
onClick={() => onToggleHobby(hobby.id)}
/>
))}
</div>
<button
type="button"
onClick={onContinue}
disabled={selectedHobbies.length === 0}
className="px-8 py-3 bg-gray-700 hover:bg-gray-800 disabled:opacity-50 disabled:cursor-not-allowed text-white font-medium rounded-lg transition-colors"
>
{t("hobby.continue")}
</button>
</div>
</div>
);
}