Amiel's picture
Upload folder using huggingface_hub
676fc08 verified
"use client";
import { useMemo } from "react";
import { useTranslation } from "react-i18next";
import dayjs from "dayjs";
import Content from "./Content";
import {
Dialog,
DialogContent,
DialogDescription,
DialogHeader,
DialogTitle,
} from "@/components/ui/dialog";
import { useKnowledgeStore } from "@/store/knowledge";
type Props = {
id: string;
open: boolean;
onClose: () => void;
};
function formatDate(timestamp: number) {
return dayjs(timestamp).format("YYYY-MM-DD HH:mm");
}
function KnowledgeInfor({ id }: { id: string }) {
const { t } = useTranslation();
const knowledge = useMemo(() => {
const { knowledges } = useKnowledgeStore.getState();
const detail = knowledges.find((item) => item.id === id);
return detail;
}, [id]);
if (knowledge) {
const createdAt = formatDate(knowledge.createdAt);
if (knowledge.type === "file" && knowledge.fileMeta) {
return t("knowledge.fileInfor", { createdAt });
} else if (knowledge.type === "url" && knowledge.url) {
return t("knowledge.urlInfor", { createdAt });
} else {
return t("knowledge.createInfor", { createdAt });
}
}
return null;
}
function Resource({ id, open, onClose }: Props) {
const { t } = useTranslation();
function handleClose(open: boolean) {
if (!open) onClose();
}
return (
<Dialog open={open} onOpenChange={handleClose}>
<DialogContent className="max-lg:max-w-screen-sm max-w-screen-md gap-2">
<DialogHeader>
<DialogTitle>{t("knowledge.resource")}</DialogTitle>
<DialogDescription>
<KnowledgeInfor id={id} />
</DialogDescription>
</DialogHeader>
<Content
id={id}
editClassName="magicdown-editor h-72 overflow-y-auto"
onSubmit={() => onClose()}
></Content>
</DialogContent>
</Dialog>
);
}
export default Resource;