Skip to content

Commit

Permalink
Add @radix-ui/react-toggle-group and refactor ColorGradingSelector an…
Browse files Browse the repository at this point in the history
…d ControlNetSelector to use ToggleGroup
  • Loading branch information
Precious-Macaulay committed Nov 4, 2024
1 parent 0f3c45c commit 0438117
Show file tree
Hide file tree
Showing 5 changed files with 116 additions and 52 deletions.
70 changes: 70 additions & 0 deletions package-lock.json

Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.

1 change: 1 addition & 0 deletions package.json
Original file line number Diff line number Diff line change
Expand Up @@ -23,6 +23,7 @@
"@radix-ui/react-switch": "^1.1.1",
"@radix-ui/react-tabs": "^1.1.1",
"@radix-ui/react-toast": "^1.2.2",
"@radix-ui/react-toggle-group": "^1.1.0",
"@radix-ui/react-tooltip": "^1.1.3",
"axios": "^1.7.7",
"class-variance-authority": "^0.7.0",
Expand Down
2 changes: 1 addition & 1 deletion src/components/PromptForm/AdvancedControls.tsx
Original file line number Diff line number Diff line change
Expand Up @@ -78,7 +78,6 @@ export const AdvancedControls = () => {
setPromptText(promptText.replace(loraText, ""));
}} />
<ControlNetSelector value={controlNet} onChange={setControlNet} />
<ColorGradingSelector value={colorGrading} onChange={setColorGrading} />

<RangeInput label="Denoising Strength" value={denoisingStrength} onChange={setDenoisingStrength} />
<RangeInput label="ControlNet Conditioning Scale" value={conditioningScale} onChange={setConditioningScale} />
Expand All @@ -97,6 +96,7 @@ export const AdvancedControls = () => {
<div className="mt-4 space-y-3">
<SwitchInput label="Inpaint Faces" checked={inpaintFaces} onCheckedChange={setInpaintFaces} disabled={!superResolution} />
<SwitchInput label="Hi-Res Fix" checked={hiresFix} onCheckedChange={setHiresFix} disabled={!superResolution} />
<ColorGradingSelector value={colorGrading} onChange={setColorGrading} />
<div className="flex items-center justify-between">
<label className="text-sm font-semibold text-gray-700 dark:text-gray-200">
Number of Images
Expand Down
46 changes: 22 additions & 24 deletions src/components/PromptForm/ColorGradingSelector.tsx
Original file line number Diff line number Diff line change
@@ -1,17 +1,11 @@
import * as React from "react";
import {
Select,
SelectValue,
SelectTrigger,
SelectContent,
SelectItem,
} from "@/components/ui/select";
import * as ToggleGroup from "@radix-ui/react-toggle-group";
import { cn } from "@/lib/utils";

const colorGradingOptions = [
{ label: 'Film Velvia', value: 'Film Velvia' },
{ label: 'Film Portra', value: 'Film Portra' },
{ label: 'Ektar', value: 'Ektar' },
{ label: 'Film Velvia', value: 'film-velvia' },
{ label: 'Film Portra', value: 'film-portra' },
{ label: 'Ektar', value: 'ektar' },
];

interface ColorGradingSelectorProps {
Expand All @@ -34,25 +28,29 @@ const ColorGradingSelector: React.FC<ColorGradingSelectorProps> = ({
<label htmlFor="color-grading" className="text-gray-700 text-sm font-medium mb-2">
Color Grading
</label>
<div className="col-span-2">
<Select
onValueChange={handleValueChange}
defaultValue={value}
>
<SelectTrigger>
<SelectValue placeholder="Select grading..." />
</SelectTrigger>
<SelectContent>
<div className="col-span-2 ml-auto">
<ToggleGroup.Root
type="single"
value={value}
onValueChange={handleValueChange}
className="flex space-x-2"
>
{colorGradingOptions.map((option) => (
<SelectItem key={option.value} value={option.value}>
<ToggleGroup.Item
key={option.value}
value={option.value}
className={cn(
"px-4 py-2 rounded-md text-sm font-medium",
value === option.value ? "bg-blue-500 text-white" : "bg-gray-200 text-gray-700"
)}
>
{option.label}
</SelectItem>
</ToggleGroup.Item>
))}
</SelectContent>
</Select>
</ToggleGroup.Root>
</div>
</div>
);
};

export default ColorGradingSelector;
export default ColorGradingSelector;
49 changes: 22 additions & 27 deletions src/components/PromptForm/ControlNetSelector.tsx
Original file line number Diff line number Diff line change
@@ -1,12 +1,5 @@
import * as React from "react";
import {
Select,
SelectGroup,
SelectValue,
SelectTrigger,
SelectContent,
SelectItem,
} from "@/components/ui/select";
import * as ToggleGroup from "@radix-ui/react-toggle-group";
import { cn } from "@/lib/utils";

const controlNetOptions = [
Expand All @@ -31,28 +24,30 @@ const ControlNetSelector: React.FC<ControlNetSelectorProps> = ({
};

return (
<div className={cn("controlnet-selector gap-1 grid grid-cols-3 items-center", className)}>
<label htmlFor="controlnet" className="text-gray-700 text-sm font-medium block">
ControlNet
<div className={cn("color-grading-selector gap-1 grid grid-cols-3 items-center", className)}>
<label htmlFor="color-grading" className="text-gray-700 text-sm font-medium mb-2">
Control Net
</label>
<div className="col-span-2">
<Select
<div className="col-span-2 ml-auto">
<ToggleGroup.Root
type="single"
value={value}
onValueChange={handleValueChange}
defaultValue={value}
className="flex space-x-2"
>
<SelectTrigger>
<SelectValue placeholder="Select a model..." />
</SelectTrigger>
<SelectContent>
<SelectGroup>
{controlNetOptions.map((option) => (
<SelectItem key={option.value} value={option.value}>
{option.label}
</SelectItem>
))}
</SelectGroup>
</SelectContent>
</Select>
{controlNetOptions.map((option) => (
<ToggleGroup.Item
key={option.value}
value={option.value}
className={cn(
"px-4 py-2 rounded-md text-sm font-medium",
value === option.value ? "bg-blue-500 text-white" : "bg-gray-200 text-gray-700"
)}
>
{option.label}
</ToggleGroup.Item>
))}
</ToggleGroup.Root>
</div>
</div>
);
Expand Down

0 comments on commit 0438117

Please sign in to comment.