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