feat: enhance storage provider management and settings

- Added functionality to manage storage providers, including adding, editing, and toggling active status.
- Introduced utility functions for normalizing and serializing storage provider configurations.
- Implemented masking of sensitive fields in storage provider settings.
- Updated the dashboard UI components to reflect the new storage provider management features.
- Added new constants and utility functions for better handling of storage provider data.

Signed-off-by: Innei <tukon479@gmail.com>
This commit is contained in:
Innei
2025-10-28 23:49:16 +08:00
parent e99b211ac6
commit 33a56b629b
19 changed files with 407 additions and 209 deletions

View File

@@ -17,19 +17,18 @@ const buttonVariants = tv({
variant: {
primary: [
'border-transparent',
'text-white dark:text-white',
'bg-accent dark:bg-accent',
'hover:bg-accent/90 dark:hover:bg-accent/90',
'disabled:bg-accent/50 disabled:text-white/70',
'disabled:dark:bg-accent/30 disabled:dark:text-white/50',
'text-text',
'bg-accent',
'hover:bg-accent/90',
'disabled:bg-accent/50 disabled:text-text/70',
],
secondary: [
'border border-gray-200 dark:border-gray-700',
'text-gray-700 dark:text-gray-200',
'bg-gray-50 dark:bg-gray-800',
'hover:bg-gray-100 dark:hover:bg-gray-750',
'disabled:bg-gray-50 disabled:text-gray-400',
'disabled:dark:bg-gray-800 disabled:dark:text-gray-500',
'border border-fill-tertiary dark:border-fill-tertiary',
'text-text',
'bg-fill-tertiary',
'hover:bg-fill-tertiary/10',
'disabled:bg-fill-tertiary/10',
'disabled:dark:bg-fill-tertiary/10',
],
light: [
'shadow-none',

View File

@@ -162,8 +162,8 @@ const SelectItem = ({
<SelectPrimitive.Item
ref={ref}
className={cn(
'cursor-menu focus:bg-theme-selection-active focus:text-theme-selection-foreground relative flex items-center rounded px-2.5 py-1 outline-none select-none data-[disabled]:pointer-events-none data-[disabled]:opacity-50',
'data-[highlighted]:bg-theme-selection-hover focus-within:outline-transparent',
'cursor-menu data-[highlighted]:text-accent-foreground relative flex items-center rounded px-2.5 py-1 outline-none select-none data-[disabled]:pointer-events-none data-[disabled]:opacity-50',
'data-[highlighted]:bg-accent/20 focus-within:outline-transparent',
'h-[28px] w-full',
inset && 'pl-8',
className,

View File

@@ -2,4 +2,5 @@ export * from './backoff'
export * from './cn'
export * from './semaphore'
export * from './spring'
export * from './storage-provider'
export * from './u8array'

View File

@@ -0,0 +1,2 @@
export const STORAGE_PROVIDER_SECRET_PLACEHOLDER =
'__afilmory_secret__preserved__'