saleor-dashboard/src/components/FileUploadField/FileUploadField.stories.tsx
Dawid Tarasiuk 1e140853ec
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 11:53:28 +01:00

68 lines
1.7 KiB
TypeScript

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 />);