diff --git a/locale/de.json b/locale/de.json
index ce21d8f..991f475 100755
--- a/locale/de.json
+++ b/locale/de.json
@@ -63,5 +63,7 @@
"Share feedback, issues, and ideas with our feedback form.": "Teile Feedback, Probleme und Ideen mit unserem Feedback Formular!",
"Consider donating to support development.": "Spende um die Entwicklung zu unterstützen.",
"Save": "Speichern",
- "This Command is not available on this device.": "Dieser Befehl ist auf diesem Gerät nicht verfügbar."
+ "This Command is not available on this device.": "Dieser Befehl ist auf diesem Gerät nicht verfügbar.",
+ "Show": "Anzeigen",
+ "Hide": "Verstecken"
}
diff --git a/locale/en.json b/locale/en.json
index 41ce514..1f4af50 100755
--- a/locale/en.json
+++ b/locale/en.json
@@ -63,5 +63,7 @@
"Share feedback, issues, and ideas with our feedback form.": "Share feedback, issues, and ideas with our feedback form.",
"Consider donating to support development.": "Consider donating to support development.",
"Save": "Save",
- "This Command is not available on this device.": "This Command is not available on this device."
+ "This Command is not available on this device.": "This Command is not available on this device.",
+ "Show": "Show",
+ "Hide": "Hide"
}
diff --git a/manifest.json b/manifest.json
index 39fd8b8..e3e2d5a 100644
--- a/manifest.json
+++ b/manifest.json
@@ -1,7 +1,7 @@
{
"id": "cmdr",
"name": "Commander",
- "version": "0.0.19",
+ "version": "0.0.20",
"minAppVersion": "0.15.0",
"description": "Customize your workspace by adding commands /everywhere/.",
"author": "jsmorabito & phibr0",
diff --git a/package.json b/package.json
index c3f555d..8d42434 100644
--- a/package.json
+++ b/package.json
@@ -1,6 +1,6 @@
{
"name": "cmdr",
- "version": "0.0.19",
+ "version": "0.0.20",
"description": "Customize your workspace by adding commands /everywhere/.",
"main": "main.js",
"scripts": {
diff --git a/src/styles.scss b/src/styles.scss
index d13666e..1f147ce 100644
--- a/src/styles.scss
+++ b/src/styles.scss
@@ -96,9 +96,15 @@
}
.cmdr-accordion {
+ background-color: var(--background-primary);
+ padding: 12px;
+ border-radius: 12px;
+ margin-bottom: 16px;
+
.cmdr-accordion-chevron {
margin-left: 0;
margin-right: 4px;
+ height: 24px;
> svg {
transition: all 0.25s ease;
}
@@ -110,6 +116,10 @@
overflow: hidden;
margin-left: 14px;
padding-left: 14px;
+
+ .setting-item {
+ padding-top: 12px;
+ }
}
&[aria-expanded="false"] {
@@ -129,7 +139,6 @@
span {
font-weight: 600;
- margin-bottom: 8px;
margin-top: 0;
}
}
diff --git a/src/ui/components/Closable.tsx b/src/ui/components/Accordion.tsx
similarity index 91%
rename from src/ui/components/Closable.tsx
rename to src/ui/components/Accordion.tsx
index bbea701..5fd1dee 100644
--- a/src/ui/components/Closable.tsx
+++ b/src/ui/components/Accordion.tsx
@@ -7,7 +7,7 @@ interface ClosableProps extends ComponentProps<"details"> {
index: number;
children?: h.JSX.Element | h.JSX.Element[];
}
-export default function Closable({ title, children, index }: ClosableProps): h.JSX.Element {
+export default function Accordion({ title, children, index }: ClosableProps): h.JSX.Element {
const [open, setOpen] = useState(false);
const toggleHandler = (): void => {
diff --git a/src/ui/components/hidingViewer.tsx b/src/ui/components/hidingViewer.tsx
index 9e4b81b..4fc287f 100644
--- a/src/ui/components/hidingViewer.tsx
+++ b/src/ui/components/hidingViewer.tsx
@@ -4,8 +4,8 @@ import { useEffect, useState } from "preact/hooks";
import t from "src/l10n";
import CommanderPlugin from "src/main";
import { updateHiderStylesheet } from "src/util";
-import Closable from "./Closable";
-import { ToggleComponent } from "./settingComponent";
+import Accordion from "./Accordion";
+import { EyeToggleComponent } from "./settingComponent";
export default function HidingViewer({ plugin }: { plugin: CommanderPlugin }): h.JSX.Element {
return (
@@ -20,15 +20,22 @@ function LeftRibbonHider({ plugin }: { plugin: CommanderPlugin }): h.JSX.Element
const [ribbonCommands, setRibbonCommands] = useState<{ name: string, icon: string }[]>([]);
const hiddenCommands = plugin.settings.hide.leftRibbon;
useEffect(() => {
- // eslint-disable-next-line @typescript-eslint/no-non-null-assertion
- setRibbonCommands([...app.workspace.leftRibbon.ribbonActionsEl!.children].filter((el) => !el.hasClass("cmdr")).map((el) => { return { name: el.getAttribute("aria-label")!, icon: el.firstElementChild!.className! }; }));
+ setRibbonCommands(
+ // eslint-disable-next-line @typescript-eslint/no-non-null-assertion
+ [...app.workspace.leftRibbon.ribbonActionsEl!.children]
+ .filter((el) => !el.hasClass("cmdr"))
+ // eslint-disable-next-line @typescript-eslint/no-non-null-assertion
+ .map((el) => { return { name: el.getAttribute("aria-label")!, icon: el.firstElementChild!.className! }; })
+ );
}, []);
return (
-
- {ribbonCommands.map((command) =>
+ {ribbonCommands.map((command) => => {
if (!value) {
hiddenCommands.push(command.name);
@@ -40,7 +47,7 @@ function LeftRibbonHider({ plugin }: { plugin: CommanderPlugin }): h.JSX.Element
}}
value={hiddenCommands.contains(command.name)}
/>)}
-
+
);
}
@@ -54,11 +61,13 @@ function StatusbarHider({ plugin }: { plugin: CommanderPlugin }): h.JSX.Element
}, []);
return (
-
- {pluginsWithRibbonItems.map((manifest) =>
+ {pluginsWithRibbonItems.map((manifest) => => {
if (!value) {
hiddenPlugins.push(manifest.id);
@@ -69,6 +78,6 @@ function StatusbarHider({ plugin }: { plugin: CommanderPlugin }): h.JSX.Element
await plugin.saveSettings();
}}
/>)}
-
+
);
}
diff --git a/src/ui/components/settingComponent.tsx b/src/ui/components/settingComponent.tsx
index 69f0a8b..ea217e2 100644
--- a/src/ui/components/settingComponent.tsx
+++ b/src/ui/components/settingComponent.tsx
@@ -1,5 +1,6 @@
import { h } from "preact";
import { useState } from "preact/hooks";
+import { ObsidianIcon } from "src/util";
interface BaseComponentProps {
children: h.JSX.Element;
@@ -40,3 +41,23 @@ export function ToggleComponent(props: SettingProps): h.JSX.Element {
);
}
+
+interface EyeToggleSettingProps extends SettingProps {
+ hideLabel: string;
+ showLabel: string;
+}
+export function EyeToggleComponent({ name, description, changeHandler, value, hideLabel, showLabel }: EyeToggleSettingProps): h.JSX.Element {
+ const [state, setState] = useState(value);
+
+ return (
+
+ { setState(!state); changeHandler(state); }}
+ />
+
+ );
+}
diff --git a/src/ui/components/settingTabComponent.tsx b/src/ui/components/settingTabComponent.tsx
index 9ddc646..9ac6729 100644
--- a/src/ui/components/settingTabComponent.tsx
+++ b/src/ui/components/settingTabComponent.tsx
@@ -183,6 +183,8 @@ export function TabHeader({ tabs, activeTab, setActiveTab, setOpen }: TabHeaderP
return () => el.removeEventListener("wheel", handleScroll);
}, []);
+ useEffect(() => document.querySelector(".cmdr-tab-active")?.scrollIntoView({ behavior: "smooth", block: "nearest" }), [activeTab]);
+
return (