mirror of
https://github.com/portainer/portainer.git
synced 2025-07-21 14:29:40 +02:00
refactor(app): move react components to react codebase [EE-3179] (#6971)
This commit is contained in:
parent
212400c283
commit
18252ab854
346 changed files with 642 additions and 644 deletions
48
app/react/components/datatables/QuickActionsSettings.tsx
Normal file
48
app/react/components/datatables/QuickActionsSettings.tsx
Normal file
|
@ -0,0 +1,48 @@
|
|||
import { Checkbox } from '@@/form-components/Checkbox';
|
||||
|
||||
import { useTableSettings } from './useTableSettings';
|
||||
|
||||
export interface Action {
|
||||
id: string;
|
||||
label: string;
|
||||
}
|
||||
|
||||
interface Props {
|
||||
actions: Action[];
|
||||
}
|
||||
|
||||
export interface QuickActionsSettingsType {
|
||||
hiddenQuickActions: string[];
|
||||
}
|
||||
|
||||
export function QuickActionsSettings({ actions }: Props) {
|
||||
const { settings, setTableSettings } =
|
||||
useTableSettings<QuickActionsSettingsType>();
|
||||
|
||||
return (
|
||||
<>
|
||||
{actions.map(({ id, label }) => (
|
||||
<Checkbox
|
||||
key={id}
|
||||
label={label}
|
||||
id={`quick-actions-${id}`}
|
||||
checked={!settings.hiddenQuickActions.includes(id)}
|
||||
onChange={(e) => toggleAction(id, e.target.checked)}
|
||||
/>
|
||||
))}
|
||||
</>
|
||||
);
|
||||
|
||||
function toggleAction(key: string, value: boolean) {
|
||||
setTableSettings(({ hiddenQuickActions = [], ...settings }) => ({
|
||||
...settings,
|
||||
hiddenQuickActions: value
|
||||
? hiddenQuickActions.filter((id) => id !== key)
|
||||
: [...hiddenQuickActions, key],
|
||||
}));
|
||||
}
|
||||
}
|
||||
|
||||
export function buildAction(id: string, label: string): Action {
|
||||
return { id, label };
|
||||
}
|
Loading…
Add table
Add a link
Reference in a new issue