diff --git a/javascript/sdppp-custom.js b/javascript/sdppp-custom.js index 3c34c75..9270fc3 100644 --- a/javascript/sdppp-custom.js +++ b/javascript/sdppp-custom.js @@ -128,7 +128,7 @@ export default function (sdppp) { */ sdppp.widgetable.add('*rgthree*', { formatter: (node) => { - if (node.type.startsWith('Fast Groups Muter')|| node.type.startsWith('Fast Muter')) { + if (node.type.indexOf('Fast') != -1) { return { title: getTitle(node), widgets: node.widgets.map((widget) => ({ @@ -136,7 +136,7 @@ export default function (sdppp) { name: (widget.label || widget.name).replace(/^(enable[-_ ]?)?/gi, ''), outputType: fixRGthreeWidgetType(widget.type), options: widget.options, - uiWeight: 4 + uiWeight: 6 })) } } diff --git a/typescripts/modules/comfy/src/socket/WorkflowCallee.mts b/typescripts/modules/comfy/src/socket/WorkflowCallee.mts index af9b966..d850ac1 100644 --- a/typescripts/modules/comfy/src/socket/WorkflowCallee.mts +++ b/typescripts/modules/comfy/src/socket/WorkflowCallee.mts @@ -102,7 +102,7 @@ export function WorkflowCalleeSocket(SocketClass: SocketConstructor) { return ret } } - public async list() { + public async list(params: WorkflowCalleeActions['list']['params']): Promise { const workflows = this.workflowManager.workflows let workflowPaths = workflows.map((w: any) => w.path.replace('workflows/', '')); @@ -130,7 +130,10 @@ export function WorkflowCalleeSocket(SocketClass: SocketConstructor) { } catch (error) { console.warn('Error fetching favorites, returning unsorted workflows:', error); } - return workflowPaths; + return { + workflows: workflowPaths, + error: '' + }; } private setWidgetValue(params: WorkflowCalleeActions['setWidgetValue']['params']) { params.values.forEach(({ nodeID, widgetIndex, value }) => { diff --git a/typescripts/modules/photoshop/src/index.d.ts b/typescripts/modules/photoshop/src/index.d.ts index 56f855f..fa2feae 100644 --- a/typescripts/modules/photoshop/src/index.d.ts +++ b/typescripts/modules/photoshop/src/index.d.ts @@ -9,7 +9,7 @@ declare module "SDPPPInternal" { }: { children: React.ReactNode, loginAppID: string, - loginStyle?: 'invitation' | 'password', + loginStyle?: 'invitation' | 'password' | 'trialable-password', loginBannerTop?: React.ReactNode, loginBannerBottom?: React.ReactNode }); @@ -63,7 +63,7 @@ declare module "SDPPPInternal" { [path: string]: { path: string, content: any, - error: string | '' + error: string | '', } }, isLoadingWorkflows: boolean, diff --git a/typescripts/modules/photoshop/src/tsx/Content.tsx b/typescripts/modules/photoshop/src/tsx/Content.tsx index c6421e0..dbf8cdd 100644 --- a/typescripts/modules/photoshop/src/tsx/Content.tsx +++ b/typescripts/modules/photoshop/src/tsx/Content.tsx @@ -88,6 +88,7 @@ export function Content({ } + ); } diff --git a/typescripts/modules/photoshop/src/tsx/WorkflowList.tsx b/typescripts/modules/photoshop/src/tsx/WorkflowList.tsx index 4aa8234..2e143f4 100644 --- a/typescripts/modules/photoshop/src/tsx/WorkflowList.tsx +++ b/typescripts/modules/photoshop/src/tsx/WorkflowList.tsx @@ -71,7 +71,6 @@ const WorkflowList: React.FC = ({ setEditorMode }) => { { diff --git a/typescripts/modules/photoshop/src/tsx/WorkflowListItem.tsx b/typescripts/modules/photoshop/src/tsx/WorkflowListItem.tsx index 507960e..05fa64a 100644 --- a/typescripts/modules/photoshop/src/tsx/WorkflowListItem.tsx +++ b/typescripts/modules/photoshop/src/tsx/WorkflowListItem.tsx @@ -58,7 +58,8 @@ const DirectoryItem: React.FC = ({ if (path === '../') { const directoryWithoutSuffix = dirname || ''; const lastSlashIndex = directoryWithoutSuffix.lastIndexOf('/'); - if (lastSlashIndex === -1) { + // no slash anymore. or meet the protocol name + if (lastSlashIndex === -1 || directoryWithoutSuffix[lastSlashIndex - 1] === '/') { onDirectorySet?.(''); } else { onDirectorySet?.(directoryWithoutSuffix.slice(0, lastSlashIndex)); @@ -77,7 +78,6 @@ const DirectoryItem: React.FC = ({ }; interface WorkflowItemProps { - path: string; isChecked: boolean; workflow: { path: string; @@ -118,7 +118,6 @@ const WorkflowActions: React.FC<{ }; const WorkflowItem: React.FC = ({ - path, isChecked, workflow, onRun, @@ -139,12 +138,12 @@ const WorkflowItem: React.FC = ({ const handleAutoRunClick = () => { if (!isChecked) { - setAutoRunning({ type: 'workflow', value: path }); + setAutoRunning({ type: 'workflow', value: workflow.path }); } else { setAutoRunning(null); } }; - + return ( ) { }) } - public async listWorkflows(workflowAgent: PageStore | null) { + public async listWorkflows(workflowAgent: PageStore | null, params: WorkflowCalleeActions['list']['params']) { if (!workflowAgent) { - return []; + return { + workflows: [], + error: 'Workflow agent not found' + }; } - return await new Promise((resolve, reject) => { + return await new Promise((resolve, reject) => { this.socket.emit('F_workflow', { action: 'list', - sid: workflowAgent.data.sid - }, (payload: any) => { + sid: workflowAgent.data.sid, + params + }, (payload: WorkflowCalleeActions['list']['result']) => { resolve(payload); }); }) diff --git a/typescripts/src/socket/WorkflowCallerInterface.mts b/typescripts/src/socket/WorkflowCallerInterface.mts index a50c5c6..bd60bef 100644 --- a/typescripts/src/socket/WorkflowCallerInterface.mts +++ b/typescripts/src/socket/WorkflowCallerInterface.mts @@ -6,7 +6,7 @@ export interface WorkflowCaller { setWidgetValue(workflowAgent: PageStore | null, params: WorkflowCalleeActions['setWidgetValue']['params']): Promise; openWorkflow(workflowAgent: PageStore | null, params: WorkflowCalleeActions['open']['params']): Promise; saveWorkflow(workflowAgent: PageStore | null, params: WorkflowCalleeActions['save']['params']): Promise; - listWorkflows(workflowAgent: PageStore | null): Promise; + listWorkflows(workflowAgent: PageStore | null, params: WorkflowCalleeActions['list']['params']): Promise; logout(workflowAgent: PageStore | null): Promise; interrupt(workflowAgentSID: string): Promise; clearQueue(workflowAgentSID: string): Promise;