Server routes and the same components.
npx shadcn@latest add @uploadcn/file-upload @uploadcn/upload-route-tanstackServer route
import { createFileRoute } from "@tanstack/react-router"
import { createUploadRoute, s3Storage } from "@uploadcn/server"
const upload = createUploadRoute({
storage: s3Storage({
bucket: process.env.S3_BUCKET!,
region: process.env.S3_REGION!,
accessKeyId: process.env.S3_ACCESS_KEY_ID!,
secretAccessKey: process.env.S3_SECRET_ACCESS_KEY!,
}),
})
export const Route = createFileRoute("/api/upload")({
server: {
handlers: {
POST: ({ request }) => upload.POST(request),
},
},
})Components
Components are identical to Next.js. Nothing in UploadCN depends on a framework:
import { createFileRoute } from "@tanstack/react-router"
import { FileUpload } from "@/components/file-upload"
export const Route = createFileRoute("/")({
component: () => <FileUpload maxFiles={5} />,
})