加入直播:周四,美国东部时间上午 11 点,Storybook 9 发布和问答

工具栏操作

一个插件,用于在任何 React 函数组件内部向 Storybook 工具栏添加按钮

在 Github 上查看

storybook-addon-toolbar-actions

一个插件,用于在任何 React 函数组件内部向 Storybook 工具栏添加按钮。

请注意,此插件仅适用于 React 应用。

addon-screenshot

配置

.storybook/main.js

module.exports = {
  addons: ['storybook-addon-toolbar-actions/register'],
};

用法

在任何函数组件内部

添加图标

import { useToolbarActions } from 'storybook-addon-toolbar-actions';
import AcUnitIcon from '@material-ui/icons/AcUnit';

export const WithIcon = () => {
  useToolbarActions(
    'icon-id',
    <AcUnitIcon style={{ fill: 'currentColor' }} />,
    () => {
      console.log('clicked');
    },
  );
  return <button />;
};

添加选项列表

import { useToolbarActions } from 'storybook-addon-toolbar-actions';
import AcUnitIcon from '@material-ui/icons/AcUnit';

export const WithOptions = () => {
  const [options, setOptions] = useState<ToolbarActionOption[]>([
    { key: 'name', value: 'val' },
    { key: 'name2', value: 'val' },
  ]);

  useToolbarActions(
    'icon-id',
    <AcUnitIcon style={{ fill: 'currentColor' }} />,
    {
      options,
      onClick:(options, option) => {
      setOptions(options);
      console.log(option);
    },
    },
  );
  return <button />;
};

选项

  • active?: boolean;
  • options?: ToolbarActionOption[];
  • closeOptionListOnClick?: boolean;
  • group?: string | number;
  • setToKnob?: string;
  • stateKnobValues
  • multiChoice?: boolean;

active

将激活 Storybook IconButton 指示器。

options

如果设置,按钮下方将打开一个下拉列表

closeOptionListOnClick

点击选项时将关闭选项下拉列表。

当 multiChoice 设置为 true 时,closeOptionListOnClick 选项无效。

group

使用此选项对容器中的按钮进行排序和分组,设置后将在按钮之间添加 Separator

setToKnob

此选项的值将用于 knob

setToKnob: 'locale';
// will be knob-locale=value

knob 的值设置如下

图标按钮

需要将 active 设置为 true/false,如果 stateKnobValues 未设置,则 true/false 将是 knob 的值。

stateKnobValues 设置时,将根据 active 状态使用 stateKnobValues.activestateKnobValues.inactive 的值。

单选选项

当提供了 options 且未设置 multiChoice 时,所选选项的值将设置给 knob。

多选选项

当提供了 optionsmultiChoice 设置为 true 时,所选选项的数组将设置给 knob。

stateKnobValues

stateKnobValues 设置时,将根据 active 状态使用 stateKnobValues.activestateKnobValues.inactive 的值。

multiChoice

设置为 true 时,用户可以选择多个选项。