Extra Mimetypes (#17)

Vastly expands the list of mimetypes we can detect from file extensions.
This commit is contained in:
Sylvie Crowe
2024-06-04 17:58:29 -07:00
committed by GitHub
parent 29e209e0b0
commit 2f2ff8a1cb
5 changed files with 1233 additions and 11 deletions
+14 -4
View File
@@ -57,7 +57,12 @@ function defaultEditorOptions(): MonacoTypes.editor.IEditorOptions {
return opts;
}
export function CodeEdit() {
interface CodeEditProps {
readonly: boolean;
text: string;
}
export function CodeEdit({ readonly, text }: CodeEditProps) {
const divRef = React.useRef<HTMLDivElement>(null);
const monacoRef = React.useRef<MonacoTypes.editor.IStandaloneCodeEditor | null>(null);
const theme = "wave-theme-dark";
@@ -83,8 +88,8 @@ export function CodeEdit() {
// TODO
}
const text = "Hello, world!";
const editorOpts = defaultEditorOptions();
editorOpts.readOnly = readonly;
return (
<div className="codeedit" ref={divRef}>
@@ -103,10 +108,15 @@ export function CodeEdit() {
);
}
export function CodeEditView() {
interface CodeEditViewProps {
readonly?: boolean;
text: string;
}
export function CodeEditView({ readonly = false, text }: CodeEditViewProps) {
return (
<div className="view-codeedit">
<CodeEdit />
<CodeEdit readonly={readonly} text={text} />
</div>
);
}
+6
View File
@@ -9,6 +9,7 @@ import * as util from "@/util/util";
import clsx from "clsx";
import * as jotai from "jotai";
import { CenteredDiv } from "../element/quickelems";
import { CodeEditView } from "./codeedit";
import { DirectoryPreview } from "./directorypreview";
import "./view.less";
@@ -179,6 +180,11 @@ function PreviewView({ blockId }: { blockId: string }) {
<pre>{fileContent}</pre>
</div>
);
} else if (
mimeType.startsWith("application") &&
(mimeType.includes("json") || mimeType.includes("yaml") || mimeType.includes("toml"))
) {
specializedView = <CodeEditView readonly={true} text={fileContent} />;
} else if (mimeType === "directory") {
specializedView = <DirectoryPreview contentAtom={fileContentAtom} fileNameAtom={fileNameAtom} />;
} else {