Skip to content

Commit d392918

Browse files
authored
Add delete to context menu (#360)
* chore: bump version * refactor: remove unused code * feat: add delete to context menu * feat: add confirm delete setting
1 parent 47d11c5 commit d392918

25 files changed

+493
-52
lines changed

manifest.json

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,7 @@
11
{
22
"id": "vault-explorer",
33
"name": "Vault Explorer",
4-
"version": "1.44.6",
4+
"version": "1.45.0",
55
"minAppVersion": "1.4.13",
66
"description": "Explore your vault in visual format",
77
"author": "DecafDev",

package.json

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
{
22
"name": "obsidian-vault-explorer",
3-
"version": "1.44.6",
3+
"version": "1.45.0",
44
"description": "Explore your vault in visual format",
55
"main": "main.js",
66
"scripts": {

src/constants.ts

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -80,6 +80,7 @@ export const DEFAULT_SETTINGS: VaultExplorerPluginSettings = {
8080
isEnabled: false,
8181
},
8282
},
83+
confirmBeforeDelete: true,
8384
currentView: TExplorerView.GRID,
8485
titleWrapping: "normal",
8586
enableClockUpdates: true,

src/migrations/index.ts

Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -32,6 +32,7 @@ import Migrate_1_39_0 from "./migrate_1_39_0";
3232
import Migrate_1_40_0 from "./migrate_1_40_0";
3333
import Migrate_1_41_0 from "./migrate_1_41_0";
3434
import Migrate_1_42_0 from "./migrate_1_42_0";
35+
import Migrate_1_45_0 from "./migrate_1_45_0";
3536

3637
const migrations: TMigration[] = [
3738
{
@@ -189,6 +190,11 @@ const migrations: TMigration[] = [
189190
to: "1.42.0",
190191
migrate: Migrate_1_42_0,
191192
},
193+
{
194+
from: "1.44.6",
195+
to: "1.45.0",
196+
migrate: Migrate_1_45_0,
197+
},
192198
];
193199

194200
export const preformMigrations = (

src/migrations/migrate_1_41_0.ts

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,11 +1,11 @@
1-
import { VaultExplorerPluginSettings } from "src/types";
21
import MigrationInterface from "./migration_interface";
32
import { VaultExplorerPluginSettings_1_40_2 } from "src/types/types-1.40.2";
3+
import { VaultExplorerPluginSettings_1_41_1 } from "src/types/types-1.41.1";
44

55
export default class Migrate_1_41_0 implements MigrationInterface {
66
migrate(data: Record<string, unknown>) {
77
const typedData = data as unknown as VaultExplorerPluginSettings_1_40_2;
8-
const newData: VaultExplorerPluginSettings = {
8+
const newData: VaultExplorerPluginSettings_1_41_1 = {
99
...typedData,
1010
properties: {
1111
...typedData.properties,

src/migrations/migrate_1_42_0.ts

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,11 +1,11 @@
1-
import { VaultExplorerPluginSettings } from "src/types";
21
import MigrationInterface from "./migration_interface";
32
import { VaultExplorerPluginSettings_1_41_1 } from "src/types/types-1.41.1";
3+
import { VaultExplorerPluginSettings_1_44_6 } from "src/types/types-1.44.6";
44

55
export default class Migrate_1_42_0 implements MigrationInterface {
66
migrate(data: Record<string, unknown>) {
77
const typedData = data as unknown as VaultExplorerPluginSettings_1_41_1;
8-
const newData: VaultExplorerPluginSettings = {
8+
const newData: VaultExplorerPluginSettings_1_44_6 = {
99
...typedData,
1010
properties: {
1111
...typedData.properties,

src/migrations/migrate_1_45_0.ts

Lines changed: 30 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,30 @@
1+
import { VaultExplorerPluginSettings_1_44_6 } from "src/types/types-1.44.6";
2+
import MigrationInterface from "./migration_interface";
3+
import { TExplorerView, VaultExplorerPluginSettings } from "src/types";
4+
5+
export default class Migrate_1_45_0 implements MigrationInterface {
6+
migrate(data: Record<string, unknown>) {
7+
const typedData = data as unknown as VaultExplorerPluginSettings_1_44_6;
8+
9+
let viewOrder = [];
10+
if (typedData.views.grid.isEnabled) {
11+
viewOrder.push(TExplorerView.GRID);
12+
}
13+
if (typedData.views.list.isEnabled) {
14+
viewOrder.push(TExplorerView.LIST);
15+
}
16+
if (typedData.views.feed.isEnabled) {
17+
viewOrder.push(TExplorerView.FEED);
18+
}
19+
if (typedData.views.table.isEnabled) {
20+
viewOrder.push(TExplorerView.TABLE);
21+
}
22+
23+
const newData: VaultExplorerPluginSettings = {
24+
...typedData,
25+
confirmBeforeDelete: true,
26+
viewOrder,
27+
};
28+
return newData as unknown as Record<string, unknown>;
29+
}
30+
}

src/obsidian/vault-explorer-settings-tab.ts

Lines changed: 14 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -46,10 +46,6 @@ export default class VaultExplorerSettingsTab extends PluginSettingTab {
4646
this.app,
4747
"datetime"
4848
);
49-
const checkboxProperties = getObsidianPropertiesByType(
50-
this.app,
51-
"checkbox"
52-
);
5349

5450
new Setting(containerEl).setName("General").setHeading();
5551

@@ -108,6 +104,20 @@ export default class VaultExplorerSettingsTab extends PluginSettingTab {
108104
})
109105
);
110106

107+
new Setting(containerEl).setName("Context menu").setHeading();
108+
109+
new Setting(containerEl)
110+
.setName("Confirm before delete")
111+
.setDesc("Ask for confirmation before deleting a file.")
112+
.addToggle((toggle) =>
113+
toggle
114+
.setValue(this.plugin.settings.confirmBeforeDelete)
115+
.onChange(async (value) => {
116+
this.plugin.settings.confirmBeforeDelete = value;
117+
await this.plugin.saveSettings();
118+
})
119+
);
120+
111121
new Setting(containerEl).setName("Filters").setHeading();
112122

113123
new Setting(containerEl).setName("Search filter").addToggle((toggle) =>

src/svelte/app/components/feed-card.svelte

Lines changed: 11 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,5 @@
11
<script lang="ts">
2-
import { createEventDispatcher, onMount } from "svelte";
2+
import { onMount } from "svelte";
33
import { CollapseStyle } from "src/types";
44
import EventManager from "src/event/event-manager";
55
import VaultExplorerPlugin from "src/main";
@@ -35,6 +35,7 @@
3535
export let path: string;
3636
export let createdMillis: number;
3737
export let content: string | null;
38+
export let enablePremiumFeatures: boolean;
3839
3940
let ref: HTMLElement | null = null;
4041
let enableFileIcons = false;
@@ -45,8 +46,6 @@
4546
let collapseStyle: CollapseStyle = "no-new-lines";
4647
let currentLineClamp: number = lineClampLarge;
4748
48-
const dispatch = createEventDispatcher();
49-
5049
let plugin: VaultExplorerPlugin;
5150
store.plugin.subscribe((p) => {
5251
plugin = p;
@@ -147,7 +146,15 @@
147146
148147
function handleCardContextMenu(e: Event) {
149148
const nativeEvent = e as MouseEvent;
150-
openContextMenu(plugin, path, nativeEvent, {});
149+
const { app, settings } = plugin;
150+
openContextMenu(
151+
nativeEvent,
152+
path,
153+
app,
154+
settings,
155+
enablePremiumFeatures,
156+
{},
157+
);
151158
}
152159
153160
function handleCardMouseOver(e: MouseEvent) {

src/svelte/app/components/feed-view.svelte

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -5,6 +5,7 @@
55
export let data: FileRenderData[] = [];
66
export let startIndex;
77
export let pageLength;
8+
export let enablePremiumFeatures: boolean;
89
910
let filteredItems: FileRenderData[] = [];
1011
@@ -23,6 +24,7 @@
2324
<div class="vault-explorer-feed-view">
2425
{#each filteredItems as fileRenderData (fileRenderData.id)}
2526
<FeedCard
27+
{enablePremiumFeatures}
2628
displayName={fileRenderData.displayName}
2729
extension={fileRenderData.extension}
2830
baseName={fileRenderData.baseName}

0 commit comments

Comments
 (0)