mirror of
https://git.vectorsigma.ru/public/tubearchivist.git
synced 2026-08-08 03:29:27 +00:00
refac, move ToggleConfig to component
This commit is contained in:
43
frontend/src/components/ToggleConfig.tsx
Normal file
43
frontend/src/components/ToggleConfig.tsx
Normal file
@@ -0,0 +1,43 @@
|
||||
type ToggleConfigProps = {
|
||||
name: string;
|
||||
value: boolean;
|
||||
updateCallback: (name: string, value: boolean) => void;
|
||||
resetCallback?: (arg0: boolean) => void;
|
||||
onValue?: boolean | string;
|
||||
offValue?: boolean | string;
|
||||
};
|
||||
|
||||
const ToggleConfig = ({
|
||||
name,
|
||||
value,
|
||||
updateCallback,
|
||||
resetCallback = undefined,
|
||||
}: ToggleConfigProps) => {
|
||||
return (
|
||||
<div className="toggle">
|
||||
<div className="toggleBox">
|
||||
<input
|
||||
name={name}
|
||||
type="checkbox"
|
||||
checked={value}
|
||||
onChange={event => {
|
||||
updateCallback(name, event.target.checked);
|
||||
}}
|
||||
/>
|
||||
{!value && (
|
||||
<label htmlFor="" className="ofbtn">
|
||||
Off
|
||||
</label>
|
||||
)}
|
||||
{value && (
|
||||
<label htmlFor="" className="onbtn">
|
||||
On
|
||||
</label>
|
||||
)}
|
||||
</div>
|
||||
{resetCallback !== undefined && <button onClick={() => resetCallback(false)}>Reset</button>}
|
||||
</div>
|
||||
);
|
||||
};
|
||||
|
||||
export default ToggleConfig;
|
||||
Reference in New Issue
Block a user