closes #12
This commit is contained in:
@ -6,7 +6,7 @@ import * as Juce from "juce-framework-frontend";
|
|||||||
// import FormGroup from "@mui/material/FormGroup";
|
// import FormGroup from "@mui/material/FormGroup";
|
||||||
// import FormControlLabel from "@mui/material/FormControlLabel";
|
// import FormControlLabel from "@mui/material/FormControlLabel";
|
||||||
import { controlParameterIndexAnnotation } from "../types/JuceTypes.js";
|
import { controlParameterIndexAnnotation } from "../types/JuceTypes.js";
|
||||||
import { ToggleSwitch } from "./ToggleSwitch.js";
|
// import { ToggleSwitch } from "./ToggleSwitch.js";
|
||||||
|
|
||||||
export default function JuceCheckbox({ identifier }) {
|
export default function JuceCheckbox({ identifier }) {
|
||||||
JuceCheckbox.propTypes = {
|
JuceCheckbox.propTypes = {
|
||||||
@ -54,7 +54,35 @@ export default function JuceCheckbox({ identifier }) {
|
|||||||
checkboxState.properties.parameterIndex,
|
checkboxState.properties.parameterIndex,
|
||||||
}}
|
}}
|
||||||
>
|
>
|
||||||
<ToggleSwitch value={value} onChange={handleChange} />
|
<div className="flex gap-2">
|
||||||
|
<button
|
||||||
|
onClick={() => handleChange(true)}
|
||||||
|
className={`px-8 py-3 rounded transition-colors transition-shadow relative overflow-hidden ${
|
||||||
|
value
|
||||||
|
? `bg-primary text-[#1a1a1a] shadow-primary/40 shadow-[0_0_16px,inset_0_1px_2px_rgba(255,255,255,0.3)]`
|
||||||
|
: `bg-[#1a1a1a] text-primary border-2 border-[#2a2a2a] shadow-[inset_0_2px_4px_rgba(0,0,0,0.3)]`
|
||||||
|
}`}
|
||||||
|
>
|
||||||
|
{!value && (
|
||||||
|
<div className="absolute -top-1/4 left-0 right-0 h-3/4 bg-gradient-to-b from-white/[0.08] via-white/[0.02] to-transparent pointer-events-none blur-[2px]" />
|
||||||
|
)}
|
||||||
|
<span className="relative z-10">ON</span>
|
||||||
|
</button>
|
||||||
|
<button
|
||||||
|
onClick={() => handleChange(false)}
|
||||||
|
className={`px-8 py-3 rounded transition-colors transition-shadow relative overflow-hidden ${
|
||||||
|
!value
|
||||||
|
? `bg-primary text-[#1a1a1a] shadow-primary/40 shadow-[0_0_16px,inset_0_1px_2px_rgba(255,255,255,0.3)]`
|
||||||
|
: `bg-[#1a1a1a] text-primary border-2 border-[#2a2a2a] shadow-[inset_0_2px_4px_rgba(0,0,0,0.3)]`
|
||||||
|
}`}
|
||||||
|
>
|
||||||
|
{value && (
|
||||||
|
<div className="absolute -top-1/4 left-0 right-0 h-3/4 bg-gradient-to-b from-white/[0.08] via-white/[0.02] to-transparent pointer-events-none blur-[2px]" />
|
||||||
|
)}
|
||||||
|
<span className="relative z-10">OFF</span>
|
||||||
|
</button>
|
||||||
|
</div>
|
||||||
|
{/* <ToggleSwitch value={value} onChange={handleChange} /> */}
|
||||||
{/* <FormGroup>
|
{/* <FormGroup>
|
||||||
<FormControlLabel control={cb} />
|
<FormControlLabel control={cb} />
|
||||||
</FormGroup> */}
|
</FormGroup> */}
|
||||||
|
|||||||
@ -1,42 +0,0 @@
|
|||||||
/* eslint-disable react/prop-types */
|
|
||||||
import React, { useState } from "react";
|
|
||||||
|
|
||||||
export function ToggleSwitch({ value = true, onChange }) {
|
|
||||||
const [isOn, setIsOn] = useState(value);
|
|
||||||
|
|
||||||
const handleToggle = (newValue) => {
|
|
||||||
setIsOn(newValue);
|
|
||||||
onChange?.(newValue);
|
|
||||||
};
|
|
||||||
|
|
||||||
return (
|
|
||||||
<div className="flex gap-2">
|
|
||||||
<button
|
|
||||||
onClick={() => handleToggle(true)}
|
|
||||||
className={`px-8 py-3 rounded transition-colors transition-shadow relative overflow-hidden ${
|
|
||||||
isOn
|
|
||||||
? `bg-primary text-[#1a1a1a] shadow-primary/40 shadow-[0_0_16px,inset_0_1px_2px_rgba(255,255,255,0.3)]`
|
|
||||||
: `bg-[#1a1a1a] text-primary border-2 border-[#2a2a2a] shadow-[inset_0_2px_4px_rgba(0,0,0,0.3)]`
|
|
||||||
}`}
|
|
||||||
>
|
|
||||||
{!isOn && (
|
|
||||||
<div className="absolute -top-1/4 left-0 right-0 h-3/4 bg-gradient-to-b from-white/[0.08] via-white/[0.02] to-transparent pointer-events-none blur-[2px]" />
|
|
||||||
)}
|
|
||||||
<span className="relative z-10">ON</span>
|
|
||||||
</button>
|
|
||||||
<button
|
|
||||||
onClick={() => handleToggle(false)}
|
|
||||||
className={`px-8 py-3 rounded transition-colors transition-shadow relative overflow-hidden ${
|
|
||||||
!isOn
|
|
||||||
? `bg-primary text-[#1a1a1a] shadow-primary/40 shadow-[0_0_16px,inset_0_1px_2px_rgba(255,255,255,0.3)]`
|
|
||||||
: `bg-[#1a1a1a] text-primary border-2 border-[#2a2a2a] shadow-[inset_0_2px_4px_rgba(0,0,0,0.3)]`
|
|
||||||
}`}
|
|
||||||
>
|
|
||||||
{isOn && (
|
|
||||||
<div className="absolute -top-1/4 left-0 right-0 h-3/4 bg-gradient-to-b from-white/[0.08] via-white/[0.02] to-transparent pointer-events-none blur-[2px]" />
|
|
||||||
)}
|
|
||||||
<span className="relative z-10">OFF</span>
|
|
||||||
</button>
|
|
||||||
</div>
|
|
||||||
);
|
|
||||||
}
|
|
||||||
Reference in New Issue
Block a user