Dropzone

Dropzoneは、ファイルをドラッグアンドドロップでアップロードするために使用されるコンポーネントです。

使い方

import { Dropzone } from "@yamada-ui/react"
<Dropzone.Root>
  <Dropzone.Title />
  <Dropzone.Description />
  <Dropzone.Accept>
    <Dropzone.Icon />
  </Dropzone.Accept>
  <Dropzone.Reject>
    <Dropzone.Icon />
  </Dropzone.Reject>
  <Dropzone.Idle>
    <Dropzone.Icon />
  </Dropzone.Idle>
</Dropzone.Root>

バリアントを変更する

サイズを変更する

複数選択を許容する

複数選択を許容する場合は、multipletrueに設定します。

拡張子を指定する

拡張子を指定する場合は、acceptに文字列の配列または、オブジェクトを設定します。

また、acceptを簡単に指定できるIMAGE_ACCEPT_TYPEPDF_ACCEPT_TYPEなどを提供しています。

ファイルサイズの最大値を指定する

ファイルサイズの最大値を指定する場合は、maxSizeに数値(バイト)を設定します。

アップロード可能な最大数を指定する

アップロード可能な最大数を指定する場合は、maxFilesに数値を設定します。

状態に応じた表示をする

ファイルを受け入れたか、拒否されたかの状態に応じて、表示を制御する場合は、DropzoneAccept, DropzoneReject, DropzoneIdleを使用します。

  • DropzoneAccept: ファイルが受け入れられたときに表示されるコンポーネントです。
  • DropzoneReject: ファイルが拒否されたときに表示されるコンポーネントです。
  • DropzoneIdle: アイドル状態のときに表示されるコンポーネントです。

ドロップされたイベントをハンドルする

ドロップされたイベントをハンドルする場合は、onDropを使用します。

受け入れられたファイルのみをハンドルする

受け入れられたファイルのみをハンドルする場合は、onDropAcceptedを使用します。

拒否されたファイルのみをハンドルする

拒否されたファイルのみをハンドルする場合は、onDropRejectedを使用します。

ボーダーの色を変更する

ボーダーの色を変更する場合は、focusBorderColorまたはerrorBorderColorに値を設定します。

無効にする

無効にする場合は、disabledtrueに設定します。

読み取り専用にする

読み取り専用にする場合は、readOnlytrueに設定します。

無効な入力にする

無効な入力にする場合は、invalidtrueに設定します。

File is required.

ローディングアニメーションを使う

ローディングアニメーションを使う場合は、loadingtrueにします。

制御する

Props

アクセシビリティ

Field.Rootを使用しない場合は、Dropzone.Rootaria-labelまたはaria-labelledbyを設定します。

<Dropzone.Root aria-label="Upload file">
  <Text>Drag file here or click to select file</Text>
</Dropzone.Root>
<VStack gap="sm">
  <Text as="h3" id="label">
    Upload file
  </Text>

  <Dropzone.Root aria-labelledby="label">
    <Text>Drag file here or click to select file</Text>
  </Dropzone.Root>
</VStack>

キーボード操作

キー説明状態
Space, Enterファイル選択ダイアログを開きます。-

ARIAロールと属性

コンポーネントロールと属性使い方
Dropzone.Rootrole="presentation"プレゼンテーションであることを示します。
aria-disableddisabledreadOnly、またはloadingが設定されている場合は"true"を設定します。
inputaria-labelledby関連したDropzone.Rootidを設定します。
aria-disableddisabledが設定されている場合は"true"を設定します。
aria-invalidinvalidが設定されている場合は"true"を設定します。
aria-readonlyreadOnlyが設定されている場合は"true"を設定します。
aria-requiredrequiredが設定されている場合は"true"を設定します。
aria-describedbyDropzone.RootField.Root内にあり、Field.RooterrorMessageまたはhelperMessage、もしくはField.ErrorMessageまたはField.HelperMessageが設定されている場合は、そのidを設定します。

類似のコンポーネント

FileInput

FileInputは、ユーザーがファイルを選択するために使用されるコンポーネントです。

FileButton

FileButtonは、ユーザーがファイルを選択するために使用されるボタンのコンポーネントです。

Textarea

Textareaは、複数行のテキスト入力を取得するために使用されるコンポーネントです。

Switch

Switchは、オンとオフの状態を切り替えるために使用されるコンポーネントです。

Slider

Sliderは、ユーザーが値の範囲から選択するために使用されるコンポーネントです。

SegmentedControl

SegmentedControlは、ユーザーが複数の選択肢の中から1つを選択するために使用されるコンポーネントです。

Radio

Radioは、ユーザーが複数の選択肢の中から1つの値を選択するために使用されるコンポーネントです。

Rating

Ratingは、ユーザーが評価を行うために使用させるコンポーネントです。

使用しているコンポーネント・フック