import React, { useRef, useState, useEffect } from "react"; import { Button } from "primereact/button"; import { DataTable } from "primereact/datatable"; import { Menu } from "primereact/menu"; import { Column } from "primereact/column"; import { Message } from "primereact/message"; import { useImageProxy } from "@/hooks/useImageProxy"; import { useSession } from 'next-auth/react'; import { ProgressSpinner } from "primereact/progressspinner"; import PurchasedListItem from "@/components/profile/PurchasedListItem"; import { useNDKContext } from "@/context/NDKContext"; import { formatDateTime } from "@/utils/time"; import UserContent from "@/components/profile/UserContent"; import Image from "next/image"; import BitcoinConnectButton from "@/components/bitcoinConnect/BitcoinConnect"; import SubscribeModal from "@/components/profile/SubscribeModal"; const Profile = () => { const [user, setUser] = useState(null); const [subscribeModalVisible, setSubscribeModalVisible] = useState(false); // Add this state const [subscribed, setSubscribed] = useState(false); const [subscribedUntil, setSubscribedUntil] = useState(null); const { data: session, status } = useSession(); const { returnImageProxy } = useImageProxy(); const { ndk } = useNDKContext(); const menu = useRef(null); useEffect(() => { if (session && session.user) { setUser(session.user); if (session.user.role) { setSubscribed(session.user.role.subscribed); const subscribedAt = new Date(session.user.role.subscribedAt); // The user is subscribed until the date in subscribedAt + 30 days const subscribedUntil = new Date(subscribedAt.getTime() + 30 * 24 * 60 * 60 * 1000); setSubscribedUntil(subscribedUntil); } } }, [session]); const menuItems = [ { label: "Edit", icon: "pi pi-pencil", command: () => { // Add your edit functionality here }, }, { label: "Delete", icon: "pi pi-trash", command: () => { // Add your delete functionality here }, }, ]; const header = (
Purchases
); const openSubscribeModal = () => { setSubscribeModalVisible(true); }; return ( user && (
user's avatar menu.current.toggle(e)} >

{user.username || "Anon"}

{user.pubkey}

Connect Your Lightning Wallet

{subscribed ? ( <>

Thank you for your support 🎉

Pay-as-you-go subscription active until {subscribedUntil.toLocaleDateString()}

) : ( <>
{!session || !session?.user || !ndk ? ( ) : ( { console.log("rowData", rowData); return }} header="Name" > item.courseId) ? "course" : "resource"} header="Category"> formatDateTime(rowData?.createdAt)} header="Date"> )} setSubscribeModalVisible(false)} />
) ); }; export default Profile;