feat: ensure open in comfy ui will carry over the auth token
This commit is contained in:
parent
ac5aba2aa9
commit
8f7f06470c
@ -40,6 +40,7 @@ import {
|
||||
updateCustomMachine,
|
||||
updateMachine,
|
||||
} from "@/server/curdMachine";
|
||||
import { editWorkflowOnMachine } from "@/server/editWorkflowOnMachine";
|
||||
import type {
|
||||
ColumnDef,
|
||||
ColumnFiltersState,
|
||||
@ -57,6 +58,7 @@ import {
|
||||
import { ArrowUpDown, MoreHorizontal } from "lucide-react";
|
||||
import * as React from "react";
|
||||
import { useState } from "react";
|
||||
import { toast } from "sonner";
|
||||
import type { z } from "zod";
|
||||
|
||||
export type Machine = MachineType;
|
||||
@ -218,15 +220,22 @@ export const columns: ColumnDef<Machine>[] = [
|
||||
{machine.type === "comfy-deploy-serverless" && (
|
||||
<>
|
||||
<DropdownMenuItem asChild>
|
||||
<a
|
||||
target="_blank"
|
||||
href={machine.endpoint.replace(
|
||||
"comfyui-api",
|
||||
"comfyui-app"
|
||||
)} rel="noreferrer"
|
||||
<button
|
||||
onClick={async () => {
|
||||
const id = toast.loading("Getting machine url...")
|
||||
const url = await callServerPromise(
|
||||
editWorkflowOnMachine(machine.id),
|
||||
);
|
||||
if (url && typeof url !== "object") {
|
||||
window.open(url, "_blank");
|
||||
} else if (url && typeof url === "object" && url.error) {
|
||||
console.error(url.error);
|
||||
}
|
||||
toast.dismiss(id)
|
||||
}}
|
||||
>
|
||||
Open ComfyUI
|
||||
</a>
|
||||
</button>
|
||||
</DropdownMenuItem>
|
||||
<DropdownMenuItem
|
||||
onClick={() => {
|
||||
|
@ -402,7 +402,7 @@ export function OpenEditButton({
|
||||
onClick={async () => {
|
||||
setIsLoading(true);
|
||||
const url = await callServerPromise(
|
||||
editWorkflowOnMachine(workflow_version_id, machine),
|
||||
editWorkflowOnMachine(machine, workflow_version_id),
|
||||
);
|
||||
if (url && typeof url !== "object") {
|
||||
window.open(url, "_blank");
|
||||
|
@ -9,7 +9,7 @@ import "server-only";
|
||||
import { getUrlServerSide } from "./getUrlServerSide";
|
||||
|
||||
export const editWorkflowOnMachine = withServerPromise(
|
||||
async (workflow_version_id: string, machine_id: string) => {
|
||||
async (machine_id: string, workflow_version_id?: string) => {
|
||||
const { userId, orgId } = auth();
|
||||
|
||||
const domain = getUrlServerSide();
|
||||
@ -37,10 +37,18 @@ export const editWorkflowOnMachine = withServerPromise(
|
||||
endpoint = machine.endpoint.replace("comfyui-api", "comfyui-app");
|
||||
}
|
||||
|
||||
return `${endpoint}?workflow_version_id=${encodeURIComponent(
|
||||
workflow_version_id,
|
||||
)}&auth_token=${encodeURIComponent(token)}&org_display=${encodeURIComponent(
|
||||
userName,
|
||||
)}&origin=${encodeURIComponent(domain)}`;
|
||||
const params = {
|
||||
workflow_version_id: workflow_version_id,
|
||||
auth_token: token,
|
||||
org_display: userName,
|
||||
origin: domain,
|
||||
};
|
||||
|
||||
const queryString = Object.entries(params)
|
||||
.filter(([key, value]) => value !== undefined)
|
||||
.map(([key, value]) => `${encodeURIComponent(key)}=${encodeURIComponent(value as string)}`)
|
||||
.join('&');
|
||||
|
||||
return `${endpoint}?${queryString}`;
|
||||
},
|
||||
);
|
||||
|
Loading…
x
Reference in New Issue
Block a user