Skip to content

Commit

Permalink
show embedded dvm link
Browse files Browse the repository at this point in the history
  • Loading branch information
hzrd149 committed Dec 3, 2024
1 parent 0b0aa6f commit 171ddba
Show file tree
Hide file tree
Showing 4 changed files with 18 additions and 19 deletions.
8 changes: 1 addition & 7 deletions src/components/embed-event/event-types/embedded-unknown.tsx
Original file line number Diff line number Diff line change
@@ -1,6 +1,5 @@
import { useContext, useMemo } from "react";
import { Box, Button, ButtonGroup, Card, CardBody, CardHeader, CardProps, Text } from "@chakra-ui/react";
import { useRenderedContent } from "applesauce-react/hooks";

import { NostrEvent } from "../../../types/nostr-event";
import UserAvatarLink from "../../user/user-avatar-link";
Expand All @@ -14,17 +13,12 @@ import DebugEventButton from "../../debug-modal/debug-event-button";
import DebugEventTags from "../../debug-modal/event-tags";
import { AppHandlerContext } from "../../../providers/route/app-handler-provider";
import { getSharableEventAddress } from "../../../services/event-relay-hint";
import { components } from "../../content";

const UnknownEventContentSymbol = Symbol.for("unknown-event-content");
const linkRenderers = [renderImageUrl, renderVideoUrl, renderAudioUrl, renderGenericUrl];

