Files
community-rule/stories/create-flow/ModalTextAreaField.stories.js
2026-04-18 14:12:49 -06:00

73 lines
1.8 KiB
JavaScript

import React from "react";
import ModalTextAreaField from "../../app/(app)/create/components/ModalTextAreaField";
export default {
title: "Create Flow/ModalTextAreaField",
component: ModalTextAreaField,
parameters: {
layout: "centered",
docs: {
description: {
component:
"Shared 'labelled text area' field used by every create-flow modal section. Pairs `InputLabel` (with help icon) with a `TextArea` set to the `embedded` appearance.",
},
},
},
argTypes: {
label: { control: { type: "text" } },
placeholder: { control: { type: "text" } },
rows: { control: { type: "number" } },
helpIcon: { control: { type: "boolean" } },
disabled: { control: { type: "boolean" } },
onChange: { action: "change" },
},
tags: ["autodocs"],
};
export const Default = {
render: (args) => {
const [value, setValue] = React.useState("");
return (
<div className="w-[520px]">
<ModalTextAreaField {...args} value={value} onChange={setValue} />
</div>
);
},
args: {
label: "Description",
helpIcon: true,
placeholder: "What does this rule cover?",
rows: 4,
},
};
export const WithValue = {
render: () => {
const [value, setValue] = React.useState(
"We decide together whenever a change would affect more than two teams.",
);
return (
<div className="w-[520px]">
<ModalTextAreaField
label="Core principle"
value={value}
onChange={setValue}
/>
</div>
);
},
};
export const Disabled = {
render: () => (
<div className="w-[520px]">
<ModalTextAreaField
label="Description"
value="Read-only content"
onChange={() => {}}
disabled
/>
</div>
),
};