mirror of
https://github.com/StanGirard/quivr.git
synced 2024-12-19 08:42:08 +03:00
223d3d9102
* feat: 🎸 responsiveness chat * feat: 🎸 responsive added responsive menu * feat: 🎸 responsive brain management * fix: 🐛 docker prod
57 lines
2.3 KiB
TypeScript
57 lines
2.3 KiB
TypeScript
import { useTranslation } from "react-i18next";
|
|
import { AiOutlineLoading3Quarters } from "react-icons/ai";
|
|
|
|
import { ChatInput, KnowledgeToFeed } from "./components";
|
|
import { useActionBar } from "./hooks/useActionBar";
|
|
import { useKnowledgeUploader } from "./hooks/useKnowledgeUploader";
|
|
|
|
export const ActionsBar = (): JSX.Element => {
|
|
const {
|
|
shouldDisplayUploadCard,
|
|
setShouldDisplayUploadCard,
|
|
hasPendingRequests,
|
|
setHasPendingRequests,
|
|
} = useActionBar();
|
|
|
|
const { addContent, contents, feedBrain, removeContent } = useKnowledgeUploader({
|
|
setHasPendingRequests,
|
|
setShouldDisplayUploadCard,
|
|
});
|
|
|
|
const { t } = useTranslation(["chat"]);
|
|
|
|
return (
|
|
<>
|
|
{hasPendingRequests && (
|
|
<div className="flex mt-1 flex-col md:flex-row w-full shadow-md dark:shadow-primary/25 hover:shadow-xl transition-shadow rounded-xl bg-white dark:bg-black border border-black/10 dark:border-white/25 p-2 md:p-6 pl-6">
|
|
<div className="flex flex-1 items-center mb-2 md:mb-0">
|
|
<span className="text-sm md:text-1xl">{t("filesUploading")}</span>
|
|
</div>
|
|
<AiOutlineLoading3Quarters className="animate-spin text-2xl md:text-3xl self-center" />
|
|
</div>
|
|
)}
|
|
|
|
<div className={shouldDisplayUploadCard ? "h-full flex flex-col flex-auto" : ""}>
|
|
{shouldDisplayUploadCard && (
|
|
<div className="flex flex-1 overflow-y-scroll shadow-md dark:shadow-primary/25 hover:shadow-xl transition-shadow rounded-xl bg-white dark:bg-black border border-black/10 dark:border-white/25 p-4 md:p-6">
|
|
<KnowledgeToFeed
|
|
onClose={() => setShouldDisplayUploadCard(false)}
|
|
contents={contents}
|
|
addContent={addContent}
|
|
removeContent={removeContent}
|
|
/>
|
|
</div>
|
|
)}
|
|
<div className="flex mt-1 flex-col w-full shadow-md dark:shadow-primary/25 hover:shadow-xl transition-shadow rounded-xl bg-white dark:bg-black border border-black/10 dark:border-white/25 p-4 md:p-6">
|
|
<ChatInput
|
|
shouldDisplayUploadCard={shouldDisplayUploadCard}
|
|
setShouldDisplayUploadCard={setShouldDisplayUploadCard}
|
|
feedBrain={() => void feedBrain()}
|
|
hasContentToFeedBrain={contents.length > 0}
|
|
/>
|
|
</div>
|
|
</div>
|
|
</>
|
|
);
|
|
};
|