diff --git a/packages/web/app/[board_name]/[layout_id]/[size_id]/[set_ids]/[angle]/play/[climb_uuid]/play-view-client.tsx b/packages/web/app/[board_name]/[layout_id]/[size_id]/[set_ids]/[angle]/play/[climb_uuid]/play-view-client.tsx index d25417af..c7ff70ed 100644 --- a/packages/web/app/[board_name]/[layout_id]/[size_id]/[set_ids]/[angle]/play/[climb_uuid]/play-view-client.tsx +++ b/packages/web/app/[board_name]/[layout_id]/[size_id]/[set_ids]/[angle]/play/[climb_uuid]/play-view-client.tsx @@ -1,8 +1,8 @@ 'use client'; import React, { useEffect, useState, useCallback } from 'react'; -import { Button, Empty } from 'antd'; -import { LeftOutlined, RightOutlined } from '@ant-design/icons'; +import { Button, Empty, Badge } from 'antd'; +import { LeftOutlined, RightOutlined, InstagramOutlined } from '@ant-design/icons'; import { useSwipeable } from 'react-swipeable'; import { useRouter, useSearchParams } from 'next/navigation'; import { track } from '@vercel/analytics'; @@ -12,6 +12,8 @@ import BoardRenderer from '@/app/components/board-renderer/board-renderer'; import ClimbTitle from '@/app/components/climb-card/climb-title'; import { constructClimbListWithSlugs, constructPlayUrlWithSlugs } from '@/app/lib/url-utils'; import { themeTokens } from '@/app/theme/theme-config'; +import InstagramDrawer from '@/app/components/instagram-drawer/instagram-drawer'; +import { useBetaCount } from '@/app/components/instagram-drawer/use-beta-count'; import styles from './play-view.module.css'; type PlayViewClientProps = { @@ -37,10 +39,16 @@ const PlayViewClient: React.FC = ({ boardDetails, initialCl const [swipeOffset, setSwipeOffset] = useState(0); const [showSwipeHint, setShowSwipeHint] = useState(true); + const [isInstagramDrawerOpen, setIsInstagramDrawerOpen] = useState(false); // Use queue's current climb if available, otherwise use initial climb from SSR const displayClimb = currentClimb || initialClimb; + const betaCount = useBetaCount({ + climbUuid: displayClimb?.uuid, + boardName: boardDetails.board_name, + }); + // Hide swipe hint after first interaction useEffect(() => { const timer = setTimeout(() => { @@ -177,9 +185,29 @@ const PlayViewClient: React.FC = ({ boardDetails, initialCl className={styles.climbTitleContainer} style={{ padding: `${themeTokens.spacing[1]}px ${themeTokens.spacing[3]}px`, + display: 'flex', + alignItems: 'center', + justifyContent: 'space-between', + gap: themeTokens.spacing[2], }} > - +
+ +
+ +