airbnb/caravel

View on GitHub
superset-frontend/src/components/ButtonGroup/ButtonGroup.stories.tsx

Summary

Maintainability
A
2 hrs
Test Coverage
/**
 * Licensed to the Apache Software Foundation (ASF) under one
 * or more contributor license agreements.  See the NOTICE file
 * distributed with this work for additional information
 * regarding copyright ownership.  The ASF licenses this file
 * to you under the Apache License, Version 2.0 (the
 * "License"); you may not use this file except in compliance
 * with the License.  You may obtain a copy of the License at
 *
 *   http://www.apache.org/licenses/LICENSE-2.0
 *
 * Unless required by applicable law or agreed to in writing,
 * software distributed under the License is distributed on an
 * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
 * KIND, either express or implied.  See the License for the
 * specific language governing permissions and limitations
 * under the License.
 */
import Button, { ButtonProps } from 'src/components/Button';
import { STYLES, SIZES } from 'src/components/Button/Button.stories';
import ButtonGroup from './index';

export default {
  title: 'ButtonGroup',
  component: ButtonGroup,
};

export const InteractiveButtonGroup = (args: ButtonProps) => (
  <>
    <ButtonGroup css={{ marginBottom: 40 }}>
      <Button {...args}>Button 1</Button>
    </ButtonGroup>
    <ButtonGroup css={{ marginBottom: 40 }}>
      <Button {...args}>Button 1</Button>
      <Button {...args}>Button 2</Button>
    </ButtonGroup>
    <ButtonGroup>
      <Button {...args}>Button 1</Button>
      <Button {...args}>Button 2</Button>
      <Button {...args}>Button 3</Button>
    </ButtonGroup>
  </>
);
InteractiveButtonGroup.args = {
  buttonStyle: 'tertiary',
  buttonSize: 'default',
};

InteractiveButtonGroup.argTypes = {
  buttonStyle: {
    name: STYLES.label,
    control: { type: 'select' },
    options: STYLES.options,
  },
  buttonSize: {
    name: SIZES.label,
    control: { type: 'select' },
    options: SIZES.options,
  },
};

InteractiveButtonGroup.parameters = {
  actions: {
    disable: true,
  },
};