@leav/ui 0.3.6-ac90f23 → 0.3.6-b3a1065
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/__mocks__/common/view.js +7 -5
- package/dist/__mocks__/common/view.js.map +1 -1
- package/dist/__mocks__/mockQuery/mockGetLibraryDetailExtendedQuery.js +1 -1
- package/dist/__mocks__/mockQuery/mockGetLibraryDetailExtendedQuery.js.map +1 -1
- package/dist/__mocks__/mockQuery/mockGetViewListQuery.js +2 -1
- package/dist/__mocks__/mockQuery/mockGetViewListQuery.js.map +1 -1
- package/dist/_gqlTypes/index.d.ts +90 -57
- package/dist/_gqlTypes/index.js +61 -31
- package/dist/_gqlTypes/index.js.map +1 -1
- package/dist/_queries/libraries/getLibraryDetailExtendQuery.d.ts +3 -4
- package/dist/_queries/libraries/getLibraryDetailExtendQuery.js +2 -3
- package/dist/_queries/libraries/getLibraryDetailExtendQuery.js.map +1 -1
- package/dist/_queries/views/saveViewMutation.js +1 -1
- package/dist/_queries/views/viewDetailsFragment.js +14 -11
- package/dist/_queries/views/viewDetailsFragment.js.map +1 -1
- package/dist/_utils/index.js +5 -2
- package/dist/_utils/index.js.map +1 -1
- package/dist/_utils/interleaveElement.d.ts +1 -0
- package/dist/_utils/interleaveElement.js +5 -0
- package/dist/_utils/interleaveElement.js.map +1 -0
- package/dist/components/Explorer/DataView.js +2 -1
- package/dist/components/Explorer/DataView.js.map +1 -1
- package/dist/components/Explorer/Explorer.d.ts +2 -3
- package/dist/components/Explorer/Explorer.js +7 -13
- package/dist/components/Explorer/Explorer.js.map +1 -1
- package/dist/components/Explorer/_constants.d.ts +4 -0
- package/dist/components/Explorer/_constants.js +17 -0
- package/dist/components/Explorer/_constants.js.map +1 -0
- package/dist/components/Explorer/_queries/useExplorerData.d.ts +6 -4
- package/dist/components/Explorer/_queries/useExplorerData.js +76 -12
- package/dist/components/Explorer/_queries/useExplorerData.js.map +1 -1
- package/dist/components/Explorer/_types.d.ts +8 -0
- package/dist/components/Explorer/display-view-filters/ExplorerToolBar.d.ts +4 -0
- package/dist/components/Explorer/display-view-filters/ExplorerToolBar.js +47 -0
- package/dist/components/Explorer/display-view-filters/ExplorerToolBar.js.map +1 -0
- package/dist/components/Explorer/manage-view-settings/filter-items/FilterItems.js +4 -2
- package/dist/components/Explorer/manage-view-settings/filter-items/FilterItems.js.map +1 -1
- package/dist/components/Explorer/manage-view-settings/filter-items/filter-type/BooleanAttributeDropdown.d.ts +3 -0
- package/dist/components/Explorer/manage-view-settings/filter-items/filter-type/BooleanAttributeDropdown.js +37 -0
- package/dist/components/Explorer/manage-view-settings/filter-items/filter-type/BooleanAttributeDropdown.js.map +1 -0
- package/dist/components/Explorer/manage-view-settings/filter-items/filter-type/DateAttributeDropDown.d.ts +3 -0
- package/dist/components/Explorer/manage-view-settings/filter-items/filter-type/DateAttributeDropDown.js +90 -0
- package/dist/components/Explorer/manage-view-settings/filter-items/filter-type/DateAttributeDropDown.js.map +1 -0
- package/dist/components/Explorer/manage-view-settings/filter-items/filter-type/FilterDropDown.js +6 -0
- package/dist/components/Explorer/manage-view-settings/filter-items/filter-type/FilterDropDown.js.map +1 -1
- package/dist/components/Explorer/manage-view-settings/filter-items/filter-type/useConditionOptionsByType.d.ts +5 -9
- package/dist/components/Explorer/manage-view-settings/filter-items/filter-type/useConditionOptionsByType.js +31 -3
- package/dist/components/Explorer/manage-view-settings/filter-items/filter-type/useConditionOptionsByType.js.map +1 -1
- package/dist/components/Explorer/manage-view-settings/open-view-settings/EditSettingsContext.d.ts +1 -0
- package/dist/components/Explorer/manage-view-settings/open-view-settings/EditSettingsContext.js.map +1 -1
- package/dist/components/Explorer/manage-view-settings/open-view-settings/useOpenViewSettings.d.ts +2 -0
- package/dist/components/Explorer/manage-view-settings/open-view-settings/useOpenViewSettings.js +24 -6
- package/dist/components/Explorer/manage-view-settings/open-view-settings/useOpenViewSettings.js.map +1 -1
- package/dist/components/Explorer/manage-view-settings/router-menu/SettingsPanel.d.ts +2 -1
- package/dist/components/Explorer/manage-view-settings/router-menu/SettingsPanel.js +45 -28
- package/dist/components/Explorer/manage-view-settings/router-menu/SettingsPanel.js.map +1 -1
- package/dist/components/Explorer/manage-view-settings/sort-items/SortItems.js +20 -20
- package/dist/components/Explorer/manage-view-settings/sort-items/SortItems.js.map +1 -1
- package/dist/components/Explorer/manage-view-settings/store-view-settings/viewSettingsInitialState.js +7 -1
- package/dist/components/Explorer/manage-view-settings/store-view-settings/viewSettingsInitialState.js.map +1 -1
- package/dist/components/Explorer/manage-view-settings/store-view-settings/viewSettingsReducer.d.ts +16 -6
- package/dist/components/Explorer/manage-view-settings/store-view-settings/viewSettingsReducer.js +29 -28
- package/dist/components/Explorer/manage-view-settings/store-view-settings/viewSettingsReducer.js.map +1 -1
- package/dist/components/Explorer/nullValuesConditions.d.ts +1 -0
- package/dist/components/Explorer/nullValuesConditions.js +14 -0
- package/dist/components/Explorer/nullValuesConditions.js.map +1 -0
- package/dist/components/Explorer/useViewSettingsReducer.d.ts +8 -0
- package/dist/components/Explorer/useViewSettingsReducer.js +103 -0
- package/dist/components/Explorer/useViewSettingsReducer.js.map +1 -0
- package/dist/components/LibraryItemsList/LibraryItemsListContent/LibraryItemsListContent.js +7 -11
- package/dist/components/LibraryItemsList/LibraryItemsListContent/LibraryItemsListContent.js.map +1 -1
- package/dist/components/LibraryItemsList/LibraryItemsListTable/Header/Header.js +7 -5
- package/dist/components/LibraryItemsList/LibraryItemsListTable/Header/Header.js.map +1 -1
- package/dist/components/LibraryItemsList/MenuView/MenuView.js +4 -9
- package/dist/components/LibraryItemsList/MenuView/MenuView.js.map +1 -1
- package/dist/components/LibraryItemsList/ViewPanel/EditView/EditView.js +2 -3
- package/dist/components/LibraryItemsList/ViewPanel/EditView/EditView.js.map +1 -1
- package/dist/components/LibraryItemsList/ViewPanel/View/View.js +3 -3
- package/dist/components/LibraryItemsList/ViewPanel/View/View.js.map +1 -1
- package/dist/components/LibraryItemsList/helpers/getFieldsFromView.js +4 -9
- package/dist/components/LibraryItemsList/helpers/getFieldsFromView.js.map +1 -1
- package/dist/components/LibraryItemsList/hooks/useLibraryView/useLibraryView.js +7 -5
- package/dist/components/LibraryItemsList/hooks/useLibraryView/useLibraryView.js.map +1 -1
- package/dist/components/LibraryItemsList/hooks/useSearchReducer/_types.d.ts +1 -1
- package/dist/components/LibraryItemsList/hooks/useSearchReducer/searchReducer.d.ts +1 -1
- package/dist/components/LibraryItemsList/hooks/useSearchReducer/searchReducer.js +25 -33
- package/dist/components/LibraryItemsList/hooks/useSearchReducer/searchReducer.js.map +1 -1
- package/dist/components/RecordEdition/EditRecord/EditRecord.d.ts +1 -0
- package/dist/components/RecordEdition/EditRecord/EditRecord.js +8 -16
- package/dist/components/RecordEdition/EditRecord/EditRecord.js.map +1 -1
- package/dist/components/RecordEdition/EditRecordContent/EditRecordContent.js +1 -1
- package/dist/components/RecordEdition/EditRecordContent/EditRecordContent.js.map +1 -1
- package/dist/components/RecordEdition/EditRecordModal/EditRecordModal.js +10 -4
- package/dist/components/RecordEdition/EditRecordModal/EditRecordModal.js.map +1 -1
- package/dist/components/RecordEdition/EditRecordPage/EditRecordPage.d.ts +2 -0
- package/dist/components/RecordEdition/EditRecordPage/EditRecordPage.js +2 -2
- package/dist/components/RecordEdition/EditRecordPage/EditRecordPage.js.map +1 -1
- package/dist/components/RecordEdition/EditRecordSidebar/EditRecordSidebar.d.ts +4 -1
- package/dist/components/RecordEdition/EditRecordSidebar/EditRecordSidebar.js +31 -3
- package/dist/components/RecordEdition/EditRecordSidebar/EditRecordSidebar.js.map +1 -1
- package/dist/hooks/useExecuteSaveViewMutation/index.d.ts +1 -0
- package/dist/hooks/useExecuteSaveViewMutation/index.js +5 -0
- package/dist/hooks/useExecuteSaveViewMutation/index.js.map +1 -0
- package/dist/hooks/useExecuteSaveViewMutation/useExecuteSaveViewMutation.d.ts +6 -0
- package/dist/hooks/{useExecuteAddViewMutation/useExecuteAddViewMutation.js → useExecuteSaveViewMutation/useExecuteSaveViewMutation.js} +6 -6
- package/dist/hooks/useExecuteSaveViewMutation/useExecuteSaveViewMutation.js.map +1 -0
- package/dist/locales/en/shared.json +5 -3
- package/dist/locales/fr/shared.json +5 -3
- package/dist/types/views.d.ts +4 -4
- package/package.json +1 -1
- package/dist/components/Explorer/display-view-filters/ExplorerFilterBar.d.ts +0 -2
- package/dist/components/Explorer/display-view-filters/ExplorerFilterBar.js +0 -37
- package/dist/components/Explorer/display-view-filters/ExplorerFilterBar.js.map +0 -1
- package/dist/hooks/useExecuteAddViewMutation/useExecuteAddViewMutation.d.ts +0 -6
- package/dist/hooks/useExecuteAddViewMutation/useExecuteAddViewMutation.js.map +0 -1
|
@@ -1,53 +1,70 @@
|
|
|
1
|
-
import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
|
|
1
|
+
import { jsx as _jsx, jsxs as _jsxs, Fragment as _Fragment } from "react/jsx-runtime";
|
|
2
2
|
// Copyright LEAV Solutions 2017 until 2023/11/05, Copyright Aristid from 2023/11/06
|
|
3
3
|
// This file is released under LGPL V3
|
|
4
4
|
// License text available at https://www.gnu.org/licenses/lgpl-3.0.txt
|
|
5
5
|
import styled from 'styled-components';
|
|
6
|
-
import {
|
|
7
|
-
import {
|
|
8
|
-
import { FaFilter, FaList, FaSortAlphaDown } from 'react-icons/fa';
|
|
6
|
+
import { KitButton, KitTypography } from 'aristid-ds';
|
|
7
|
+
import { FaFilter, FaList, FaSave, FaSortAlphaDown, FaUndo } from 'react-icons/fa';
|
|
9
8
|
import { useSharedTranslation } from '../../../../hooks/useSharedTranslation';
|
|
10
|
-
import { useEditSettings } from '../open-view-settings/useEditSettings';
|
|
11
9
|
import { ConfigureDisplay } from '../configure-display/ConfigureDisplay';
|
|
12
10
|
import { SortItems } from '../sort-items/SortItems';
|
|
13
11
|
import { SettingItem } from './SettingItem';
|
|
14
12
|
import { FilterItems } from '../filter-items/FilterItems';
|
|
15
13
|
import { useViewSettingsContext } from '../store-view-settings/useViewSettingsContext';
|
|
14
|
+
import useExecuteSaveViewMutation from '../../../../hooks/useExecuteSaveViewMutation';
|
|
15
|
+
import { useLang } from '../../../../hooks';
|
|
16
|
+
import { mapViewTypeFromExplorerToLegacy } from '../../_constants';
|
|
17
|
+
import { ViewSettingsActionTypes } from '../store-view-settings/viewSettingsReducer';
|
|
18
|
+
import { useOpenViewSettings } from '../open-view-settings/useOpenViewSettings';
|
|
16
19
|
const ContentWrapperStyledDiv = styled.div `
|
|
17
20
|
display: flex;
|
|
18
21
|
flex-direction: column;
|
|
19
22
|
gap: calc(var(--general-spacing-s) * 1px);
|
|
23
|
+
justify-content: space-between;
|
|
24
|
+
height: 100%;
|
|
25
|
+
`;
|
|
26
|
+
const FooterStyledDiv = styled.footer `
|
|
27
|
+
display: flex;
|
|
28
|
+
justify-content: center;
|
|
29
|
+
gap: calc(var(--general-spacing-xs) * 1px);
|
|
30
|
+
padding: calc(var(--general-spacing-xxs) * 1px) 0;
|
|
20
31
|
`;
|
|
21
32
|
const ConfigurationStyledMenu = styled.menu `
|
|
22
33
|
padding: 0;
|
|
23
34
|
`;
|
|
24
|
-
export const SettingsPanel = ({ library }) => {
|
|
35
|
+
export const SettingsPanel = ({ library, page = 'router-menu' }) => {
|
|
25
36
|
const { t } = useSharedTranslation();
|
|
26
|
-
const {
|
|
27
|
-
const {
|
|
28
|
-
const
|
|
29
|
-
const
|
|
30
|
-
|
|
31
|
-
|
|
32
|
-
|
|
33
|
-
|
|
34
|
-
|
|
35
|
-
|
|
36
|
-
|
|
37
|
-
|
|
38
|
-
|
|
39
|
-
|
|
40
|
-
|
|
41
|
-
|
|
42
|
-
|
|
43
|
-
|
|
44
|
-
|
|
45
|
-
|
|
46
|
-
|
|
37
|
+
const { defaultLang } = useLang();
|
|
38
|
+
const { openSettingsPanel } = useOpenViewSettings(library);
|
|
39
|
+
const { view, dispatch } = useViewSettingsContext();
|
|
40
|
+
const { saveView } = useExecuteSaveViewMutation();
|
|
41
|
+
const _handleSaveView = () => {
|
|
42
|
+
saveView({
|
|
43
|
+
view: {
|
|
44
|
+
id: view.viewId,
|
|
45
|
+
library,
|
|
46
|
+
shared: false,
|
|
47
|
+
display: {
|
|
48
|
+
type: mapViewTypeFromExplorerToLegacy[view.viewType]
|
|
49
|
+
},
|
|
50
|
+
filters: view.filters.map(filter => ({
|
|
51
|
+
field: filter.field,
|
|
52
|
+
value: filter.value,
|
|
53
|
+
condition: filter.condition
|
|
54
|
+
})),
|
|
55
|
+
sort: view.sort.map(({ field: attributeId, order }) => ({ field: attributeId, order })),
|
|
56
|
+
attributes: view.attributesIds,
|
|
57
|
+
label: {
|
|
58
|
+
//TODO: add a better label when view management is more advanced
|
|
59
|
+
[defaultLang]: 'user view'
|
|
60
|
+
}
|
|
47
61
|
}
|
|
48
62
|
});
|
|
49
63
|
};
|
|
64
|
+
const _handleReinitView = () => {
|
|
65
|
+
dispatch({ type: ViewSettingsActionTypes.RESTORE_INITIAL_VIEW_SETTINGS });
|
|
66
|
+
};
|
|
50
67
|
// TODO: look for MemoryRouter
|
|
51
|
-
return (_jsxs(ContentWrapperStyledDiv, { children: [
|
|
68
|
+
return (_jsxs(ContentWrapperStyledDiv, { children: [page === 'router-menu' && (_jsxs(_Fragment, { children: [_jsxs("nav", { children: [_jsx(KitTypography.Title, { level: "h4", children: t('explorer.router-menu') }), _jsxs(ConfigurationStyledMenu, { children: [_jsx(SettingItem, { icon: _jsx(FaList, {}), title: t('explorer.configure-display'), onClick: () => openSettingsPanel('configure-display') }), _jsx(SettingItem, { icon: _jsx(FaFilter, {}), title: t('explorer.filters'), value: String(t('explorer.active-items-number', { count: view.filters.length })), onClick: () => openSettingsPanel('filter-items') }), _jsx(SettingItem, { icon: _jsx(FaSortAlphaDown, {}), title: t('explorer.sort-items'), onClick: () => openSettingsPanel('sort-items') })] })] }), _jsxs(FooterStyledDiv, { children: [_jsx(KitButton, { type: "secondary", danger: true, icon: _jsx(FaUndo, {}), onClick: _handleReinitView, children: t('explorer.reinit-view') }), _jsx(KitButton, { type: "primary", icon: _jsx(FaSave, {}), onClick: _handleSaveView, children: t('explorer.save-view') })] })] })), page === 'configure-display' && _jsx(ConfigureDisplay, { libraryId: library }), page === 'sort-items' && _jsx(SortItems, { libraryId: library }), page === 'filter-items' && _jsx(FilterItems, { libraryId: library })] }));
|
|
52
69
|
};
|
|
53
70
|
//# sourceMappingURL=SettingsPanel.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"SettingsPanel.js","sourceRoot":"","sources":["../../../../../src/components/Explorer/manage-view-settings/router-menu/SettingsPanel.tsx"],"names":[],"mappings":";AAAA,oFAAoF;AACpF,sCAAsC;AACtC,sEAAsE;AACtE,OAAO,MAAM,MAAM,mBAAmB,CAAC;
|
|
1
|
+
{"version":3,"file":"SettingsPanel.js","sourceRoot":"","sources":["../../../../../src/components/Explorer/manage-view-settings/router-menu/SettingsPanel.tsx"],"names":[],"mappings":"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"}
|
|
@@ -24,18 +24,18 @@ const StyledFaEye = styled(FaEye) `
|
|
|
24
24
|
`;
|
|
25
25
|
export const SortItems = ({ libraryId }) => {
|
|
26
26
|
const { t } = useSharedTranslation();
|
|
27
|
-
const { view
|
|
27
|
+
const { view, dispatch } = useViewSettingsContext();
|
|
28
28
|
const { onSearchChanged, searchFilteredColumnsIds, attributeDetailsById } = useAttributeDetailsData(libraryId);
|
|
29
29
|
const sensors = useSensors(useSensor(PointerSensor), useSensor(KeyboardSensor, {
|
|
30
30
|
coordinateGetter: sortableKeyboardCoordinates
|
|
31
31
|
}));
|
|
32
|
-
const _toggleColumnVisibility = (
|
|
33
|
-
const isAttributeAlreadySorting = sort.some(sortItem => sortItem.
|
|
32
|
+
const _toggleColumnVisibility = (field) => () => {
|
|
33
|
+
const isAttributeAlreadySorting = view.sort.some(sortItem => sortItem.field === field);
|
|
34
34
|
if (isAttributeAlreadySorting) {
|
|
35
35
|
dispatch({
|
|
36
36
|
type: ViewSettingsActionTypes.REMOVE_SORT,
|
|
37
37
|
payload: {
|
|
38
|
-
|
|
38
|
+
field
|
|
39
39
|
}
|
|
40
40
|
});
|
|
41
41
|
}
|
|
@@ -44,32 +44,32 @@ export const SortItems = ({ libraryId }) => {
|
|
|
44
44
|
type: ViewSettingsActionTypes.ADD_SORT,
|
|
45
45
|
payload: {
|
|
46
46
|
order: SortOrder.asc,
|
|
47
|
-
|
|
47
|
+
field
|
|
48
48
|
}
|
|
49
49
|
});
|
|
50
50
|
}
|
|
51
51
|
};
|
|
52
|
-
const _changeOrderActiveFilterTo = (
|
|
52
|
+
const _changeOrderActiveFilterTo = (field) => (order) => {
|
|
53
53
|
dispatch({
|
|
54
54
|
type: ViewSettingsActionTypes.CHANGE_SORT_ORDER,
|
|
55
55
|
payload: {
|
|
56
|
-
|
|
56
|
+
field,
|
|
57
57
|
order
|
|
58
58
|
}
|
|
59
59
|
});
|
|
60
60
|
};
|
|
61
61
|
const _handleDragEnd = ({ active: draggedElement, over: dropTarget }) => {
|
|
62
|
-
const indexFrom = activeFilters.findIndex(({
|
|
63
|
-
const indexTo = activeFilters.findIndex(({
|
|
62
|
+
const indexFrom = activeFilters.findIndex(({ field }) => field === String(draggedElement.id));
|
|
63
|
+
const indexTo = activeFilters.findIndex(({ field }) => field === String(dropTarget?.id));
|
|
64
64
|
if (!dropTarget || indexFrom === indexTo || indexTo === -1) {
|
|
65
65
|
return;
|
|
66
66
|
}
|
|
67
67
|
dispatch({ type: ViewSettingsActionTypes.MOVE_SORT, payload: { indexFrom, indexTo } });
|
|
68
68
|
};
|
|
69
|
-
const activeFilters = sort.filter(({
|
|
70
|
-
const inactiveFilters = searchFilteredColumnsIds.filter(
|
|
71
|
-
return (_jsxs(_Fragment, { children: [activeFilters.length > 0 && (_jsx(StyledList, { "aria-label": t('explorer.sort-list.active'), children: _jsx(DndContext, { sensors: sensors, collisionDetection: closestCenter, onDragEnd: _handleDragEnd, children: _jsx(SortableContext, { items: activeFilters.map(({
|
|
72
|
-
label: attributeDetailsById[
|
|
69
|
+
const activeFilters = view.sort.filter(({ field }) => searchFilteredColumnsIds.includes(field));
|
|
70
|
+
const inactiveFilters = searchFilteredColumnsIds.filter(field => view.sort.every(sortItem => sortItem.field !== field));
|
|
71
|
+
return (_jsxs(_Fragment, { children: [activeFilters.length > 0 && (_jsx(StyledList, { "aria-label": t('explorer.sort-list.active'), children: _jsx(DndContext, { sensors: sensors, collisionDetection: closestCenter, onDragEnd: _handleDragEnd, children: _jsx(SortableContext, { items: activeFilters.map(({ field }) => ({ id: field })), strategy: verticalListSortingStrategy, children: activeFilters.map(({ field, order }) => (_jsx(SortListItem, { attributeId: field, isDraggable: true, filterChipProps: {
|
|
72
|
+
label: attributeDetailsById[field].label,
|
|
73
73
|
values: [
|
|
74
74
|
order === SortOrder.asc
|
|
75
75
|
? t('explorer.sort-ascending')
|
|
@@ -90,20 +90,20 @@ export const SortItems = ({ libraryId }) => {
|
|
|
90
90
|
label: t('explorer.sort-descending')
|
|
91
91
|
}
|
|
92
92
|
],
|
|
93
|
-
onSelect: ({ selectedKeys: [newOrder] }) => _changeOrderActiveFilterTo(
|
|
94
|
-
onDeselect: ({ selectedKeys: [newOrder] }) => _changeOrderActiveFilterTo(
|
|
93
|
+
onSelect: ({ selectedKeys: [newOrder] }) => _changeOrderActiveFilterTo(field)(newOrder),
|
|
94
|
+
onDeselect: ({ selectedKeys: [newOrder] }) => _changeOrderActiveFilterTo(field)(newOrder)
|
|
95
95
|
}
|
|
96
96
|
}
|
|
97
97
|
}, visibilityButtonProps: {
|
|
98
98
|
icon: _jsx(StyledFaEye, {}),
|
|
99
99
|
title: String(t('explorer.hide')),
|
|
100
|
-
onClick: _toggleColumnVisibility(
|
|
101
|
-
} },
|
|
102
|
-
label: attributeDetailsById[
|
|
100
|
+
onClick: _toggleColumnVisibility(field)
|
|
101
|
+
} }, field))) }) }) })), _jsx(KitTypography.Title, { level: "h4", children: t('explorer.available-attributes') }), _jsx(KitInput, { placeholder: String(t('global.search')), onChange: onSearchChanged, allowClear: true, prefix: _jsx(FaSearch, {}) }), _jsx(StyledList, { "aria-label": t('explorer.sort-list.inactive'), children: inactiveFilters.map(field => (_jsx(SortListItem, { attributeId: field, filterChipProps: {
|
|
102
|
+
label: attributeDetailsById[field].label
|
|
103
103
|
}, visibilityButtonProps: {
|
|
104
104
|
icon: _jsx(StyledEyeSlash, {}),
|
|
105
105
|
title: String(t('explorer.show')),
|
|
106
|
-
onClick: _toggleColumnVisibility(
|
|
107
|
-
} },
|
|
106
|
+
onClick: _toggleColumnVisibility(field)
|
|
107
|
+
} }, field))) })] }));
|
|
108
108
|
};
|
|
109
109
|
//# sourceMappingURL=SortItems.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"SortItems.js","sourceRoot":"","sources":["../../../../../src/components/Explorer/manage-view-settings/sort-items/SortItems.tsx"],"names":[],"mappings":";AAIA,OAAO,EAAC,KAAK,EAAE,UAAU,EAAE,QAAQ,EAAC,MAAM,gBAAgB,CAAC;AAC3D,OAAO,EAAC,QAAQ,EAAE,aAAa,EAAC,MAAM,YAAY,CAAC;AACnD,OAAO,MAAM,MAAM,mBAAmB,CAAC;AACvC,OAAO,EAAC,oBAAoB,EAAC,MAAM,gCAAgC,CAAC;AACpE,OAAO,EAAC,SAAS,EAAC,MAAM,eAAe,CAAC;AACxC,OAAO,EACH,aAAa,EACb,UAAU,EAEV,cAAc,EACd,aAAa,EACb,SAAS,EACT,UAAU,EACb,MAAM,eAAe,CAAC;AACvB,OAAO,EAAC,eAAe,EAAE,2BAA2B,EAAE,2BAA2B,EAAC,MAAM,mBAAmB,CAAC;AAC5G,OAAO,EAAC,uBAAuB,EAAC,MAAM,oCAAoC,CAAC;AAC3E,OAAO,EAAC,uBAAuB,EAAC,MAAM,4CAA4C,CAAC;AACnF,OAAO,EAAC,sBAAsB,EAAC,MAAM,+CAA+C,CAAC;AACrF,OAAO,EAAC,YAAY,EAAC,MAAM,gBAAgB,CAAC;AAE5C,MAAM,UAAU,GAAG,MAAM,CAAC,EAAE,CAAA;;;;;CAK3B,CAAC;AAEF,MAAM,cAAc,GAAG,MAAM,CAAC,UAAU,CAAC,CAAA;;CAExC,CAAC;AAEF,MAAM,WAAW,GAAG,MAAM,CAAC,KAAK,CAAC,CAAA;;CAEhC,CAAC;AAEF,MAAM,CAAC,MAAM,SAAS,GAA2C,CAAC,EAAC,SAAS,EAAC,EAAE,EAAE;IAC7E,MAAM,EAAC,CAAC,EAAC,GAAG,oBAAoB,EAAE,CAAC;IACnC,MAAM,
|
|
1
|
+
{"version":3,"file":"SortItems.js","sourceRoot":"","sources":["../../../../../src/components/Explorer/manage-view-settings/sort-items/SortItems.tsx"],"names":[],"mappings":"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"}
|
|
@@ -8,6 +8,12 @@ export const viewSettingsInitialState = {
|
|
|
8
8
|
pageSize: defaultPageSizeOptions[0],
|
|
9
9
|
filters: [],
|
|
10
10
|
maxFilters: defaultMaxFilters,
|
|
11
|
-
|
|
11
|
+
initialViewSettings: {
|
|
12
|
+
viewType: 'table',
|
|
13
|
+
attributesIds: [],
|
|
14
|
+
sort: [],
|
|
15
|
+
pageSize: defaultPageSizeOptions[0],
|
|
16
|
+
filters: []
|
|
17
|
+
}
|
|
12
18
|
};
|
|
13
19
|
//# sourceMappingURL=viewSettingsInitialState.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"viewSettingsInitialState.js","sourceRoot":"","sources":["../../../../../src/components/Explorer/manage-view-settings/store-view-settings/viewSettingsInitialState.ts"],"names":[],"mappings":"AAKA,MAAM,CAAC,MAAM,sBAAsB,GAAG,CAAC,EAAE,EAAE,EAAE,EAAE,GAAG,CAAC,CAAC;AAEpD,MAAM,CAAC,MAAM,iBAAiB,GAAG,CAAC,CAAC;AAEnC,MAAM,CAAC,MAAM,wBAAwB,GAAuB;IACxD,QAAQ,EAAE,OAAO;IACjB,aAAa,EAAE,EAAE;IACjB,cAAc,EAAE,EAAE;IAClB,IAAI,EAAE,EAAE;IACR,QAAQ,EAAE,sBAAsB,CAAC,CAAC,CAAC;IACnC,OAAO,EAAE,EAAE;IACX,UAAU,EAAE,iBAAiB;IAC7B,
|
|
1
|
+
{"version":3,"file":"viewSettingsInitialState.js","sourceRoot":"","sources":["../../../../../src/components/Explorer/manage-view-settings/store-view-settings/viewSettingsInitialState.ts"],"names":[],"mappings":"AAKA,MAAM,CAAC,MAAM,sBAAsB,GAAG,CAAC,EAAE,EAAE,EAAE,EAAE,GAAG,CAAC,CAAC;AAEpD,MAAM,CAAC,MAAM,iBAAiB,GAAG,CAAC,CAAC;AAEnC,MAAM,CAAC,MAAM,wBAAwB,GAAuB;IACxD,QAAQ,EAAE,OAAO;IACjB,aAAa,EAAE,EAAE;IACjB,cAAc,EAAE,EAAE;IAClB,IAAI,EAAE,EAAE;IACR,QAAQ,EAAE,sBAAsB,CAAC,CAAC,CAAC;IACnC,OAAO,EAAE,EAAE;IACX,UAAU,EAAE,iBAAiB;IAC7B,mBAAmB,EAAE;QACjB,QAAQ,EAAE,OAAO;QACjB,aAAa,EAAE,EAAE;QACjB,IAAI,EAAE,EAAE;QACR,QAAQ,EAAE,sBAAsB,CAAC,CAAC,CAAC;QACnC,OAAO,EAAE,EAAE;KACd;CACJ,CAAC"}
|
package/dist/components/Explorer/manage-view-settings/store-view-settings/viewSettingsReducer.d.ts
CHANGED
|
@@ -2,6 +2,7 @@ import { SortOrder } from '../../../../_gqlTypes';
|
|
|
2
2
|
import { IExplorerFilter } from '../../_types';
|
|
3
3
|
export type ViewType = 'table' | 'list' | 'timeline' | 'mosaic';
|
|
4
4
|
export declare const ViewSettingsActionTypes: {
|
|
5
|
+
readonly RESET: "RESET";
|
|
5
6
|
readonly ADD_ATTRIBUTE: "ADD_ATTRIBUTE";
|
|
6
7
|
readonly REMOVE_ATTRIBUTE: "REMOVE_ATTRIBUTE";
|
|
7
8
|
readonly MOVE_ATTRIBUTE: "MOVE_ATTRIBUTE";
|
|
@@ -19,19 +20,21 @@ export declare const ViewSettingsActionTypes: {
|
|
|
19
20
|
readonly REMOVE_FILTER: "REMOVE_FILTER";
|
|
20
21
|
readonly MOVE_FILTER: "MOVE_FILTER";
|
|
21
22
|
readonly CHANGE_FILTER_CONFIG: "CHANGE_FILTER_CONFIG";
|
|
23
|
+
readonly RESTORE_INITIAL_VIEW_SETTINGS: "RESTORE_INITIAL_VIEW_SETTINGS";
|
|
22
24
|
};
|
|
23
25
|
export interface IViewSettingsState {
|
|
26
|
+
viewId?: string;
|
|
24
27
|
viewType: ViewType;
|
|
25
28
|
attributesIds: string[];
|
|
26
29
|
fulltextSearch: string;
|
|
27
30
|
sort: Array<{
|
|
28
|
-
|
|
31
|
+
field: string;
|
|
29
32
|
order: SortOrder;
|
|
30
33
|
}>;
|
|
31
34
|
pageSize: number;
|
|
32
35
|
filters: IExplorerFilter[];
|
|
33
36
|
maxFilters: number;
|
|
34
|
-
|
|
37
|
+
initialViewSettings: Pick<IViewSettingsState, 'viewType' | 'attributesIds' | 'sort' | 'pageSize' | 'filters'>;
|
|
35
38
|
}
|
|
36
39
|
interface IViewSettingsActionChangePageSize {
|
|
37
40
|
type: typeof ViewSettingsActionTypes.CHANGE_PAGE_SIZE;
|
|
@@ -70,20 +73,20 @@ interface IViewSettingsActionResetAttributes {
|
|
|
70
73
|
interface IViewSettingsActionAddSort {
|
|
71
74
|
type: typeof ViewSettingsActionTypes.ADD_SORT;
|
|
72
75
|
payload: {
|
|
73
|
-
|
|
76
|
+
field: string;
|
|
74
77
|
order: SortOrder;
|
|
75
78
|
};
|
|
76
79
|
}
|
|
77
80
|
interface IViewSettingsActionRemoveSort {
|
|
78
81
|
type: typeof ViewSettingsActionTypes.REMOVE_SORT;
|
|
79
82
|
payload: {
|
|
80
|
-
|
|
83
|
+
field: string;
|
|
81
84
|
};
|
|
82
85
|
}
|
|
83
86
|
interface IViewSettingsActionChangeSortOrder {
|
|
84
87
|
type: typeof ViewSettingsActionTypes.CHANGE_SORT_ORDER;
|
|
85
88
|
payload: {
|
|
86
|
-
|
|
89
|
+
field: string;
|
|
87
90
|
order: SortOrder;
|
|
88
91
|
};
|
|
89
92
|
}
|
|
@@ -126,8 +129,15 @@ interface IViewSettingsActionMoveFilter {
|
|
|
126
129
|
indexTo: number;
|
|
127
130
|
};
|
|
128
131
|
}
|
|
132
|
+
interface IViewSettingsActionReset {
|
|
133
|
+
type: typeof ViewSettingsActionTypes.RESET;
|
|
134
|
+
payload: IViewSettingsState;
|
|
135
|
+
}
|
|
136
|
+
interface IViewSettingsActionRestoreInitialViewSettings {
|
|
137
|
+
type: typeof ViewSettingsActionTypes.RESTORE_INITIAL_VIEW_SETTINGS;
|
|
138
|
+
}
|
|
129
139
|
type Reducer<PAYLOAD = 'no_payload'> = PAYLOAD extends 'no_payload' ? (state: IViewSettingsState) => IViewSettingsState : (state: IViewSettingsState, payload: PAYLOAD) => IViewSettingsState;
|
|
130
140
|
export declare const clearFulltextSearch: Reducer;
|
|
131
|
-
export type IViewSettingsAction = IViewSettingsActionResetAttributes | IViewSettingsActionAddAttribute | IViewSettingsActionRemoveAttribute | IViewSettingsActionMoveAttribute | IViewSettingsActionChangeViewType | IViewSettingsActionAddSort | IViewSettingsActionRemoveSort | IViewSettingsActionChangeSortOrder | IViewSettingsActionMoveSort | IViewSettingsActionChangePageSize | IViewSettingsActionChangeFulltextSearch | IViewSettingsActionClearFulltextSearch | IViewSettingsActionAddFilter | IViewSettingsActionResetFilter | IViewSettingsActionRemoveFilter | IViewSettingsActionChangeFilterConfig | IViewSettingsActionMoveFilter;
|
|
141
|
+
export type IViewSettingsAction = IViewSettingsActionResetAttributes | IViewSettingsActionAddAttribute | IViewSettingsActionRemoveAttribute | IViewSettingsActionMoveAttribute | IViewSettingsActionChangeViewType | IViewSettingsActionAddSort | IViewSettingsActionRemoveSort | IViewSettingsActionChangeSortOrder | IViewSettingsActionMoveSort | IViewSettingsActionChangePageSize | IViewSettingsActionChangeFulltextSearch | IViewSettingsActionClearFulltextSearch | IViewSettingsActionAddFilter | IViewSettingsActionResetFilter | IViewSettingsActionRemoveFilter | IViewSettingsActionChangeFilterConfig | IViewSettingsActionMoveFilter | IViewSettingsActionReset | IViewSettingsActionRestoreInitialViewSettings;
|
|
132
142
|
export declare const viewSettingsReducer: (state: IViewSettingsState, action: IViewSettingsAction) => IViewSettingsState;
|
|
133
143
|
export {};
|
package/dist/components/Explorer/manage-view-settings/store-view-settings/viewSettingsReducer.js
CHANGED
|
@@ -2,7 +2,9 @@
|
|
|
2
2
|
// This file is released under LGPL V3
|
|
3
3
|
// License text available at https://www.gnu.org/licenses/lgpl-3.0.txt
|
|
4
4
|
import { RecordFilterCondition } from '../../../../_gqlTypes';
|
|
5
|
+
import { v4 as uuid } from 'uuid';
|
|
5
6
|
export const ViewSettingsActionTypes = {
|
|
7
|
+
RESET: 'RESET',
|
|
6
8
|
ADD_ATTRIBUTE: 'ADD_ATTRIBUTE',
|
|
7
9
|
REMOVE_ATTRIBUTE: 'REMOVE_ATTRIBUTE',
|
|
8
10
|
MOVE_ATTRIBUTE: 'MOVE_ATTRIBUTE',
|
|
@@ -19,7 +21,8 @@ export const ViewSettingsActionTypes = {
|
|
|
19
21
|
RESET_FILTER: 'RESET_FILTER',
|
|
20
22
|
REMOVE_FILTER: 'REMOVE_FILTER',
|
|
21
23
|
MOVE_FILTER: 'MOVE_FILTER',
|
|
22
|
-
CHANGE_FILTER_CONFIG: 'CHANGE_FILTER_CONFIG'
|
|
24
|
+
CHANGE_FILTER_CONFIG: 'CHANGE_FILTER_CONFIG',
|
|
25
|
+
RESTORE_INITIAL_VIEW_SETTINGS: 'RESTORE_INITIAL_VIEW_SETTINGS'
|
|
23
26
|
};
|
|
24
27
|
const changePageSize = (state, payload) => ({
|
|
25
28
|
...state,
|
|
@@ -53,15 +56,15 @@ const changeViewType = (state, payload) => ({
|
|
|
53
56
|
});
|
|
54
57
|
const addSort = (state, payload) => ({
|
|
55
58
|
...state,
|
|
56
|
-
sort: [...state.sort, {
|
|
59
|
+
sort: [...state.sort, { field: payload.field, order: payload.order }]
|
|
57
60
|
});
|
|
58
61
|
const removeSort = (state, payload) => ({
|
|
59
62
|
...state,
|
|
60
|
-
sort: state.sort.filter(({ attributeId }) => attributeId !== payload.
|
|
63
|
+
sort: state.sort.filter(({ field: attributeId }) => attributeId !== payload.field)
|
|
61
64
|
});
|
|
62
65
|
const changeSortOrder = (state, payload) => ({
|
|
63
66
|
...state,
|
|
64
|
-
sort: state.sort.map(sort => (sort.
|
|
67
|
+
sort: state.sort.map(sort => (sort.field === payload.field ? { ...sort, order: payload.order } : sort))
|
|
65
68
|
});
|
|
66
69
|
const moveSort = (state, payload) => {
|
|
67
70
|
const attributesUsedToSort = [...state.sort];
|
|
@@ -80,41 +83,28 @@ export const clearFulltextSearch = state => ({
|
|
|
80
83
|
...state,
|
|
81
84
|
fulltextSearch: ''
|
|
82
85
|
});
|
|
83
|
-
const addFilter = (state, payload) => {
|
|
84
|
-
|
|
85
|
-
|
|
86
|
-
|
|
87
|
-
const newFilters = [
|
|
88
|
-
...state.filters,
|
|
89
|
-
{ ...payload, id: `${payload.field}-${Date.now()}`, condition: RecordFilterCondition.EQUAL, value: null }
|
|
90
|
-
];
|
|
91
|
-
return {
|
|
92
|
-
...state,
|
|
93
|
-
filters: newFilters,
|
|
94
|
-
canAddFilter: newFilters.length < state.maxFilters
|
|
95
|
-
};
|
|
96
|
-
};
|
|
86
|
+
const addFilter = (state, payload) => ({
|
|
87
|
+
...state,
|
|
88
|
+
filters: [...state.filters, { ...payload, id: uuid(), condition: RecordFilterCondition.EQUAL, value: null }]
|
|
89
|
+
});
|
|
97
90
|
const resetFilter = (state, payload) => ({
|
|
98
91
|
...state,
|
|
99
92
|
filters: state.filters.map(filter => {
|
|
100
93
|
if (filter.id === payload.id) {
|
|
101
|
-
|
|
94
|
+
const initialViewFilter = state.initialViewSettings.filters.find(({ id }) => id === payload.id);
|
|
95
|
+
return (initialViewFilter ?? {
|
|
102
96
|
...filter,
|
|
103
97
|
condition: RecordFilterCondition.EQUAL,
|
|
104
98
|
value: null
|
|
105
|
-
};
|
|
99
|
+
});
|
|
106
100
|
}
|
|
107
101
|
return filter;
|
|
108
102
|
})
|
|
109
103
|
});
|
|
110
|
-
const removeFilter = (state, payload) => {
|
|
111
|
-
|
|
112
|
-
|
|
113
|
-
|
|
114
|
-
filters: newFilters,
|
|
115
|
-
canAddFilter: newFilters.length < state.maxFilters
|
|
116
|
-
};
|
|
117
|
-
};
|
|
104
|
+
const removeFilter = (state, payload) => ({
|
|
105
|
+
...state,
|
|
106
|
+
filters: state.filters.filter(({ id }) => id !== payload.id)
|
|
107
|
+
});
|
|
118
108
|
const changeFilterConfig = (state, payload) => ({
|
|
119
109
|
...state,
|
|
120
110
|
filters: state.filters.map(filter => (filter.id === payload.id ? { ...filter, ...payload } : filter))
|
|
@@ -128,6 +118,11 @@ const moveFilter = (state, payload) => {
|
|
|
128
118
|
filters: attributesUsedToFilter
|
|
129
119
|
};
|
|
130
120
|
};
|
|
121
|
+
const reset = (_, payload) => payload;
|
|
122
|
+
const restoreInitialViewSettings = state => ({
|
|
123
|
+
...state,
|
|
124
|
+
...state.initialViewSettings
|
|
125
|
+
});
|
|
131
126
|
export const viewSettingsReducer = (state, action) => {
|
|
132
127
|
switch (action.type) {
|
|
133
128
|
case ViewSettingsActionTypes.CHANGE_PAGE_SIZE: {
|
|
@@ -181,6 +176,12 @@ export const viewSettingsReducer = (state, action) => {
|
|
|
181
176
|
case ViewSettingsActionTypes.MOVE_FILTER: {
|
|
182
177
|
return moveFilter(state, action.payload);
|
|
183
178
|
}
|
|
179
|
+
case ViewSettingsActionTypes.RESET: {
|
|
180
|
+
return reset(state, action.payload);
|
|
181
|
+
}
|
|
182
|
+
case ViewSettingsActionTypes.RESTORE_INITIAL_VIEW_SETTINGS: {
|
|
183
|
+
return restoreInitialViewSettings(state);
|
|
184
|
+
}
|
|
184
185
|
default:
|
|
185
186
|
return state;
|
|
186
187
|
}
|
package/dist/components/Explorer/manage-view-settings/store-view-settings/viewSettingsReducer.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"viewSettingsReducer.js","sourceRoot":"","sources":["../../../../../src/components/Explorer/manage-view-settings/store-view-settings/viewSettingsReducer.ts"],"names":[],"mappings":"AAAA,oFAAoF;AACpF,sCAAsC;AACtC,sEAAsE;AACtE,OAAO,
|
|
1
|
+
{"version":3,"file":"viewSettingsReducer.js","sourceRoot":"","sources":["../../../../../src/components/Explorer/manage-view-settings/store-view-settings/viewSettingsReducer.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export declare const nullValueConditions: import("../../_gqlTypes").RecordFilterCondition[];
|
|
@@ -0,0 +1,14 @@
|
|
|
1
|
+
// Copyright LEAV Solutions 2017 until 2023/11/05, Copyright Aristid from 2023/11/06
|
|
2
|
+
// This file is released under LGPL V3
|
|
3
|
+
// License text available at https://www.gnu.org/licenses/lgpl-3.0.txt
|
|
4
|
+
import { AttributeConditionFilter } from '../../types';
|
|
5
|
+
export const nullValueConditions = [
|
|
6
|
+
AttributeConditionFilter.IS_EMPTY,
|
|
7
|
+
AttributeConditionFilter.IS_NOT_EMPTY,
|
|
8
|
+
AttributeConditionFilter.TODAY,
|
|
9
|
+
AttributeConditionFilter.TOMORROW,
|
|
10
|
+
AttributeConditionFilter.YESTERDAY,
|
|
11
|
+
AttributeConditionFilter.LAST_MONTH,
|
|
12
|
+
AttributeConditionFilter.NEXT_MONTH
|
|
13
|
+
];
|
|
14
|
+
//# sourceMappingURL=nullValuesConditions.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"nullValuesConditions.js","sourceRoot":"","sources":["../../../src/components/Explorer/nullValuesConditions.ts"],"names":[],"mappings":"AAAA,oFAAoF;AACpF,sCAAsC;AACtC,sEAAsE;AACtE,OAAO,EAAC,wBAAwB,EAAC,MAAM,WAAW,CAAC;AAEnD,MAAM,CAAC,MAAM,mBAAmB,GAAG;IAC/B,wBAAwB,CAAC,QAAQ;IACjC,wBAAwB,CAAC,YAAY;IACrC,wBAAwB,CAAC,KAAK;IAC9B,wBAAwB,CAAC,QAAQ;IACjC,wBAAwB,CAAC,SAAS;IAClC,wBAAwB,CAAC,UAAU;IACnC,wBAAwB,CAAC,UAAU;CACtC,CAAC"}
|
|
@@ -0,0 +1,8 @@
|
|
|
1
|
+
import { DefaultViewSettings } from './_types';
|
|
2
|
+
import { IViewSettingsState } from './manage-view-settings';
|
|
3
|
+
export declare const useViewSettingsReducer: (library: string, defaultViewSettings?: DefaultViewSettings) => {
|
|
4
|
+
loading: boolean;
|
|
5
|
+
error: import("@apollo/client").ApolloError;
|
|
6
|
+
view: IViewSettingsState;
|
|
7
|
+
dispatch: import("react").Dispatch<import("./manage-view-settings").IViewSettingsAction>;
|
|
8
|
+
};
|
|
@@ -0,0 +1,103 @@
|
|
|
1
|
+
// Copyright LEAV Solutions 2017 until 2023/11/05, Copyright Aristid from 2023/11/06
|
|
2
|
+
// This file is released under LGPL V3
|
|
3
|
+
// License text available at https://www.gnu.org/licenses/lgpl-3.0.txt
|
|
4
|
+
import { useExplorerAttributesQuery, useGetViewsListQuery } from '../../_gqlTypes';
|
|
5
|
+
import { localizedTranslation } from '@leav/utils';
|
|
6
|
+
import { useLang } from '../../hooks';
|
|
7
|
+
import { useEffect, useMemo, useReducer } from 'react';
|
|
8
|
+
import { v4 as uuid } from 'uuid';
|
|
9
|
+
import { viewSettingsReducer, viewSettingsInitialState } from './manage-view-settings';
|
|
10
|
+
import { mapViewTypeFromLegacyToExplorer } from './_constants';
|
|
11
|
+
const _isValidFieldFilter = (filter) => !!filter.field && !!filter.condition;
|
|
12
|
+
export const useViewSettingsReducer = (library, defaultViewSettings = {}) => {
|
|
13
|
+
const { lang } = useLang();
|
|
14
|
+
const [view, dispatch] = useReducer(viewSettingsReducer, viewSettingsInitialState);
|
|
15
|
+
const { data: viewData, loading: viewsLoading, error: viewError } = useGetViewsListQuery({
|
|
16
|
+
variables: {
|
|
17
|
+
libraryId: library
|
|
18
|
+
}
|
|
19
|
+
});
|
|
20
|
+
// Take the last view from the array
|
|
21
|
+
const userView = viewData?.views?.list?.at(-1);
|
|
22
|
+
const userViewFilters = userView?.filters
|
|
23
|
+
?.filter(filter => _isValidFieldFilter(filter))
|
|
24
|
+
.map(filter => ({
|
|
25
|
+
field: filter.field,
|
|
26
|
+
value: filter.value ?? null,
|
|
27
|
+
condition: filter.condition
|
|
28
|
+
})) ?? [];
|
|
29
|
+
const attributesToHydrate = [
|
|
30
|
+
...new Set([
|
|
31
|
+
...(defaultViewSettings.filters?.map(filter => filter.field) ?? []),
|
|
32
|
+
...(defaultViewSettings.sort?.map(sort => sort.field) ?? []),
|
|
33
|
+
...userViewFilters.map(filter => String(filter.field)),
|
|
34
|
+
...(userView?.sort?.map(sort => sort.field) ?? [])
|
|
35
|
+
])
|
|
36
|
+
];
|
|
37
|
+
const { data: attributesData, loading: attributesLoading, error: attributesError } = useExplorerAttributesQuery({
|
|
38
|
+
variables: {
|
|
39
|
+
ids: attributesToHydrate
|
|
40
|
+
},
|
|
41
|
+
skip: viewsLoading || !attributesToHydrate.length
|
|
42
|
+
});
|
|
43
|
+
const attributesDataById = useMemo(() => (attributesData?.attributes?.list ?? []).reduce((acc, attr) => {
|
|
44
|
+
acc[attr.id] = attr;
|
|
45
|
+
return acc;
|
|
46
|
+
}, {}), [attributesData]);
|
|
47
|
+
const hydratedSettings = useMemo(() => ({
|
|
48
|
+
...viewSettingsInitialState,
|
|
49
|
+
viewId: userView?.id,
|
|
50
|
+
attributesIds: (userView?.attributes ?? []).map(attr => attr.id),
|
|
51
|
+
viewType: userView?.display
|
|
52
|
+
? mapViewTypeFromLegacyToExplorer[userView.display.type]
|
|
53
|
+
: viewSettingsInitialState.viewType,
|
|
54
|
+
...defaultViewSettings,
|
|
55
|
+
sort: [...(defaultViewSettings?.sort ?? []), ...(userView?.sort ?? [])].map(s => ({
|
|
56
|
+
field: s.field,
|
|
57
|
+
order: s.order
|
|
58
|
+
})),
|
|
59
|
+
filters: [...(defaultViewSettings?.filters ?? []), ...userViewFilters].reduce((acc, filter) => {
|
|
60
|
+
if (!attributesDataById[filter.field]) {
|
|
61
|
+
console.warn(`Attribute ${filter.field} from defaultViewSettings or user view not found in database.`);
|
|
62
|
+
return acc;
|
|
63
|
+
}
|
|
64
|
+
return [
|
|
65
|
+
...acc,
|
|
66
|
+
{
|
|
67
|
+
...filter,
|
|
68
|
+
value: filter.value ?? null,
|
|
69
|
+
id: uuid(),
|
|
70
|
+
attribute: {
|
|
71
|
+
label: localizedTranslation(attributesDataById[filter.field].label, lang),
|
|
72
|
+
format: attributesDataById[filter.field].format
|
|
73
|
+
}
|
|
74
|
+
}
|
|
75
|
+
];
|
|
76
|
+
}, [])
|
|
77
|
+
}), [defaultViewSettings, attributesDataById, userView, userViewFilters, lang]);
|
|
78
|
+
useEffect(() => {
|
|
79
|
+
if (!attributesLoading) {
|
|
80
|
+
dispatch({
|
|
81
|
+
type: 'RESET',
|
|
82
|
+
payload: {
|
|
83
|
+
...hydratedSettings,
|
|
84
|
+
initialViewSettings: {
|
|
85
|
+
viewType: hydratedSettings.viewType,
|
|
86
|
+
attributesIds: hydratedSettings.attributesIds,
|
|
87
|
+
sort: hydratedSettings.sort,
|
|
88
|
+
pageSize: hydratedSettings.pageSize,
|
|
89
|
+
filters: hydratedSettings.filters
|
|
90
|
+
}
|
|
91
|
+
}
|
|
92
|
+
});
|
|
93
|
+
}
|
|
94
|
+
}, [attributesLoading]);
|
|
95
|
+
const res = {
|
|
96
|
+
loading: attributesLoading || viewsLoading,
|
|
97
|
+
error: viewError ?? attributesError,
|
|
98
|
+
view,
|
|
99
|
+
dispatch
|
|
100
|
+
};
|
|
101
|
+
return res;
|
|
102
|
+
};
|
|
103
|
+
//# sourceMappingURL=useViewSettingsReducer.js.map
|