feat(chat): unlock paid messages before payment
This commit is contained in:
@@ -15,8 +15,9 @@ export interface MessageContentProps {
|
||||
lockReason?: string | null;
|
||||
lockedPrivate?: boolean | null;
|
||||
privateMessageHint?: string | null;
|
||||
onUnlockPrivateMessage?: () => void;
|
||||
onUnlockVoiceMessage?: () => void;
|
||||
isUnlockingMessage?: boolean;
|
||||
onUnlockPrivateMessage?: (messageId: string) => void;
|
||||
onUnlockVoiceMessage?: (messageId: string) => void;
|
||||
}
|
||||
|
||||
const IMAGE_PLACEHOLDER = "[图片]";
|
||||
@@ -32,6 +33,7 @@ export function MessageContent({
|
||||
lockReason,
|
||||
lockedPrivate,
|
||||
privateMessageHint,
|
||||
isUnlockingMessage,
|
||||
onUnlockPrivateMessage,
|
||||
onUnlockVoiceMessage,
|
||||
}: MessageContentProps) {
|
||||
@@ -42,6 +44,14 @@ export function MessageContent({
|
||||
lockedPrivate === true ||
|
||||
(locked === true && lockReason === "private_message");
|
||||
const isLockedVoiceMessage = locked === true && lockReason === "voice_message";
|
||||
const handleUnlockPrivateMessage =
|
||||
messageId && onUnlockPrivateMessage
|
||||
? () => onUnlockPrivateMessage(messageId)
|
||||
: undefined;
|
||||
const handleUnlockVoiceMessage =
|
||||
isLockedVoiceMessage && messageId && onUnlockVoiceMessage
|
||||
? () => onUnlockVoiceMessage(messageId)
|
||||
: undefined;
|
||||
|
||||
return (
|
||||
<div
|
||||
@@ -59,8 +69,8 @@ export function MessageContent({
|
||||
{isLockedPrivateMessage ? (
|
||||
<PrivateMessageCard
|
||||
hint={privateMessageHint}
|
||||
isUnlocking={false}
|
||||
onUnlock={onUnlockPrivateMessage}
|
||||
isUnlocking={isUnlockingMessage}
|
||||
onUnlock={handleUnlockPrivateMessage}
|
||||
/>
|
||||
) : (
|
||||
<>
|
||||
@@ -78,12 +88,8 @@ export function MessageContent({
|
||||
isFromAI={isFromAI}
|
||||
locked={isLockedVoiceMessage}
|
||||
hint={privateMessageHint}
|
||||
isUnlocking={false}
|
||||
onUnlock={
|
||||
isLockedVoiceMessage
|
||||
? onUnlockVoiceMessage
|
||||
: undefined
|
||||
}
|
||||
isUnlocking={isUnlockingMessage}
|
||||
onUnlock={handleUnlockVoiceMessage}
|
||||
/>
|
||||
) : null}
|
||||
{hasText && !hasAudio ? (
|
||||
|
||||
Reference in New Issue
Block a user