Skip to content

Conversation

@luisawatkins
Copy link

@luisawatkins luisawatkins commented Dec 15, 2025

Extract the full upload tool UI from Storacha Console into the shared UI package and migrate Console to consume the new shared component. The new FullUploader component in @storacha/ui-react is built on the existing headless uploader primitives and preserves current Console behavior.

What’s Included

  • Added FullUploader to @storacha/ui-react and exported it:
    • packages/ui/packages/react/src/FullUploader.tsx
    • packages/ui/packages/react/src/index.ts
  • Switched Console uploader to use the shared FullUploader:
    • packages/console/src/components/Uploader.tsx
  • Preserved behavior for:
    • Single file, directory, and CAR uploads
    • Status-driven UI: progress with shards, success (CID link), and error handling
  • Added optional kmsConfig support for space.access.type === 'private'.

API Notes

FullUploader props:

  • onUploadComplete?: (props: { file?: File; files?: File[]; dataCID?: AnyLink }) => void
  • space?: any
  • gatewayURL?: (cid: string) => string
  • kmsConfig?: { keyManagerServiceURL: string; keyManagerServiceDID: string; location?: string; keyring?: string; allowInsecureHttp?: boolean }

Defaults:

  • Gateway link: https://${cid}.ipfs.w3s.link
  • Directory wrapping enabled for single files.

Migration

  • Console now imports FullUploader from @storacha/ui-react and passes existing onUploadComplete and space.
  • Upload page route remains unchanged and continues to function:
    • packages/console/src/app/space/[did]/upload/page.tsx

Closes #595

@luisawatkins luisawatkins requested a review from travis as a code owner December 15, 2025 15:59
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

Extract Full Upload Tool from Console into UI Package

1 participant