import React, { useEffect, useState } from "react"; import { Tag } from "primereact/tag"; import Image from "next/image"; import { useImageProxy } from "@/hooks/useImageProxy"; import { useNostr } from "@/hooks/useNostr"; import { getSatAmountFromInvoice } from "@/utils/lightning"; import { parseEvent } from "@/utils/nostr"; import { useLocalStorageWithEffect } from "@/hooks/useLocalStorage"; import ZapDisplay from "@/components/zaps/ZapDisplay"; import dynamic from "next/dynamic"; const BitcoinConnectPayButton = dynamic( () => import('@getalby/bitcoin-connect-react').then((mod) => mod.PayButton), { ssr: false, } ); const MDDisplay = dynamic( () => import("@uiw/react-markdown-preview"), { ssr: false, } ); const CourseLesson = ({ lesson, course }) => { const [bitcoinConnect, setBitcoinConnect] = useState(false); const [zaps, setZaps] = useState([]); const [zapAmount, setZapAmount] = useState(0); const { fetchZapsForEvent } = useNostr(); const { returnImageProxy } = useImageProxy(); useEffect(() => { if (typeof window === 'undefined') return; const bitcoinConnectConfig = window.localStorage.getItem('bc:config'); if (bitcoinConnectConfig) { setBitcoinConnect(true); } }, []); const handleZapEvent = async () => { return; } useEffect(() => { if (!zaps || zaps.length === 0) return; let total = 0; zaps.forEach((zap) => { const bolt11Tag = zap.tags.find(tag => tag[0] === "bolt11"); const invoice = bolt11Tag ? bolt11Tag[1] : null; if (invoice) { const amount = getSatAmountFromInvoice(invoice); total += amount; } }); setZapAmount(total); }, [zaps]); useEffect(() => { const fetchZaps = async () => { if (lesson) { const zaps = await fetchZapsForEvent(lesson); setZaps(zaps); } } fetchZaps(); }, [fetchZapsForEvent, lesson]); return (
{lesson && lesson.topics && lesson.topics.length > 0 && ( lesson.topics.map((topic, index) => ( )) ) }

{lesson?.title}

{lesson?.summary}

avatar thumbnail

Created by{' '} {lesson.author?.username}

{lesson && (
resource thumbnail {bitcoinConnect ? (
) : (
)}
)}
{ lesson?.content && }
) } export default CourseLesson;