mirror of
https://github.com/koreanbots/core.git
synced 2025-12-15 14:10:22 +00:00
* deps: update next.js to 13 * chore: migrate to new Link component * chore: remove future option from next.config * chore: update react-select * chore: enable hideSourceMaps on sentry * chore: assert type as string * chore: make placeholder and value absolute * feat: set timeout for redirect * chore: ignore ts error * chore: add generics * chore: * chore: add ts comment * feat: use dnd-kit instead of react-sortable-hoc * fix: give absolute position to placeholder
56 lines
1.2 KiB
TypeScript
56 lines
1.2 KiB
TypeScript
import ReactSelect from 'react-select'
|
|
|
|
const Select: React.FC<SelectProps> = ({ placeholder, options, handleChange, handleTouch, value }) => {
|
|
return <ReactSelect
|
|
styles={{
|
|
control: provided => {
|
|
return { ...provided, border: 'none' }
|
|
},
|
|
option: provided => {
|
|
return {
|
|
...provided,
|
|
cursor: 'pointer',
|
|
':hover': {
|
|
opacity: '0.7',
|
|
},
|
|
}
|
|
},
|
|
placeholder: provided => {
|
|
return {
|
|
...provided,
|
|
position: 'absolute'
|
|
}
|
|
},
|
|
singleValue: provided => {
|
|
return {
|
|
...provided,
|
|
position: 'absolute'
|
|
}
|
|
}
|
|
}}
|
|
className='border-grey-light border dark:border-transparent rounded'
|
|
classNamePrefix='outline-none text-black dark:bg-very-black dark:text-white '
|
|
placeholder={placeholder || '선택해주세요.'}
|
|
options={options}
|
|
onChange={handleChange}
|
|
onBlur={handleTouch}
|
|
noOptionsMessage={() => '검색 결과가 없습니다.'}
|
|
defaultValue={value}
|
|
/>
|
|
}
|
|
|
|
interface SelectProps {
|
|
placeholder?: string
|
|
handleChange: (value: Option) => void
|
|
handleTouch: () => void
|
|
options: Option[]
|
|
value?: Option
|
|
}
|
|
|
|
interface Option {
|
|
value: string
|
|
label: string
|
|
}
|
|
|
|
export default Select
|