1
0
Fork 0
mirror of https://github.com/portainer/portainer.git synced 2025-07-19 13:29:41 +02:00

refactor(kube/apps): migrate table to react [EE-4685] (#11028)
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

This commit is contained in:
Chaim Lev-Ari 2024-04-11 10:11:17 +03:00 committed by GitHub
parent e9ebef15a0
commit 76e49ed9a8
No known key found for this signature in database
GPG key ID: B5690EEEBB952194
41 changed files with 756 additions and 903 deletions

View file

@ -16,14 +16,19 @@ export interface TableSettings
export function DefaultDatatableSettings({
settings,
onShowSystemChange,
}: {
settings: TableSettings;
onShowSystemChange?(showSystem: boolean): void;
}) {
return (
<>
<SystemResourcesSettings
value={settings.showSystemResources}
onChange={(value) => settings.setShowSystemResources(value)}
onChange={(value) => {
settings.setShowSystemResources(value);
onShowSystemChange?.(value);
}}
/>
<TableSettingsMenuAutoRefresh

View file

@ -1,18 +1,36 @@
import { refreshableSettings, createPersistedStore } from '@@/datatables/types';
import { useState } from 'react';
import {
refreshableSettings,
createPersistedStore,
ZustandSetFunc,
} from '@@/datatables/types';
import { useTableState } from '@@/datatables/useTableState';
import { TableSettings } from './DefaultDatatableSettings';
import { systemResourcesSettings } from './SystemResourcesSettings';
export function createStore(
export function createStore<T extends TableSettings>(
storageKey: string,
initialSortBy: string | { id: string; desc: boolean } = 'name'
initialSortBy?: string | { id: string; desc: boolean },
create: (set: ZustandSetFunc<T>) => Omit<T, keyof TableSettings> = () =>
({}) as T
) {
return createPersistedStore<TableSettings>(
return createPersistedStore<T>(
storageKey,
initialSortBy,
(set) => ({
...refreshableSettings(set),
...systemResourcesSettings(set),
})
(set) =>
({
...refreshableSettings(set),
...systemResourcesSettings(set),
...create(set),
}) as T
);
}
export function useKubeStore<T extends TableSettings>(
...args: Parameters<typeof createStore<T>>
) {
const [store] = useState(() => createStore(...args));
return useTableState(store, args[0]);
}