Docs Components Advanced

FileDropzone

React example follows below.
ts
const fileDropzoneFixture = {
id: "file-dropzone",
hint: "PNG, PDF, CSV",
accept: ".png,.pdf,.csv",
multiple: true,
};
import { FileDropzone } from "@grassroot/ui-react/advanced";
export default function FileDropzoneDemo() {
const { id: _id, ...props } = fileDropzoneFixture;
return (
<div>
<FileDropzone {...props} />
</div>
);
}
ts
<script setup lang="ts">
const fileDropzoneFixture = {
id: "file-dropzone",
hint: "PNG, PDF, CSV",
accept: ".png,.pdf,.csv",
multiple: true,
};
import { FileDropzone } from "@grassroot/ui-vue";
</script>
<template>
<div>
<FileDropzone
:hint="fileDropzoneFixture.hint"
:accept="fileDropzoneFixture.accept"
:multiple="fileDropzoneFixture.multiple"
/>
</div>
</template>
ts
import { Component } from "@angular/core";
const fileDropzoneFixture = {
id: "file-dropzone",
hint: "PNG, PDF, CSV",
accept: ".png,.pdf,.csv",
multiple: true,
};
import { GrassrootFileDropzone } from "@grassroot/ui-angular";
@Component({
selector: "app-file-dropzone-demo",
standalone: true,
imports: [GrassrootFileDropzone],
template: `
<div>
<grassroot-file-dropzone
[hint]="fixture.hint"
[accept]="fixture.accept"
[multiple]="fixture.multiple"
/>
</div>
`,
})
export class FileDropzoneDemoComponent {
protected readonly fixture = fileDropzoneFixture;
}
export default FileDropzoneDemoComponent;
ts
<script lang="ts">
const fileDropzoneFixture = {
id: "file-dropzone",
hint: "PNG, PDF, CSV",
accept: ".png,.pdf,.csv",
multiple: true,
};
import { FileDropzone } from "@grassroot/ui-svelte";
</script>
<div>
<FileDropzone
hint={fileDropzoneFixture.hint}
accept={fileDropzoneFixture.accept}
multiple={fileDropzoneFixture.multiple}
/>
</div>
ts
/** @jsxImportSource solid-js */
const fileDropzoneFixture = {
id: "file-dropzone",
hint: "PNG, PDF, CSV",
accept: ".png,.pdf,.csv",
multiple: true,
};
import { FileDropzone } from "@grassroot/ui-solid";
export default function FileDropzoneDemo() {
return (
<div>
<FileDropzone
hint={fileDropzoneFixture.hint}
accept={fileDropzoneFixture.accept}
multiple={fileDropzoneFixture.multiple}
/>
</div>
);
}

Installation

API Reference

Import

import { FileDropzone } from "@grassroot/ui-react/advanced";

Props

Prop
Type
Default
Requirement
onFiles
((files: File[]) => void) | undefined
—
optional
onFilesChange
((files: File[]) => void) | undefined
—
optional
onFilesRejected
((rejections: readonly FileDropzoneRejection[]) => void) | undefined
—
optional
files
readonly File[] | undefined
—
optional
defaultFiles
readonly File[] | undefined
—
optional
multiple
boolean | undefined
—
optional
accept
string | undefined
—
optional
hint
string | undefined
—
optional
className
string | undefined
—
optional
disabled
boolean | undefined
—
optional
maxFileSize
number | undefined
—
optional
maxFiles
number | undefined
—
optional
Prop
onFiles
Type
((files: File[]) => void) | undefined
Default
—
Requirement
optional
Prop
onFilesChange
Type
((files: File[]) => void) | undefined
Default
—
Requirement
optional
Prop
onFilesRejected
Type
((rejections: readonly FileDropzoneRejection[]) => void) | undefined
Default
—
Requirement
optional
Prop
files
Type
readonly File[] | undefined
Default
—
Requirement
optional
Prop
defaultFiles
Type
readonly File[] | undefined
Default
—
Requirement
optional
Prop
multiple
Type
boolean | undefined
Default
—
Requirement
optional
Prop
accept
Type
string | undefined
Default
—
Requirement
optional
Prop
hint
Type
string | undefined
Default
—
Requirement
optional
Prop
className
Type
string | undefined
Default
—
Requirement
optional
Prop
disabled
Type
boolean | undefined
Default
—
Requirement
optional
Prop
maxFileSize
Type
number | undefined
Default
—
Requirement
optional
Prop
maxFiles
Type
number | undefined
Default
—
Requirement
optional

Events

EventPayload
onFiles((files: File[]) => void) | undefined
onFilesChange((files: File[]) => void) | undefined
onFilesRejected((rejections: readonly FileDropzoneRejection[]) => void) | undefined

Import

import { FileDropzone } from "@grassroot/ui-vue";

Props

Prop
Type
Default
Requirement
files
readonly File[] | undefined
—
optional
defaultFiles
readonly File[] | undefined
—
optional
multiple
boolean | undefined
true
optional
accept
string | undefined
—
optional
hint
string | undefined
"PNG, PDF, CSV"
optional
className
string | undefined
—
optional
disabled
boolean | undefined
false
optional
maxFileSize
number | undefined
—
optional
maxFiles
number | undefined
—
optional
Prop
files
Type
readonly File[] | undefined
Default
—
Requirement
optional
Prop
defaultFiles
Type
readonly File[] | undefined
Default
—
Requirement
optional
Prop
multiple
Type
boolean | undefined
Default
true
Requirement
optional
Prop
accept
Type
string | undefined
Default
—
Requirement
optional
Prop
hint
Type
string | undefined
Default
"PNG, PDF, CSV"
Requirement
optional
Prop
className
Type
string | undefined
Default
—
Requirement
optional
Prop
disabled
Type
boolean | undefined
Default
false
Requirement
optional
Prop
maxFileSize
Type
number | undefined
Default
—
Requirement
optional
Prop
maxFiles
Type
number | undefined
Default
—
Requirement
optional

