diff --git a/client/src/components/CustomSelect.tsx b/client/src/components/CustomSelect.tsx
new file mode 100644
index 0000000..fc377db
--- /dev/null
+++ b/client/src/components/CustomSelect.tsx
@@ -0,0 +1,43 @@
+/*
+ * Copyright (C) 2022 Savoir-faire Linux Inc.
+ *
+ * This program is free software; you can redistribute it and/or modify
+ * it under the terms of the GNU Affero General Public License as
+ * published by the Free Software Foundation; either version 3 of the
+ * License, or (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+ * GNU Affero General Public License for more details.
+ *
+ * You should have received a copy of the GNU Affero General Public
+ * License along with this program.  If not, see
+ * <https://www.gnu.org/licenses/>.
+ */
+
+import { MenuItem, MenuItemProps, Select, SelectProps } from '@mui/material';
+
+export interface CustomSelectOption {
+  label: string;
+  value: MenuItemProps['value'];
+}
+
+export interface CustomSelectProps extends Omit<SelectProps, 'label'> {
+  value: CustomSelectOption['value'];
+  options: CustomSelectOption[];
+  onChange: SelectProps['onChange'];
+}
+
+const CustomSelect = ({ value, options, onChange }: CustomSelectProps) => {
+  return (
+    <Select onChange={onChange} value={value}>
+      {options.map((option) => (
+        <MenuItem key={option.label} value={option.value}>
+          {option.label}
+        </MenuItem>
+      ))}
+    </Select>
+  );
+};
+export { CustomSelect };
