aboutsummaryrefslogtreecommitdiffstats
path: root/public/projects/react-small-apps/apps/meme-generator/src/components/commons/Select.js
diff options
context:
space:
mode:
Diffstat (limited to 'public/projects/react-small-apps/apps/meme-generator/src/components/commons/Select.js')
-rw-r--r--public/projects/react-small-apps/apps/meme-generator/src/components/commons/Select.js31
1 files changed, 31 insertions, 0 deletions
diff --git a/public/projects/react-small-apps/apps/meme-generator/src/components/commons/Select.js b/public/projects/react-small-apps/apps/meme-generator/src/components/commons/Select.js
new file mode 100644
index 0000000..9517b23
--- /dev/null
+++ b/public/projects/react-small-apps/apps/meme-generator/src/components/commons/Select.js
@@ -0,0 +1,31 @@
+import Option from "./Option";
+
+function Select({ id, name, label, options, value, onChangeHandler }) {
+ const optionsList = options.map((option) => {
+ const optionValue = option.replace(" ", "-");
+ return <Option key={optionValue} value={optionValue} body={option} />;
+ });
+
+ return (
+ <>
+ {label ? (
+ <label className="form__label" htmlFor={id}>
+ {label}
+ </label>
+ ) : (
+ ""
+ )}
+ <select
+ id={id}
+ name={name}
+ className="form__select"
+ value={value}
+ onChange={onChangeHandler}
+ >
+ {optionsList}
+ </select>
+ </>
+ );
+}
+
+export default Select;