Events

EventPayload
files[files: File[]]
update:files[files: File[]]
files-change[files: File[]]
files-rejected[rejections: readonly FileDropzoneRejection[]]

Import

import { Component } from "@angular/core";
import { GrassrootFileDropzone } from "@grassroot/ui-angular";

Props

Prop
Type
Default
Requirement
files
readonly File[]
—
optional
defaultFiles
readonly File[]
—
optional
multiple
boolean
true
optional
accept
string
—
optional
hint
string
"PNG, PDF, CSV"
optional
className
string
—
optional
disabled
boolean
false
optional
maxFileSize
number
—
optional
maxFiles
number
—
optional
Prop
files
Type
readonly File[]
Default
—
Requirement
optional
Prop
defaultFiles
Type
readonly File[]
Default
—
Requirement
optional
Prop
multiple
Type
boolean
Default
true
Requirement
optional
Prop
accept
Type
string
Default
—
Requirement
optional
Prop
hint
Type
string
Default
"PNG, PDF, CSV"
Requirement
optional
Prop
className
Type
string
Default
—
Requirement
optional
Prop
disabled
Type
boolean
Default
false
Requirement
optional
Prop
maxFileSize
Type
number
Default
—
Requirement
optional
Prop
maxFiles
Type
number
Default
—
Requirement
optional

Events

EventPayload
filesChangeFile[]
onFilesFile[]
filesRejectedreadonly FileDropzoneRejection[]

Import

import { FileDropzone } from "@grassroot/ui-svelte";

Props

Prop
Type
Default
Requirement
files
readonly File[]
—
optional
defaultFiles
readonly File[]
—
optional
onFiles
(files: File[]) => void
—
optional
onFilesChange
(files: readonly File[]) => void
—
optional
onFilesRejected
(rejections: readonly Rejection[]) => void
—
optional
maxFileSize
number
—
optional
maxFiles
number
—
optional
multiple
boolean
true
optional
accept
string
—
optional
hint
string
"PNG, PDF, CSV"
optional
className
string
—
optional
disabled
boolean
false
optional
Prop
files
Type
readonly File[]
Default
—
Requirement
optional
Prop
defaultFiles
Type
readonly File[]
Default
—
Requirement
optional
Prop
onFiles
Type
(files: File[]) => void
Default
—
Requirement
optional
Prop
onFilesChange
Type
(files: readonly File[]) => void
Default
—
Requirement
optional
Prop
onFilesRejected
Type
(rejections: readonly Rejection[]) => void
Default
—
Requirement
optional
Prop
maxFileSize
Type
number
Default
—
Requirement
optional
Prop
maxFiles
Type
number
Default
—
Requirement
optional
Prop
multiple
Type
boolean
Default
true
Requirement
optional
Prop
accept
Type
string
Default
—
Requirement
optional
Prop
hint
Type
string
Default
"PNG, PDF, CSV"
Requirement
optional
Prop
className
Type
string
Default
—
Requirement
optional
Prop
disabled
Type
boolean
Default
false
Requirement
optional

Events

EventPayload
onFiles(files: File[]) => void
onFilesChange(files: readonly File[]) => void
onFilesRejected(rejections: readonly Rejection[]) => void

Import

import { FileDropzone } from "@grassroot/ui-solid";

Props

Prop
Type
Default
Requirement
files
readonly File[]
—
optional
defaultFiles
readonly File[]
—
optional
onFilesChange
(files: readonly File[]) => void
—
optional
onFiles
(files: File[]) => void
—
optional
onFilesRejected
(rejections: readonly FileDropzoneRejection[]) => void
—
optional
maxFileSize
number
—
optional
maxFiles
number
—
optional
multiple
boolean
true
optional
accept
string
—
optional
hint
string
"PNG, PDF, CSV"
optional
className
string
—
optional
disabled
boolean
—
optional
Prop
files
Type
readonly File[]
Default
—
Requirement
optional
Prop
defaultFiles
Type
readonly File[]
Default
—
Requirement
optional
Prop
onFilesChange
Type
(files: readonly File[]) => void
Default
—
Requirement
optional
Prop
onFiles
Type
(files: File[]) => void
Default
—
Requirement
optional
Prop
onFilesRejected
Type
(rejections: readonly FileDropzoneRejection[]) => void
Default
—
Requirement
optional
Prop
maxFileSize
Type
number
Default
—
Requirement
optional
Prop
maxFiles
Type
number
Default
—
Requirement
optional
Prop
multiple
Type
boolean
Default
true
Requirement
optional
Prop
accept
Type
string
Default
—
Requirement
optional
Prop
hint
Type
string
Default
"PNG, PDF, CSV"
Requirement
optional
Prop
className
Type
string
Default
—
Requirement
optional
Prop
disabled
Type
boolean
Default
—
Requirement
optional

Events

EventPayload
onFilesChange(files: readonly File[]) => void
onFiles(files: File[]) => void
onFilesRejected(rejections: readonly FileDropzoneRejection[]) => void