update
This commit is contained in:
100
main.js
100
main.js
@@ -2049,6 +2049,38 @@ var GridView = class extends import_obsidian7.ItemView {
|
||||
cls: "ge-title",
|
||||
text: `\u{1F4C1} ..`,
|
||||
});
|
||||
const parentFolderObj = this.app.vault.getAbstractFileByPath(parentPath);
|
||||
if (parentFolderObj instanceof import_obsidian7.TFolder) {
|
||||
const parentFiles = parentFolderObj.children
|
||||
.filter((c) => c instanceof import_obsidian7.TFile)
|
||||
.filter((f) => isDocumentFile(f) || isMediaFile(f));
|
||||
const filteredParentFiles = this.sortFiles(this.ignoredFiles(parentFiles));
|
||||
if (filteredParentFiles.length > 0) {
|
||||
const filesList = parentFolderEl.createDiv("ge-folder-files");
|
||||
for (const f of filteredParentFiles) {
|
||||
const fileRow = filesList.createDiv("ge-folder-file-item");
|
||||
fileRow.dataset.filePath = f.path;
|
||||
const icon = fileRow.createDiv("ge-icon-container");
|
||||
const ext = f.extension.toLowerCase();
|
||||
let iconName = "file";
|
||||
if (isImageFile(f)) iconName = "image";
|
||||
else if (isVideoFile(f)) iconName = "play-circle";
|
||||
else if (isAudioFile(f)) iconName = "music";
|
||||
else if (ext === "pdf") iconName = "ge-pdf-file";
|
||||
else if (ext === "canvas") iconName = "layout-dashboard";
|
||||
else if (ext === "md" || ext === "txt") iconName = "file-text";
|
||||
(0, import_obsidian8.setIcon)(icon, iconName);
|
||||
fileRow.createEl("span", {
|
||||
cls: "ge-folder-file-title",
|
||||
text: f.basename,
|
||||
});
|
||||
fileRow.addEventListener("click", (e) => {
|
||||
e.stopPropagation();
|
||||
this.app.workspace.getLeaf(false).openFile(f);
|
||||
});
|
||||
}
|
||||
}
|
||||
}
|
||||
parentFolderEl.addEventListener("click", () => {
|
||||
this.setSource("folder", parentPath);
|
||||
this.clearSelection();
|
||||
@@ -2218,6 +2250,35 @@ var GridView = class extends import_obsidian7.ItemView {
|
||||
this.setSource("folder", folder.path);
|
||||
this.clearSelection();
|
||||
});
|
||||
const folderFiles = folder.children
|
||||
.filter((c) => c instanceof import_obsidian7.TFile)
|
||||
.filter((f) => isDocumentFile(f) || isMediaFile(f));
|
||||
const filteredFolderFiles = this.sortFiles(this.ignoredFiles(folderFiles));
|
||||
if (filteredFolderFiles.length > 0) {
|
||||
const filesList = folderEl.createDiv("ge-folder-files");
|
||||
for (const f of filteredFolderFiles) {
|
||||
const fileRow = filesList.createDiv("ge-folder-file-item");
|
||||
fileRow.dataset.filePath = f.path;
|
||||
const icon = fileRow.createDiv("ge-icon-container");
|
||||
const ext = f.extension.toLowerCase();
|
||||
let iconName = "file";
|
||||
if (isImageFile(f)) iconName = "image";
|
||||
else if (isVideoFile(f)) iconName = "play-circle";
|
||||
else if (isAudioFile(f)) iconName = "music";
|
||||
else if (ext === "pdf") iconName = "ge-pdf-file";
|
||||
else if (ext === "canvas") iconName = "layout-dashboard";
|
||||
else if (ext === "md" || ext === "txt") iconName = "file-text";
|
||||
(0, import_obsidian8.setIcon)(icon, iconName);
|
||||
fileRow.createEl("span", {
|
||||
cls: "ge-folder-file-title",
|
||||
text: f.basename,
|
||||
});
|
||||
fileRow.addEventListener("click", (e) => {
|
||||
e.stopPropagation();
|
||||
this.app.workspace.getLeaf(false).openFile(f);
|
||||
});
|
||||
}
|
||||
}
|
||||
folderEl.addEventListener("contextmenu", (event) => {
|
||||
event.preventDefault();
|
||||
const menu = new import_obsidian7.Menu();
|
||||
@@ -2455,52 +2516,43 @@ var GridView = class extends import_obsidian7.ItemView {
|
||||
threshold: 0.1,
|
||||
}
|
||||
);
|
||||
let filesCardEl = null;
|
||||
let filesListEl = null;
|
||||
if (files.length > 0) {
|
||||
filesCardEl = container.createDiv("ge-grid-item ge-files-card");
|
||||
filesListEl = filesCardEl.createDiv("ge-folder-files");
|
||||
}
|
||||
for (const file of files) {
|
||||
const fileEl = container.createDiv("ge-grid-item");
|
||||
const fileEl = filesListEl.createDiv("ge-folder-file-item");
|
||||
this.gridItems.push(fileEl);
|
||||
fileEl.dataset.filePath = file.path;
|
||||
const contentArea = fileEl.createDiv("ge-content-area");
|
||||
const titleContainer = contentArea.createDiv("ge-title-container");
|
||||
const extension = file.extension.toLowerCase();
|
||||
const iconContainer = fileEl.createDiv("ge-icon-container");
|
||||
if (isImageFile(file)) {
|
||||
const iconContainer = titleContainer.createDiv(
|
||||
"ge-icon-container ge-img"
|
||||
);
|
||||
iconContainer.addClass("ge-img");
|
||||
(0, import_obsidian8.setIcon)(iconContainer, "image");
|
||||
} else if (isVideoFile(file)) {
|
||||
const iconContainer = titleContainer.createDiv(
|
||||
"ge-icon-container ge-video"
|
||||
);
|
||||
iconContainer.addClass("ge-video");
|
||||
(0, import_obsidian8.setIcon)(iconContainer, "play-circle");
|
||||
} else if (isAudioFile(file)) {
|
||||
const iconContainer = titleContainer.createDiv(
|
||||
"ge-icon-container ge-audio"
|
||||
);
|
||||
iconContainer.addClass("ge-audio");
|
||||
(0, import_obsidian8.setIcon)(iconContainer, "music");
|
||||
} else if (extension === "pdf") {
|
||||
const iconContainer = titleContainer.createDiv(
|
||||
"ge-icon-container ge-pdf"
|
||||
);
|
||||
iconContainer.addClass("ge-pdf");
|
||||
(0, import_obsidian8.setIcon)(iconContainer, "ge-pdf-file");
|
||||
} else if (extension === "canvas") {
|
||||
const iconContainer = titleContainer.createDiv(
|
||||
"ge-icon-container ge-canvas"
|
||||
);
|
||||
iconContainer.addClass("ge-canvas");
|
||||
(0, import_obsidian8.setIcon)(iconContainer, "layout-dashboard");
|
||||
} else if (extension === "md" || extension === "txt") {
|
||||
const iconContainer = titleContainer.createDiv("ge-icon-container");
|
||||
(0, import_obsidian8.setIcon)(iconContainer, "file-text");
|
||||
} else {
|
||||
const iconContainer = titleContainer.createDiv("ge-icon-container");
|
||||
(0, import_obsidian8.setIcon)(iconContainer, "file");
|
||||
}
|
||||
const titleEl = titleContainer.createEl("span", {
|
||||
cls: "ge-title",
|
||||
const titleEl = fileEl.createEl("span", {
|
||||
cls: "ge-folder-file-title",
|
||||
text: file.basename,
|
||||
});
|
||||
titleEl.setAttribute("title", file.basename);
|
||||
fileEl.createDiv("ge-image-area");
|
||||
observer.observe(fileEl);
|
||||
fileEl.addEventListener("click", (event) => {
|
||||
const index = this.gridItems.indexOf(fileEl);
|
||||
if (index >= 0) {
|
||||
|
||||
Reference in New Issue
Block a user