From c58c836b7c6be1295baa3560add0199e33f06e41 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E6=B5=94=E9=98=B3=E9=99=8C=E5=AE=A2?= Date: Fri, 5 Apr 2024 16:37:25 +0800 Subject: [PATCH] =?UTF-8?q?=E4=B8=BAcheckout=E6=B7=BB=E5=8A=A0=E5=88=87?= =?UTF-8?q?=E6=8D=A2=E7=8A=B6=E6=80=81=E6=97=B6=E6=B7=BB=E5=8A=A0=E5=9B=9E?= =?UTF-8?q?=E8=B0=83=E5=87=BD=E6=95=B0?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .gitignore | 1 + src/index.ts | 5 +++++ src/libs/index.d.ts | 3 +++ src/libs/setting-item.svelte | 2 +- src/libs/setting-utils.ts | 1 + 5 files changed, 11 insertions(+), 1 deletion(-) diff --git a/.gitignore b/.gitignore index 764e2d4..c2a2064 100644 --- a/.gitignore +++ b/.gitignore @@ -2,6 +2,7 @@ .vscode .DS_Store pnpm-lock.yaml +package-lock.json package.zip node_modules dev diff --git a/src/index.ts b/src/index.ts index 307f7d2..0e8893a 100644 --- a/src/index.ts +++ b/src/index.ts @@ -191,6 +191,11 @@ export default class PluginSample extends Plugin { type: "checkbox", title: "Checkbox text", description: "Check description", + checkbox: { + callback: () => { + console.log("Checkbox clicked"); + } + } }); this.settingUtils.addItem({ key: "Select", diff --git a/src/libs/index.d.ts b/src/libs/index.d.ts index 04b53f0..5181c19 100644 --- a/src/libs/index.d.ts +++ b/src/libs/index.d.ts @@ -12,6 +12,9 @@ interface ISettingItem { step: number; }; options?: { [key: string | number]: string }; + checkbox?: { + callback: () => void; + } button?: { label: string; callback: () => void; diff --git a/src/libs/setting-item.svelte b/src/libs/setting-item.svelte index 19ad92e..d59912b 100644 --- a/src/libs/setting-item.svelte +++ b/src/libs/setting-item.svelte @@ -31,7 +31,7 @@ {title}
{@html description} -
+ diff --git a/src/libs/setting-utils.ts b/src/libs/setting-utils.ts index 7112212..323443b 100644 --- a/src/libs/setting-utils.ts +++ b/src/libs/setting-utils.ts @@ -104,6 +104,7 @@ export class SettingUtils { element.checked = item.value; element.className = "b3-switch fn__flex-center"; itemElement = element; + element.onchange = item.checkbox?.callback ?? (() => { }); break; case 'select': let selectElement: HTMLSelectElement = document.createElement('select');