diff --git a/src/SettingTab.tsx b/src/SettingTab.tsx index c99c403..53db824 100644 --- a/src/SettingTab.tsx +++ b/src/SettingTab.tsx @@ -1,7 +1,10 @@ import { App, PluginSettingTab, Setting } from "obsidian"; import FolderFileSplitterPlugin from "./main"; import { + ComfortableSpacing, + CompactSpacing, ExpandFolderByClickingOnElement, + FileItemSpacing, HorizontalSplitLayoutMode, LayoutMode, VerticalSplitLayoutMode, @@ -122,6 +125,24 @@ export class SettingTab extends PluginSettingTab { }); }); + new Setting(containerEl) + .setName(settingsCopy.fileItemSpacing.name) + .setDesc(settingsCopy.fileItemSpacing.desc) + .addDropdown((cb) => { + const { options } = settingsCopy.fileItemSpacing; + cb.addOption(ComfortableSpacing, options?.comfortable ?? ""); + cb.addOption(CompactSpacing, options?.compact ?? ""); + cb.setValue(this.plugin.settings.fileItemSpacing); + cb.onChange(async (val: FileItemSpacing) => { + this.plugin.settings.fileItemSpacing = val; + await this.plugin.saveSettings(); + this.plugin.triggerSettingsChangeEvent( + "fileItemSpacing", + val + ); + }); + }); + this.createHeader(containerEl, headersCopy.folderAndFileBehavior); new Setting(containerEl) .setName(settingsCopy.hideRootFolder.name) diff --git a/src/components/File/Content.tsx b/src/components/File/Content.tsx index 8e8e782..5d08eba 100644 --- a/src/components/File/Content.tsx +++ b/src/components/File/Content.tsx @@ -4,7 +4,10 @@ import { useEffect, useRef, useState } from "react"; import { ExplorerStore } from "src/store"; import { FolderListModal } from "../FolderListModal"; -import { useShowFileDetail } from "src/hooks/useSettingsHandler"; +import { + useFileItemSpacing, + useShowFileDetail, +} from "src/hooks/useSettingsHandler"; import FileDetail from "./Detail"; import useRenderEditableName from "src/hooks/useRenderEditableName"; import { FILE_OPERATION_COPY } from "src/locales"; @@ -46,6 +49,9 @@ const FileContent = ({ file, deleteFile }: FileProps) => { const { showFileDetail } = useShowFileDetail( plugin.settings.showFileDetail ); + const { fileItemSpacing } = useFileItemSpacing( + plugin.settings.fileItemSpacing + ); const isFocused = focusedFile?.path === file.path; const onSaveName = (name: string) => renameFile(file, name); @@ -205,7 +211,15 @@ const FileContent = ({ file, deleteFile }: FileProps) => { } }} > -