1
0
Fork 0
mirror of https://github.com/portainer/portainer.git synced 2025-07-19 13:29:41 +02:00
portainer/app/react/components/datatables/TableSettingsMenuAutoRefresh.tsx
Ali d38085a560
Some checks are pending
ci / build_images (map[arch:amd64 platform:linux version:]) (push) Waiting to run
ci / build_images (map[arch:amd64 platform:windows version:1809]) (push) Waiting to run
ci / build_images (map[arch:amd64 platform:windows version:ltsc2022]) (push) Waiting to run
ci / build_images (map[arch:arm platform:linux version:]) (push) Waiting to run
ci / build_images (map[arch:arm64 platform:linux version:]) (push) Waiting to run
ci / build_images (map[arch:ppc64le platform:linux version:]) (push) Waiting to run
ci / build_images (map[arch:s390x platform:linux version:]) (push) Waiting to run
ci / build_manifests (push) Blocked by required conditions
/ triage (push) Waiting to run
Lint / Run linters (push) Waiting to run
Test / test-client (push) Waiting to run
Test / test-server (map[arch:amd64 platform:linux]) (push) Waiting to run
Test / test-server (map[arch:amd64 platform:windows version:1809]) (push) Waiting to run
Test / test-server (map[arch:amd64 platform:windows version:ltsc2022]) (push) Waiting to run
Test / test-server (map[arch:arm64 platform:linux]) (push) Waiting to run
chore(data-cy): require data-cy attributes [EE-6880] (#11453)
2024-04-11 12:11:38 +12:00

64 lines
1.7 KiB
TypeScript

import clsx from 'clsx';
import { useState } from 'react';
import { Check } from 'lucide-react';
import { Checkbox } from '@@/form-components/Checkbox';
import { Icon } from '@@/Icon';
import styles from './TableSettingsMenuAutoRefresh.module.css';
interface Props {
onChange(value: number): void;
value: number;
}
export function TableSettingsMenuAutoRefresh({ onChange, value }: Props) {
const [isCheckVisible, setIsCheckVisible] = useState(false);
const isEnabled = value > 0;
return (
<>
<Checkbox
id="settings-auto-refresh"
data-cy="settings-auto-refresh"
label="Auto refresh"
checked={isEnabled}
onChange={(e) => onChange(e.target.checked ? 10 : 0)}
/>
{isEnabled && (
<div>
<label htmlFor="settings_refresh_rate">Refresh rate</label>
<select
data-cy="settings-refresh-rate"
id="settings_refresh_rate"
className="small-select"
value={value}
onChange={(e) => handleChange(e.target.value)}
>
<option value={10}>10s</option>
<option value={30}>30s</option>
<option value={60}>1min</option>
<option value={120}>2min</option>
<option value={300}>5min</option>
</select>
<span
className={clsx(
isCheckVisible ? styles.alertVisible : styles.alertHidden,
styles.check
)}
onTransitionEnd={() => setIsCheckVisible(false)}
>
<Icon icon={Check} className="!ml-1" mode="success" />
</span>
</div>
)}
</>
);
function handleChange(value: string) {
onChange(Number(value));
setIsCheckVisible(true);
}
}