11import { useTranslation } from 'react-i18next' ;
2- import { OptionalBadge , RegistrationStep , RegistrationStepDescription , RegistrationStepProps , RegistrationStepTitle } from './RegistrationStep' ;
2+ import { RegistrationStep , RegistrationStepDescription , RegistrationStepProps , RegistrationStepTitle } from './RegistrationStep' ;
33import { useRegistrationForm } from './useRegistrationForm' ;
44import { LanguageSelector } from '@/components/LanguageSelector' ;
55import { Language } from '@/gql/graphql' ;
6- import { Typography } from '@/components/Typography' ;
76import { usePageTitle } from '@/hooks/usePageTitle' ;
7+ import { Typography } from '@/components/Typography' ;
8+ import { cn } from '@/lib/Tailwind' ;
89
910interface UserLanguagesProps extends RegistrationStepProps { }
1011
@@ -17,11 +18,16 @@ export const UserLanguages = ({ onBack, onNext }: UserLanguagesProps) => {
1718 onFormChange ( { languages : values } ) ;
1819 } ;
1920
20- const isNextDisabled = form . userType === 'pupil' ? form . languages . length === 0 : false ;
21+ const isNextDisabled = form . userType === 'pupil' ? form . languages . length === 0 : ! form . languages . includes ( Language . Deutsch ) ;
2122
2223 return (
23- < RegistrationStep className = "px-0" onBack = { onBack } onNext = { onNext } isNextDisabled = { isNextDisabled } >
24- { form . userType === 'student' && < OptionalBadge /> }
24+ < RegistrationStep
25+ className = "px-0"
26+ onBack = { onBack }
27+ onNext = { onNext }
28+ isNextDisabled = { isNextDisabled }
29+ reasonNextDisabled = { isNextDisabled ? t ( 'registration.steps.languages.germanRequiredError' ) : undefined }
30+ >
2531 < RegistrationStepTitle className = "mb-3" >
2632 { t ( form . userType === 'pupil' ? 'registration.steps.languages.titlePupil' : 'registration.steps.languages.titleStudent' ) }
2733 </ RegistrationStepTitle >
@@ -47,6 +53,14 @@ export const UserLanguages = ({ onBack, onNext }: UserLanguagesProps) => {
4753 setValue = { onChange }
4854 />
4955 </ div >
56+ < Typography
57+ variant = "sm"
58+ className = { cn ( 'text-destructive px-1 min-h-5 leading-1 mt-4 text-center' , {
59+ invisible : ! form . languages . length || form . languages . includes ( Language . Deutsch ) ,
60+ } ) }
61+ >
62+ { t ( 'registration.steps.languages.germanRequiredError' ) }
63+ </ Typography >
5064 </ RegistrationStep >
5165 ) ;
5266} ;
0 commit comments