Merged
Conversation
- Add new example app for Ethereum developers - Demonstrates file upload to Shelby using RainbowKit wallet connection - Includes FileUploader component with drag-and-drop UI - Uses @shelby-protocol/ethereum-kit for Ethereum wallet integration - Updated pnpm-workspace.yaml to include apps/ethereum/*
- Replace next lint with biome check - Remove unused eslint dependencies - Add aria-hidden to decorative SVGs - Use semantic section element for drop zone - Fix string concatenation to template literal
b00e29f to
f1d280a
Compare
There was a problem hiding this comment.
Cursor Bugbot has reviewed your changes and found 1 potential issue.
Bugbot Autofix is OFF. To automatically fix reported issues with Cloud Agents, enable Autofix in the Cursor dashboard.
| if (droppedFile) { | ||
| setFile(droppedFile); | ||
| } | ||
| }, []); |
There was a problem hiding this comment.
Drag-drop during upload causes dropped file to be lost
Low Severity
The handleDrop callback doesn't check isPending before calling setFile(), while the file input correctly uses disabled={isPending}. If a user drops a file during an active upload, the new file is set to state. When the original upload completes, clearFile() clears the state, causing the newly dropped file to be silently lost.
Additional Locations (1)
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Summary
Adds a new example application demonstrating how Ethereum developers can build a file upload dApp on Shelby Protocol.
Changes
Added
apps/ethereum/file-upload- A Next.js app with:Updated
pnpm-workspace.yamlto includeapps/ethereum/*Key Dependencies
@shelby-protocol/sdk- Core TypeScript SDK@shelby-protocol/ethereum-kit- Ethereum wallet integration@shelby-protocol/react- React hooks for blob uploads@rainbow-me/rainbowkit- Wallet connection UIwagmi- Ethereum hooksHow to Test
Note
Medium Risk
Adds a new Next.js app with wallet integration, WebAssembly-enabled build config, and a large dependency/lockfile surface area; risk is mainly build/runtime compatibility and supply-chain footprint rather than core logic changes.
Overview
Adds a new
apps/ethereum/file-uploadNext.js example app for Ethereum wallet connection (RainbowKit/wagmi) and uploading files to Shelby storage, including docs and env setup (README.md,.env.example).Introduces app-level tooling/config (
next.config.tsenablingasyncWebAssembly, Tailwind/PostCSS config, shadcncomponents.json,.gitignore) and a newpackage.jsonwith its ownpnpm-lock.yaml. Updates the monorepo workspace (pnpm-workspace.yaml) to includeapps/ethereum/*.Written by Cursor Bugbot for commit fac18e5. This will update automatically on new commits. Configure here.