From f40df6ecd685fe5e5b3ca6f4d2689fce967d107d Mon Sep 17 00:00:00 2001 From: an-lee Date: Sat, 13 Jan 2024 16:40:26 +0800 Subject: [PATCH] refactor share --- .../components/audios/audio-detail.tsx | 2 +- .../renderer/components/messages/message.tsx | 4 +- .../components/messages/user-message.tsx | 72 ++++++++++++++++--- .../components/recordings/recording-card.tsx | 3 +- .../components/videos/video-detail.tsx | 2 +- enjoy/src/renderer/pages/conversation.tsx | 56 +-------------- 6 files changed, 69 insertions(+), 70 deletions(-) diff --git a/enjoy/src/renderer/components/audios/audio-detail.tsx b/enjoy/src/renderer/components/audios/audio-detail.tsx index c5a9276a..f8559845 100644 --- a/enjoy/src/renderer/components/audios/audio-detail.tsx +++ b/enjoy/src/renderer/components/audios/audio-detail.tsx @@ -77,7 +77,7 @@ export const AudioDetail = (props: { id?: string; md5?: string }) => { .then(() => { toast({ title: t("shared"), - description: t("sharedSuccessfully"), + description: t("sharedAudio"), }); }) .catch((err) => { diff --git a/enjoy/src/renderer/components/messages/message.tsx b/enjoy/src/renderer/components/messages/message.tsx index bc972274..e93e4b62 100644 --- a/enjoy/src/renderer/components/messages/message.tsx +++ b/enjoy/src/renderer/components/messages/message.tsx @@ -8,9 +8,8 @@ export const MessageComponent = (props: { configuration: { [key: string]: any }; onResend?: () => void; onRemove?: () => void; - onShare?: () => void; }) => { - const { message, configuration, onResend, onRemove, onShare } = props; + const { message, configuration, onResend, onRemove } = props; if (message.role === "assistant") { return ( ); } diff --git a/enjoy/src/renderer/components/messages/user-message.tsx b/enjoy/src/renderer/components/messages/user-message.tsx index 25ff3444..40a54391 100644 --- a/enjoy/src/renderer/components/messages/user-message.tsx +++ b/enjoy/src/renderer/components/messages/user-message.tsx @@ -1,12 +1,23 @@ import { + AlertDialog, + AlertDialogTrigger, + AlertDialogHeader, + AlertDialogDescription, + AlertDialogTitle, + AlertDialogContent, + AlertDialogFooter, + AlertDialogCancel, + AlertDialogAction, Avatar, AvatarImage, AvatarFallback, + Button, DropdownMenu, DropdownMenuTrigger, DropdownMenuContent, DropdownMenuItem, DropdownMenuSeparator, + useToast, } from "@renderer/components/ui"; import { SpeechPlayer } from "@renderer/components"; import { useContext, useState } from "react"; @@ -28,13 +39,37 @@ export const UserMessageComponent = (props: { configuration?: { [key: string]: any }; onResend?: () => void; onRemove?: () => void; - onShare?: () => void; }) => { - const { message, onResend, onRemove, onShare } = props; + const { message, onResend, onRemove } = props; const speech = message.speeches?.[0]; - const { user } = useContext(AppSettingsProviderContext); + const { user, webApi } = useContext(AppSettingsProviderContext); const [_, copyToClipboard] = useCopyToClipboard(); const [copied, setCopied] = useState(false); + const { toast } = useToast(); + + const handleShare = async () => { + if (message.role === "user") { + const content = message.content; + webApi + .createPost({ + metadata: { + type: "prompt", + content, + }, + }) + .then(() => { + toast({ + description: t("sharedPrompt"), + }); + }) + .catch((err) => { + toast({ + title: t("shareFailed"), + description: err.message, + }); + }); + } + }; return (
+ + + + + + + {t("sharePrompt")} + + {t("areYouSureToShareThisPromptToCommunity")} + + + + {t("cancel")} + + + + + + )}
diff --git a/enjoy/src/renderer/components/recordings/recording-card.tsx b/enjoy/src/renderer/components/recordings/recording-card.tsx index c9a488ac..d6d067f3 100644 --- a/enjoy/src/renderer/components/recordings/recording-card.tsx +++ b/enjoy/src/renderer/components/recordings/recording-card.tsx @@ -47,6 +47,7 @@ export const RecordingCard = (props: { await EnjoyApp.recordings.upload(recording.id); } catch (error) { toast({ + title: t("shareFailed"), description: error.message, variant: "destructive", }); @@ -61,7 +62,7 @@ export const RecordingCard = (props: { }) .then(() => { toast({ - description: t("recordingShared"), + description: t("sharedRecording"), }); }) .catch((error) => { diff --git a/enjoy/src/renderer/components/videos/video-detail.tsx b/enjoy/src/renderer/components/videos/video-detail.tsx index 58d7ecce..edfa8ae3 100644 --- a/enjoy/src/renderer/components/videos/video-detail.tsx +++ b/enjoy/src/renderer/components/videos/video-detail.tsx @@ -87,7 +87,7 @@ export const VideoDetail = (props: { id?: string; md5?: string }) => { }) .then(() => { toast({ - description: t("sharedSuccessfully"), + description: t("sharedVideo"), }); }) .catch((err) => { diff --git a/enjoy/src/renderer/pages/conversation.tsx b/enjoy/src/renderer/pages/conversation.tsx index ed4ed6af..ff60e62e 100644 --- a/enjoy/src/renderer/pages/conversation.tsx +++ b/enjoy/src/renderer/pages/conversation.tsx @@ -1,12 +1,5 @@ import { useState, useEffect, useReducer, useContext, useRef } from "react"; import { - AlertDialog, - AlertDialogHeader, - AlertDialogDescription, - AlertDialogTitle, - AlertDialogContent, - AlertDialogFooter, - AlertDialogCancel, Button, ScrollArea, Textarea, @@ -32,10 +25,9 @@ export default () => { const [editting, setEditting] = useState(false); const [conversation, setConversation] = useState(); const { addDblistener, removeDbListener } = useContext(DbProviderContext); - const { EnjoyApp, webApi } = useContext(AppSettingsProviderContext); + const { EnjoyApp } = useContext(AppSettingsProviderContext); const [content, setConent] = useState(""); const [submitting, setSubmitting] = useState(false); - const [sharing, setSharing] = useState(); const { toast } = useToast(); @@ -174,31 +166,6 @@ export default () => { }, 500); }; - const handleShare = async (message: MessageType) => { - if (message.role === "user") { - const content = message.content; - webApi - .createPost({ - metadata: { - type: "prompt", - content, - }, - }) - .then(() => { - toast({ - description: t("sharedSuccessfully"), - }); - }) - .catch((err) => { - toast({ - title: t("shareFailed"), - description: err.message, - }); - }); - setSharing(null); - } - }; - useEffect(() => { fetchConversation(); fetchMessages(); @@ -288,7 +255,6 @@ export default () => { dispatchMessages({ type: "destroy", record: message }); }} - onShare={() => setSharing(message)} /> ))} {offset > -1 && ( @@ -309,26 +275,6 @@ export default () => { - setSharing(null)} - > - - - {t("sharePrompt")} - - {t("areYouSureToShareThisPromptToCommunity")} - - - - {t("cancel")} - - - - -