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"; export default function FilePropertiesTab({ note }: { note?: FNote | null }) { const [ originalFileName ] = useNoteLabel(note, "originalFileName"); const canAccessProtectedNote = !note?.isProtected || protected_session_holder.isProtectedSessionAvailable(); const blob = useNoteBlob(note); 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")); } }); }; }