import KFIcon from '@/components/KFIcon';
import KFRadio from '@/components/KFRadio';
import { useArgs } from '@storybook/preview-api';
import type { Meta, StoryObj } from '@storybook/react';

// More on how to set up stories at: https://storybook.js.org/docs/writing-stories#default-export
const meta = {
  title: 'Components/KFRadio 单选框',
  component: KFRadio,
  parameters: {
    // Optional parameter to center the component in the Canvas. More info: https://storybook.js.org/docs/configure/story-layout
    // layout: 'centered',
  },
  // This component will have an automatically generated Autodocs entry: https://storybook.js.org/docs/writing-docs/autodocs
  tags: ['autodocs'],
  // More on argTypes: https://storybook.js.org/docs/api/argtypes
  argTypes: {
    // backgroundColor: { control: 'color' },
  },
  // Use `fn` to spy on the onClick arg, which will appear in the actions panel once invoked: https://storybook.js.org/docs/essentials/actions#action-args
  // args: { onClick: fn() },
} satisfies Meta<typeof KFRadio>;

export default meta;
type Story = StoryObj<typeof meta>;

// More on writing stories with args: https://storybook.js.org/docs/writing-stories/args
export const Primary: Story = {
  args: {
    items: [
      {
        title: '英伟达GPU',
        value: 'GPU',
        icon: <KFIcon type="icon-jiyugongwangjingxiang" />,
      },
      {
        title: '昇腾NPU',
        value: 'NPU',
        icon: <KFIcon type="icon-bendishangchuan" />,
      },
    ],
    value: 'GPU',
  },
  render: function Render(args) {
    const [{ value }, updateArgs] = useArgs();
    function onChange(value: string) {
      updateArgs({ value: value });
    }

    return <KFRadio {...args} value={value} onChange={onChange} />;
  },
};
