Skip to content

Commit

Permalink
Merge pull request #365 from decaf-dev/dev
Browse files Browse the repository at this point in the history
1.46.0
  • Loading branch information
decaf-dev authored Sep 14, 2024
2 parents 7dfd619 + 20b61f5 commit 68484ea
Show file tree
Hide file tree
Showing 17 changed files with 682 additions and 313 deletions.
2 changes: 1 addition & 1 deletion manifest.json
Original file line number Diff line number Diff line change
@@ -1,7 +1,7 @@
{
"id": "vault-explorer",
"name": "Vault Explorer",
"version": "1.45.0",
"version": "1.46.0",
"minAppVersion": "1.4.13",
"description": "Explore your vault in visual format",
"author": "DecafDev",
Expand Down
2 changes: 1 addition & 1 deletion package.json
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
{
"name": "obsidian-vault-explorer",
"version": "1.45.0",
"version": "1.46.0",
"description": "Explore your vault in visual format",
"main": "main.js",
"scripts": {
Expand Down
21 changes: 5 additions & 16 deletions src/constants.ts
Original file line number Diff line number Diff line change
Expand Up @@ -32,11 +32,9 @@ export const DEFAULT_SETTINGS: VaultExplorerPluginSettings = {
},
},
views: {
dashboard: {
isEnabled: false,
},
grid: {
isEnabled: true,
order: 0,
coverImageFit: "cover",
coverImageSources: [
{
Expand All @@ -60,24 +58,21 @@ export const DEFAULT_SETTINGS: VaultExplorerPluginSettings = {
},
list: {
isEnabled: true,
order: 1,
showTags: true,
},
table: {
isEnabled: false,
},
feed: {
isEnabled: true,
order: 2,
removeH1: true,
collapseStyle: "no-new-lines",
lineClampLarge: 5,
lineClampMedium: 3,
lineClampSmall: 2,
},
recommended: {
isEnabled: false,
},
related: {
table: {
isEnabled: false,
order: 3,
},
},
confirmBeforeDelete: true,
Expand All @@ -88,12 +83,6 @@ export const DEFAULT_SETTINGS: VaultExplorerPluginSettings = {
loadBodyTags: true,
shouldCollapseFilters: false,
pageSize: 25,
viewOrder: [
TExplorerView.GRID,
TExplorerView.LIST,
TExplorerView.FEED,
TExplorerView.TABLE,
],
configDir: ".vaultexplorer",
pluginVersion: null,
logLevel: LOG_LEVEL_WARN,
Expand Down
6 changes: 6 additions & 0 deletions src/migrations/index.ts
Original file line number Diff line number Diff line change
Expand Up @@ -33,6 +33,7 @@ import Migrate_1_40_0 from "./migrate_1_40_0";
import Migrate_1_41_0 from "./migrate_1_41_0";
import Migrate_1_42_0 from "./migrate_1_42_0";
import Migrate_1_45_0 from "./migrate_1_45_0";
import Migrate_1_46_0 from "./migrate_1_46_0";

const migrations: TMigration[] = [
{
Expand Down Expand Up @@ -195,6 +196,11 @@ const migrations: TMigration[] = [
to: "1.45.0",
migrate: Migrate_1_45_0,
},
{
from: "1.45.0",
to: "1.46.0",
migrate: Migrate_1_46_0,
},
];

export const preformMigrations = (
Expand Down
5 changes: 3 additions & 2 deletions src/migrations/migrate_1_45_0.ts
Original file line number Diff line number Diff line change
@@ -1,6 +1,7 @@
import { VaultExplorerPluginSettings_1_44_6 } from "src/types/types-1.44.6";
import MigrationInterface from "./migration_interface";
import { TExplorerView, VaultExplorerPluginSettings } from "src/types";
import { TExplorerView } from "src/types";
import { VaultExplorerPluginSettings_1_45_0 } from "src/types/types-1.45.0";

export default class Migrate_1_45_0 implements MigrationInterface {
migrate(data: Record<string, unknown>) {
Expand All @@ -20,7 +21,7 @@ export default class Migrate_1_45_0 implements MigrationInterface {
viewOrder.push(TExplorerView.TABLE);
}

const newData: VaultExplorerPluginSettings = {
const newData: VaultExplorerPluginSettings_1_45_0 = {
...typedData,
confirmBeforeDelete: true,
viewOrder,
Expand Down
42 changes: 42 additions & 0 deletions src/migrations/migrate_1_46_0.ts
Original file line number Diff line number Diff line change
@@ -0,0 +1,42 @@
import MigrationInterface from "./migration_interface";
import { TExplorerView, VaultExplorerPluginSettings } from "src/types";
import { VaultExplorerPluginSettings_1_45_0 } from "src/types/types-1.45.0";

export default class Migrate_1_46_0 implements MigrationInterface {
migrate(data: Record<string, unknown>) {
const typedData = data as unknown as VaultExplorerPluginSettings_1_45_0;

const newData: VaultExplorerPluginSettings = {
...typedData,
views: {
...typedData.views,
grid: {
...typedData.views.grid,
isEnabled: true,
order: 0,
},
list: {
...typedData.views.list,
isEnabled: true,
order: 1,
},
feed: {
...typedData.views.feed,
isEnabled: true,
order: 2,
},
table: {
...typedData.views.table,
isEnabled: true,
order: 3,
},
},
currentView: TExplorerView.GRID,
};
delete (newData as any).views.recommended;
delete (newData as any).views.related;
delete (newData as any).views.dashboard;
delete (newData as any).viewOrder;
return newData as unknown as Record<string, unknown>;
}
}
130 changes: 65 additions & 65 deletions src/obsidian/vault-explorer-settings-tab.ts
Original file line number Diff line number Diff line change
Expand Up @@ -14,7 +14,12 @@ import {
} from "src/logger/constants";
import Logger from "js-logger";
import { stringToLogLevel } from "src/logger";
import { CollapseStyle, CoverImageFit, TExplorerView } from "src/types";
import {
CollapseStyle,
CoverImageFit,
TExplorerView,
VaultExplorerPluginSettings,
} from "src/types";
import EventManager from "src/event/event-manager";
import LicenseKeyApp from "../svelte/license-key-app/index.svelte";
import ImageSourceApp from "../svelte/image-source-app/index.svelte";
Expand Down Expand Up @@ -158,25 +163,16 @@ export default class VaultExplorerSettingsTab extends PluginSettingTab {

new Setting(containerEl).setName("Views").setHeading();

// new Setting(containerEl).setName("Dashboard view").addToggle((toggle) =>
// toggle
// .setValue(this.plugin.settings.views.dashboard.isEnabled)
// .onChange(async (value) => {
// this.plugin.settings.views.dashboard.isEnabled = value;
// this.updateViewOrder(TExplorerView.DASHBOARD, value);
// await this.plugin.saveSettings();
// EventManager.getInstance().emit(
// PluginEvent.VIEW_TOGGLE_SETTING_CHANGE
// );
// })
// );

new Setting(containerEl).setName("Grid view").addToggle((toggle) =>
toggle
.setValue(this.plugin.settings.views.grid.isEnabled)
.onChange(async (value) => {
this.plugin.settings.views.grid.isEnabled = value;
this.updateViewOrder(TExplorerView.GRID, value);
this.updateViewOrder(
this.plugin.settings,
TExplorerView.GRID,
value
);
await this.plugin.saveSettings();
EventManager.getInstance().emit(
PluginEvent.VIEW_TOGGLE_SETTING_CHANGE
Expand All @@ -189,7 +185,11 @@ export default class VaultExplorerSettingsTab extends PluginSettingTab {
.setValue(this.plugin.settings.views.list.isEnabled)
.onChange(async (value) => {
this.plugin.settings.views.list.isEnabled = value;
this.updateViewOrder(TExplorerView.LIST, value);
this.updateViewOrder(
this.plugin.settings,
TExplorerView.LIST,
value
);
await this.plugin.saveSettings();
EventManager.getInstance().emit(
PluginEvent.VIEW_TOGGLE_SETTING_CHANGE
Expand All @@ -202,7 +202,11 @@ export default class VaultExplorerSettingsTab extends PluginSettingTab {
.setValue(this.plugin.settings.views.feed.isEnabled)
.onChange(async (value) => {
this.plugin.settings.views.feed.isEnabled = value;
this.updateViewOrder(TExplorerView.FEED, value);
this.updateViewOrder(
this.plugin.settings,
TExplorerView.FEED,
value
);
await this.plugin.saveSettings();
EventManager.getInstance().emit(
PluginEvent.VIEW_TOGGLE_SETTING_CHANGE
Expand All @@ -215,43 +219,18 @@ export default class VaultExplorerSettingsTab extends PluginSettingTab {
.setValue(this.plugin.settings.views.table.isEnabled)
.onChange(async (value) => {
this.plugin.settings.views.table.isEnabled = value;
this.updateViewOrder(TExplorerView.TABLE, value);
this.updateViewOrder(
this.plugin.settings,
TExplorerView.TABLE,
value
);
await this.plugin.saveSettings();
EventManager.getInstance().emit(
PluginEvent.VIEW_TOGGLE_SETTING_CHANGE
);
})
);

// new Setting(containerEl)
// .setName("Recommended view")
// .addToggle((toggle) =>
// toggle
// .setValue(this.plugin.settings.views.recommended.isEnabled)
// .onChange(async (value) => {
// this.plugin.settings.views.recommended.isEnabled =
// value;
// this.updateViewOrder(TExplorerView.RECOMMENDED, value);
// await this.plugin.saveSettings();
// EventManager.getInstance().emit(
// PluginEvent.VIEW_TOGGLE_SETTING_CHANGE
// );
// })
// );

// new Setting(containerEl).setName("Related view").addToggle((toggle) =>
// toggle
// .setValue(this.plugin.settings.views.related.isEnabled)
// .onChange(async (value) => {
// this.plugin.settings.views.related.isEnabled = value;
// this.updateViewOrder(TExplorerView.RELATED, value);
// await this.plugin.saveSettings();
// EventManager.getInstance().emit(
// PluginEvent.VIEW_TOGGLE_SETTING_CHANGE
// );
// })
// );

new Setting(containerEl).setName("Grid view").setHeading();

this.imageSourceApp = new ImageSourceApp({
Expand Down Expand Up @@ -717,26 +696,47 @@ export default class VaultExplorerSettingsTab extends PluginSettingTab {
this.imageSourceApp?.$destroy();
}

private updateViewOrder(view: TExplorerView, value: boolean) {
if (value) {
this.plugin.settings.viewOrder.push(view);
private updateViewOrder(
settings: VaultExplorerPluginSettings,
view: TExplorerView,
value: boolean
) {
const views = {
[TExplorerView.GRID]: { ...settings.views.grid },
[TExplorerView.LIST]: { ...settings.views.list },
[TExplorerView.FEED]: { ...settings.views.feed },
[TExplorerView.TABLE]: { ...settings.views.table },
};

const maxOrder = Math.max(
views[TExplorerView.GRID].order,
views[TExplorerView.LIST].order,
views[TExplorerView.FEED].order,
views[TExplorerView.TABLE].order
);

const viewToUpdate = views[view];

//If the user turned off all views, set the current view to the first view that is turned on
if (this.plugin.settings.currentView == null)
this.plugin.settings.currentView = view;
if (value) {
viewToUpdate.order = maxOrder + 1;
} else {
const filtered = this.plugin.settings.viewOrder.filter(
(v) => v !== view
);
this.plugin.settings.viewOrder = filtered;

//If the user turned off the current view, set the current view to the first view
//that is turned on, otherwise set it to null
if (filtered.length > 0) {
this.plugin.settings.currentView = filtered[0];
} else {
this.plugin.settings.currentView = null;
}
Object.values(views).forEach((view) => {
if (view.order > viewToUpdate.order) {
view.order--;
}
});
viewToUpdate.order = -1;
}

const currentViewEntry = Object.entries(views).find(
(v) => v[1].order === 0
);

this.plugin.settings.currentView = (currentViewEntry?.[0] ??
null) as TExplorerView | null;
this.plugin.settings.views.grid = views[TExplorerView.GRID];
this.plugin.settings.views.list = views[TExplorerView.LIST];
this.plugin.settings.views.feed = views[TExplorerView.FEED];
this.plugin.settings.views.table = views[TExplorerView.TABLE];
}
}
11 changes: 6 additions & 5 deletions src/svelte/app/components/list-item.svelte
Original file line number Diff line number Diff line change
Expand Up @@ -18,7 +18,8 @@
export let extension: string;
export let path: string;
export let tags: string[] | null;
export let showTags: boolean;
let showTags: boolean;
export let isSmallScreenSize: boolean;
export let enablePremiumFeatures: boolean;
Expand Down Expand Up @@ -98,8 +99,8 @@
});
}
$: tagsClassName = `vault-explorer-list-item__tags ${isSmallScreenSize ? "vault-explorer-list-item__tags--screen-size-sm" : ""}`;
$: titleClassName = `vault-explorer-list-item__title ${isSmallScreenSize ? "vault-explorer-list-item__title--screen-size-sm" : ""}`;
$: tagsClassName = `vault-explorer-list-item__tags ${isSmallScreenSize ? "vault-explorer-list-item__tags--full" : ""}`;
$: titleClassName = `vault-explorer-list-item__title ${isSmallScreenSize || !showTags ? "vault-explorer-list-item__title--full" : ""}`;
</script>

<div
Expand Down Expand Up @@ -186,7 +187,7 @@
box-shadow: 0 0 0 3px var(--background-modifier-border-focus);
}
.vault-explorer-list-item__title--screen-size-sm {
.vault-explorer-list-item__title--full {
width: 100%;
}
Expand All @@ -201,7 +202,7 @@
width: 50%;
}
.vault-explorer-list-item__tags--screen-size-sm {
.vault-explorer-list-item__tags--full {
width: 100%;
}
</style>
2 changes: 0 additions & 2 deletions src/svelte/app/components/list-view.svelte
Original file line number Diff line number Diff line change
Expand Up @@ -6,7 +6,6 @@
export let data: FileRenderData[];
export let startIndex: number;
export let pageLength: number;
export let showTags: boolean;
export let isSmallScreenSize: boolean;
export let enablePremiumFeatures: boolean;
Expand All @@ -28,7 +27,6 @@
{#each filteredItems as fileRenderData (fileRenderData.id)}
<ListItem
{enablePremiumFeatures}
{showTags}
displayName={fileRenderData.displayName}
extension={fileRenderData.extension}
baseName={fileRenderData.baseName}
Expand Down
Loading

0 comments on commit 68484ea

Please sign in to comment.