diff --git a/frontend/app/view/directorypreview.less b/frontend/app/view/directorypreview.less
index 2ae13fba0..484ee9aa5 100644
--- a/frontend/app/view/directorypreview.less
+++ b/frontend/app/view/directorypreview.less
@@ -21,6 +21,7 @@
.dir-table-head-cell {
flex: 0 0 auto;
+ user-select: none;
}
.dir-table-head-cell:not(:first-child) {
position: relative;
diff --git a/frontend/app/view/directorypreview.tsx b/frontend/app/view/directorypreview.tsx
index 7fd64e5e3..46478c912 100644
--- a/frontend/app/view/directorypreview.tsx
+++ b/frontend/app/view/directorypreview.tsx
@@ -197,7 +197,7 @@ function DirectoryTable({
}),
columnHelper.accessor("modestr", {
cell: (info) => {info.getValue()},
- header: () => Permissions,
+ header: () => Perm,
size: 91,
minSize: 90,
sortingFn: "alphanumeric",
diff --git a/frontend/app/view/preview.tsx b/frontend/app/view/preview.tsx
index 916aa0b7e..40e3cdbc1 100644
--- a/frontend/app/view/preview.tsx
+++ b/frontend/app/view/preview.tsx
@@ -20,6 +20,16 @@ import "./view.less";
const MaxFileSize = 1024 * 1024 * 10; // 10MB
const MaxCSVSize = 1024 * 1024 * 1; // 1MB
+function isTextFile(mimeType: string): boolean {
+ return (
+ mimeType.startsWith("text/") ||
+ mimeType == "application/sql" ||
+ (mimeType.startsWith("application/") &&
+ (mimeType.includes("json") || mimeType.includes("yaml") || mimeType.includes("toml"))) ||
+ mimeType == "application/pem-certificate-chain"
+ );
+}
+
export class PreviewModel implements ViewModel {
blockId: string;
blockAtom: jotai.Atom;
@@ -407,12 +417,7 @@ function PreviewView({ blockId, model }: { blockId: string; model: PreviewModel
/>
);
}
- } else if (
- mimeType.startsWith("text/") ||
- mimeType == "application/sql" ||
- (mimeType.startsWith("application/") &&
- (mimeType.includes("json") || mimeType.includes("yaml") || mimeType.includes("toml")))
- ) {
+ } else if (isTextFile(mimeType)) {
specializedView = ;
} else if (mimeType === "directory") {
specializedView = ;
@@ -432,7 +437,6 @@ function PreviewView({ blockId, model }: { blockId: string; model: PreviewModel
return (