feat(chat): add support action cards and live entitlements
This commit is contained in:
@@ -1,6 +1,7 @@
|
||||
"use client";
|
||||
import type { CommercialAction } from "@/data/schemas/chat";
|
||||
import type { ChatAction, CommercialAction } from "@/data/schemas/chat";
|
||||
|
||||
import { ChatActionCard } from "./chat-action-card";
|
||||
import { CommercialActionCard } from "./commercial-action-card";
|
||||
import { ImageBubble } from "./image-bubble";
|
||||
import { LockedImageMessageCard } from "./locked-image-message-card";
|
||||
@@ -23,6 +24,7 @@ export interface MessageContentProps {
|
||||
lockedPrivate?: boolean | null;
|
||||
privateMessageHint?: string | null;
|
||||
commercialAction?: CommercialAction | null;
|
||||
chatAction?: ChatAction | null;
|
||||
isUnlockingMessage?: boolean;
|
||||
onUnlockPrivateMessage?: ChatMessageAction;
|
||||
onUnlockVoiceMessage?: ChatMessageAction;
|
||||
@@ -30,6 +32,9 @@ export interface MessageContentProps {
|
||||
onOpenImage?: (displayMessageId: string) => void;
|
||||
onCommercialAction?: (action: CommercialAction) => void;
|
||||
onCommercialActionDismiss?: (action: CommercialAction) => void;
|
||||
onChatActionViewed?: (action: ChatAction) => void;
|
||||
onChatAction?: (action: ChatAction) => void | Promise<void>;
|
||||
onChatActionDismiss?: (action: ChatAction) => void;
|
||||
}
|
||||
|
||||
type ChatMessageAction = (
|
||||
@@ -53,6 +58,7 @@ export function MessageContent({
|
||||
lockedPrivate,
|
||||
privateMessageHint,
|
||||
commercialAction,
|
||||
chatAction,
|
||||
isUnlockingMessage,
|
||||
onUnlockPrivateMessage,
|
||||
onUnlockVoiceMessage,
|
||||
@@ -60,6 +66,9 @@ export function MessageContent({
|
||||
onOpenImage,
|
||||
onCommercialAction,
|
||||
onCommercialActionDismiss,
|
||||
onChatActionViewed,
|
||||
onChatAction,
|
||||
onChatActionDismiss,
|
||||
}: MessageContentProps) {
|
||||
const hasImage = imageUrl != null && imageUrl.length > 0;
|
||||
const hasAudio = audioUrl != null && audioUrl.length > 0;
|
||||
@@ -134,7 +143,14 @@ export function MessageContent({
|
||||
) : null}
|
||||
</>
|
||||
)}
|
||||
{isFromAI && commercialAction ? (
|
||||
{isFromAI && chatAction ? (
|
||||
<ChatActionCard
|
||||
action={chatAction}
|
||||
onViewed={onChatActionViewed}
|
||||
onActivate={onChatAction}
|
||||
onDismiss={onChatActionDismiss}
|
||||
/>
|
||||
) : isFromAI && commercialAction ? (
|
||||
<CommercialActionCard
|
||||
action={commercialAction}
|
||||
onActivate={onCommercialAction}
|
||||
|
||||
Reference in New Issue
Block a user