diff --git a/packages/react/src/components/button.tsx b/packages/react/src/components/button.tsx index 6bb2227934..e10824ff52 100644 --- a/packages/react/src/components/button.tsx +++ b/packages/react/src/components/button.tsx @@ -99,7 +99,13 @@ export function UploadButton< > & UploadThingInternalProps; - const { mode = "auto", appendOnPaste = false } = $props.config ?? {}; + const { + mode = "auto", + appendOnPaste = false, + headless = false, + unstyled = false, + } = $props.config ?? {}; + const applyDefaultStyling = !headless && !unstyled; const useUploadThing = INTERNAL_uploadthingHookGen({ url: resolveMaybeUrlArg($props.url), @@ -202,6 +208,7 @@ export function UploadButton< styleFieldArg, ); if (customContent) return customContent; + if (headless) return null; if (state === "readying") { return "Loading..."; @@ -231,7 +238,8 @@ export function UploadButton< } }} className={twMerge( - "h-[1.25rem] cursor-pointer rounded border-none bg-transparent text-gray-500 transition-colors hover:bg-slate-200 hover:text-gray-600", + applyDefaultStyling && + "h-[1.25rem] cursor-pointer rounded border-none bg-transparent text-gray-500 transition-colors hover:bg-slate-200 hover:text-gray-600", styleFieldToClassName($props.appearance?.clearBtn, styleFieldArg), )} style={styleFieldToCssObject($props.appearance?.clearBtn, styleFieldArg)} @@ -246,7 +254,7 @@ export function UploadButton< const renderAllowedContent = () => (