diff --git a/storybook/stories/Multiselect/MultiselectMultipleValues/MultiselectMultipleValues.js b/storybook/stories/Multiselect/MultiselectMultipleValues/MultiselectMultipleValues.js
new file mode 100644
index 000000000..af613c04b
--- /dev/null
+++ b/storybook/stories/Multiselect/MultiselectMultipleValues/MultiselectMultipleValues.js
@@ -0,0 +1,37 @@
+const React = require('react');
+const { storiesOf } = require('@storybook/react');
+const { action } = require('@storybook/addon-actions');
+const { Multiselect } = require('stremio/common');
+const styles = require('./styles');
+
+storiesOf('Multiselect', module).add('MultiselectMultipleValues', () => {
+ const [selected, setSelected] = React.useState(['a']);
+ const onSelect = React.useCallback((event) => {
+ action('onSelect')(event);
+ if (selected.includes(event.value)) {
+ setSelected(selected.filter((value) => value !== event.value));
+ } else {
+ setSelected([...selected, event.value]);
+ }
+ }, [selected]);
+ return (
+
+ );
+});
\ No newline at end of file
diff --git a/storybook/stories/Multiselect/MultiselectMultipleValues/index.js b/storybook/stories/Multiselect/MultiselectMultipleValues/index.js
new file mode 100644
index 000000000..f7c2216f8
--- /dev/null
+++ b/storybook/stories/Multiselect/MultiselectMultipleValues/index.js
@@ -0,0 +1 @@
+require('./MultiselectMultipleValues');
diff --git a/storybook/stories/Multiselect/MultiselectMultipleValues/styles.less b/storybook/stories/Multiselect/MultiselectMultipleValues/styles.less
new file mode 100644
index 000000000..83da3846f
--- /dev/null
+++ b/storybook/stories/Multiselect/MultiselectMultipleValues/styles.less
@@ -0,0 +1,6 @@
+.label-container {
+ flex: none;
+ width: 17rem;
+ height: 3.6rem;
+ margin: 2rem;
+}
\ No newline at end of file
diff --git a/storybook/stories/Multiselect/MultiselectNotAutoClosing/MultiselectNotAutoClosing.js b/storybook/stories/Multiselect/MultiselectNotAutoClosing/MultiselectNotAutoClosing.js
new file mode 100644
index 000000000..5074694dc
--- /dev/null
+++ b/storybook/stories/Multiselect/MultiselectNotAutoClosing/MultiselectNotAutoClosing.js
@@ -0,0 +1,39 @@
+const React = require('react');
+const { storiesOf } = require('@storybook/react');
+const { action } = require('@storybook/addon-actions');
+const { Multiselect } = require('stremio/common');
+const styles = require('./styles');
+
+storiesOf('Multiselect', module).add('MultiselectNotAutoClosing', () => {
+ const [selected, setSelected] = React.useState(['a']);
+ const onSelect = React.useCallback((event) => {
+ action('onSelect')(event);
+ if (selected.includes(event.value)) {
+ setSelected(selected.filter((value) => value !== event.value));
+ } else {
+ setSelected([...selected, event.value]);
+ }
+
+ event.nativeEvent.closeMenuPrevented = true;
+ }, [selected]);
+ return (
+
+ );
+});
\ No newline at end of file
diff --git a/storybook/stories/Multiselect/MultiselectNotAutoClosing/index.js b/storybook/stories/Multiselect/MultiselectNotAutoClosing/index.js
new file mode 100644
index 000000000..666210910
--- /dev/null
+++ b/storybook/stories/Multiselect/MultiselectNotAutoClosing/index.js
@@ -0,0 +1 @@
+require('./MultiselectNotAutoClosing');
diff --git a/storybook/stories/Multiselect/MultiselectNotAutoClosing/styles.less b/storybook/stories/Multiselect/MultiselectNotAutoClosing/styles.less
new file mode 100644
index 000000000..83da3846f
--- /dev/null
+++ b/storybook/stories/Multiselect/MultiselectNotAutoClosing/styles.less
@@ -0,0 +1,6 @@
+.label-container {
+ flex: none;
+ width: 17rem;
+ height: 3.6rem;
+ margin: 2rem;
+}
\ No newline at end of file
diff --git a/storybook/stories/Multiselect/MultiselectSingleValue/MultiselectSingleValue.js b/storybook/stories/Multiselect/MultiselectSingleValue/MultiselectSingleValue.js
new file mode 100644
index 000000000..f143e5f8b
--- /dev/null
+++ b/storybook/stories/Multiselect/MultiselectSingleValue/MultiselectSingleValue.js
@@ -0,0 +1,33 @@
+const React = require('react');
+const { storiesOf } = require('@storybook/react');
+const { action } = require('@storybook/addon-actions');
+const { Multiselect } = require('stremio/common');
+const styles = require('./styles');
+
+storiesOf('Multiselect', module).add('MultiselectSingleValue', () => {
+ const [selected, setSelected] = React.useState(['a']);
+ const onSelect = React.useCallback((event) => {
+ action('onSelect')(event);
+ setSelected([event.value]);
+ }, []);
+ return (
+
+ );
+});
\ No newline at end of file
diff --git a/storybook/stories/Multiselect/MultiselectSingleValue/index.js b/storybook/stories/Multiselect/MultiselectSingleValue/index.js
new file mode 100644
index 000000000..3d9f8a316
--- /dev/null
+++ b/storybook/stories/Multiselect/MultiselectSingleValue/index.js
@@ -0,0 +1 @@
+require('./MultiselectSingleValue');
diff --git a/storybook/stories/Multiselect/MultiselectSingleValue/styles.less b/storybook/stories/Multiselect/MultiselectSingleValue/styles.less
new file mode 100644
index 000000000..83da3846f
--- /dev/null
+++ b/storybook/stories/Multiselect/MultiselectSingleValue/styles.less
@@ -0,0 +1,6 @@
+.label-container {
+ flex: none;
+ width: 17rem;
+ height: 3.6rem;
+ margin: 2rem;
+}
\ No newline at end of file
diff --git a/storybook/stories/Multiselect/index.js b/storybook/stories/Multiselect/index.js
new file mode 100644
index 000000000..b9003647a
--- /dev/null
+++ b/storybook/stories/Multiselect/index.js
@@ -0,0 +1,3 @@
+require('./MultiselectMultipleValues');
+require('./MultiselectNotAutoClosing');
+require('./MultiselectSingleValue');
diff --git a/storybook/stories/index.js b/storybook/stories/index.js
index a3b450370..cf5c2b933 100644
--- a/storybook/stories/index.js
+++ b/storybook/stories/index.js
@@ -1,6 +1,7 @@
require('./Addon');
-require('./MetaItem');
require('./ColorPicker');
-require('./SharePrompt');
-require('./Notification');
+require('./MetaItem');
require('./ModalDialog');
+require('./Multiselect');
+require('./Notification');
+require('./SharePrompt');