ProzillaOS/src/components/applications/media-viewer/MediaViewer.jsx
2023-12-12 22:53:17 +01:00

41 lines
No EOL
1 KiB
JavaScript

import { useEffect } from "react";
import { VirtualFile } from "../../../features/virtual-drive/virtualFile.js";
import { useWindowsManager } from "../../../hooks/windows/windowsManagerContext.js";
import styles from "./MediaViewer.module.css";
import { APPS } from "../../../constants/applications.js";
/**
* @param {object} props
* @param {VirtualFile} props.file
* @param {Function} props.close
* @param {Function} props.setTitle
*/
export function MediaViewer({ file, close, setTitle }) {
const windowsManager = useWindowsManager();
useEffect(() => {
if (file != null)
setTitle(file.id);
}, [file, setTitle]);
if (file == null) {
setTimeout(() => {
windowsManager.open(APPS.FILE_EXPLORER, { startPath: "~/Images" });
close();
}, 10);
return;
}
if (!["png"].includes(file.extension))
return (<p>Invalid file format.</p>);
if (file.source == null)
return (<p>File failed to load.</p>);
return (
<div className={styles.Container}>
<img src={file.source} alt={file.id} draggable="false"/>
</div>
);
}