export default function EmbeddedUnknown({ event, ...props }: Omit<CardProps, "children"> & { event: NostrEvent }) {
const address = useMemo(() => getSharableEventAddress(event), [event]);
const { openAddress } = useContext(AppHandlerContext);

const alt = event.tags.find((t) => t[0] === "alt")?.[1];
const content = useRenderedContent(event, components, { linkRenderers, cacheKey: UnknownEventContentSymbol });

return (
<>
Expand All @@ -51,7 +45,7 @@ export default function EmbeddedUnknown({ event, ...props }: Omit<CardProps, "ch
</Text>
)}
<Box whiteSpace="pre-wrap" noOfLines={3}>
{content}
{event.content}
</Box>
{event.tags.length > 0 && <DebugEventTags event={event} />}
</CardBody>
Expand Down
6 changes: 6 additions & 0 deletions src/components/embed-event/index.tsx
Original file line number Diff line number Diff line change
Expand Up @@ -21,6 +21,8 @@ import EmbeddedSetOrList from "./event-types/embedded-list";
import EmbeddedReaction from "./event-types/embedded-reaction";
import EmbeddedDM from "./event-types/embedded-dm";
import EmbeddedUnknown from "./event-types/embedded-unknown";
import { DVM_CONTENT_DISCOVERY_JOB_KIND } from "../../helpers/nostr/dvm";
import DVMCard from "../../views/discovery/dvm-feed/components/dvm-card";

const EmbeddedGoal = lazy(() => import("./event-types/embedded-goal"));
const EmbeddedArticle = lazy(() => import("./event-types/embedded-article"));
Expand Down Expand Up @@ -85,6 +87,10 @@ export function EmbedEvent({
return <EmbeddedWikiPage page={event} {...cardProps} />;
case kinds.Zap:
return <EmbeddedZapRecept zap={event} {...cardProps} />;
case kinds.Handlerinformation:
// if its a content DVM
if (event.tags.some((t) => t[0] === "k" && t[1] === String(DVM_CONTENT_DISCOVERY_JOB_KIND)))
return <DVMCard dvm={event} />;
}

if (SET_KINDS.includes(event.kind) || LIST_KINDS.includes(event.kind))
Expand Down
18 changes: 9 additions & 9 deletions src/views/discovery/dvm-feed/components/dvm-card.tsx
Original file line number Diff line number Diff line change
Expand Up @@ -6,33 +6,33 @@ import { AddressPointer } from "nostr-tools/nip19";
import { NostrEvent } from "../../../../types/nostr-event";
import HoverLinkOverlay from "../../../../components/hover-link-overlay";
import { DVMAvatar } from "./dvm-avatar";
import { getEventAddressPointer } from "../../../../helpers/nostr/event";
import { getEventAddressPointer, getEventCoordinate } from "../../../../helpers/nostr/event";
import { DVMName } from "./dvm-name";
import DebugEventButton from "../../../../components/debug-modal/debug-event-button";
import useEventIntersectionRef from "../../../../hooks/use-event-intersection-ref";
import DVMFeedFavoriteButton from "../../../../components/dvm/dvm-feed-favorite-button";

export default function DVMCard({
appData,
dvm,
to,
onClick,
...props
}: Omit<CardProps, "children"> & { appData: NostrEvent; to: To; onClick?: LinkOverlayProps["onClick"] }) {
const metadata = JSON.parse(appData.content);
const pointer: AddressPointer = useMemo(() => getEventAddressPointer(appData), [appData]);
}: Omit<CardProps, "children"> & { dvm: NostrEvent; to?: To; onClick?: LinkOverlayProps["onClick"] }) {
const metadata = JSON.parse(dvm.content);
const pointer: AddressPointer = useMemo(() => getEventAddressPointer(dvm), [dvm]);

const ref = useEventIntersectionRef(appData);
const ref = useEventIntersectionRef(dvm);

return (
<>
<Card as={LinkBox} display="block" p="4" ref={ref} {...props}>
<Card as={LinkBox} display="block" p="4" minH="32" ref={ref} {...props}>
<Flex gap="2" float="right" zIndex={1}>
<DVMFeedFavoriteButton zIndex={1} size="sm" pointer={pointer} />
<DebugEventButton zIndex={1} size="sm" event={appData} />
<DebugEventButton zIndex={1} size="sm" event={dvm} />
</Flex>
<DVMAvatar pointer={pointer} w="24" float="left" mr="4" mb="2" />
<Heading size="md">
<HoverLinkOverlay as={RouterLink} to={to} onClick={onClick}>
<HoverLinkOverlay as={RouterLink} to={to || `/discovery/dvm/${getEventCoordinate(dvm)}`} onClick={onClick}>
<DVMName pointer={pointer} />
</HoverLinkOverlay>
</Heading>
Expand Down
5 changes: 2 additions & 3 deletions src/views/discovery/index.tsx
Original file line number Diff line number Diff line change
Expand Up @@ -10,7 +10,6 @@ import { DVM_CONTENT_DISCOVERY_JOB_KIND } from "../../helpers/nostr/dvm";
import useTimelineLoader from "../../hooks/use-timeline-loader";
import { useReadRelays } from "../../hooks/use-client-relays";
import RequireCurrentAccount from "../../providers/route/require-current-account";
import { getEventCoordinate } from "../../helpers/nostr/event";
import { useTimelineCurserIntersectionCallback } from "../../hooks/use-timeline-cursor-intersection-callback";
import IntersectionObserverProvider from "../../providers/local/intersection-observer";
import Telescope from "../../components/icons/telescope";
Expand Down Expand Up @@ -46,7 +45,7 @@ function DVMFeeds() {
</Heading>
<SimpleGrid columns={{ base: 1, md: 1, lg: 2, xl: 3 }} spacing="2">
{favoriteFeeds.map((feed) => (
<DVMCard key={getEventUID(feed)} appData={feed} to={`/discovery/dvm/${getEventCoordinate(feed)}`} />
<DVMCard key={getEventUID(feed)} dvm={feed} />
))}
</SimpleGrid>
</>
Expand All @@ -64,7 +63,7 @@ function DVMFeeds() {
<IntersectionObserverProvider callback={callback}>
<SimpleGrid columns={{ base: 1, md: 1, lg: 2, xl: 3 }} spacing="2">
{DVMs.filter((feed) => !isEventInList(favorites, feed)).map((feed) => (
<DVMCard key={getEventUID(feed)} appData={feed} to={`/discovery/dvm/${getEventCoordinate(feed)}`} />
<DVMCard key={getEventUID(feed)} dvm={feed} />
))}
</SimpleGrid>
</IntersectionObserverProvider>
Expand Down

0 comments on commit 171ddba

Please sign in to comment.