工具栏操作

一个插件,用于在任何 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

此选项的值将用于旋钮。

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

旋钮的值将如下设置

图标按钮

需要将 active 设置为 true/false,如果没有设置 stateKnobValues,则 true/false 将是旋钮的值。

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

单选选项

当提供 options 且未设置 multiChoice 时,将把所选选项的值设置为旋钮。

多选选项

当提供 options 且将 multiChoice 设置为 true 时,将把所选选项的数组设置为旋钮。

stateKnobValues

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

multiChoice

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