diff --git a/ui/components/ui/toggle-button/README.mdx b/ui/components/ui/toggle-button/README.mdx
new file mode 100644
index 000000000..460f78ffb
--- /dev/null
+++ b/ui/components/ui/toggle-button/README.mdx
@@ -0,0 +1,15 @@
+import { Story, Canvas, ArgsTable } from '@storybook/addon-docs';
+
+import ToggleButton from '.';
+
+# Toggle Button
+
+Button that toggles state on or off. Wraps react-toggle-button
+
+
+
+## Component API
+
+
diff --git a/ui/components/ui/toggle-button/toggle-button.component.js b/ui/components/ui/toggle-button/toggle-button.component.js
index ef28fec8a..271707cbe 100644
--- a/ui/components/ui/toggle-button/toggle-button.component.js
+++ b/ui/components/ui/toggle-button/toggle-button.component.js
@@ -87,11 +87,29 @@ const ToggleButton = (props) => {
};
ToggleButton.propTypes = {
+ /**
+ * ToggleButton value
+ */
value: PropTypes.bool,
+ /**
+ * The onChange handler of the ToggleButton
+ */
onToggle: PropTypes.func,
+ /**
+ * Label text when toggle is off
+ */
offLabel: PropTypes.string,
+ /**
+ * Label text when toggle is on
+ */
onLabel: PropTypes.string,
+ /**
+ * Disables ToggleButton if true. Set to false as default
+ */
disabled: PropTypes.bool,
+ /**
+ * Additional className to add to the ToggleButton
+ */
className: PropTypes.string,
};
diff --git a/ui/components/ui/toggle-button/toggle-button.stories.js b/ui/components/ui/toggle-button/toggle-button.stories.js
index f2d96fcc5..9dea24bcb 100644
--- a/ui/components/ui/toggle-button/toggle-button.stories.js
+++ b/ui/components/ui/toggle-button/toggle-button.stories.js
@@ -1,30 +1,38 @@
-import React, { useState } from 'react';
-import { action } from '@storybook/addon-actions';
-import { boolean, text } from '@storybook/addon-knobs';
-
+import React from 'react';
+import { useArgs } from '@storybook/client-api';
+import README from './README.mdx';
import ToggleButton from './toggle-button.component';
export default {
title: 'Components/UI/ToggleButton',
component: ToggleButton,
id: __filename,
+ parameters: {
+ docs: {
+ page: README,
+ },
+ },
+ argTypes: {
+ value: { control: 'boolean' },
+ onToggle: { action: 'onToggle' },
+ offLabel: { control: 'text' },
+ onLabel: { control: 'text' },
+ disabled: { control: 'boolean' },
+ },
};
-export const DefaultStory = () => {
- const [checked, setChecked] = useState(false);
- const handleOnToggle = (e) => {
- action('onToggle')(e);
- setChecked(!checked);
+export const DefaultStory = (args) => {
+ const [{ value }, updateArgs] = useArgs();
+ const handleOnToggle = () => {
+ updateArgs({ value: !value });
};
- return (
-
- );
+ return ;
};
DefaultStory.storyName = 'Default';
+DefaultStory.args = {
+ value: false,
+ offLabel: 'off',
+ onLabel: 'on',
+ disabled: false,
+};