feat: add run origin options, fix client code templates, buttons and badge styles
This commit is contained in:
@@ -1,9 +1,6 @@
|
||||
"use client";
|
||||
|
||||
import {
|
||||
plainInputsToZod,
|
||||
workflowVersionInputsToZod,
|
||||
} from "../lib/workflowVersionInputsToZod";
|
||||
import { workflowVersionInputsToZod } from "../lib/workflowVersionInputsToZod";
|
||||
import { callServerPromise } from "./callServerPromise";
|
||||
import fetcher from "./fetcher";
|
||||
import { LoadingIcon } from "@/components/LoadingIcon";
|
||||
@@ -43,12 +40,10 @@ import {
|
||||
TableRow,
|
||||
} from "@/components/ui/table";
|
||||
import type { workflowAPINodeType } from "@/db/schema";
|
||||
import type { getInputsFromWorkflow } from "@/lib/getInputsFromWorkflow";
|
||||
import { checkStatus, createRun } from "@/server/createRun";
|
||||
import { createDeployments } from "@/server/curdDeploments";
|
||||
import type { getMachines } from "@/server/curdMachine";
|
||||
import type { findFirstTableWithVersion } from "@/server/findFirstTableWithVersion";
|
||||
import { useAuth, useClerk } from "@clerk/nextjs";
|
||||
import {
|
||||
Copy,
|
||||
ExternalLink,
|
||||
@@ -147,7 +142,7 @@ type PublicRunStore = {
|
||||
setStatus: (status: string) => void;
|
||||
};
|
||||
|
||||
const publicRunStore = create<PublicRunStore>((set) => ({
|
||||
export const publicRunStore = create<PublicRunStore>((set) => ({
|
||||
image: "",
|
||||
loading: false,
|
||||
runId: "",
|
||||
@@ -198,105 +193,6 @@ export function PublicRunOutputs() {
|
||||
);
|
||||
}
|
||||
|
||||
export function RunWorkflowInline({
|
||||
inputs,
|
||||
workflow_version_id,
|
||||
machine_id,
|
||||
}: {
|
||||
inputs: ReturnType<typeof getInputsFromWorkflow>;
|
||||
workflow_version_id: string;
|
||||
machine_id: string;
|
||||
}) {
|
||||
const [values, setValues] = useState<Record<string, string>>({});
|
||||
const [isLoading, setIsLoading] = useState(false);
|
||||
|
||||
const user = useAuth();
|
||||
const clerk = useClerk();
|
||||
|
||||
const schema = useMemo(() => {
|
||||
return plainInputsToZod(inputs);
|
||||
}, [inputs]);
|
||||
|
||||
const {
|
||||
setRunId,
|
||||
loading,
|
||||
setLoading: setLoading2,
|
||||
setStatus,
|
||||
} = publicRunStore();
|
||||
|
||||
const runWorkflow = async () => {
|
||||
console.log();
|
||||
|
||||
if (!user.isSignedIn) {
|
||||
clerk.openSignIn({
|
||||
redirectUrl: window.location.href,
|
||||
});
|
||||
console.log("hi");
|
||||
return;
|
||||
}
|
||||
console.log(values);
|
||||
|
||||
const val = Object.keys(values).length > 0 ? values : undefined;
|
||||
setLoading2(true);
|
||||
setIsLoading(true);
|
||||
setStatus("preparing");
|
||||
try {
|
||||
const origin = window.location.origin;
|
||||
const a = await callServerPromise(
|
||||
createRun({
|
||||
origin,
|
||||
workflow_version_id: workflow_version_id,
|
||||
machine_id: machine_id,
|
||||
inputs: val,
|
||||
isManualRun: true,
|
||||
})
|
||||
);
|
||||
if (a && !("error" in a)) {
|
||||
setRunId(a.workflow_run_id);
|
||||
} else {
|
||||
setLoading2(false);
|
||||
}
|
||||
console.log(a);
|
||||
setIsLoading(false);
|
||||
} catch (error) {
|
||||
setIsLoading(false);
|
||||
setLoading2(false);
|
||||
}
|
||||
};
|
||||
|
||||
return (
|
||||
<>
|
||||
{schema && (
|
||||
<AutoForm
|
||||
formSchema={schema}
|
||||
values={values}
|
||||
onValuesChange={setValues}
|
||||
onSubmit={runWorkflow}
|
||||
className="px-1"
|
||||
>
|
||||
<div className="flex justify-end">
|
||||
<AutoFormSubmit disabled={isLoading || loading}>
|
||||
Run
|
||||
<span className="ml-2">
|
||||
{isLoading || loading ? <LoadingIcon /> : <Play size={14} />}
|
||||
</span>
|
||||
</AutoFormSubmit>
|
||||
</div>
|
||||
</AutoForm>
|
||||
)}
|
||||
{!schema && (
|
||||
<Button
|
||||
className="gap-2"
|
||||
disabled={isLoading || loading}
|
||||
onClick={runWorkflow}
|
||||
>
|
||||
Confirm {isLoading || loading ? <LoadingIcon /> : <Play size={14} />}
|
||||
</Button>
|
||||
)}
|
||||
</>
|
||||
);
|
||||
}
|
||||
|
||||
export function RunWorkflowButton({
|
||||
workflow,
|
||||
machines,
|
||||
|
||||
Reference in New Issue
Block a user