feat: refresh create new machine ui
This commit is contained in:
parent
8628480362
commit
b6be0bd462
@ -357,9 +357,15 @@ export function MachineList({
|
||||
},
|
||||
snapshot: {
|
||||
fieldType: "snapshot",
|
||||
inputProps: {
|
||||
showLabel: false,
|
||||
},
|
||||
},
|
||||
models: {
|
||||
fieldType: "models",
|
||||
inputProps: {
|
||||
showLabel: false,
|
||||
},
|
||||
},
|
||||
gpu: {
|
||||
fieldType: !userMetadata.betaFeaturesAccess
|
||||
|
@ -2,6 +2,12 @@
|
||||
|
||||
import type { AutoFormInputComponentProps } from "../ui/auto-form/types";
|
||||
import { LoadingIcon } from "@/components/LoadingIcon";
|
||||
import {
|
||||
Accordion,
|
||||
AccordionContent,
|
||||
AccordionItem,
|
||||
AccordionTrigger,
|
||||
} from "@/components/ui/accordion";
|
||||
import { Button } from "@/components/ui/button";
|
||||
import {
|
||||
Command,
|
||||
@ -154,7 +160,13 @@ export function ModelPickerView({
|
||||
field,
|
||||
}: Pick<AutoFormInputComponentProps, "field">) {
|
||||
return (
|
||||
<div className="flex gap-2 flex-col">
|
||||
<Accordion type="single" collapsible>
|
||||
<AccordionItem value="item-1">
|
||||
<AccordionTrigger className="text-sm">
|
||||
Models (ComfyUI Manager & Civitai)
|
||||
</AccordionTrigger>
|
||||
<AccordionContent>
|
||||
<div className="flex gap-2 flex-col px-1">
|
||||
<ComfyUIManagerModelRegistry field={field} />
|
||||
<CivitaiModelRegistry field={field} />
|
||||
{/* <span>{field.value.length} selected</span> */}
|
||||
@ -170,6 +182,9 @@ export function ModelPickerView({
|
||||
</ScrollArea>
|
||||
)}
|
||||
</div>
|
||||
</AccordionContent>
|
||||
</AccordionItem>
|
||||
</Accordion>
|
||||
);
|
||||
}
|
||||
|
||||
@ -307,7 +322,13 @@ export function ComfyUIManagerModelRegistry({
|
||||
};
|
||||
}, []);
|
||||
|
||||
return <ModelSelector field={field} modelList={modelList} label="common" />;
|
||||
return (
|
||||
<ModelSelector
|
||||
field={field}
|
||||
modelList={modelList}
|
||||
label="ComfyUI Manager"
|
||||
/>
|
||||
);
|
||||
}
|
||||
|
||||
export function ModelSelector({
|
||||
@ -358,7 +379,7 @@ export function ModelSelector({
|
||||
aria-expanded={open}
|
||||
className="w-full justify-between flex"
|
||||
>
|
||||
Select {label}
|
||||
Add from {label}
|
||||
<ChevronsUpDown className="ml-2 h-4 w-4 shrink-0 opacity-50" />
|
||||
</Button>
|
||||
</PopoverTrigger>
|
||||
@ -371,7 +392,7 @@ export function ModelSelector({
|
||||
>
|
||||
{isLoading && <LoadingIcon />}
|
||||
</CommandInput>
|
||||
<CommandEmpty>No framework found.</CommandEmpty>
|
||||
<CommandEmpty>No models found.</CommandEmpty>
|
||||
<CommandList className="pointer-events-auto">
|
||||
<CommandGroup>
|
||||
{modelList?.models.map((model) => (
|
||||
|
@ -2,6 +2,12 @@
|
||||
|
||||
import type { AutoFormInputComponentProps } from "../ui/auto-form/types";
|
||||
import fetcher from "@/components/fetcher";
|
||||
import {
|
||||
Accordion,
|
||||
AccordionContent,
|
||||
AccordionItem,
|
||||
AccordionTrigger,
|
||||
} from "@/components/ui/accordion";
|
||||
import { Button } from "@/components/ui/button";
|
||||
import {
|
||||
Command,
|
||||
@ -27,7 +33,10 @@ export function SnapshotPickerView({
|
||||
field,
|
||||
}: Pick<AutoFormInputComponentProps, "field">) {
|
||||
return (
|
||||
<div className="flex gap-2 flex-col">
|
||||
<Accordion type="single" collapsible>
|
||||
<AccordionItem value="item-1">
|
||||
<AccordionTrigger className="text-sm">Custom Nodes</AccordionTrigger>
|
||||
<AccordionContent className="flex gap-2 flex-col px-1">
|
||||
<SnapshotPresetPicker field={field} />
|
||||
<CustomNodesSelector field={field} />
|
||||
{field.value && (
|
||||
@ -42,7 +51,9 @@ export function SnapshotPickerView({
|
||||
/>
|
||||
// </ScrollArea>
|
||||
)}
|
||||
</div>
|
||||
</AccordionContent>
|
||||
</AccordionItem>
|
||||
</Accordion>
|
||||
);
|
||||
}
|
||||
|
||||
@ -97,14 +108,16 @@ function SnapshotPresetPicker({
|
||||
aria-expanded={open}
|
||||
className="w-full justify-between flex"
|
||||
>
|
||||
{selected ? findItem(selected)?.label : "Select snapshot..."}
|
||||
{selected
|
||||
? findItem(selected)?.label
|
||||
: "Select snapshot (From deployments)"}
|
||||
<ChevronsUpDown className="ml-2 h-4 w-4 shrink-0 opacity-50" />
|
||||
</Button>
|
||||
</PopoverTrigger>
|
||||
<PopoverContent className="w-[375px] p-0">
|
||||
<Command>
|
||||
<CommandInput placeholder="Search framework..." className="h-9" />
|
||||
<CommandEmpty>No framework found.</CommandEmpty>
|
||||
<CommandInput placeholder="Search snapshot..." className="h-9" />
|
||||
<CommandEmpty>No snapshot found.</CommandEmpty>
|
||||
<CommandGroup>
|
||||
{frameworks?.map((framework) => (
|
||||
<CommandItem
|
||||
@ -188,7 +201,7 @@ function CustomNodesSelector({
|
||||
aria-expanded={open}
|
||||
className="w-full justify-between flex"
|
||||
>
|
||||
Select custom nodes... {keys.length} selected
|
||||
Add custom nodes - {keys.length} selected
|
||||
<ChevronsUpDown className="ml-2 h-4 w-4 shrink-0 opacity-50" />
|
||||
</Button>
|
||||
</PopoverTrigger>
|
||||
|
@ -21,10 +21,12 @@ export default function AutoFormModelsPicker({
|
||||
}: AutoFormInputComponentProps) {
|
||||
return (
|
||||
<FormItem>
|
||||
{fieldConfigItem.inputProps?.showLabel && (
|
||||
<FormLabel>
|
||||
{label}
|
||||
{isRequired && <span className="text-destructive"> *</span>}
|
||||
</FormLabel>
|
||||
)}
|
||||
<FormControl>
|
||||
<Suspense fallback={<LoadingIcon />}>
|
||||
<ModelPickerView field={field} />
|
||||
|
@ -21,10 +21,12 @@ export default function AutoFormSnapshotPicker({
|
||||
}: AutoFormInputComponentProps) {
|
||||
return (
|
||||
<FormItem>
|
||||
{fieldConfigItem.inputProps?.showLabel && (
|
||||
<FormLabel>
|
||||
{label}
|
||||
{isRequired && <span className="text-destructive"> *</span>}
|
||||
</FormLabel>
|
||||
)}
|
||||
<FormControl>
|
||||
<Suspense fallback={<LoadingIcon />}>
|
||||
<SnapshotPickerView field={field} />
|
||||
|
Loading…
x
Reference in New Issue
Block a user