diff --git a/src/components/Message/MessageBase.tsx b/src/components/Message/MessageBase.tsx
index 52a7d204..9d5873c2 100644
--- a/src/components/Message/MessageBase.tsx
+++ b/src/components/Message/MessageBase.tsx
@@ -35,7 +35,7 @@ import {
import { AiOutlineEdit } from "react-icons/ai";
import { MdContentCopy } from "react-icons/md";
-import { TbDownload, TbShare2, TbTrash } from "react-icons/tb";
+import { TbDownload, TbShare3, TbTrash } from "react-icons/tb";
import { Link as ReactRouterLink } from "react-router-dom";
import ResizeTextarea from "react-textarea-autosize";
import { Menu, MenuDivider, MenuItem, MenuItemLink, SubMenu } from "../Menu";
@@ -565,7 +565,7 @@ function MessageBase({
>
)}
-
- >
- );
- }
-
return (
<>
- } onClick={supportsWebShare ? handleWebShare : onOpen}>
+ } onClick={onOpen}>
Share
@@ -242,7 +208,7 @@ function OptionsButton({
Export as YAML
-
+ {!!chat && }
{!!onAttachFiles && (
<>
diff --git a/src/components/ShareModal.tsx b/src/components/ShareModal.tsx
index 799250c6..39cfb135 100644
--- a/src/components/ShareModal.tsx
+++ b/src/components/ShareModal.tsx
@@ -22,7 +22,7 @@ import {
} from "@chakra-ui/react";
import { useCopyToClipboard } from "react-use";
import { BsGithub } from "react-icons/bs";
-import { TbCopy } from "react-icons/tb";
+import { TbCopy, TbShare3 } from "react-icons/tb";
import { useUser } from "../hooks/use-user";
import { ChatCraftChat } from "../lib/ChatCraftChat";
@@ -45,6 +45,7 @@ function AuthenticatedForm({ chat, user }: AuthenticatedForm) {
const [isSharing, setIsSharing] = useState(false);
const [, copyToClipboard] = useCopyToClipboard();
const { callChatApi } = useChatOpenAI();
+ const supportsWebShare = !!navigator.share;
const handleShareClick = async () => {
setIsSharing(true);
@@ -112,17 +113,25 @@ function AuthenticatedForm({ chat, user }: AuthenticatedForm) {
copyToClipboard(feedUrl);
}, [feedUrl, copyToClipboard]);
+ const handleShareUrl = async (url: string) => {
+ await navigator
+ .share({ title: "ChatCraft Chat", text: chat.summary, url })
+ .catch(console.error);
+ };
+
return (
Summary
-
+
- Use your own Title and Summary, or click{" "}
- Summarize to generate them automatically using GPT 3.5.
+ Enter your own Summary, or click Summarize to generate
+ one automatically.