From 65692026b63ee506ea8e191953664e7cd51aaa11 Mon Sep 17 00:00:00 2001 From: austinkelsay Date: Sat, 16 Nov 2024 12:33:30 -0600 Subject: [PATCH] Fixes to naddr encoding --- README.md | 2 +- .../content/carousels/templates/CourseTemplate.js | 6 +++--- .../carousels/templates/DocumentTemplate.js | 5 ++--- .../content/carousels/templates/VideoTemplate.js | 5 ++--- src/components/content/courses/CourseDetails.js | 2 +- src/components/content/courses/DocumentLesson.js | 2 +- .../content/courses/DraftCourseDetails.js | 2 +- src/components/content/courses/VideoLesson.js | 2 +- src/components/content/lists/ContentListItem.js | 8 ++++---- src/components/content/lists/ProgressListItem.js | 4 ++-- src/components/content/lists/PurchasedListItem.js | 4 ++-- src/components/zaps/ZapForm.js | 2 +- src/pages/course/[slug]/index.js | 14 +++----------- src/pages/details/[slug]/index.js | 15 ++++++++++----- src/pages/draft/[slug]/index.js | 2 +- 15 files changed, 35 insertions(+), 40 deletions(-) diff --git a/README.md b/README.md index c8c9757..94a38e6 100644 --- a/README.md +++ b/README.md @@ -1,3 +1,3 @@ # Plebdevs -still in development \ No newline at end of file +plebdevs.com \ No newline at end of file diff --git a/src/components/content/carousels/templates/CourseTemplate.js b/src/components/content/carousels/templates/CourseTemplate.js index e2e108a..2d25bde 100644 --- a/src/components/content/carousels/templates/CourseTemplate.js +++ b/src/components/content/carousels/templates/CourseTemplate.js @@ -40,12 +40,12 @@ export function CourseTemplate({ course, showMetaTags = true }) { }, [course]); useEffect(() => { - if (course && course?.id) { + if (course && course?.d) { const nAddress = nip19.naddrEncode({ pubkey: course.pubkey, kind: course.kind, - identifier: course.id, - relayUrls: appConfig.defaultRelayUrls + identifier: course.d, + relays: appConfig.defaultRelayUrls }); setNAddress(nAddress); } diff --git a/src/components/content/carousels/templates/DocumentTemplate.js b/src/components/content/carousels/templates/DocumentTemplate.js index ec5b386..5542ce7 100644 --- a/src/components/content/carousels/templates/DocumentTemplate.js +++ b/src/components/content/carousels/templates/DocumentTemplate.js @@ -24,12 +24,11 @@ export function DocumentTemplate({ document, isLesson, showMetaTags }) { const isMobile = windowWidth < 768; useEffect(() => { - if (document && document?.id) { + if (document && document?.d) { const nAddress = nip19.naddrEncode({ pubkey: document.pubkey, kind: document.kind, - identifier: document.id, - relayUrls: appConfig.defaultRelayUrls + identifier: document.d }); setNAddress(nAddress); } diff --git a/src/components/content/carousels/templates/VideoTemplate.js b/src/components/content/carousels/templates/VideoTemplate.js index fc75343..a2e1815 100644 --- a/src/components/content/carousels/templates/VideoTemplate.js +++ b/src/components/content/carousels/templates/VideoTemplate.js @@ -25,12 +25,11 @@ export function VideoTemplate({ video, isLesson, showMetaTags }) { const isMobile = windowWidth < 768; useEffect(() => { - if (video && video?.id) { + if (video && video?.d) { const nAddress = nip19.naddrEncode({ pubkey: video.pubkey, kind: video.kind, - identifier: video.id, - relayUrls: appConfig.defaultRelayUrls + identifier: video.d }); setNAddress(nAddress); } diff --git a/src/components/content/courses/CourseDetails.js b/src/components/content/courses/CourseDetails.js index 6e622bc..31df945 100644 --- a/src/components/content/courses/CourseDetails.js +++ b/src/components/content/courses/CourseDetails.js @@ -54,7 +54,7 @@ export default function CourseDetails({ processedEvent, paidCourse, lessons, dec pubkey: processedEvent.pubkey, kind: processedEvent.kind, identifier: processedEvent.d, - relayUrls: appConfig.defaultRelayUrls + relays: appConfig.defaultRelayUrls }); setNAddress(naddr); } diff --git a/src/components/content/courses/DocumentLesson.js b/src/components/content/courses/DocumentLesson.js index 7414e40..4c96b4d 100644 --- a/src/components/content/courses/DocumentLesson.js +++ b/src/components/content/courses/DocumentLesson.js @@ -50,7 +50,7 @@ const DocumentLesson = ({ lesson, course, decryptionPerformed, isPaid, setComple pubkey: lesson.pubkey, kind: lesson.kind, identifier: lesson.d, - relayUrls: appConfig.defaultRelayUrls + relays: appConfig.defaultRelayUrls }) setNAddress(addr); } diff --git a/src/components/content/courses/DraftCourseDetails.js b/src/components/content/courses/DraftCourseDetails.js index 1c9f307..91d1469 100644 --- a/src/components/content/courses/DraftCourseDetails.js +++ b/src/components/content/courses/DraftCourseDetails.js @@ -107,7 +107,7 @@ export default function DraftCourseDetails({ processedEvent, draftId, lessons }) pubkey: resource.pubkey, kind: resource.kind, identifier: dTag, - relayUrls: appConfig.defaultRelayUrls + relays: appConfig.defaultRelayUrls }); const userResponse = await axios.get(`/api/users/${user.pubkey}`); diff --git a/src/components/content/courses/VideoLesson.js b/src/components/content/courses/VideoLesson.js index 7813c1a..455126e 100644 --- a/src/components/content/courses/VideoLesson.js +++ b/src/components/content/courses/VideoLesson.js @@ -94,7 +94,7 @@ const VideoLesson = ({ lesson, course, decryptionPerformed, isPaid, setCompleted pubkey: lesson.pubkey, kind: lesson.kind, identifier: lesson.d, - relayUrls: appConfig.defaultRelayUrls + relays: appConfig.defaultRelayUrls }); setNAddress(addr); }, [lesson]); diff --git a/src/components/content/lists/ContentListItem.js b/src/components/content/lists/ContentListItem.js index b62eda5..68986c0 100644 --- a/src/components/content/lists/ContentListItem.js +++ b/src/components/content/lists/ContentListItem.js @@ -20,20 +20,20 @@ const ContentListItem = (content) => { let nAddress; if (isPublishedCourse) { nAddress = nip19.naddrEncode({ - identifier: content.id, + identifier: content?.d || content.id, kind: content.kind, pubkey: content.pubkey, - relayUrls: appConfig.defaultRelayUrls + relays: appConfig.defaultRelayUrls }); router.push(`/course/${nAddress}`); } else if (isDraftCourse) { router.push(`/course/${content.id}/draft`); } else if (isResource) { nAddress = nip19.naddrEncode({ - identifier: content.id, + identifier: content.d, kind: content.kind, pubkey: content.pubkey, - relayUrls: appConfig.defaultRelayUrls + relays: appConfig.defaultRelayUrls }); router.push(`/details/${nAddress}`); } else if (isDraft) { diff --git a/src/components/content/lists/ProgressListItem.js b/src/components/content/lists/ProgressListItem.js index e589f61..90baf77 100644 --- a/src/components/content/lists/ProgressListItem.js +++ b/src/components/content/lists/ProgressListItem.js @@ -33,9 +33,9 @@ const ProgressListItem = ({ dTag, category }) => { const encodeNaddr = () => { return nip19.naddrEncode({ pubkey: event.pubkey, - identifier: event.id, + identifier: event.d, kind: 30004, - relayUrls: appConfig.defaultRelayUrls + relays: appConfig.defaultRelayUrls }) } diff --git a/src/components/content/lists/PurchasedListItem.js b/src/components/content/lists/PurchasedListItem.js index 2d199bd..fa2c34e 100644 --- a/src/components/content/lists/PurchasedListItem.js +++ b/src/components/content/lists/PurchasedListItem.js @@ -36,9 +36,9 @@ const PurchasedListItem = ({ eventId, category }) => { const encodeNaddr = () => { setNaddr(nip19.naddrEncode({ pubkey: event.pubkey, - identifier: event.id, + identifier: event.d, kind: event.kind, - relayUrls: appConfig.defaultRelayUrls + relays: appConfig.defaultRelayUrls })) } diff --git a/src/components/zaps/ZapForm.js b/src/components/zaps/ZapForm.js index dda3981..5f45d5c 100644 --- a/src/components/zaps/ZapForm.js +++ b/src/components/zaps/ZapForm.js @@ -7,7 +7,7 @@ const ZapForm = ({ event }) => { kind: event?.kind, pubkey: event?.pubkey, identifier: event.d, - relays: [...appConfig.defaultRelayUrls] + relays: appConfig.defaultRelayUrls }); return ( diff --git a/src/pages/course/[slug]/index.js b/src/pages/course/[slug]/index.js index ce6bb1e..2574711 100644 --- a/src/pages/course/[slug]/index.js +++ b/src/pages/course/[slug]/index.js @@ -38,23 +38,15 @@ const useCourseData = (ndk, fetchAuthor, router) => { return null; } return data.identifier; - } else if (slug.includes("-")) { - try { - const res = await axios.get(`/api/courses/${slug}`); - return res.data?.noteId; - } catch (err) { - console.error('Error fetching course:', err); - showToast('error', 'Error', 'Course not found'); - return null; - } + } else { + return slug; } - return slug; }; const fetchCourse = async (courseId) => { try { await ndk.connect(); - const event = await ndk.fetchEvent({ ids: [courseId] }); + const event = await ndk.fetchEvent({ "#d": [courseId] }); if (!event) return null; const author = await fetchAuthor(event.pubkey); diff --git a/src/pages/details/[slug]/index.js b/src/pages/details/[slug]/index.js index 251ee4b..886d75c 100644 --- a/src/pages/details/[slug]/index.js +++ b/src/pages/details/[slug]/index.js @@ -11,7 +11,6 @@ import { useRouter } from "next/router"; import { ProgressSpinner } from 'primereact/progressspinner'; import axios from 'axios'; import ZapThreadsWrapper from '@/components/ZapThreadsWrapper'; -import appConfig from "@/config/appConfig"; // todo: /decrypt is still being called way too much on this page, need to clean up state management @@ -58,8 +57,7 @@ const Details = () => { const naddr = nip19.naddrEncode({ pubkey: event.pubkey, kind: event.kind, - identifier: event.d, - relayUrls: appConfig.defaultRelayUrls + identifier: event.d }); setNAddress(naddr); } @@ -94,7 +92,7 @@ const Details = () => { setLoading(false); return; } - id = data?.identifier; + id = null; setNAddress(slug); } else { id = slug; @@ -102,7 +100,14 @@ const Details = () => { try { await ndk.connect(); - const event = await ndk.fetchEvent({ ids: [id] }); + let filter; + if (id) { + filter = { ids: [id] }; + } else { + const decoded = nip19.decode(slug); + filter = { "#d": [decoded?.data?.identifier] }; + } + const event = await ndk.fetchEvent(filter); if (event) { const parsedEvent = parseEvent(event); diff --git a/src/pages/draft/[slug]/index.js b/src/pages/draft/[slug]/index.js index 420c0d4..1391deb 100644 --- a/src/pages/draft/[slug]/index.js +++ b/src/pages/draft/[slug]/index.js @@ -128,7 +128,7 @@ export default function Draft() { pubkey: resource.pubkey, kind: resource.kind, identifier: dTag, - relayUrls: appConfig.defaultRelayUrls + relays: appConfig.defaultRelayUrls }); const userResponse = await axios.get(`/api/users/${user.pubkey}`);