mirror of
https://github.com/Infisical/infisical.git
synced 2025-03-29 22:02:57 +00:00
.github
.husky
backend
cli
docs
frontend
components
analytics
basic
buttons
dialog
popups
table
Error.tsx
InputField.tsx
Layout.tsx
Listbox.tsx
Toggle.tsx
billing
context
dashboard
integrations
navigation
utilities
RouteGuard.js
pages
public
scripts
styles
.dockerignore
.eslintrc
.gitignore
Dockerfile
Dockerfile.dev
README.md
const.js
next-env.d.ts
next.config.js
package-lock.json
package.json
postcss.config.js
tailwind.config.js
tsconfig.json
helm-charts
img
k8-operator
nginx
.env.example
.eslintignore
.gitignore
.goreleaser.yaml
CODE_OF_CONDUCT.md
CONTRIBUTING.md
LICENSE
Makefile
README.md
SECURITY.md
docker-compose.dev.yml
docker-compose.yml
package-lock.json
package.json
56 lines
1.5 KiB
TypeScript
56 lines
1.5 KiB
TypeScript
import React from "react";
|
|
import { Switch } from "@headlessui/react";
|
|
|
|
|
|
interface OverrideProps {
|
|
id: string;
|
|
keyName: string;
|
|
value: string;
|
|
pos: number;
|
|
}
|
|
|
|
interface ToggleProps {
|
|
enabled: boolean;
|
|
setEnabled: (value: boolean) => void;
|
|
addOverride: (value: OverrideProps) => void;
|
|
keyName: string;
|
|
value: string;
|
|
pos: number;
|
|
id: string;
|
|
deleteOverride: (id: string) => void;
|
|
}
|
|
|
|
/**
|
|
* This is a typical 'iPhone' toggle (e.g., user for overriding secrets with personal values)
|
|
* @param obj
|
|
* @param {boolean} obj.enabled - whether the toggle is turned on or off
|
|
* @param {function} obj.setEnabled - change the state of the toggle
|
|
* @returns
|
|
*/
|
|
export default function Toggle ({ enabled, setEnabled, addOverride, keyName, value, pos, id, deleteOverride }: ToggleProps): JSX.Element {
|
|
console.log(755, pos, enabled)
|
|
return (
|
|
<Switch
|
|
checked={enabled}
|
|
onChange={() => {
|
|
if (enabled == false) {
|
|
addOverride({ id, keyName, value, pos });
|
|
} else {
|
|
deleteOverride(id);
|
|
}
|
|
setEnabled(!enabled);
|
|
}}
|
|
className={`${
|
|
enabled ? 'bg-primary' : 'bg-bunker-400'
|
|
} relative inline-flex h-5 w-9 items-center rounded-full`}
|
|
>
|
|
<span className="sr-only">Enable notifications</span>
|
|
<span
|
|
className={`${
|
|
enabled ? 'translate-x-[1.26rem]' : 'translate-x-0.5'
|
|
} inline-block h-3.5 w-3.5 transform rounded-full bg-bunker-800 transition`}
|
|
/>
|
|
</Switch>
|
|
)
|
|
}
|