Browse Source

fix build

imwald
Silberengel 5 months ago
parent
commit
95c420d6b7
  1. 26
      src/components/Note/Article/index.tsx
  2. 4
      src/components/Note/SimpleContent/index.tsx
  3. 2
      src/lib/discussion-topics.ts
  4. 14
      src/pages/primary/DiscussionsPage/index.tsx
  5. 4
      src/providers/GroupListProvider.tsx
  6. 2
      src/services/nip89.service.ts

26
src/components/Note/Article/index.tsx

@ -167,7 +167,7 @@ export default function Article({ @@ -167,7 +167,7 @@ export default function Article({
}
return (
<div className={`${parsedContent.cssClasses} ${className || ''}`}>
<div className={`${parsedContent?.cssClasses || ''} ${className || ''}`}>
{/* Article metadata */}
<h1 className="break-words">{metadata.title}</h1>
{metadata.summary && (
@ -184,10 +184,10 @@ export default function Article({ @@ -184,10 +184,10 @@ export default function Article({
{/* Render AsciiDoc content (everything is now processed as AsciiDoc) */}
<div ref={contentRef} className={isArticleType ? "asciidoc-content" : "simple-content"} dangerouslySetInnerHTML={{ __html: parsedContent.html }} />
<div ref={contentRef} className={isArticleType ? "asciidoc-content" : "simple-content"} dangerouslySetInnerHTML={{ __html: parsedContent?.html || '' }} />
{/* Collapsible Article Info - only for article-type events */}
{isArticleType && (parsedContent.media.length > 0 || parsedContent.links.length > 0 || parsedContent.nostrLinks.length > 0 || parsedContent.highlightSources.length > 0 || parsedContent.hashtags.length > 0) && (
{isArticleType && (parsedContent?.media?.length > 0 || parsedContent?.links?.length > 0 || parsedContent?.nostrLinks?.length > 0 || parsedContent?.highlightSources?.length > 0 || parsedContent?.hashtags?.length > 0) && (
<Collapsible open={isInfoOpen} onOpenChange={setIsInfoOpen} className="mt-4">
<CollapsibleTrigger asChild>
<Button variant="outline" className="w-full justify-between">
@ -197,11 +197,11 @@ export default function Article({ @@ -197,11 +197,11 @@ export default function Article({
</CollapsibleTrigger>
<CollapsibleContent className="space-y-4 mt-2">
{/* Media thumbnails */}
{parsedContent.media.length > 0 && (
{parsedContent?.media?.length > 0 && (
<div className="p-4 bg-muted rounded-lg">
<h4 className="text-sm font-semibold mb-3">Images in this article:</h4>
<div className="grid grid-cols-8 sm:grid-cols-12 md:grid-cols-16 gap-1">
{parsedContent.media.map((media, index) => (
{parsedContent?.media?.map((media, index) => (
<div key={index} className="aspect-square">
<ImageWithLightbox
image={media}
@ -217,11 +217,11 @@ export default function Article({ @@ -217,11 +217,11 @@ export default function Article({
)}
{/* Links summary with OpenGraph previews */}
{parsedContent.links.length > 0 && (
{parsedContent?.links?.length > 0 && (
<div className="p-4 bg-muted rounded-lg">
<h4 className="text-sm font-semibold mb-3">Links in this article:</h4>
<div className="space-y-3">
{parsedContent.links.map((link, index) => (
{parsedContent?.links?.map((link, index) => (
<WebPreview
key={index}
url={link.url}
@ -233,11 +233,11 @@ export default function Article({ @@ -233,11 +233,11 @@ export default function Article({
)}
{/* Nostr links summary */}
{parsedContent.nostrLinks.length > 0 && (
{parsedContent?.nostrLinks?.length > 0 && (
<div className="p-4 bg-muted rounded-lg">
<h4 className="text-sm font-semibold mb-2">Nostr references:</h4>
<div className="space-y-1">
{parsedContent.nostrLinks.map((link, index) => (
{parsedContent?.nostrLinks?.map((link, index) => (
<div key={index} className="text-sm">
<span className="font-mono text-blue-600">{link.type}:</span>{' '}
<span className="font-mono">{link.id}</span>
@ -248,11 +248,11 @@ export default function Article({ @@ -248,11 +248,11 @@ export default function Article({
)}
{/* Highlight sources */}
{parsedContent.highlightSources.length > 0 && (
{parsedContent?.highlightSources?.length > 0 && (
<div className="p-4 bg-muted rounded-lg">
<h4 className="text-sm font-semibold mb-3">Highlight sources:</h4>
<div className="space-y-3">
{parsedContent.highlightSources.map((source, index) => (
{parsedContent?.highlightSources?.map((source, index) => (
<HighlightSourcePreview
key={index}
source={source}
@ -264,11 +264,11 @@ export default function Article({ @@ -264,11 +264,11 @@ export default function Article({
)}
{/* Hashtags */}
{parsedContent.hashtags.length > 0 && (
{parsedContent?.hashtags?.length > 0 && (
<div className="p-4 bg-muted rounded-lg">
<h4 className="text-sm font-semibold mb-3">Tags:</h4>
<div className="flex gap-2 flex-wrap">
{parsedContent.hashtags.map((tag) => (
{parsedContent?.hashtags?.map((tag) => (
<div
key={tag}
title={tag}

4
src/components/Note/SimpleContent/index.tsx

@ -22,6 +22,10 @@ export default function SimpleContent({ @@ -22,6 +22,10 @@ export default function SimpleContent({
return <div className={className}>Error loading content</div>
}
if (!parsedContent) {
return <div className={className}>No content available</div>
}
return (
<div className={`${parsedContent.cssClasses} ${className || ''}`}>
{/* Render content without ToC and Article Info */}

2
src/lib/discussion-topics.ts

@ -309,7 +309,7 @@ export function extractGroupInfo( @@ -309,7 +309,7 @@ export function extractGroupInfo(
}
}
const { groupId, groupRelay, fullIdentifier } = parseGroupIdentifier(hTag, relaySources)
const { groupId, groupRelay } = parseGroupIdentifier(hTag, relaySources)
const groupDisplayName = buildGroupDisplayName(groupId, groupRelay)
return {

14
src/pages/primary/DiscussionsPage/index.tsx

@ -457,6 +457,13 @@ const DiscussionsPage = forwardRef((_, ref) => { @@ -457,6 +457,13 @@ const DiscussionsPage = forwardRef((_, ref) => {
logger.debug('[DiscussionsPage] Thread', threadId.substring(0, 8), 'has votes:', voteStats)
}
// Get relay sources
const eventHints = client.getEventHints(threadId)
const relaySources = eventHints.length > 0 ? eventHints : ['unknown']
// Extract group information
const groupInfo = extractGroupInfo(thread, relaySources)
// Extract topics
const tTagsRaw = thread.tags.filter((tag: string[]) => tag[0] === 't' && tag[1]).map((tag: string[]) => tag[1].toLowerCase())
const hashtagsRaw = (thread.content.match(/#\w+/g) || []).map((tag: string) => tag.slice(1).toLowerCase())
@ -471,13 +478,6 @@ const DiscussionsPage = forwardRef((_, ref) => { @@ -471,13 +478,6 @@ const DiscussionsPage = forwardRef((_, ref) => {
const hashtags = hashtagsRaw.map((tag: string) => normalizeTopic(tag))
const allTopics = [...new Set([...tTags, ...hashtags])]
// Get relay sources
const eventHints = client.getEventHints(threadId)
const relaySources = eventHints.length > 0 ? eventHints : ['unknown']
// Extract group information
const groupInfo = extractGroupInfo(thread, relaySources)
newEventMap.set(threadId, {
event: thread,
relaySources,

4
src/providers/GroupListProvider.tsx

@ -1,5 +1,4 @@ @@ -1,5 +1,4 @@
import { createContext, useContext, useEffect, useState, useCallback, useMemo } from 'react'
import { useTranslation } from 'react-i18next'
import { useNostr } from '@/providers/NostrProvider'
import { useFavoriteRelays } from '@/providers/FavoriteRelaysProvider'
import { ExtendedKind } from '@/constants'
@ -26,8 +25,7 @@ export const useGroupList = () => { @@ -26,8 +25,7 @@ export const useGroupList = () => {
}
export function GroupListProvider({ children }: { children: React.ReactNode }) {
const { t } = useTranslation()
const { pubkey: accountPubkey, publish, updateGroupListEvent } = useNostr()
const { pubkey: accountPubkey } = useNostr()
const { favoriteRelays } = useFavoriteRelays()
const [userGroups, setUserGroups] = useState<string[]>([])
const [isLoading, setIsLoading] = useState(false)

2
src/services/nip89.service.ts

@ -1,6 +1,5 @@ @@ -1,6 +1,5 @@
import { ExtendedKind } from '@/constants'
import { Event, kinds } from 'nostr-tools'
import * as nip19 from 'nostr-tools/nip19'
export interface ApplicationHandlerInfo {
name: string
@ -227,7 +226,6 @@ class Nip89Service { @@ -227,7 +226,6 @@ class Nip89Service {
ExtendedKind.RELAY_REVIEW,
ExtendedKind.PUBLICATION,
ExtendedKind.WIKI_ARTICLE,
ExtendedKind.WIKI_CHAPTER
],
platforms: {
web: 'https://jumble.gitcitadel.eu/note/bech32',

Loading…
Cancel
Save