diff --git a/src/components/AccountManager/index.tsx b/src/components/AccountManager/index.tsx index 2cfca6f..8a953d1 100644 --- a/src/components/AccountManager/index.tsx +++ b/src/components/AccountManager/index.tsx @@ -1,14 +1,14 @@ import { Button } from '@/components/ui/button' import { Separator } from '@/components/ui/separator' -import { isDevEnv } from '@/lib/common' +import { isDevEnv } from '@/lib/utils' import { useNostr } from '@/providers/NostrProvider' import { useTheme } from '@/providers/ThemeProvider' import { NstartModal } from 'nstart-modal' import { useState } from 'react' import { useTranslation } from 'react-i18next' import AccountList from '../AccountList' -import NostrConnectLogin from './NostrConnectionLogin' import GenerateNewAccount from './GenerateNewAccount' +import NostrConnectLogin from './NostrConnectionLogin' import NpubLogin from './NpubLogin' import PrivateKeyLogin from './PrivateKeyLogin' diff --git a/src/components/BookmarkList/index.tsx b/src/components/BookmarkList/index.tsx index 1a24d4a..1b5ed16 100644 --- a/src/components/BookmarkList/index.tsx +++ b/src/components/BookmarkList/index.tsx @@ -1,5 +1,5 @@ import { useFetchEvent } from '@/hooks' -import { generateEventIdFromETag } from '@/lib/tag' +import { generateBech32IdFromETag } from '@/lib/tag' import { useNostr } from '@/providers/NostrProvider' import { useEffect, useMemo, useRef, useState } from 'react' import { useTranslation } from 'react-i18next' @@ -15,7 +15,7 @@ export default function BookmarkList() { return ( bookmarkListEvent.tags - .map((tag) => (tag[0] === 'e' ? generateEventIdFromETag(tag) : undefined)) + .map((tag) => (tag[0] === 'e' ? generateBech32IdFromETag(tag) : undefined)) .filter(Boolean) as `nevent1${string}`[] ).reverse() }, [bookmarkListEvent]) diff --git a/src/components/ClientSelect/index.tsx b/src/components/ClientSelect/index.tsx index 612b57a..2efe939 100644 --- a/src/components/ClientSelect/index.tsx +++ b/src/components/ClientSelect/index.tsx @@ -3,7 +3,7 @@ import { Dialog, DialogContent, DialogTrigger } from '@/components/ui/dialog' import { Drawer, DrawerContent, DrawerOverlay, DrawerTrigger } from '@/components/ui/drawer' import { Separator } from '@/components/ui/separator' import { ExtendedKind } from '@/constants' -import { getReplaceableEventIdentifier, getSharableEventId } from '@/lib/event' +import { getReplaceableEventIdentifier, getNoteBech32Id } from '@/lib/event' import { toChachiChat } from '@/lib/link' import { useScreenSize } from '@/providers/ScreenSizeProvider' import clientService from '@/services/client.service' @@ -139,7 +139,7 @@ export default function ClientSelect({ setOpen(false)} - href={client.getUrl(originalNoteId ?? getSharableEventId(event!))} + href={client.getUrl(originalNoteId ?? getNoteBech32Id(event!))} name={client.name} /> ) @@ -150,7 +150,7 @@ export default function ClientSelect({ variant="ghost" className="w-full py-6 font-semibold" onClick={() => { - navigator.clipboard.writeText(originalNoteId ?? getSharableEventId(event!)) + navigator.clipboard.writeText(originalNoteId ?? getNoteBech32Id(event!)) setOpen(false) }} > diff --git a/src/components/Content/index.tsx b/src/components/Content/index.tsx index 3fd6ced..8d0bbd2 100644 --- a/src/components/Content/index.tsx +++ b/src/components/Content/index.tsx @@ -11,8 +11,8 @@ import { EmbeddedWebsocketUrlParser, parseContent } from '@/lib/content-parser' -import { extractEmojiInfosFromTags } from '@/lib/event' -import { extractImageInfoFromTag } from '@/lib/tag' +import { getImageInfosFromEvent } from '@/lib/event' +import { getEmojiInfosFromEmojiTags, getImageInfoFromImetaTag } from '@/lib/tag' import { cn } from '@/lib/utils' import mediaUpload from '@/services/media-upload.service' import { TImageInfo } from '@/types' @@ -45,9 +45,7 @@ const Content = memo(({ event, className }: { event: Event; className?: string } EmbeddedEmojiParser ]) - const imageInfos = event.tags - .map((tag) => extractImageInfoFromTag(tag, event.pubkey)) - .filter(Boolean) as TImageInfo[] + const imageInfos = getImageInfosFromEvent(event) const allImages = nodes .map((node) => { if (node.type === 'image') { @@ -57,7 +55,7 @@ const Content = memo(({ event, className }: { event: Event; className?: string } } const tag = mediaUpload.getImetaTagByUrl(node.data) return tag - ? extractImageInfoFromTag(tag, event.pubkey) + ? getImageInfoFromImetaTag(tag, event.pubkey) : { url: node.data, pubkey: event.pubkey } } if (node.type === 'images') { @@ -73,7 +71,7 @@ const Content = memo(({ event, className }: { event: Event; className?: string } .flat() as TImageInfo[] let imageIndex = 0 - const emojiInfos = extractEmojiInfosFromTags(event.tags) + const emojiInfos = getEmojiInfosFromEmojiTags(event.tags) const lastNormalUrlNode = nodes.findLast((node) => node.type === 'url') const lastNormalUrl = diff --git a/src/components/ContentPreview/CommunityDefinitionPreview.tsx b/src/components/ContentPreview/CommunityDefinitionPreview.tsx index 8f3a16b..0f58db7 100644 --- a/src/components/ContentPreview/CommunityDefinitionPreview.tsx +++ b/src/components/ContentPreview/CommunityDefinitionPreview.tsx @@ -1,4 +1,4 @@ -import { getCommunityDefinition } from '@/lib/event' +import { getCommunityDefinitionFromEvent } from '@/lib/event-metadata' import { cn } from '@/lib/utils' import { Event } from 'nostr-tools' import { useMemo } from 'react' @@ -14,7 +14,7 @@ export default function CommunityDefinitionPreview({ onClick?: React.MouseEventHandler | undefined }) { const { t } = useTranslation() - const metadata = useMemo(() => getCommunityDefinition(event), [event]) + const metadata = useMemo(() => getCommunityDefinitionFromEvent(event), [event]) return (
diff --git a/src/components/ContentPreview/GroupMetadataPreview.tsx b/src/components/ContentPreview/GroupMetadataPreview.tsx index 101dfc4..842bb1d 100644 --- a/src/components/ContentPreview/GroupMetadataPreview.tsx +++ b/src/components/ContentPreview/GroupMetadataPreview.tsx @@ -1,4 +1,4 @@ -import { getGroupMetadata } from '@/lib/event' +import { getGroupMetadataFromEvent } from '@/lib/event-metadata' import { cn } from '@/lib/utils' import { Event } from 'nostr-tools' import { useMemo } from 'react' @@ -14,7 +14,7 @@ export default function GroupMetadataPreview({ onClick?: React.MouseEventHandler | undefined }) { const { t } = useTranslation() - const metadata = useMemo(() => getGroupMetadata(event), [event]) + const metadata = useMemo(() => getGroupMetadataFromEvent(event), [event]) return (
diff --git a/src/components/ContentPreview/LiveEventPreview.tsx b/src/components/ContentPreview/LiveEventPreview.tsx index 887b1a4..1239379 100644 --- a/src/components/ContentPreview/LiveEventPreview.tsx +++ b/src/components/ContentPreview/LiveEventPreview.tsx @@ -1,4 +1,4 @@ -import { getLiveEventMetadata } from '@/lib/event' +import { getLiveEventMetadataFromEvent } from '@/lib/event-metadata' import { cn } from '@/lib/utils' import { Event } from 'nostr-tools' import { useMemo } from 'react' @@ -14,7 +14,7 @@ export default function LiveEventPreview({ onClick?: React.MouseEventHandler | undefined }) { const { t } = useTranslation() - const metadata = useMemo(() => getLiveEventMetadata(event), [event]) + const metadata = useMemo(() => getLiveEventMetadataFromEvent(event), [event]) return (
diff --git a/src/components/ContentPreview/LongFormArticlePreview.tsx b/src/components/ContentPreview/LongFormArticlePreview.tsx index 0b1ae71..73d92b6 100644 --- a/src/components/ContentPreview/LongFormArticlePreview.tsx +++ b/src/components/ContentPreview/LongFormArticlePreview.tsx @@ -1,4 +1,4 @@ -import { getLongFormArticleMetadata } from '@/lib/event' +import { getLongFormArticleMetadataFromEvent } from '@/lib/event-metadata' import { cn } from '@/lib/utils' import { Event } from 'nostr-tools' import { useMemo } from 'react' @@ -14,7 +14,7 @@ export default function LongFormArticlePreview({ onClick?: React.MouseEventHandler | undefined }) { const { t } = useTranslation() - const metadata = useMemo(() => getLongFormArticleMetadata(event), [event]) + const metadata = useMemo(() => getLongFormArticleMetadataFromEvent(event), [event]) return (
diff --git a/src/components/ContentPreview/NormalContentPreview.tsx b/src/components/ContentPreview/NormalContentPreview.tsx index 02c72cf..a4569cf 100644 --- a/src/components/ContentPreview/NormalContentPreview.tsx +++ b/src/components/ContentPreview/NormalContentPreview.tsx @@ -7,7 +7,7 @@ import { EmbeddedVideoParser, parseContent } from '@/lib/content-parser' -import { extractEmojiInfosFromTags } from '@/lib/event' +import { getEmojiInfosFromEmojiTags } from '@/lib/tag' import { cn } from '@/lib/utils' import { Event } from 'nostr-tools' import { useMemo } from 'react' @@ -36,7 +36,7 @@ export default function NormalContentPreview({ ]) }, [event, translatedEvent]) - const emojiInfos = extractEmojiInfosFromTags(event?.tags) + const emojiInfos = getEmojiInfosFromEmojiTags(event?.tags) return (
diff --git a/src/components/ImageCarousel/index.tsx b/src/components/ImageCarousel/index.tsx index b0331fc..bb85e06 100644 --- a/src/components/ImageCarousel/index.tsx +++ b/src/components/ImageCarousel/index.tsx @@ -1,5 +1,5 @@ import { Carousel, CarouselApi, CarouselContent, CarouselItem } from '@/components/ui/carousel' -import { isTouchDevice } from '@/lib/common' +import { isTouchDevice } from '@/lib/utils' import { TImageInfo } from '@/types' import { ChevronLeftIcon, ChevronRightIcon } from 'lucide-react' import { useEffect, useState } from 'react' diff --git a/src/components/Note/CommunityDefinition.tsx b/src/components/Note/CommunityDefinition.tsx index d327d00..b82781d 100644 --- a/src/components/Note/CommunityDefinition.tsx +++ b/src/components/Note/CommunityDefinition.tsx @@ -1,4 +1,4 @@ -import { getCommunityDefinition } from '@/lib/event' +import { getCommunityDefinitionFromEvent } from '@/lib/event-metadata' import { Event } from 'nostr-tools' import { useMemo } from 'react' import ClientSelect from '../ClientSelect' @@ -11,7 +11,7 @@ export default function CommunityDefinition({ event: Event className?: string }) { - const metadata = useMemo(() => getCommunityDefinition(event), [event]) + const metadata = useMemo(() => getCommunityDefinitionFromEvent(event), [event]) const communityNameComponent = (
{metadata.name}
diff --git a/src/components/Note/GroupMetadata.tsx b/src/components/Note/GroupMetadata.tsx index f79d0bf..32af37c 100644 --- a/src/components/Note/GroupMetadata.tsx +++ b/src/components/Note/GroupMetadata.tsx @@ -1,4 +1,4 @@ -import { getGroupMetadata } from '@/lib/event' +import { getGroupMetadataFromEvent } from '@/lib/event-metadata' import { Event } from 'nostr-tools' import { useMemo } from 'react' import ClientSelect from '../ClientSelect' @@ -13,7 +13,7 @@ export default function GroupMetadata({ originalNoteId?: string className?: string }) { - const metadata = useMemo(() => getGroupMetadata(event), [event]) + const metadata = useMemo(() => getGroupMetadataFromEvent(event), [event]) const groupNameComponent = (
{metadata.name}
diff --git a/src/components/Note/Highlight.tsx b/src/components/Note/Highlight.tsx index 42427d2..7bc5ede 100644 --- a/src/components/Note/Highlight.tsx +++ b/src/components/Note/Highlight.tsx @@ -2,7 +2,7 @@ import { useFetchEvent, useTranslatedEvent } from '@/hooks' import { createFakeEvent } from '@/lib/event' import { toNjump, toNote } from '@/lib/link' import { isValidPubkey } from '@/lib/pubkey' -import { generateEventIdFromATag } from '@/lib/tag' +import { generateBech32IdFromATag } from '@/lib/tag' import { cn } from '@/lib/utils' import { useSecondaryPage } from '@/PageManager' import { Event } from 'nostr-tools' @@ -70,7 +70,7 @@ function HighlightSource({ event }: { event: Event }) { return sourceTag[1] } if (sourceTag[0] === 'a') { - return generateEventIdFromATag(sourceTag) + return generateBech32IdFromATag(sourceTag) } }, [sourceTag]) const pubkey = useMemo(() => { diff --git a/src/components/Note/LiveEvent.tsx b/src/components/Note/LiveEvent.tsx index 18aea8f..740c6c2 100644 --- a/src/components/Note/LiveEvent.tsx +++ b/src/components/Note/LiveEvent.tsx @@ -1,5 +1,5 @@ import { Badge } from '@/components/ui/badge' -import { getLiveEventMetadata } from '@/lib/event' +import { getLiveEventMetadataFromEvent } from '@/lib/event-metadata' import { useScreenSize } from '@/providers/ScreenSizeProvider' import { Event } from 'nostr-tools' import { useMemo } from 'react' @@ -8,7 +8,7 @@ import Image from '../Image' export default function LiveEvent({ event, className }: { event: Event; className?: string }) { const { isSmallScreen } = useScreenSize() - const metadata = useMemo(() => getLiveEventMetadata(event), [event]) + const metadata = useMemo(() => getLiveEventMetadataFromEvent(event), [event]) const liveStatusComponent = metadata.status && diff --git a/src/components/Note/LongFormArticle.tsx b/src/components/Note/LongFormArticle.tsx index aadcdd1..25c50e9 100644 --- a/src/components/Note/LongFormArticle.tsx +++ b/src/components/Note/LongFormArticle.tsx @@ -1,5 +1,5 @@ import { Badge } from '@/components/ui/badge' -import { getLongFormArticleMetadata } from '@/lib/event' +import { getLongFormArticleMetadataFromEvent } from '@/lib/event-metadata' import { useScreenSize } from '@/providers/ScreenSizeProvider' import { Event } from 'nostr-tools' import { useMemo } from 'react' @@ -14,7 +14,7 @@ export default function LongFormArticle({ className?: string }) { const { isSmallScreen } = useScreenSize() - const metadata = useMemo(() => getLongFormArticleMetadata(event), [event]) + const metadata = useMemo(() => getLongFormArticleMetadataFromEvent(event), [event]) const titleComponent =
{metadata.title}
diff --git a/src/components/Note/index.tsx b/src/components/Note/index.tsx index 33dca6d..9eb210c 100644 --- a/src/components/Note/index.tsx +++ b/src/components/Note/index.tsx @@ -1,8 +1,8 @@ import { useSecondaryPage } from '@/PageManager' import { ExtendedKind } from '@/constants' import { - extractImageInfosFromEventTags, - getParentEventId, + getImageInfosFromEvent, + getParentBech32Id, getUsingClient, isNsfwEvent, isPictureEvent @@ -47,11 +47,11 @@ export default function Note({ const { push } = useSecondaryPage() const { isSmallScreen } = useScreenSize() const parentEventId = useMemo( - () => (hideParentNotePreview ? undefined : getParentEventId(event)), + () => (hideParentNotePreview ? undefined : getParentBech32Id(event)), [event, hideParentNotePreview] ) const imageInfos = useMemo( - () => (isPictureEvent(event) ? extractImageInfosFromEventTags(event) : []), + () => (isPictureEvent(event) ? getImageInfosFromEvent(event) : []), [event] ) const usingClient = useMemo(() => getUsingClient(event), [event]) diff --git a/src/components/NoteOptions/index.tsx b/src/components/NoteOptions/index.tsx index b9bfec6..c430723 100644 --- a/src/components/NoteOptions/index.tsx +++ b/src/components/NoteOptions/index.tsx @@ -7,7 +7,7 @@ import { DropdownMenuSeparator, DropdownMenuTrigger } from '@/components/ui/dropdown-menu' -import { getSharableEventId } from '@/lib/event' +import { getNoteBech32Id } from '@/lib/event' import { toNjump } from '@/lib/link' import { pubkeyToNpub } from '@/lib/pubkey' import { useMuteList } from '@/providers/MuteListProvider' @@ -56,7 +56,7 @@ export default function NoteOptions({ event, className }: { event: Event; classN