import { useContext } from "preact/hooks"; import FNote from "../../entities/fnote"; import { t } from "../../services/i18n"; import { downloadFileNote, openNoteExternally } from "../../services/open"; import protected_session_holder from "../../services/protected_session_holder"; import server from "../../services/server"; import toast from "../../services/toast"; import { formatSize } from "../../services/utils"; import Button from "../react/Button"; import { FormFileUploadButton } from "../react/FormFileUpload"; import { useNoteBlob, useNoteLabel } from "../react/hooks"; import { ParentComponent } from "../react/react_utils"; import { TabContext } from "./ribbon-interface"; export default function FilePropertiesTab({ note, ntxId }: Pick) { const [ originalFileName ] = useNoteLabel(note, "originalFileName"); const canAccessProtectedNote = !note?.isProtected || protected_session_holder.isProtectedSessionAvailable(); const blob = useNoteBlob(note); const parentComponent = useContext(ParentComponent); return (
{note && (
{t("file_properties.note_id")}: {note.noteId} {t("file_properties.original_file_name")}: {originalFileName ?? "?"}
{t("file_properties.file_type")}: {note.mime} {t("file_properties.file_size")}: {formatSize(blob?.contentLength ?? 0)}
)}
); } export function buildUploadNewFileRevisionListener(note: FNote) { return (fileToUpload: FileList | null) => { if (!fileToUpload) { return; } server.upload(`notes/${note.noteId}/file`, fileToUpload[0]).then((result) => { if (result.uploaded) { toast.showMessage(t("file_properties.upload_success")); } else { toast.showError(t("file_properties.upload_failed")); } }); }; }