Loading pending photos...
+Error loading data
+{error}
+ +No pending photos found.
+| + Photo + | ++ Uploaded By + | ++ File Info + | ++ Submitted At + | ++ Status + | ++ Decision + | ++ Rejection Reason + | +
|---|---|---|---|---|---|---|
|
+
+
+ {
+ // For full-size view, fetch as blob and open in new tab
+ try {
+ const blobUrl = imageUrls[photo.id] || await pendingPhotosApi.getPendingPhotoImageBlob(photo.id)
+ // Create a new window with the blob URL
+ const newWindow = window.open()
+ if (newWindow) {
+ newWindow.location.href = blobUrl
+ }
+ } catch (err) {
+ console.error('Failed to open full-size image:', err)
+ alert('Failed to load full-size image')
+ }
+ }}
+ title="Click to open full photo"
+ >
+ {imageUrls[photo.id] ? (
+
+
+ Loading...
+
+ )}
+ |
+
+
+ {photo.user_name || 'Unknown'}
+
+
+ {photo.user_email || '-'}
+
+ |
+
+
+ {photo.original_filename}
+
+
+ {formatFileSize(photo.file_size)} • {photo.mime_type}
+
+ |
+
+
+ {formatDate(photo.submitted_at)}
+
+ {photo.reviewed_at && (
+
+ Reviewed: {formatDate(photo.reviewed_at)}
+
+ )}
+ |
+ + + {photo.status} + + | +
+ {canMakeDecision ? (
+
+
+ ) : (
+
+ {isApproved ? 'Approved' : isRejected ? 'Rejected' : '-'}
+
+ )}
+
+
+
+
+ |
+ + {canMakeDecision && decisions[photo.id] === 'reject' ? ( + | +