StreamerInfoSection.tsx 2.4 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475
  1. 'use client';
  2. import type { BroadcastInfo } from '@/types/broadcast';
  3. import styles from './styles/StreamerInfoSection.module.scss';
  4. interface StreamerInfoSectionProps {
  5. broadcast: BroadcastInfo;
  6. }
  7. export default function StreamerInfoSection({ broadcast }: StreamerInfoSectionProps) {
  8. return (
  9. <>
  10. {/* 제목 영역 */}
  11. <div className={styles.titleSection}>
  12. <h1 className={styles.streamTitle}>{broadcast.title}</h1>
  13. </div>
  14. {/* 스트리머 정보 + 액션 버튼 영역 */}
  15. <div className={styles.infoActionsContainer}>
  16. <div className={styles.streamerInfo}>
  17. <div className={styles.streamerAvatar}>
  18. <div className={styles.avatarPlaceholder}>
  19. {broadcast.channel.charAt(0).toUpperCase()}
  20. </div>
  21. </div>
  22. <div className={styles.streamerDetails}>
  23. <div className={styles.streamerName}>
  24. bj {broadcast.channel}
  25. </div>
  26. <div className={styles.viewerCount}>
  27. <span>👥 {broadcast.viewerCount.toLocaleString()}</span>
  28. </div>
  29. </div>
  30. </div>
  31. <div className={styles.videoActions}>
  32. <div className={styles.actionButtons}>
  33. <button className={styles.bookmarkBtn}>
  34. <svg
  35. width="20"
  36. height="20"
  37. fill="none"
  38. stroke="currentColor"
  39. viewBox="0 0 24 24"
  40. >
  41. <path
  42. strokeLinecap="round"
  43. strokeLinejoin="round"
  44. strokeWidth={2}
  45. d="M5 5a2 2 0 012-2h10a2 2 0 012 2v16l-7-3.5L5 21V5z"
  46. />
  47. </svg>
  48. </button>
  49. <button className={styles.shareBtn}>
  50. <svg
  51. width="20"
  52. height="20"
  53. fill="none"
  54. stroke="currentColor"
  55. viewBox="0 0 24 24"
  56. >
  57. <path
  58. strokeLinecap="round"
  59. strokeLinejoin="round"
  60. strokeWidth={2}
  61. d="M8.684 13.342C8.886 12.938 9 12.482 9 12c0-.482-.114-.938-.316-1.342m0 2.684a3 3 0 110-2.684m0 2.684l6.632 3.316m-6.632-6l6.632-3.316m0 0a3 3 0 105.367-2.684 3 3 0 00-5.367 2.684zm0 9.316a3 3 0 105.367 2.684 3 3 0 00-5.367-2.684z"
  62. />
  63. </svg>
  64. </button>
  65. </div>
  66. </div>
  67. </div>
  68. </>
  69. );
  70. }