FileButton
FileButtonは、ユーザーがファイルを選択するために使用されるボタンのコンポーネントです。
<Wrap gap="md">
<FileButton>Upload</FileButton>
<FileButton
as={IconButton}
aria-label="Upload file"
icon={<PlusIcon fontSize="2xl" />}
/>
</Wrap>
使い方
import { FileButton } from "@yamada-ui/react"
import { FileButton } from "@/components/ui"
import { FileButton } from "@workspaces/ui"
<FileButton />
バリアントを変更する
<Wrap gap="md">
<For each={["solid", "subtle", "surface", "outline", "ghost"]}>
{(variant, index) => (
<FileButton variant={variant} key={index}>
{toTitleCase(variant)}
</FileButton>
)}
</For>
</Wrap>
サイズを変更する
<Wrap gap="md">
<For each={["xs", "sm", "md", "lg", "xl"]}>
{(size, index) => (
<FileButton size={size} key={index} minW="24">
{toTitleCase(size)}
</FileButton>
)}
</For>
</Wrap>
カラースキームを変更する
<Wrap gap="md">
<For each={["success", "warning"]}>
{(colorScheme, index) => (
<FileButton colorScheme={colorScheme} key={index}>
{toTitleCase(colorScheme)}
</FileButton>
)}
</For>
</Wrap>
複数選択を許容する
複数選択を許容する場合は、multipleをtrueに設定します。
<FileButton multiple>Upload</FileButton>
拡張子を指定する
拡張子を指定する場合は、acceptに文字列(タイプ)を設定します。
<FileButton accept="image/png,image/jpeg">Upload</FileButton>
無効にする
無効にする場合は、disabledをtrueに設定します。
<VStack>
<FileButton disabled alignSelf="flex-start">
Upload
</FileButton>
<Field.Root
disabled
helperMessage="Please select a file to upload."
label="Upload file"
>
<FileButton justifySelf="flex-start">Upload</FileButton>
</Field.Root>
</VStack>
読み取り専用にする
読み取り専用にする場合は、readOnlyをtrueに設定します。
<VStack>
<FileButton readOnly alignSelf="flex-start">
Upload
</FileButton>
<Field.Root
readOnly
helperMessage="Please select a file to upload."
label="Upload file"
>
<FileButton justifySelf="flex-start">Upload</FileButton>
</Field.Root>
</VStack>
無効な入力にする
無効な入力にする場合は、invalidをtrueに設定します。
<VStack>
<FileButton invalid alignSelf="flex-start">
Upload
</FileButton>
<Field.Root
invalid
helperMessage="Please select a file to upload."
label="Upload file"
>
<FileButton justifySelf="flex-start">Upload</FileButton>
</Field.Root>
</VStack>
ボーダーの色を変更する場合は、errorBorderColorに値を設定します。
<FileButton invalid errorBorderColor="warning">
Upload
</FileButton>
リセットする
値をリセットする場合は、resetRefにrefを設定します。設定されたrefにコールバック関数が付与されるので、それを実行します。
files: 0
const [files, onChange] = useState<File[] | undefined>(undefined)
const resetRef = useRef<() => void>(null)
const onReset = () => {
onChange(undefined)
resetRef.current?.()
}
return (
<VStack>
<Text>files: {files?.length ?? 0}</Text>
<HStack>
<FileButton multiple resetRef={resetRef} onChange={onChange}>
Upload
</FileButton>
<Button onClick={onReset} variant="subtle">
Reset
</Button>
</HStack>
</VStack>
)
"use client"をファイルの上部に追加する必要があります。Props
アクセシビリティ
現在、v2の移行に伴い、このセクションは更新中です。