|
@@ -1,7 +1,29 @@
|
|
|
-import React, { FC } from "react";
|
|
|
|
|
|
|
+import React, { FC, useState } from "react";
|
|
|
|
|
|
|
|
-const Select: FC = () => {
|
|
|
|
|
- return <select id="" name=""></select>;
|
|
|
|
|
|
|
+interface selecteProps {
|
|
|
|
|
+ list: string[] | number[];
|
|
|
|
|
+ placeholder: string;
|
|
|
|
|
+ className?: string;
|
|
|
|
|
+ id?: string;
|
|
|
|
|
+ name?: string;
|
|
|
|
|
+}
|
|
|
|
|
+
|
|
|
|
|
+const Select: FC<selecteProps> = ({ list, id, name, className, placeholder }) => {
|
|
|
|
|
+ const [selected, setSelected] = useState<string | number>(placeholder);
|
|
|
|
|
+
|
|
|
|
|
+ const onChangeSelect = (event: React.ChangeEvent<HTMLSelectElement>) => {
|
|
|
|
|
+ setSelected(event.target.value);
|
|
|
|
|
+ };
|
|
|
|
|
+
|
|
|
|
|
+ return <select className={className?? ""} id={id?? ""} name={name?? ""} onChange={onChangeSelect} value={selected}>
|
|
|
|
|
+ <option value=''>{placeholder}</option>
|
|
|
|
|
+
|
|
|
|
|
+ {list.map(item => (
|
|
|
|
|
+ <option value={item} key={item}>
|
|
|
|
|
+ {item}
|
|
|
|
|
+ </option>
|
|
|
|
|
+ ))}
|
|
|
|
|
+ </select>;
|
|
|
};
|
|
};
|
|
|
|
|
|
|
|
export default Select;
|
|
export default Select;
|