1
0
Fork 0
mirror of https://github.com/portainer/portainer.git synced 2025-07-23 15:29:42 +02:00

fix(stacks): store filter state [EE-5159] (#11637)
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-05-28 08:14:12 +03:00 committed by GitHub
parent 84fe3cf2a2
commit 1261887c9e
No known key found for this signature in database
GPG key ID: B5690EEEBB952194
20 changed files with 252 additions and 57 deletions

View file

@ -1,15 +1,24 @@
import { List } from 'lucide-react';
import { Datatable } from '@@/datatables';
import { createPersistedStore } from '@@/datatables/types';
import { useTableState } from '@@/datatables/useTableState';
import {
BasicTableSettings,
type FilteredColumnsTableSettings,
filteredColumnsSettings,
} from '@@/datatables/types';
import { useTableStateWithStorage } from '@@/datatables/useTableState';
import { withMeta } from '@@/datatables/extend-options/withMeta';
import { mergeOptions } from '@@/datatables/extend-options/mergeOptions';
import { withColumnFilters } from '@@/datatables/extend-options/withColumnFilters';
import { useColumns } from './columns';
import { DecoratedTask } from './types';
const storageKey = 'docker-service-tasks';
const store = createPersistedStore(storageKey);
interface TableSettings
extends BasicTableSettings,
FilteredColumnsTableSettings {}
export function TasksDatatable({
dataset,
@ -20,7 +29,13 @@ export function TasksDatatable({
isSlotColumnVisible: boolean;
serviceName: string;
}) {
const tableState = useTableState(store, storageKey);
const tableState = useTableStateWithStorage<TableSettings>(
storageKey,
undefined,
(set) => ({
...filteredColumnsSettings(set),
})
);
const columns = useColumns(isSlotColumnVisible);
return (
@ -31,7 +46,11 @@ export function TasksDatatable({
columns={columns}
dataset={dataset}
emptyContentLabel="No task available."
extendTableOptions={withMeta({ table: 'tasks', serviceName })}
extendTableOptions={mergeOptions(
withMeta({ table: 'tasks', serviceName }),
withColumnFilters(tableState.columnFilters, tableState.setColumnFilters)
)}
disableSelect
data-cy="docker-service-tasks-datatable"
/>
);