refactor: provider descriptor registry — eliminate provider-specific hardcoding
Replace all if/else chains keyed on provider type strings with a descriptor-driven architecture. Each provider type (immich, gitea, planka, scheduler, nut, google_photos) has a descriptor in frontend/src/lib/providers/ that declares config fields, event tracking fields, collection metadata, validation, and hooks. Components now use getDescriptor(type) and render dynamically. Dashboard provider card shows provider name + type when global filter is active. Grid-items derived from registry.
This commit is contained in:
@@ -0,0 +1,24 @@
|
||||
import type { ProviderDescriptor } from './types';
|
||||
|
||||
export const schedulerDescriptor: ProviderDescriptor = {
|
||||
type: 'scheduler',
|
||||
defaultName: 'Scheduler',
|
||||
icon: 'mdiClockOutline',
|
||||
hasUrl: false,
|
||||
|
||||
configFields: [],
|
||||
|
||||
buildConfig() {
|
||||
return { config: {} };
|
||||
},
|
||||
|
||||
hasConfigChanged() {
|
||||
return false;
|
||||
},
|
||||
|
||||
eventFields: [
|
||||
{ key: 'track_scheduled_message', label: 'trackingConfig.scheduledMessage', default: true },
|
||||
],
|
||||
|
||||
collectionMeta: null,
|
||||
};
|
||||
Reference in New Issue
Block a user