location-radius.js 1.5 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243
  1. import Field from './_field';
  2. import { Input } from 'app/design/controls'
  3. import { View } from 'app/design/view'
  4. import { useLocationField } from 'app/lib/form/use-form-field';
  5. import { LocationSuggest } from 'app/lib/form/form-fields-helpers';
  6. import { useTranslation } from 'react-i18next';
  7. export default function FormFieldLocationRadius({ name, value, onChange, ...props }) {
  8. const { t } = useTranslation();
  9. const loc = useLocationField({
  10. name,
  11. value,
  12. onChange,
  13. syncName: false,
  14. extraSuffixes: ['_rad'],
  15. });
  16. return (
  17. <Field classes="z-50 @container/input-lr " {...props}>
  18. <View className="@sm/input-lr:flex-row w-full gap-2">
  19. <View className="w-full min-w-0 @sm/input-lr:flex-1">
  20. <Input
  21. placeholder={t('Start typing your address')}
  22. value={loc.term}
  23. onChangeText={loc.onChangeText}
  24. />
  25. </View>
  26. <View className="w-full @sm/input-lr:w-36 @sm/input-lr:flex-none">
  27. <Input
  28. placeholder={t('Radius, in Km')}
  29. onChangeText={loc.setRadius}
  30. />
  31. </View>
  32. </View>
  33. <LocationSuggest
  34. searchError={loc.searchError}
  35. selectionMade={loc.selectionMade}
  36. locationResults={loc.locationResults}
  37. onSelect={loc.onSelect}
  38. />
  39. </Field>
  40. );
  41. }