Dropzone allows file uploads through drag-and-drop functionality into a designated area on a page, or by activating a button. At present, Dropzone does not offer image upload preview capabilities. The use of object URLs directly in an image component is not possible due to the extension and host operating on separate domains. Any element focused within the Dropzone component, including child elements such as the 'Add file' button, will initiate the file selector when the Enter or Spacebar key is pressed.
import {
DropZone,
reactExtension,
} from '@shopify/ui-extensions-react/customer-account';
import React from 'react';
export default reactExtension(
'customer-account.page.render',
() => <App />,
);
function App() {
return <DropZone accept="image/*" />;
}
import {DropZone, extension} from '@shopify/ui-extensions/customer-account';
export default extension('customer-account.page.render', (root, api) => {
renderApp(root, api);
});
async function renderApp(root, api) {
const dropZone = root.createComponent(DropZone, {
accept: 'image/*',
});
root.append(dropZone);
}
A string representing the types of files that are accepted by the dropzone. This string is a comma-separated list of unique file type specifiers which can be one of the following: - A file extension starting with a period (".") character (e.g. .jpg, .pdf, .doc) - A valid MIME type string with no extensions If left empty, the dropzone will accept all files.
A label that describes the purpose or contents of the item. When set, it will be announced to buyers using assistive technologies and will provide them with more context.
Whether the field can be modified.
Indicate an error to the user. The field will be given a specific stylistic treatment to communicate problems that have to be resolved immediately.
A unique identifier for the component.
Content to use as the field label.
Defines if the user can select or drop multiple files at once.
An identifier for the field that is unique within the nearest containing `Form` component.
Callback when rejected files are dropped. Files are rejected based on the `accept` prop.
Callback when files are dropped or selected.
Whether the field needs a value. This requirement adds semantic value to the field, but it will not cause an error to appear automatically. If you want to present an error when this field is empty, you can do so with the `error` prop.