-
Notifications
You must be signed in to change notification settings - Fork 278
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. Weβll occasionally send you account related emails.
Already on GitHub? Sign in to your account
fix: add multiple prop to Dropzone #1486
Conversation
@okosohor is attempting to deploy a commit to the Themesberg Team on Vercel. A member of the Team first needs to authorize it. |
WalkthroughThe pull request introduces an optional Changes
Possibly related PRs
Thank you for using CodeRabbit. We offer it for free to the OSS community and would appreciate your support in helping us grow. If you find it useful, would you consider giving us a shout-out on your favorite social media? πͺ§ TipsChatThere are 3 ways to chat with CodeRabbit:
Note: Be mindful of the bot's finite context window. It's strongly recommended to break down tasks such as reading entire modules into smaller chunks. For a focused discussion, use review comments to chat about specific files and their changes, instead of using the PR comments. CodeRabbit Commands (Invoked using PR comments)
Other keywords and placeholders
CodeRabbit Configuration File (
|
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Actionable comments posted: 0
π§Ή Outside diff range and nitpick comments (3)
src/lib/forms/Dropzone.svelte (3)
17-17
: Add JSDoc documentation for the new propThe
multiple
prop should be documented in the component's JSDoc comments at the bottom of the file.Add this line to the JSDoc section:
<!-- @component [Go to docs](https://flowbite-svelte.com/) ## Props @prop export let value: $$Props['value'] = ''; @prop export let files: $$Props['files'] = undefined; @prop export let defaultClass: $$Props['defaultClass'] = 'flex flex-col justify-center items-center w-full h-64 bg-gray-50 rounded-lg border-2 border-gray-300 border-dashed cursor-pointer dark:hover:bg-bray-800 dark:bg-gray-700 hover:bg-gray-100 dark:border-gray-600 dark:hover:border-gray-500 dark:hover:bg-gray-600'; +@prop export let multiple: $$Props['multiple'] = false; - When true, allows selection of multiple files -->
38-38
: Enhance accessibility for screen readersWhile the implementation is correct, consider adding an aria-label to improve accessibility.
- <input {...$$restProps} {multiple} bind:value bind:files bind:this={input} on:change on:click type="file" /> + <input {...$$restProps} {multiple} bind:value bind:files bind:this={input} on:change on:click type="file" + aria-label="File upload" />
Tests needed for new Dropzone component functionality
The implementation looks good, but there are no existing tests for the Dropzone component. Since this adds new functionality for multiple file uploads, tests should be added to verify:
- Single file upload behavior
- Multiple file upload behavior
- Event handling for both scenarios
Locations needing attention:
tests/forms.spec.ts
: Add new test cases for the Dropzone component alongside other form component testsπ Analysis chain
Line range hint
9-38
: Implementation matches PR objectivesThe changes successfully add multiple file upload support while maintaining backward compatibility. The implementation is clean and follows Svelte best practices.
Consider adding examples to the PR description showing how to use the new
multiple
prop, as this would help other developers understand the usage.Let's verify if there are any existing tests that need updating:
π Scripts executed
The following scripts were executed for the analysis:
Script:
#!/bin/bash # Search for existing Dropzone tests rg -l "Dropzone" --type=testLength of output: 57
Script:
#!/bin/bash # Search for test files using common test file patterns fd "\.(test|spec)\.(js|ts|svelte)$" # Also check for tests directory fd -t d "tests?"Length of output: 316
Script:
#!/bin/bash # Check forms.spec.ts for Dropzone tests cat tests/forms.spec.ts # Search for any Dropzone-related test files or content rg -i "dropzone" tests/Length of output: 2219
π Review details
Configuration used: CodeRabbit UI
Review profile: CHILL
π Files selected for processing (1)
src/lib/forms/Dropzone.svelte
(2 hunks)
π Additional comments (1)
src/lib/forms/Dropzone.svelte (1)
9-9
: LGTM: Well-typed interface extension
The multiple
property is correctly added as an optional boolean, maintaining backward compatibility.
Closes #
π Description
Add multiple prop to Dropzone because now we have possibility to add more than 1 file only with drag files
Status
β Checks
βΉ Additional Information
Summary by CodeRabbit