vorteil/direktiv

View on GitHub
ui/src/design/InputWithButton/index.stories.tsx

Summary

Maintainability
A
0 mins
Test Coverage
import type { Meta, StoryObj } from "@storybook/react";
import {
  Tooltip,
  TooltipContent,
  TooltipProvider,
  TooltipTrigger,
} from "../Tooltip";
import Button from "../Button";
import CopyButton from "../CopyButton";
import { CopyIcon } from "lucide-react";
import Input from "../Input";
import { InputWithButton } from "./index";
import { useState } from "react";

const meta = {
  title: "Components/InputWithButton",
  component: InputWithButton,
} satisfies Meta<typeof InputWithButton>;

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

export const Default: Story = {
  render: ({ ...args }) => (
    <InputWithButton {...args}>
      <Input />
      <Button icon variant="ghost">
        <CopyIcon />
      </Button>
    </InputWithButton>
  ),
};

export const IconWithToolTip = () => {
  const [value, setValue] = useState("some very very looooooooooong value");
  return (
    <TooltipProvider>
      <InputWithButton className="w-60">
        <Input
          value={value}
          onChange={(e) => {
            setValue(e.target.value);
          }}
        />
        <Tooltip>
          <TooltipTrigger>
            <CopyButton
              value={value}
              buttonProps={{
                icon: true,
                variant: "ghost",
              }}
            />
          </TooltipTrigger>
          <TooltipContent>Copy Value</TooltipContent>
        </Tooltip>
      </InputWithButton>
    </TooltipProvider>
  );
};