saleor-dashboard/src/components/FileUploadField/FileUploadField.stories.tsx

69 lines
1.7 KiB
TypeScript
Raw Normal View History

File attributes (#884) * Update changelog with file attributes * Add file type attribute * Update attribute properties form * Update translation messages with file upload * Create generic attributes component (#832) * Create generic Attributes component * Add story for Attributes component * Remove deprecated attribute value type field from queries * Update test snapshots of attributes component * Add file upload field to atributes (#888) * Add story for Attributes component * Update test snapshots of attributes component * Create file upload field in attributes * Update upload file input data-test * Update storybook test snapshots of attributes * Add dedicated input props to file field * Run Cypress using custom API * Add missing error handling in file upload field Co-authored-by: Krzysztof Wolski <krzysztof.k.wolski@gmail.com> * Add file attribute upload to page attributes (#894) * Support upload file attribute for pages * Update after review * Add file attribute upload to variant attributes (#892) * Support upload file attribute for variants * Update after review * Refactor attribute values errors merging * Update after review * Add file attribute upload to product attributes (#826) * Support upload file attribute for products * Update after review * Refactor attribute values errors merging * Refactor product attribute value delete handling * Fix deleting file in file upload field * Fix delete attribute values errors handling * Add link to file upload field (#898) * Update file attributes updates (#899) * Update file attributes updates * Refactor file uploads handling * Move attributes utils to attributes directory * Fix product channel listing updates * Clear file field value if file is not passed as prop * Delete attribute values before update (#908) * Delete file attributes after file update * Triggr CI * Show skeleton in file upload field during loading Co-authored-by: Krzysztof Wolski <krzysztof.k.wolski@gmail.com>
2020-12-16 10:53:28 +00:00
import CardDecorator from "@saleor/storybook/CardDecorator";
import Decorator from "@saleor/storybook/Decorator";
import { storiesOf } from "@storybook/react";
import React, { useState } from "react";
import FileUploadField, { FileUploadFieldProps } from "./FileUploadField";
import * as fixtures from "./fixtures";
const props: FileUploadFieldProps = {
disabled: false,
file: { label: undefined, value: undefined },
inputProps: {
name: "country",
placeholder: "Select country"
},
loading: false,
onFileDelete: () => undefined,
onFileUpload: () => undefined
};
const InteractiveStory: React.FC = () => {
const [file, setFile] = useState<File>();
return (
<FileUploadField
disabled={false}
loading={false}
file={{
label: file?.name,
value: file?.name
}}
onFileUpload={file => setFile(file)}
onFileDelete={() => setFile(null)}
/>
);
};
storiesOf("Generics / File upload field", module)
.addDecorator(CardDecorator)
.addDecorator(Decorator)
.add("default", () => <FileUploadField {...props} />)
.add("with ready to upload file", () => (
<FileUploadField
{...props}
file={{
label: "some_file.png",
value: "some_file.png"
}}
/>
))
.add("with uploaded file", () => (
<FileUploadField
{...props}
file={{
file: fixtures.UPLOADED_FILE,
label: "some_file_with_link.png",
value: "some_file_with_link.png"
}}
/>
))
.add("with error", () => (
<FileUploadField
{...props}
error={true}
helperText="Something went wrong"
/>
))
.add("interactive", () => <InteractiveStory />);