fix: allow access to the Update View button when a table column can be persisted (#1433)

Closes #1432
This commit is contained in:
Thaïs
2023-09-04 17:08:04 +02:00
committed by GitHub
parent 85156ce9ae
commit a1e6e46388
5 changed files with 47 additions and 8 deletions

View File

@ -1,4 +1,5 @@
import { useCallback } from 'react';
import { useRecoilValue } from 'recoil';
import { DropdownRecoilScopeContext } from '@/ui/dropdown/states/recoil-scope-contexts/DropdownRecoilScopeContext';
import { FilterDropdownButton } from '@/ui/filter-n-sort/components/FilterDropdownButton';
@ -9,13 +10,19 @@ import { FiltersHotkeyScope } from '@/ui/filter-n-sort/types/FiltersHotkeyScope'
import { SelectedSortType, SortType } from '@/ui/filter-n-sort/types/interface';
import { TopBar } from '@/ui/top-bar/TopBar';
import { RecoilScope } from '@/ui/utilities/recoil-scope/components/RecoilScope';
import { useContextScopeId } from '@/ui/utilities/recoil-scope/hooks/useContextScopeId';
import { useRecoilScopedState } from '@/ui/utilities/recoil-scope/hooks/useRecoilScopedState';
import { useRecoilScopedValue } from '@/ui/utilities/recoil-scope/hooks/useRecoilScopedValue';
import { TableOptionsDropdown } from '../../options/components/TableOptionsDropdown';
import { TableUpdateViewButtonGroup } from '../../options/components/TableUpdateViewButtonGroup';
import { TableViewsDropdownButton } from '../../options/components/TableViewsDropdownButton';
import { TableRecoilScopeContext } from '../../states/recoil-scope-contexts/TableRecoilScopeContext';
import type { TableView } from '../../states/tableViewsState';
import { canPersistTableColumnsScopedSelector } from '../../states/selectors/canPersistTableColumnsScopedSelector';
import {
currentTableViewIdState,
type TableView,
} from '../../states/tableViewsState';
import { TableOptionsHotkeyScope } from '../../types/TableOptionsHotkeyScope';
import { TableViewsHotkeyScope } from '../../types/TableViewsHotkeyScope';
@ -34,10 +41,19 @@ export function TableHeader<SortField>({
onViewSubmit,
onImport,
}: OwnProps<SortField>) {
const tableScopeId = useContextScopeId(TableRecoilScopeContext);
const currentTableViewId = useRecoilScopedValue(
currentTableViewIdState,
TableRecoilScopeContext,
);
const [sorts, setSorts] = useRecoilScopedState<SelectedSortType<SortField>[]>(
sortsScopedState,
TableRecoilScopeContext,
);
const canPersistTableColumns = useRecoilValue(
canPersistTableColumnsScopedSelector([tableScopeId, currentTableViewId]),
);
const sortSelect = useCallback(
(newSort: SelectedSortType<SortField>) => {
@ -90,6 +106,7 @@ export function TableHeader<SortField>({
}
bottomComponent={
<SortAndFilterBar
canToggle={canPersistTableColumns}
context={TableRecoilScopeContext}
sorts={sorts}
onRemoveSort={sortUnselect}