From 3865401a723953b5871eb1bf3bf5306fcf7e6437 Mon Sep 17 00:00:00 2001 From: Kuingsmile <96409857+Kuingsmile@users.noreply.github.com> Date: Sat, 10 Jan 2026 18:39:54 +0800 Subject: [PATCH] :sparkles: Feature(custom): add per picbed setting button in edit page --- src/main/utils/handleUploaderConfig.ts | 6 +- src/renderer/pages/picbeds/Picbeds.css | 94 ++++++++++++++++++++++++++ src/renderer/pages/picbeds/index.vue | 34 +++++++++- 3 files changed, 130 insertions(+), 4 deletions(-) diff --git a/src/main/utils/handleUploaderConfig.ts b/src/main/utils/handleUploaderConfig.ts index 41f8c439..e1c85044 100644 --- a/src/main/utils/handleUploaderConfig.ts +++ b/src/main/utils/handleUploaderConfig.ts @@ -17,11 +17,11 @@ export const handleConfigWithFunction = (config: IPicGoPluginOriginConfig[]): IP return config as IPicGoPluginConfig[] } -export const completeUploaderMetaConfig = (originData: IStringKeyMap): IUploaderConfigListItem => { +export const completeUploaderMetaConfig = (originData: IStringKeyMap, id?: string): IUploaderConfigListItem => { return { _configName: 'Default', ...trimValues(originData), - _id: uuid(), + _id: id || uuid(), _createdAt: Date.now(), _updatedAt: Date.now(), } @@ -185,7 +185,7 @@ export const updateUploaderConfig = (type: string, id: string, config: IStringKe _updatedAt: Date.now(), }) } else { - updatedConfig = completeUploaderMetaConfig(config) + updatedConfig = completeUploaderMetaConfig(config, id) updatedDefaultId = updatedConfig._id configList.push(updatedConfig) } diff --git a/src/renderer/pages/picbeds/Picbeds.css b/src/renderer/pages/picbeds/Picbeds.css index ebebdc91..557013b3 100644 --- a/src/renderer/pages/picbeds/Picbeds.css +++ b/src/renderer/pages/picbeds/Picbeds.css @@ -568,6 +568,15 @@ left: 0; min-width: 100%; } + + .modal-overlay { + padding: 1rem; + } + + .modal-header, + .modal-content { + padding: 1.5rem; + } } @media (width >= 1024px) { @@ -582,3 +591,88 @@ outline: 1px solid var(--color-accent); outline-offset: 2px; } + + +/* Modal */ +.modal-overlay { + position: fixed; + z-index: 1000; + display: flex; + justify-content: center; + align-items: center; + overflow-y: auto; + padding: 2rem; + background: rgb(0 0 0 / 50%); + inset: 0; +} + +.modal-container { + overflow: hidden; + margin: auto; + border: 1px solid var(--color-border); + border-radius: var(--radius-2xl); + width: 90vw; + max-width: 90vw; + height: 85vh; + max-height: 85vh; + background: var(--color-surface); + box-shadow: var(--shadow-xl); +} + +.modal-header { + display: flex; + justify-content: space-between; + align-items: center; + border-bottom: 1px solid var(--color-border-secondary); + padding: 0.95rem 1rem; +} + +.modal-title { + margin: 0; + font-size: 1.25rem; + font-weight: 600; + color: var(--color-text-primary); +} + +.modal-subtitle { + margin: 0; + font-size: 1.25rem; + font-weight: 600; + color: var(--color-text-primary); +} + +.modal-close { + display: flex; + justify-content: center; + align-items: center; + border: 1px solid var(--color-border); + border-radius: 50%; + width: 32px; + height: 32px; + color: var(--color-text-secondary); + background: var(--color-surface-elevated); + cursor: pointer; +} + +.modal-close:hover { + border-color: var(--color-danger); + color: var(--color-danger); + background: var(--color-surface); +} + +.modal-content { + overflow-y: auto; + padding: 0.2rem; + max-height: calc(90vh - 120px); + scrollbar-width: none; + -ms-overflow-style: none; +} + +.modal-content::-webkit-scrollbar { + display: none; +} + +.modal-close:focus-visible { + outline: 2px solid var(--color-accent); + outline-offset: 2px; +} diff --git a/src/renderer/pages/picbeds/index.vue b/src/renderer/pages/picbeds/index.vue index 7776e941..213f306f 100644 --- a/src/renderer/pages/picbeds/index.vue +++ b/src/renderer/pages/picbeds/index.vue @@ -22,6 +22,10 @@