diff --git a/package.json b/package.json
index 3b6399cb..51e0144a 100644
--- a/package.json
+++ b/package.json
@@ -110,6 +110,7 @@
"electron": "^10.2.0",
"electron-builder": "^22.10.3",
"electron-rebuild": "^2.3.4",
+ "mime-types": "^2.1.27",
"node-abi": "2.19.3",
"node-json-minify": "1.0.0",
"terser": "^5.5.1"
diff --git a/src/classes/filesystem.class.js b/src/classes/filesystem.class.js
index dfbdf04b..a75b17c5 100644
--- a/src/classes/filesystem.class.js
+++ b/src/classes/filesystem.class.js
@@ -554,53 +554,13 @@ class FilesystemDisplay {
name = block.name;
}
+ let mime = require("mime-types")
+
block.path = block.path.replace(/\\/g, "/");
- let filetype = name.split(".")[name.split(".").length - 1];
+ let filetype = mime.lookup(name.split(".")[name.split(".").length - 1]);
switch (filetype) {
- case "xml":
- case "yaml":
- case "java":
- case "cs":
- case "cpp":
- case "h":
- case "html":
- case "css":
- case "js":
- case "md":
- case "log":
- case "bat":
- case "sh":
- case "gd":
- //To anyone else working with this: Feel free to add on to this list. - Surge
- case "txt":
- case "json":
- fs.readFile(block.path, 'utf-8', (err, data) => {
- if (err) {
- new Modal({
- type: "info",
- title: "Failed to load file: " + block.path,
- html: err
- });
- console.log(err);
- };
- window.keyboard.detach();
- new Modal(
- {
- type: "custom",
- title: _escapeHtml(name),
- html: `
`,
- buttons: [
- {label:"Save to Disk",action:`window.writeFile('${block.path}')`}
- ]
- }, () => {
- window.keyboard.attach();
- window.term[window.currentTerm].term.focus();
- }
- );
- });
- break;
- case "pdf":
+ case "application/pdf":
let html = `