Files
LangBot/web/src/app/home/plugins/components/plugin-installed/PluginCardVO.ts
T
RockChinQ f592656680 refactor(web): unify settings panel layouts with shared toolbar/body
- Add PanelToolbar/PanelBody primitives so all four settings tabs share
  the same top-toolbar + scrollable-body rhythm under the unified header.
- API panel: drop the heavy gray shadowed TabsList; move the create
  action into the toolbar next to the tabs, lighten per-tab hints.
- Storage panel: reuse PanelToolbar for the generated-at/refresh bar.
- Account panel: wrap content in PanelBody for consistent padding.
- Models panel: keep the pinned LangBot Models (Space) card at the very
  top, above the add-custom-provider row (intentional pin), using
  PanelBody instead of a top toolbar.
2026-06-16 06:02:20 -04:00

53 lines
1.3 KiB
TypeScript

import { PluginComponent } from '@/app/infra/entities/plugin';
export interface IPluginCardVO {
author: string;
label: string;
name: string;
description: string;
version: string;
enabled: boolean;
priority: number;
install_source: string;
install_info: Record<string, any>;
status: string;
components: PluginComponent[];
debug: boolean;
hasUpdate?: boolean;
type?: 'plugin' | 'mcp' | 'skill';
}
export class PluginCardVO implements IPluginCardVO {
author: string;
label: string;
name: string;
description: string;
version: string;
enabled: boolean;
priority: number;
debug: boolean;
install_source: string;
install_info: Record<string, any>;
status: string;
components: PluginComponent[];
hasUpdate?: boolean;
type?: 'plugin' | 'mcp' | 'skill';
constructor(prop: IPluginCardVO) {
this.author = prop.author;
this.label = prop.label;
this.description = prop.description;
this.enabled = prop.enabled;
this.components = prop.components;
this.name = prop.name;
this.priority = prop.priority;
this.status = prop.status;
this.version = prop.version;
this.debug = prop.debug;
this.install_source = prop.install_source;
this.install_info = prop.install_info;
this.hasUpdate = prop.hasUpdate;
this.type = prop.type;
}
}