ultra-image-uploader 2.0.1 → 2.0.3
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/README.md
CHANGED
|
@@ -2,13 +2,13 @@
|
|
|
2
2
|
|
|
3
3
|
<div align="center">
|
|
4
4
|
|
|
5
|
-
A modern,
|
|
5
|
+
A modern, fancy React image upload component with responsive grid layout, drag-and-drop reordering, and beautiful animations.
|
|
6
6
|
|
|
7
7
|
[](https://www.npmjs.com/package/ultra-image-uploader)
|
|
8
8
|

|
|
9
9
|
[](https://opensource.org/licenses/MIT)
|
|
10
10
|
|
|
11
|
-
**Modern UI** • **
|
|
11
|
+
**Modern UI** • **Dark/Light Themes** • **Grid Layout** • **Drag Reorder**
|
|
12
12
|
|
|
13
13
|
</div>
|
|
14
14
|
|
|
@@ -16,20 +16,21 @@ A modern, beautiful React image upload component with progress tracking, drag-an
|
|
|
16
16
|
|
|
17
17
|
## Features
|
|
18
18
|
|
|
19
|
-
- **Modern UI** -
|
|
20
|
-
- **
|
|
21
|
-
- **Drag & Drop** -
|
|
22
|
-
- **
|
|
23
|
-
- **
|
|
24
|
-
- **
|
|
25
|
-
- **
|
|
26
|
-
- **
|
|
27
|
-
- **
|
|
19
|
+
- **Modern UI** - Beautiful card-based design with shadows and rounded corners
|
|
20
|
+
- **Responsive Grid** - Adaptive grid layout (2-6 columns) for all screen sizes
|
|
21
|
+
- **Drag & Drop** - Upload files by dragging or clicking
|
|
22
|
+
- **Live Previews** - Instant image thumbnails with metadata
|
|
23
|
+
- **Drag Reorder** - Rearrange images by dragging
|
|
24
|
+
- **Progress Tracking** - Real-time upload progress with animations
|
|
25
|
+
- **Theme Support** - Built-in light/dark theme toggle
|
|
26
|
+
- **Smooth Animations** - Hover effects, fade transitions, scale animations
|
|
27
|
+
- **Keyboard Accessible** - Full keyboard navigation support
|
|
28
|
+
- **File Validation** - Size and type validation
|
|
29
|
+
- **Multiple Providers** - ImgBB & Cloudinary support
|
|
30
|
+
- **Auto Import** - Works with VS Code, WebStorm, and all editors
|
|
28
31
|
|
|
29
32
|
## Installation
|
|
30
33
|
|
|
31
|
-
Install with any package manager:
|
|
32
|
-
|
|
33
34
|
```bash
|
|
34
35
|
# npm
|
|
35
36
|
npm install ultra-image-uploader
|
|
@@ -58,74 +59,101 @@ function App() {
|
|
|
58
59
|
images={images}
|
|
59
60
|
setImages={setImages}
|
|
60
61
|
multiple
|
|
62
|
+
gridCols={4}
|
|
61
63
|
/>
|
|
62
64
|
);
|
|
63
65
|
}
|
|
64
66
|
```
|
|
65
67
|
|
|
66
|
-
##
|
|
67
|
-
|
|
68
|
-
### Basic File Upload
|
|
68
|
+
## Props
|
|
69
69
|
|
|
70
|
-
|
|
71
|
-
|
|
70
|
+
| Prop | Type | Default | Description |
|
|
71
|
+
|------|------|---------|-------------|
|
|
72
|
+
| `images` | `File[]` | **Required** | Selected image files |
|
|
73
|
+
| `setImages` | `(files: File[]) => void` | **Required** | Update images state |
|
|
74
|
+
| `multiple` | `boolean` | `true` | Allow multiple files |
|
|
75
|
+
| `maxSize` | `number` | `52428800` | Max file size (50MB) |
|
|
76
|
+
| `allowedTypes` | `string[]` | Image types | Allowed MIME types |
|
|
77
|
+
| `maxImages` | `number` | `20` | Maximum images allowed |
|
|
78
|
+
| `theme` | `'light' \| 'dark'` | `undefined` | Theme (uses internal if not set) |
|
|
79
|
+
| `onThemeChange` | `(theme) => void` | `undefined` | Theme change callback |
|
|
80
|
+
| `showThemeToggle` | `boolean` | `true` | Show theme toggle button |
|
|
81
|
+
| `showImageCount` | `boolean` | `true` | Show image count header |
|
|
82
|
+
| `enableReorder` | `boolean` | `true` | Enable drag reordering |
|
|
83
|
+
| `gridCols` | `number` | `4` | Grid columns (2-6) |
|
|
84
|
+
| `cardClassName` | `string` | `''` | Custom card class |
|
|
85
|
+
| `containerClassName` | `string` | `'max-w-5xl mx-auto'` | Container styling |
|
|
86
|
+
| `uploadText` | `string` | `'Click or drag...'` | Upload area text |
|
|
87
|
+
| `dragText` | `string` | `'Drop images here'` | Drag over text |
|
|
88
|
+
| `autoUpload` | `boolean` | `false` | Auto-upload on selection |
|
|
89
|
+
| `uploadConfig` | `{ provider, config }` | `undefined` | Upload configuration |
|
|
90
|
+
| `onUploadComplete` | `(urls: string[]) => void` | `undefined` | Success callback |
|
|
91
|
+
| `onUploadError` | `(error: Error) => void` | `undefined` | Error callback |
|
|
72
92
|
|
|
73
|
-
|
|
74
|
-
const [images, setImages] = useState<File[]>([]);
|
|
93
|
+
## Examples
|
|
75
94
|
|
|
76
|
-
|
|
77
|
-
console.log('Uploaded URLs:', urls);
|
|
78
|
-
};
|
|
95
|
+
### Basic Grid Layout
|
|
79
96
|
|
|
80
|
-
|
|
81
|
-
|
|
82
|
-
|
|
83
|
-
|
|
84
|
-
|
|
85
|
-
|
|
86
|
-
|
|
87
|
-
uploadConfig={{
|
|
88
|
-
provider: 'imgbb',
|
|
89
|
-
config: { apiKey: 'your-api-key' }
|
|
90
|
-
}}
|
|
91
|
-
/>
|
|
92
|
-
);
|
|
93
|
-
}
|
|
97
|
+
```tsx
|
|
98
|
+
<ImageUploader
|
|
99
|
+
images={images}
|
|
100
|
+
setImages={setImages}
|
|
101
|
+
multiple
|
|
102
|
+
gridCols={4}
|
|
103
|
+
/>
|
|
94
104
|
```
|
|
95
105
|
|
|
96
|
-
###
|
|
106
|
+
### Dark Theme
|
|
97
107
|
|
|
98
108
|
```tsx
|
|
99
|
-
|
|
100
|
-
|
|
101
|
-
function ImgBBUpload() {
|
|
109
|
+
function DarkExample() {
|
|
110
|
+
const [theme, setTheme] = useState<'light' | 'dark'>('dark');
|
|
102
111
|
const [images, setImages] = useState<File[]>([]);
|
|
103
112
|
|
|
104
113
|
return (
|
|
105
|
-
<div>
|
|
114
|
+
<div className={theme === 'dark' ? 'dark' : ''}>
|
|
106
115
|
<ImageUploader
|
|
107
116
|
images={images}
|
|
108
117
|
setImages={setImages}
|
|
118
|
+
theme={theme}
|
|
119
|
+
onThemeChange={setTheme}
|
|
109
120
|
multiple
|
|
110
|
-
|
|
111
|
-
provider: 'imgbb',
|
|
112
|
-
config: { apiKey: process.env.IMGBB_API_KEY }
|
|
113
|
-
}}
|
|
114
|
-
onUploadComplete={(urls) => {
|
|
115
|
-
console.log('Images uploaded to ImgBB:', urls);
|
|
116
|
-
}}
|
|
121
|
+
gridCols={3}
|
|
117
122
|
/>
|
|
118
123
|
</div>
|
|
119
124
|
);
|
|
120
125
|
}
|
|
121
126
|
```
|
|
122
127
|
|
|
123
|
-
###
|
|
128
|
+
### Custom Grid & Styling
|
|
124
129
|
|
|
125
130
|
```tsx
|
|
126
|
-
|
|
131
|
+
<ImageUploader
|
|
132
|
+
images={images}
|
|
133
|
+
setImages={setImages}
|
|
134
|
+
gridCols={3}
|
|
135
|
+
maxImages={10}
|
|
136
|
+
maxSize={10 * 1024 * 1024}
|
|
137
|
+
containerClassName="max-w-4xl mx-auto"
|
|
138
|
+
cardClassName="border-2"
|
|
139
|
+
/>
|
|
140
|
+
```
|
|
127
141
|
|
|
128
|
-
|
|
142
|
+
### Without Reordering
|
|
143
|
+
|
|
144
|
+
```tsx
|
|
145
|
+
<ImageUploader
|
|
146
|
+
images={images}
|
|
147
|
+
setImages={setImages}
|
|
148
|
+
enableReorder={false}
|
|
149
|
+
gridCols={5}
|
|
150
|
+
/>
|
|
151
|
+
```
|
|
152
|
+
|
|
153
|
+
### With Upload (ImgBB)
|
|
154
|
+
|
|
155
|
+
```tsx
|
|
156
|
+
function UploadExample() {
|
|
129
157
|
const [images, setImages] = useState<File[]>([]);
|
|
130
158
|
|
|
131
159
|
return (
|
|
@@ -133,65 +161,73 @@ function CloudinaryUpload() {
|
|
|
133
161
|
images={images}
|
|
134
162
|
setImages={setImages}
|
|
135
163
|
multiple
|
|
164
|
+
gridCols={4}
|
|
136
165
|
uploadConfig={{
|
|
137
|
-
provider: '
|
|
138
|
-
config: {
|
|
139
|
-
cloudName: 'your-cloud-name',
|
|
140
|
-
uploadPreset: 'your-upload-preset'
|
|
141
|
-
}
|
|
166
|
+
provider: 'imgbb',
|
|
167
|
+
config: { apiKey: process.env.IMGBB_API_KEY }
|
|
142
168
|
}}
|
|
143
169
|
onUploadComplete={(urls) => {
|
|
144
|
-
console.log('
|
|
170
|
+
console.log('Uploaded:', urls);
|
|
145
171
|
}}
|
|
146
172
|
/>
|
|
147
173
|
);
|
|
148
174
|
}
|
|
149
175
|
```
|
|
150
176
|
|
|
151
|
-
###
|
|
177
|
+
### Responsive Grid
|
|
178
|
+
|
|
179
|
+
```tsx
|
|
180
|
+
// 2 columns on mobile, 4 on desktop
|
|
181
|
+
<div className="grid grid-cols-1 md:grid-cols-2 lg:grid-cols-4 gap-4">
|
|
182
|
+
<ImageUploader images={images} setImages={setImages} gridCols={1} />
|
|
183
|
+
</div>
|
|
184
|
+
```
|
|
185
|
+
|
|
186
|
+
## Theme Support
|
|
187
|
+
|
|
188
|
+
The component includes built-in light and dark themes:
|
|
152
189
|
|
|
153
190
|
```tsx
|
|
191
|
+
// Controlled theme
|
|
154
192
|
<ImageUploader
|
|
155
193
|
images={images}
|
|
156
194
|
setImages={setImages}
|
|
157
|
-
|
|
158
|
-
|
|
159
|
-
uploadConfig={{
|
|
160
|
-
provider: 'imgbb',
|
|
161
|
-
config: { apiKey: 'your-api-key' }
|
|
162
|
-
}}
|
|
195
|
+
theme="dark"
|
|
196
|
+
showThemeToggle={false}
|
|
163
197
|
/>
|
|
164
|
-
```
|
|
165
|
-
|
|
166
|
-
### Single File Upload
|
|
167
198
|
|
|
168
|
-
|
|
199
|
+
// Uncontrolled theme (with toggle)
|
|
169
200
|
<ImageUploader
|
|
170
|
-
images={
|
|
171
|
-
setImages={
|
|
172
|
-
|
|
173
|
-
maxSize={2 * 1024 * 1024} // 2MB
|
|
201
|
+
images={images}
|
|
202
|
+
setImages={setImages}
|
|
203
|
+
showThemeToggle={true}
|
|
174
204
|
/>
|
|
175
205
|
```
|
|
176
206
|
|
|
177
|
-
##
|
|
207
|
+
## Animations
|
|
178
208
|
|
|
179
|
-
|
|
180
|
-
|
|
181
|
-
|
|
182
|
-
|
|
183
|
-
|
|
184
|
-
|
|
185
|
-
| `allowedTypes` | `string[]` | Image types | Allowed MIME types |
|
|
186
|
-
| `className` | `string` | `''` | Extra CSS classes |
|
|
187
|
-
| `autoUpload` | `boolean` | `false` | Auto-upload on selection |
|
|
188
|
-
| `uploadConfig` | `{ provider, config }` | `undefined` | Upload configuration |
|
|
189
|
-
| `onUploadComplete` | `(urls: string[]) => void` | `undefined` | Upload success callback |
|
|
190
|
-
| `onUploadError` | `(error: Error) => void` | `undefined` | Upload error callback |
|
|
209
|
+
The component includes smooth animations:
|
|
210
|
+
- Scale effect on drag over
|
|
211
|
+
- Fade-in/out for previews
|
|
212
|
+
- Hover scale on image cards
|
|
213
|
+
- Smooth progress bar transitions
|
|
214
|
+
- Button hover effects
|
|
191
215
|
|
|
192
|
-
##
|
|
216
|
+
## Accessibility
|
|
217
|
+
|
|
218
|
+
- Keyboard accessible (Enter/Space to upload)
|
|
219
|
+
- Focus indicators on drag area
|
|
220
|
+
- ARIA-compatible markup
|
|
221
|
+
- Screen reader friendly
|
|
222
|
+
|
|
223
|
+
## Responsive Design
|
|
193
224
|
|
|
194
|
-
|
|
225
|
+
The grid layout adapts to screen sizes:
|
|
226
|
+
- Default: `max-w-5xl mx-auto` container
|
|
227
|
+
- Configurable grid columns (2-6)
|
|
228
|
+
- Works on mobile, tablet, and desktop
|
|
229
|
+
|
|
230
|
+
## Upload Functions
|
|
195
231
|
|
|
196
232
|
```tsx
|
|
197
233
|
import {
|
|
@@ -201,137 +237,66 @@ import {
|
|
|
201
237
|
uploadImagesToCloudinary
|
|
202
238
|
} from "ultra-image-uploader";
|
|
203
239
|
|
|
204
|
-
// Upload
|
|
205
|
-
const result = await uploadImage(file, 'imgbb', { apiKey
|
|
240
|
+
// Upload with progress
|
|
241
|
+
const result = await uploadImage(file, 'imgbb', { apiKey }, {
|
|
242
|
+
onProgress: (p) => console.log(p.percentage)
|
|
243
|
+
});
|
|
206
244
|
|
|
207
|
-
//
|
|
245
|
+
// Multiple uploads
|
|
208
246
|
const results = await uploadImages(files, 'cloudinary', {
|
|
209
247
|
cloudName: 'your-cloud'
|
|
210
248
|
});
|
|
211
|
-
|
|
212
|
-
// Convenience functions
|
|
213
|
-
const { urls } = await uploadImagesToImageBB(images, apiKey);
|
|
214
|
-
const uploads = await uploadImagesToCloudinary(images, config);
|
|
215
249
|
```
|
|
216
250
|
|
|
217
251
|
## API Configuration
|
|
218
252
|
|
|
219
253
|
### ImgBB
|
|
220
|
-
|
|
221
|
-
|
|
222
|
-
2. Copy your API key
|
|
223
|
-
3. Use in the component:
|
|
224
|
-
|
|
225
|
-
```tsx
|
|
226
|
-
uploadConfig={{
|
|
227
|
-
provider: 'imgbb',
|
|
228
|
-
config: { apiKey: 'your-api-key' }
|
|
229
|
-
}}
|
|
230
|
-
```
|
|
254
|
+
1. Get API key from [imgbb.com/settings/api](https://imgbb.com/settings/api)
|
|
255
|
+
2. Use `{ provider: 'imgbb', config: { apiKey } }`
|
|
231
256
|
|
|
232
257
|
### Cloudinary
|
|
233
|
-
|
|
234
258
|
1. Sign up at [cloudinary.com](https://cloudinary.com)
|
|
235
|
-
2. Get
|
|
236
|
-
3.
|
|
237
|
-
4. Use in the component:
|
|
238
|
-
|
|
239
|
-
```tsx
|
|
240
|
-
uploadConfig={{
|
|
241
|
-
provider: 'cloudinary',
|
|
242
|
-
config: {
|
|
243
|
-
cloudName: 'your-cloud-name',
|
|
244
|
-
uploadPreset: 'your-upload-preset'
|
|
245
|
-
}
|
|
246
|
-
}}
|
|
247
|
-
```
|
|
259
|
+
2. Get cloud name and create upload preset
|
|
260
|
+
3. Use `{ provider: 'cloudinary', config: { cloudName, uploadPreset } }`
|
|
248
261
|
|
|
249
|
-
##
|
|
262
|
+
## Customization
|
|
250
263
|
|
|
251
|
-
|
|
264
|
+
### Card Styling
|
|
252
265
|
|
|
253
266
|
```tsx
|
|
254
|
-
|
|
255
|
-
|
|
256
|
-
|
|
257
|
-
|
|
258
|
-
|
|
259
|
-
UploadOptions
|
|
260
|
-
} from "ultra-image-uploader";
|
|
267
|
+
<ImageUploader
|
|
268
|
+
images={images}
|
|
269
|
+
setImages={setImages}
|
|
270
|
+
cardClassName="border-2 border-purple-500"
|
|
271
|
+
/>
|
|
261
272
|
```
|
|
262
273
|
|
|
263
|
-
|
|
264
|
-
|
|
265
|
-
This package supports auto-import in all major editors:
|
|
266
|
-
|
|
267
|
-
- **VS Code** - Auto-suggestions work out of the box
|
|
268
|
-
- **WebStorm** - Full IntelliSense support
|
|
269
|
-
- **Neovim** - Works with LSP and completion plugins
|
|
270
|
-
- **Sublime Text** - Works with LSP packages
|
|
271
|
-
- **All TypeScript editors** - Full type checking and suggestions
|
|
272
|
-
|
|
273
|
-
## Styling
|
|
274
|
-
|
|
275
|
-
The component uses Tailwind CSS classes. You can add custom styling:
|
|
274
|
+
### Container Size
|
|
276
275
|
|
|
277
276
|
```tsx
|
|
278
277
|
<ImageUploader
|
|
279
278
|
images={images}
|
|
280
279
|
setImages={setImages}
|
|
281
|
-
|
|
280
|
+
containerClassName="max-w-7xl mx-auto"
|
|
282
281
|
/>
|
|
283
282
|
```
|
|
284
283
|
|
|
285
|
-
###
|
|
286
|
-
|
|
287
|
-
For complete customization, you can wrap and override styles:
|
|
284
|
+
### Grid Columns
|
|
288
285
|
|
|
289
286
|
```tsx
|
|
290
|
-
|
|
291
|
-
|
|
292
|
-
images={images}
|
|
293
|
-
setImages={setImages}
|
|
294
|
-
className="your-custom-class"
|
|
295
|
-
/>
|
|
296
|
-
</div>
|
|
297
|
-
```
|
|
298
|
-
|
|
299
|
-
## Troubleshooting
|
|
300
|
-
|
|
301
|
-
### Auto imports not working
|
|
302
|
-
|
|
303
|
-
**VS Code:**
|
|
304
|
-
1. Ensure TypeScript is enabled in your project
|
|
305
|
-
2. Restart the TypeScript server: `Cmd/Ctrl + Shift + P` → "TypeScript: Restart TS Server"
|
|
306
|
-
3. Check that `node_modules/ultra-image-uploader` exists
|
|
307
|
-
|
|
308
|
-
**WebStorm:**
|
|
309
|
-
1. Invalidate caches: `File` → `Invalidate Caches and Restart`
|
|
310
|
-
2. Ensure TypeScript plugin is enabled
|
|
311
|
-
|
|
312
|
-
### Uploads failing
|
|
287
|
+
// 2 columns
|
|
288
|
+
<ImageUploader gridCols={2} />
|
|
313
289
|
|
|
314
|
-
|
|
315
|
-
|
|
316
|
-
3. **File size** - Check if file exceeds provider limits
|
|
317
|
-
4. **Network** - Check browser console for network errors
|
|
318
|
-
|
|
319
|
-
### TypeScript errors
|
|
320
|
-
|
|
321
|
-
```bash
|
|
322
|
-
# Reinstall dependencies
|
|
323
|
-
rm -rf node_modules package-lock.json
|
|
324
|
-
npm install
|
|
325
|
-
|
|
326
|
-
# Restart TypeScript server in your editor
|
|
290
|
+
// 6 columns
|
|
291
|
+
<ImageUploader gridCols={6} />
|
|
327
292
|
```
|
|
328
293
|
|
|
329
|
-
|
|
294
|
+
## TypeScript
|
|
330
295
|
|
|
331
|
-
|
|
332
|
-
|
|
333
|
-
|
|
334
|
-
|
|
296
|
+
Full TypeScript support:
|
|
297
|
+
|
|
298
|
+
```tsx
|
|
299
|
+
import type { ImageUploaderProps } from "ultra-image-uploader";
|
|
335
300
|
```
|
|
336
301
|
|
|
337
302
|
## Browser Support
|
|
@@ -339,12 +304,21 @@ npm run build
|
|
|
339
304
|
- Chrome/Edge (latest)
|
|
340
305
|
- Firefox (latest)
|
|
341
306
|
- Safari (latest)
|
|
342
|
-
- Mobile browsers
|
|
307
|
+
- Mobile browsers
|
|
308
|
+
|
|
309
|
+
## Troubleshooting
|
|
343
310
|
|
|
344
|
-
|
|
311
|
+
### Auto imports not working
|
|
312
|
+
- Restart TypeScript server in your editor
|
|
313
|
+
- Ensure `node_modules` exists
|
|
345
314
|
|
|
346
|
-
|
|
347
|
-
-
|
|
315
|
+
### Theme not applying
|
|
316
|
+
- Wrap parent div with `dark` class for dark mode
|
|
317
|
+
- Check Tailwind CSS dark mode config
|
|
318
|
+
|
|
319
|
+
### Grid not responsive
|
|
320
|
+
- Adjust `gridCols` prop for different breakpoints
|
|
321
|
+
- Use wrapper with responsive classes
|
|
348
322
|
|
|
349
323
|
## License
|
|
350
324
|
|
|
@@ -354,16 +328,7 @@ MIT © Digontha Das
|
|
|
354
328
|
|
|
355
329
|
- [GitHub](https://github.com/digontha/ultra-image-uploader)
|
|
356
330
|
- [NPM](https://www.npmjs.com/package/ultra-image-uploader)
|
|
357
|
-
- [
|
|
358
|
-
|
|
359
|
-
## Changelog
|
|
360
|
-
|
|
361
|
-
### v2.0.0
|
|
362
|
-
- 🎨 Modern UI redesign with progress bars
|
|
363
|
-
- ✅ Auto import support for all editors
|
|
364
|
-
- 📦 Simplified package structure
|
|
365
|
-
- 🚀 Improved drag-and-drop experience
|
|
366
|
-
- 🎯 Better TypeScript support
|
|
331
|
+
- [Issues](https://github.com/digontha/ultra-image-uploader/issues)
|
|
367
332
|
|
|
368
333
|
---
|
|
369
334
|
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"ImageUploader.d.ts","sourceRoot":"","sources":["../../src/components/ImageUploader.tsx"],"names":[],"mappings":"AAIA,OAAO,KAAK,EAAE,cAAc,EAAE,cAAc,EAAE,MAAM,UAAU,CAAC;AAI/D,MAAM,WAAW,kBAAkB;IACjC,MAAM,EAAE,IAAI,EAAE,CAAC;IACf,SAAS,EAAE,CAAC,MAAM,EAAE,IAAI,EAAE,KAAK,IAAI,CAAC;IACpC,QAAQ,CAAC,EAAE,OAAO,CAAC;IACnB,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,YAAY,CAAC,EAAE,MAAM,EAAE,CAAC;IACxB,
|
|
1
|
+
{"version":3,"file":"ImageUploader.d.ts","sourceRoot":"","sources":["../../src/components/ImageUploader.tsx"],"names":[],"mappings":"AAIA,OAAO,KAAK,EAAE,cAAc,EAAE,cAAc,EAAE,MAAM,UAAU,CAAC;AAI/D,MAAM,WAAW,kBAAkB;IACjC,MAAM,EAAE,IAAI,EAAE,CAAC;IACf,SAAS,EAAE,CAAC,MAAM,EAAE,IAAI,EAAE,KAAK,IAAI,CAAC;IACpC,QAAQ,CAAC,EAAE,OAAO,CAAC;IACnB,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,YAAY,CAAC,EAAE,MAAM,EAAE,CAAC;IACxB,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,gBAAgB,CAAC,EAAE,CAAC,IAAI,EAAE,MAAM,EAAE,KAAK,IAAI,CAAC;IAC5C,aAAa,CAAC,EAAE,CAAC,KAAK,EAAE,KAAK,KAAK,IAAI,CAAC;IACvC,UAAU,CAAC,EAAE,OAAO,CAAC;IACrB,YAAY,CAAC,EAAE;QACb,QAAQ,EAAE,cAAc,CAAC;QACzB,MAAM,EAAE,cAAc,CAAC;KACxB,CAAC;CACH;AAQD,wBAAgB,aAAa,CAAC,EAC5B,MAAM,EACN,SAAS,EACT,QAAe,EACf,OAA0B,EAC1B,YAAkF,EAClF,SAAc,EACd,gBAAgB,EAChB,aAAa,EACb,UAAkB,EAClB,YAAY,GACb,EAAE,kBAAkB,2CA8SpB"}
|
|
@@ -147,14 +147,14 @@ export function ImageUploader({ images, setImages, multiple = true, maxSize = 50
|
|
|
147
147
|
return (_jsxs("div", { className: `image-uploader ${className}`, children: [_jsxs("div", { className: "relative border-2 border-dashed border-gray-300 rounded-lg p-12 transition-colors duration-200", style: {
|
|
148
148
|
borderColor: isDragging ? '#1E88E5' : undefined,
|
|
149
149
|
backgroundColor: isDragging ? '#F5F5F5' : 'white',
|
|
150
|
-
}, onClick: () => fileInputRef.current?.click(), onDragEnter: handleDragEnter, onDragLeave: handleDragLeave, onDragOver: handleDragOver, onDrop: handleDrop, children: [_jsx("input", { ref: fileInputRef, type: "file", accept: allowedTypes.join(','), multiple: multiple, onChange: handleChange, className: "absolute inset-0 opacity-0 cursor-pointer" }), _jsxs("div", { className: "flex flex-col items-center justify-center", children: [_jsxs("div", { className: "relative mb-4", children: [_jsx("div", { className: "w-16 h-16 rounded-full border-2 border-gray-300 flex items-center justify-center bg-white", children: _jsx(FileText, { size: 32, className: "text-gray-400" }) }), _jsx("div", { className: "absolute -bottom-1 -right-1 w-8 h-8 bg-gray-800 rounded-full flex items-center justify-center", children: _jsx(Upload, { size: 16, className: "text-white" }) })] }), _jsxs("p", { className: "text-base text-gray-700 mb-2", children: [_jsx("span", { className: "underline decoration-1 underline-offset-2 cursor-pointer hover:text-gray-900", children: "Click to upload" }), ' ', "or drag and drop"] }), _jsxs("p", { className: "text-sm text-gray-500", children: ["Maximum file size ", formatFileSize(maxSize)] })] })] }), images.length > 0 && (_jsx("div", { className: "mt-6
|
|
150
|
+
}, onClick: () => fileInputRef.current?.click(), onDragEnter: handleDragEnter, onDragLeave: handleDragLeave, onDragOver: handleDragOver, onDrop: handleDrop, children: [_jsx("input", { ref: fileInputRef, type: "file", accept: allowedTypes.join(','), multiple: multiple, onChange: handleChange, className: "absolute inset-0 opacity-0 cursor-pointer" }), _jsxs("div", { className: "flex flex-col items-center justify-center", children: [_jsxs("div", { className: "relative mb-4", children: [_jsx("div", { className: "w-16 h-16 rounded-full border-2 border-gray-300 flex items-center justify-center bg-white", children: _jsx(FileText, { size: 32, className: "text-gray-400" }) }), _jsx("div", { className: "absolute -bottom-1 -right-1 w-8 h-8 bg-gray-800 rounded-full flex items-center justify-center", children: _jsx(Upload, { size: 16, className: "text-white" }) })] }), _jsxs("p", { className: "text-base text-gray-700 mb-2", children: [_jsx("span", { className: "underline decoration-1 underline-offset-2 cursor-pointer hover:text-gray-900", children: "Click to upload" }), ' ', "or drag and drop"] }), _jsxs("p", { className: "text-sm text-gray-500", children: ["Maximum file size ", formatFileSize(maxSize)] })] })] }), images.length > 0 && (_jsx("div", { className: "mt-6 grid grid-cols-2 md:grid-cols-3 lg:grid-cols-4 gap-4", children: images.map((file) => {
|
|
151
151
|
const state = getFileState(file);
|
|
152
152
|
const isUploading = state.status === 'uploading';
|
|
153
153
|
const isDone = state.status === 'done';
|
|
154
|
-
return (
|
|
155
|
-
|
|
156
|
-
|
|
157
|
-
|
|
154
|
+
return (_jsxs("div", { className: "relative group", children: [_jsxs("div", { className: "relative aspect-square rounded-lg overflow-hidden border border-gray-300", children: [_jsx("img", { src: URL.createObjectURL(file), alt: file.name, className: "w-full h-full object-cover transition-transform duration-300 group-hover:scale-105" }), _jsx("button", { onClick: (e) => {
|
|
155
|
+
e.stopPropagation();
|
|
156
|
+
removeFile(file);
|
|
157
|
+
}, className: "absolute top-2 right-2 w-8 h-8 flex items-center justify-center bg-red-500 hover:bg-red-600 rounded-full text-white opacity-0 group-hover:opacity-100 transition-all shadow-lg hover:scale-110", children: _jsx(X, { size: 16 }) }), isUploading && (_jsx("div", { className: "absolute inset-0 bg-black/60 flex items-center justify-center", children: _jsxs("div", { className: "text-center", children: [_jsx(Loader2, { size: 32, className: "animate-spin text-white mx-auto mb-2" }), _jsxs("p", { className: "text-white font-semibold text-sm", children: [state.progress, "%"] })] }) })), isDone && (_jsx("div", { className: "absolute inset-0 bg-black/40 flex items-center justify-center", children: _jsx("div", { className: "w-16 h-16 bg-green-500 rounded-full flex items-center justify-center", children: _jsx("svg", { className: "w-8 h-8 text-white", fill: "none", stroke: "currentColor", viewBox: "0 0 24 24", children: _jsx("path", { strokeLinecap: "round", strokeLinejoin: "round", strokeWidth: 3, d: "M5 13l4 4L19 7" }) }) }) }))] }), _jsxs("div", { className: "mt-2", children: [_jsx("p", { className: "text-sm font-medium text-gray-900 truncate", children: file.name }), _jsx("p", { className: "text-xs text-gray-500", children: formatFileSize(file.size) })] })] }, `${file.name}-${file.size}`));
|
|
158
158
|
}) })), images.length > 0 && !autoUpload && (_jsxs("div", { className: "mt-6 flex items-center justify-end gap-3", children: [_jsx("button", { onClick: () => setImages([]), className: "px-4 py-2 text-sm font-medium text-gray-700 bg-white border border-gray-300 rounded-lg hover:bg-gray-50 transition-colors", children: "Cancel" }), _jsx("button", { onClick: handleAutoUpload, disabled: uploading, className: "px-4 py-2 text-sm font-medium text-white bg-gray-900 rounded-lg hover:bg-gray-800 disabled:opacity-50 disabled:cursor-not-allowed transition-colors flex items-center gap-2", children: uploading ? (_jsxs(_Fragment, { children: [_jsx(Loader2, { size: 16, className: "animate-spin" }), "Uploading..."] })) : ('Attach files') })] }))] }));
|
|
159
159
|
}
|
|
160
160
|
//# sourceMappingURL=ImageUploader.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"ImageUploader.js","sourceRoot":"","sources":["../../src/components/ImageUploader.tsx"],"names":[],"mappings":"AAAA,YAAY,CAAC;;AAEb,OAAc,EAAE,QAAQ,EAAE,MAAM,EAAE,WAAW,EAAE,SAAS,EAAE,MAAM,OAAO,CAAC;AACxE,OAAO,EAAE,MAAM,EAAE,CAAC,EAAE,QAAQ,EAAE,OAAO,EAAE,MAAM,cAAc,CAAC;AAE5D,OAAO,EAAE,WAAW,EAAE,MAAM,cAAc,CAAC;AAC3C,OAAO,EAAE,WAAW,EAAE,cAAc,EAAE,MAAM,qBAAqB,CAAC;
|
|
1
|
+
{"version":3,"file":"ImageUploader.js","sourceRoot":"","sources":["../../src/components/ImageUploader.tsx"],"names":[],"mappings":"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"}
|
package/package.json
CHANGED