2024-03-23 14:44:05 +05:30
|
|
|
import logoImage from "~/assets/icon.png"
|
|
|
|
|
import { useMessage } from "~/hooks/useMessage"
|
2024-02-02 00:13:10 +05:30
|
|
|
import { Link } from "react-router-dom"
|
2024-02-03 11:18:15 +05:30
|
|
|
import { Tooltip } from "antd"
|
2024-05-23 22:48:46 +05:30
|
|
|
import { BoxesIcon, BrainCog, CogIcon, EraserIcon } from "lucide-react"
|
2024-03-24 21:00:00 +05:30
|
|
|
import { useTranslation } from "react-i18next"
|
2024-05-24 20:00:09 +05:30
|
|
|
import { CurrentChatModelSettings } from "@/components/Common/Settings/CurrentChatModelSettings"
|
2024-05-23 22:48:46 +05:30
|
|
|
import React from "react"
|
2024-05-24 21:01:10 +05:30
|
|
|
import { useStorage } from "@plasmohq/storage/hook"
|
2024-02-01 13:40:44 +05:30
|
|
|
export const SidepanelHeader = () => {
|
2024-05-24 21:01:10 +05:30
|
|
|
const [hideCurrentChatModelSettings] = useStorage(
|
|
|
|
|
"hideCurrentChatModelSettings",
|
|
|
|
|
false
|
|
|
|
|
)
|
|
|
|
|
|
2024-04-15 11:32:30 +05:30
|
|
|
const { clearChat, isEmbedding, messages, streaming } = useMessage()
|
2024-03-24 21:00:00 +05:30
|
|
|
const { t } = useTranslation(["sidepanel", "common"])
|
2024-05-23 22:48:46 +05:30
|
|
|
const [openModelSettings, setOpenModelSettings] = React.useState(false)
|
2024-03-24 21:00:00 +05:30
|
|
|
|
2024-02-01 13:40:44 +05:30
|
|
|
return (
|
2024-02-07 23:22:06 +05:30
|
|
|
<div className="flex px-3 justify-between bg-white dark:bg-[#171717] border-b border-gray-300 dark:border-gray-700 py-4 items-center">
|
2024-02-01 13:40:44 +05:30
|
|
|
<div className="focus:outline-none focus-visible:ring-2 focus-visible:ring-pink-700 flex items-center dark:text-white">
|
2024-03-24 21:00:00 +05:30
|
|
|
<img
|
|
|
|
|
className="h-6 w-auto"
|
|
|
|
|
src={logoImage}
|
|
|
|
|
alt={t("common:pageAssist")}
|
|
|
|
|
/>
|
|
|
|
|
<span className="ml-1 text-sm ">{t("common:pageAssist")}</span>
|
2024-02-01 13:40:44 +05:30
|
|
|
</div>
|
|
|
|
|
|
|
|
|
|
<div className="flex items-center space-x-3">
|
2024-02-03 11:18:15 +05:30
|
|
|
{isEmbedding ? (
|
2024-03-24 21:00:00 +05:30
|
|
|
<Tooltip title={t("tooltip.embed")}>
|
2024-02-23 23:25:17 +05:30
|
|
|
<BoxesIcon className="h-5 w-5 text-gray-500 dark:text-gray-400 animate-bounce animate-infinite" />
|
2024-02-03 11:18:15 +05:30
|
|
|
</Tooltip>
|
|
|
|
|
) : null}
|
2024-04-15 11:32:30 +05:30
|
|
|
{messages.length > 0 && !streaming && (
|
|
|
|
|
<button
|
|
|
|
|
title={t("tooltip.clear")}
|
|
|
|
|
onClick={() => {
|
|
|
|
|
clearChat()
|
|
|
|
|
}}
|
|
|
|
|
className="flex items-center space-x-1 focus:outline-none focus-visible:ring-2 focus-visible:ring-pink-700">
|
|
|
|
|
<EraserIcon className="h-5 w-5 text-gray-500 dark:text-gray-400" />
|
|
|
|
|
</button>
|
2024-04-14 18:16:47 +05:30
|
|
|
)}
|
|
|
|
|
{/* <Tooltip title={t("tooltip.history")}>
|
|
|
|
|
<Link to="/history">
|
|
|
|
|
<HistoryIcon className="h-5 w-5 text-gray-500 dark:text-gray-400" />
|
|
|
|
|
</Link>
|
|
|
|
|
</Tooltip> */}
|
2024-05-24 21:01:10 +05:30
|
|
|
{!hideCurrentChatModelSettings && (
|
|
|
|
|
<Tooltip title={t("common:currentChatModelSettings")}>
|
|
|
|
|
<button
|
|
|
|
|
onClick={() => setOpenModelSettings(true)}
|
|
|
|
|
className="text-gray-500 dark:text-gray-400 hover:text-gray-600 dark:hover:text-gray-300 transition-colors">
|
|
|
|
|
<BrainCog className="w-5 h-5" />
|
|
|
|
|
</button>
|
|
|
|
|
</Tooltip>
|
|
|
|
|
)}
|
2024-02-02 00:13:10 +05:30
|
|
|
<Link to="/settings">
|
|
|
|
|
<CogIcon className="h-5 w-5 text-gray-500 dark:text-gray-400" />
|
|
|
|
|
</Link>
|
2024-02-01 13:40:44 +05:30
|
|
|
</div>
|
2024-05-23 22:48:46 +05:30
|
|
|
<CurrentChatModelSettings
|
|
|
|
|
open={openModelSettings}
|
|
|
|
|
setOpen={setOpenModelSettings}
|
|
|
|
|
/>
|
2024-02-01 13:40:44 +05:30
|
|
|
</div>
|
|
|
|
|
)
|
|
|
|
|
}
|