50 lines
1.4 KiB
TypeScript
Raw Normal View History

2023-10-20 15:26:55 -04:00
import { useEffect, useState } from "react";
import SubscriptionCard from "@/components/SubscriptionCard";
import useCurrentUser from "@/lib/hooks/useCurrentUser";
import { useNDK } from "@/app/_providers/ndk";
import { type NDKKind, type NDKEvent } from "@nostr-dev-kit/ndk";
import { getTagsValues } from "@/lib/nostr/utils";
type MySubscription = {
pubkey: string;
};
export default function MySubscription({ pubkey }: MySubscription) {
2023-10-20 16:28:55 -04:00
const { ndk, fetchEvents } = useNDK();
2023-10-20 15:26:55 -04:00
const { currentUser, mySubscription, follows } = useCurrentUser();
const [subscriptionTiers, setSubscriptionTiers] = useState<NDKEvent[]>([]);
useEffect(() => {
2023-10-20 16:28:55 -04:00
if (ndk) {
void handleFetchSubscriptionTiers();
}
}, [pubkey, ndk]);
2023-10-20 15:26:55 -04:00
async function handleFetchSubscriptionTiers() {
try {
2023-10-20 16:28:55 -04:00
console.log("FETCHING", pubkey);
2023-10-20 15:26:55 -04:00
const events = await fetchEvents({
kinds: [30044 as NDKKind],
authors: [pubkey],
});
2023-10-20 16:28:55 -04:00
console.log("events", events);
2023-10-20 15:26:55 -04:00
setSubscriptionTiers(events);
} catch (err) {
console.log("error", err);
}
}
if (!subscriptionTiers.length) return null;
return (
<>
{subscriptionTiers.map((e) => {
const isMember =
currentUser &&
getTagsValues("p", e.tags).includes(currentUser.pubkey);
if (isMember) return null;
return <SubscriptionCard key={e.id} event={e} />;
})}
</>
);
}