+ {/* Page Header */}
+
+
+ Event Photo Search
+
+
+
+ Search Event Photos
+
+
+
+ Upload a photo to find matching photos from this event.
+
+
+
+ {/* Search Card */}
+
+ {/* Card Header */}
+
+
+
+
+
+
+
+ Find Photos
+
+
+
+ Select one photo to search for matching event photos.
+
+
+
+
+
+
+ {!queryFile ? (
+ /* Upload Area */
+
+ ) : (
+ /* Selected Photo */
+
+
+
+
+
+
+
+
+
+ {queryFile.name}
+
+
+
+ Query photo selected
+
+
+
+
+
+
+
+ {/* Search Button */}
+
+
+ )}
+
+ {error && (
+
+ {error}
+
+ )}
+
+
+ {/* Loading */}
+ {searching && (
+
+ Searching matching photos...
+
+ )}
+
+ {/* Results */}
+ {results.length > 0 && (
+
+
+
+
+ Matching Photos
+
+
+
+ {results.length} matching photo
+ {results.length !== 1 ? "s" : ""} found
+
+
+
+
+
+ {results.map((photo) => (
+
+ {photo.url && (
+

+ )}
+
+
+
+ {photo.originalFileName || "Event photo"}
+
+
+ {typeof photo.similarity === "number" && (
+
+ Match:{" "}
+ {(
+ Math.round(photo.similarity * 10) / 10
+ ).toFixed(1)}
+ %
+
+ )}
+
+
+ ))}
+
+
+ )}
+
+ {/* No Results */}
+ {!searching &&
+ queryFile &&
+ results.length === 0 &&
+ !error && (
+
+
+
+
+ No matching photos
+
+
+
+ Search for another photo from this event.
+
+
+ )}
+