From 9ac236575c3091e7394f02f726161a26208ca17f Mon Sep 17 00:00:00 2001 From: cottongin Date: Mon, 24 Aug 2026 01:46:45 -0400 Subject: [PATCH] feat: add sticker wall section to SessionDetail view Co-authored-by: Cursor --- frontend/src/pages/SessionDetail.jsx | 33 ++++++++++++++++++++++++++++ 1 file changed, 33 insertions(+) diff --git a/frontend/src/pages/SessionDetail.jsx b/frontend/src/pages/SessionDetail.jsx index 1124722..72be9d6 100644 --- a/frontend/src/pages/SessionDetail.jsx +++ b/frontend/src/pages/SessionDetail.jsx @@ -6,6 +6,9 @@ import { useToast } from '../components/Toast'; import api from '../api/axios'; import { formatLocalDateTime, formatLocalTime, isSunday } from '../utils/dateUtils'; import PopularityBadge from '../components/PopularityBadge'; +import { useStickerWall } from '../hooks/useStickerWall'; +import StickerWallThumbnail from '../components/StickerWallThumbnail'; +import StickerWallModal from '../components/StickerWallModal'; function SessionDetail() { const { id } = useParams(); @@ -23,6 +26,8 @@ function SessionDetail() { const [showDeleteSessionConfirm, setShowDeleteSessionConfirm] = useState(false); const [showChatImport, setShowChatImport] = useState(false); const [closingSession, setClosingSession] = useState(false); + const [showStickerWallModal, setShowStickerWallModal] = useState(false); + const { imageUrl: stickerWallUrl, loading: stickerWallLoading, error: stickerWallError } = useStickerWall(id); const loadSession = useCallback(async () => { try { @@ -285,6 +290,34 @@ function SessionDetail() { /> +
+

Sticker Wall

+ {stickerWallLoading ? ( +
+ + + + + Loading sticker wall... +
+ ) : stickerWallError || !stickerWallUrl ? ( +

No sticker wall for this session

+ ) : ( + setShowStickerWallModal(true)} + /> + )} +
+ + setShowStickerWallModal(false)} + imageUrl={stickerWallUrl} + /> + {showChatImport && (