TextInput::make('postal_code')
->label('Postleitzahl')
->required()
->afterStateUpdated(function (Get $get, ?string $state, Set $set) use ($serviceInstance) {
if (strlen($state) === 5 && $get('country') === 'DE') {
self::$cities = $serviceInstance->loadCities($state);
if (isset(self::$cities['message'])) {
Notification::make()
->title(self::$cities['message'])
->danger()
->send();
}
if (count(self::$cities) === 1) {
$set('city', self::$cities[0]);
}
}
if ($state === null) {
$set('city', '');
}
})
->live(),
Select::make('city')
->label('Stadt/Ort')
->options(self::$cities)
->live()
->searchable()
->required(),
TextInput::make('postal_code')
->label('Postleitzahl')
->required()
->afterStateUpdated(function (Get $get, ?string $state, Set $set) use ($serviceInstance) {
if (strlen($state) === 5 && $get('country') === 'DE') {
self::$cities = $serviceInstance->loadCities($state);
if (isset(self::$cities['message'])) {
Notification::make()
->title(self::$cities['message'])
->danger()
->send();
}
if (count(self::$cities) === 1) {
$set('city', self::$cities[0]);
}
}
if ($state === null) {
$set('city', '');
}
})
->live(),
Select::make('city')
->label('Stadt/Ort')
->options(self::$cities)
->live()
->searchable()
->required(),