Full scope, feature list, and downloadable source ZIP for the Media Library module.
Media Library Source (ZIP)
39 files · ~113 KB · page, 20 library components, 9 libs, 7 backend functions, 2 entities
The Media Library is the central hub of AuctionSnap — a searchable, sortable, drag-and-drop grid of every cataloged image. Images are grouped by lot (or category/subcategory), each tagged with a lot number, auction, AI-derived category/year/brand, estimates, and condition. From here you upload, organize, AI-process, edit, watermark, convert, compose, and export items — and launch the Camera Capture flow.
Be the single working surface for an auction house's image inventory: bring images in (upload, scan, import), organize them into lots, enrich them with AI categorization + pricing, prepare them (crop, compose, watermark, convert), and get them out (download, CSV export, push to auction platforms).
/ (home) — the main Media Library grid. Also reused (via props) as the Not Sold Library (notSoldOnly) and per-auction filtered views (auctionFilter)./Trash — soft-deleted items (recoverable)./CameraCapture — launched from the Media Library header.src/pages/PublicMediaLibrary.jsx — the library grid, toolbar, bulk actions, filters, AI processing, export.src/components/library/)FileGridItem.jsx — one image tile (thumbnail, select, rename, lot badge, download/delete).GroupedFileGrid.jsx — groups items by lot/category/subcategory with drag-and-drop reorder + cross-group move.GroupingControls.jsx — toggle group-by (lot/category/subcategory) and sort mode.ImageDetailModal.jsx — full detail editor (title, description, estimates, dimensions, consigner, comps, etc.).CompPanel.jsx — eBay/sold-comps research panel for an item.CopyImageButton.jsx — copy an image URL or watermarked blob to clipboard.LotFieldsPanel.jsx — lot-level field editor.BgRemoveModal.jsx — AI background removal (single or bulk).CardCropReviewModal.jsx — AI card-box detection with manual corner correction + crop.ImageComposerModal.jsx — multi-image canvas composer (drag, rotate, scale layers).OptimizeAuctionFlowModal.jsx — optimal auction lineup builder.LotBundleBuilderModal.jsx — build a multi-item lot bundle.CombineImagesModal.jsx — combine multiple images into one.AutoAssignLotsModal.jsx — auto-assign lot numbers to selected images.ImportLotImagesModal.jsx — import images by lot ID from external sources.NotSoldImportModal.jsx — import not-sold items from a spreadsheet.CenterImagesModal.jsx — rotate & square (center) selected images.AssignSectionModal.jsx — assign selected items to a category section.SkipLotAssignModal.jsx — skip-lot assignment helper.AiProcessingOverlay.jsx — full-screen AI processing progress overlay.src/components/DuplicateDetector.jsx — visual duplicate finder.src/lib/MoveQueue.js — background move queue (move items between auctions).src/lib/imageName.js — readable image filename generator.src/lib/libraryGroup.js — category ranking + sport/brand grouping helpers.src/lib/romanSort.js — roman-numeral + year-aware sorting.src/lib/watermark.js — canvas watermark burner.src/lib/dngConverter.js — DNG/RAW detection.src/lib/batchOperations.js — aiProcessAllBatch pipeline.src/lib/backgroundProcessor.js — generic background job runner.base44/functions/aiProcessAllServer/entry.ts — server-side batch categorize + price (analyze/price modes).base44/functions/fixOrientationAll/entry.ts — bulk face-forward orientation fix.base44/functions/cleanupDuplicates/entry.ts — find + remove exact duplicate images.base44/functions/priceAllMissing/entry.ts — background price all items missing estimates.base44/functions/fixFrontNameFromBack/entry.ts — fix front image names from back-image text.base44/functions/uploadImage/entry.ts — upload a base64 image to storage.base44/functions/onMediaLibraryCreate/entry.ts — entity-create trigger (kicks off AI processing).base44/entities/MediaLibrary.jsonc — the stored image records.base44/entities/Auction.jsonc — auction records (for the auction filter/move dropdown).item_key + view_angle).sort_order) and move an item between lots/categories.webkitdirectory input for bulk folder ingestion.aiProcessAllServer (analyze mode).aiProcessAllServer (price mode).Upload / Camera Capture / Import
→ MediaLibrary.create (lot_number, auction_name, source)
→ onMediaLibraryCreate trigger → aiProcessAllServer (categorize + price)
→ Media Library grid (grouped, sorted, searchable)
→ Bulk actions (download, watermark, convert, compose, move, delete)
→ Export (CSV / ZIP) or push to auction
not_sold=true) are hidden from the main library and shown only in the Not Sold Library.is_deleted) is used instead of hard delete — items go to Trash and are recoverable.