import { UploadIcon, XIcon } from "@phosphor-icons/react"; import type { Meta, StoryObj } from "@storybook/react-vite"; import { useState } from "react"; import { Button, Card, Fileupload, Flex, Grid } from "../react"; import styles from "../styles.module.css"; const meta = { title: "Designsystem/Fileupload", parameters: { layout: "padded", }, } satisfies Meta; export default meta; type Story = StoryObj; export const Default: Story = { render: () => ( ), }; export const React: Story = { render: () => ( Last opp filer Dra over eller last opp fil Støttede formater: PDF, JPEG, SVG
Filstørrelse under 10 MB
), }; export const Invalid: Story = { render: () => ( Last opp filer Dra over eller last opp fil Støttede formater: PDF, JPEG, SVG
Filstørrelse under 10 MB
), }; export const WithPreviewImage: Story = { render: function Render() { const [images, setImages] = useState<{ title: string; src: string }[]>([]); const handleFile = (event: React.ChangeEvent) => { const file = event.target.files?.[0]; const reader = new FileReader(); reader.onload = () => setImages((prev) => [ ...prev, { title: file?.name || "", src: reader.result as string, }, ]); if (file) reader.readAsDataURL(file); event.target.value = ""; // Reset file input value to allow re-uploading the same file }; const handleRemove = (index: number) => setImages((prev) => prev.filter((_, i) => i !== index)); return ( Velg et bilde for å se: Last opp filer Dra over eller last opp fil Støttede formater: PDF, JPEG, SVG
Filstørrelse under 10 MB
{images.map((file, index) => ( {file.title} ))}
); }, }; export const WithExternalLabel: Story = { render: () => ( ), };