Skip to content

Commit f66f24c

Browse files
authored
Feed icon open raw feed (#573)
* Feed icon open raw feed * remove unused useCopyToClipboard * get parsedURL.origin
1 parent d8466be commit f66f24c

File tree

1 file changed

+12
-16
lines changed

1 file changed

+12
-16
lines changed

src/components/Header.tsx

+12-16
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,4 @@
11
import { useCallback, type RefObject } from "react";
2-
import { useCopyToClipboard } from "react-use";
32
import {
43
Avatar,
54
Box,
@@ -42,7 +41,6 @@ type HeaderProps = {
4241

4342
function Header({ chatId, inputPromptRef, searchText, onToggleSidebar }: HeaderProps) {
4443
const { toggleColorMode } = useColorMode();
45-
const [, copyToClipboard] = useCopyToClipboard();
4644
const {
4745
isOpen: isPrefModalOpen,
4846
onOpen: onPrefModalOpen,
@@ -59,7 +57,7 @@ function Header({ chatId, inputPromptRef, searchText, onToggleSidebar }: HeaderP
5957
onClose: onSysPromptModalClose,
6058
} = useDisclosure();
6159
const { user, login, logout } = useUser();
62-
const { info, error } = useAlert();
60+
const { error } = useAlert();
6361

6462
const handleLoginLogout = useCallback(
6563
(provider: string) => {
@@ -74,29 +72,27 @@ function Header({ chatId, inputPromptRef, searchText, onToggleSidebar }: HeaderP
7472

7573
const isMobile = useMobileBreakpoint();
7674

77-
const handleCopyFeedUrl = useCallback(async () => {
75+
const handleOpenFeedUrl = useCallback(async () => {
7876
if (!user) {
7977
error({
80-
title: "Failed to Share Message",
81-
message: "Can't share message because user is not logged in",
78+
title: "Failed to Open Feed",
79+
message: "Can't open feed because user is not logged in",
8280
});
8381
return;
8482
}
8583
try {
86-
const userFeedUrl = `https://chatcraft.org/api/share/${user.username}/feed.atom`;
87-
info({
88-
title: "Copied Shared Chats Feed URL Successfully",
89-
message: `URL has been copied to clipboard`,
90-
});
91-
copyToClipboard(userFeedUrl);
84+
const currentUrl = window.location.href;
85+
const parsedUrl = new URL(currentUrl);
86+
const userFeedUrl = `${parsedUrl.origin}/api/share/${user.username}/feed.atom`;
87+
window.open(userFeedUrl, "_blank");
9288
} catch (err) {
9389
console.error(err);
9490
error({
95-
title: "Failed to Copy Shared Chats Feed URL",
96-
message: "An error occurred while trying to copy shared chats feed URL.",
91+
title: "Failed to Open Shared Chats Feed URL",
92+
message: "An error occurred while trying to open shared chats feed URL.",
9793
});
9894
}
99-
}, [user, info, error, copyToClipboard]);
95+
}, [user, error]);
10096

10197
return (
10298
<Flex
@@ -150,7 +146,7 @@ function Header({ chatId, inputPromptRef, searchText, onToggleSidebar }: HeaderP
150146
title={"Copy Shared Chats Feed URL"}
151147
icon={<FiRss />}
152148
variant="ghost"
153-
onClick={handleCopyFeedUrl}
149+
onClick={handleOpenFeedUrl}
154150
/>
155151
<IconButton
156152
aria-label={useColorModeValue("Switch to Dark Mode", "Switch to Light Mode")}

0 commit comments

Comments
 (0)