UNPKG

monday-ui-react-core

Version:

Official monday.com UI resources for application development in React.js

114 lines (105 loc) 4.1 kB
import React, { useState } from "react"; import { action } from "@storybook/addon-actions"; import { text, boolean, number } from "@storybook/addon-knobs"; import Checkbox from "../Checkbox"; import { StoryStateRow } from "../../storybook-helpers"; import { renderCheckboxes } from "./checkbox.stories.renderCheckboxes"; import StoryWrapper from "../../../StoryBookComponents/StoryWrapper/StoryWrapper"; import "./checkbox.stories.scss"; import { withPerformance } from "storybook-addon-performance"; export const Sandbox = () => { const checkedCount = number("Checkboxes (checked prop) Count", 5); const checkedComps = renderCheckboxes(checkedCount, "Checkboxes with checked prop", "checked", true); return checkedComps; }; export const States = () => { return ( <StoryWrapper componentClassName="monday-style-story-checkbox__state-wrapper"> <StoryStateRow componentDescription="Regular" componentClassName="monday-style-story-checkbox__state"> <Checkbox value="1" label="Option" name="regular" disabled={false} /> </StoryStateRow> <StoryStateRow componentDescription="Selected" componentClassName="monday-style-story-checkbox__state"> <Checkbox value="1" label="Option" name="selected" defaultChecked={true} disabled={false} componentClassName="monday-style-selected" /> </StoryStateRow> <StoryStateRow componentDescription="Hover" componentClassName="monday-style-story-checkbox__state monday-style-story-checkbox__state--hover" > <Checkbox value="1" label="Option" name="selected" disabled={false} componentClassName="monday-style-story-selected" /> </StoryStateRow> <StoryStateRow componentDescription="Hover selected" componentClassName="monday-style-story-checkbox__state monday-style-story-checkbox__state--selected-hover" > <Checkbox value="1" label="Option" name="selected" defaultChecked={true} disabled={false} componentClassName="monday-style-selected" /> </StoryStateRow> <StoryStateRow componentDescription="Selected" componentClassName="monday-style-story-checkbox__state"> <Checkbox value="1" label="Option" name="selected" defaultChecked={true} disabled={false} componentClassName="monday-style-selected" /> </StoryStateRow> <StoryStateRow componentDescription="Disabled" componentClassName="monday-style-story-checkbox__state"> <Checkbox value="1" label="Option" name="disabledRadio" disabled={true} /> </StoryStateRow> <StoryStateRow componentDescription="Disabled selected" componentClassName="monday-style-story-checkbox__state"> <Checkbox value="1" label="Option" name="disabledSelected" disabled={true} defaultChecked={true} /> </StoryStateRow> </StoryWrapper> ); }; export const OnChange = () => { const [selected, setsSelected] = useState(true); return ( <StoryWrapper> <Checkbox id="Knobs" label={text("label", "text")} checked={selected} disabled={boolean("isDisabled", false)} onChange={e => { action("onChange")(e); setsSelected(!selected); }} /> </StoryWrapper> ); }; export const RTLSupport = () => [ <div className="monday-style-story-checkbox__directions-wrapper" style={{ direction: "rtl" }}> <Checkbox id="RTLKnobs" label={text("LTR label", "טקסט בעברית")} disabled={boolean("disabled", false)} /> </div>, <div className="monday-style-story-checkbox__directions-wrapper" style={{ direction: "ltr" }}> <Checkbox id="LTRKnobs" label={text("RTL label", "English text")} disabled={boolean("disabled", false)} /> </div> ]; export default { title: "Components/Checkbox", component: Checkbox, argTypes: { onClick: { action: "onChange" } }, decorators: [withPerformance] };