Media Field
uifoundry/media-fieldUnverifiedBlock
PayloadCMS double upload field (supports light & dark image variants)
Install it
npx shadcn@latest add https://raw.githubusercontent.com/UIFoundry/uifoundry/master/media-field.jsonSource
1import type { Media, MediaField as MediaFieldProps } from "~/payload-types";2import Image from "next/image";3import { cn } from "@/registry/ui/utils";4import type { ComponentPropsWithoutRef } from "react";56export default function MediaField({7 media,8 className,9 ...imageProps10}: { media: MediaFieldProps } & ComponentPropsWithoutRef<"img">) {11 return (12 <div>13 {media.dark && (14 <Image15 className={cn(Boolean(media.light) && "hidden dark:block", className)}16 // @ts-expect-error mismatch image url types from payload17 src={(media.dark as Media).url!}18 alt={(media.dark as Media).alt}19 {...imageProps}20 />21 )}22 {media.light && (23 <Image24 className={cn(Boolean(media.dark) && "dark:hidden", className)}25 // @ts-expect-error mismatch image url types from payload26 src={(media.light as Media).url!}27 alt={(media.light as Media).alt}28 {...imageProps}29 />30 )}31 </div>32 );33}
What it pulls in
npm packages
Other registry items
Files it writes
More from uifoundry
All 54 items| Component | Registry | Kind | Access | Installs | Command |
|---|---|---|---|---|---|
| Color Fieldcolor-field | uifoundry | Blocks | Unverified | 4 deps · 2 files | |
| Coming Soon 1coming-soon-1 | uifoundry | Blocks | Unverified | 3 deps · 2 files | |
| CTA 1cta-1 | uifoundry | Blocks | Unverified | 3 deps · 2 files | |
| CTA 2cta-2 | uifoundry | Blocks | Unverified | 3 deps · 2 files | |
| CTA 3cta-3 | uifoundry | Blocks | Unverified | 3 deps · 2 files | |
| Custom Headercustom-header | uifoundry | Blocks | Unverified | 4 deps · 3 files | |
| Features 1features-1 | uifoundry | Blocks | Unverified | 3 deps · 2 files | |
| Features 2features-2 | uifoundry | Blocks | Unverified | 4 deps · 2 files |
