@tap-payments/os-micro-frontend-shared 0.1.373-test.1 → 0.1.373-test.2-test.3-test.4
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/build/components/TableHeader/TableView/ViewSelector.js +3 -2
- package/build/components/TableHeader/TableView/ViewsDropdown.d.ts +1 -1
- package/build/components/TableHeader/TableView/ViewsDropdown.js +11 -1
- package/build/components/TableHeader/TableView/hooks/useViewSelector.d.ts +3 -1
- package/build/components/TableHeader/TableView/hooks/useViewSelector.js +9 -1
- package/build/components/TableHeader/TableView/types.d.ts +1 -0
- package/package.json +2 -2
|
@@ -20,7 +20,7 @@ function ViewSelector({ onViewChange, setIsViewVisible, setTableViews, tableView
|
|
|
20
20
|
});
|
|
21
21
|
const tableViews = externalTableViews !== null && externalTableViews !== void 0 ? externalTableViews : internalTableViews;
|
|
22
22
|
const customViews = externalCustomViews !== null && externalCustomViews !== void 0 ? externalCustomViews : internalCustomViews;
|
|
23
|
-
const { anchorViewEl, defaultViewEl, setDefaultViewElement, isCreateDialogOpen, editingView, selectedViewInfo, shouldUseCurrentState, handleViewButtonClick, handleCloseViewDropdown, handleSelectedViewInfo, handleOpenCreateDialog, handleOpenEditDialog, handleCloseCreateDialog, handleSaveView, handleDeleteView, handleResetViews, handleTableViewsChange, } = useViewSelector({
|
|
23
|
+
const { anchorViewEl, defaultViewEl, setDefaultViewElement, isCreateDialogOpen, editingView, selectedViewInfo, shouldUseCurrentState, handleViewButtonClick, handleCloseViewDropdown, handleSelectedViewInfo, handleOpenCreateDialog, handleOpenEditDialog, handleCloseCreateDialog, handleSaveView, handleDeleteView, handleResetViews, handleTableViewsChange, updateSelectedView, } = useViewSelector({
|
|
24
24
|
mode,
|
|
25
25
|
onViewChange,
|
|
26
26
|
onTableViewsChange,
|
|
@@ -36,9 +36,10 @@ function ViewSelector({ onViewChange, setIsViewVisible, setTableViews, tableView
|
|
|
36
36
|
defaultTemplate,
|
|
37
37
|
setInternalCustomViews,
|
|
38
38
|
setInternalTableViews,
|
|
39
|
+
setDefaultColumns,
|
|
39
40
|
});
|
|
40
41
|
return (_jsxs(_Fragment, { children: [_jsx(ClickAwayListener, Object.assign({ onClickAway: handleCloseViewDropdown }, { children: _jsxs(ViewWrapper, Object.assign({ sx: { width: '32px' }, "data-testid": "ViewSelector" }, { children: [_jsx(StyledButton, Object.assign({ title: t('tableView'), "data-testid": "ViewSelector_button", onClick: handleViewButtonClick }, { children: _jsx(Icon, { src: viewIcon, alt: "view", sx: { width: 14, height: 14 } }) })), _jsx(ViewsDropdown, { open: Boolean(defaultViewEl), anchorEl: anchorViewEl, setSelectedViewInfo: handleSelectedViewInfo, selectedViewInfo: selectedViewInfo, onSelect: (e, selectedView) => {
|
|
41
42
|
setDefaultViewElement(defaultViewEl ? null : e.currentTarget);
|
|
42
|
-
}, setViews: handleResetViews, tableViews: tableViews, setTableViews: handleTableViewsChange, onCreateCustomView: handleOpenCreateDialog, customViews: customViews, onEditCustomView: handleOpenEditDialog, defaultColumns: defaultColumns, setDefaultColumns: setDefaultColumns })] })) })), _jsx(CreateViewDialog, { open: isCreateDialogOpen, onClose: handleCloseCreateDialog, availableColumns: defaultColumns, defaultColumns: defaultColumns, onCreate: handleSaveView, editingView: editingView, onDelete: handleDeleteView, tableViews: shouldUseCurrentState ? defaultColumns : undefined, mode: mode })] }));
|
|
43
|
+
}, setViews: handleResetViews, tableViews: tableViews, setTableViews: handleTableViewsChange, onCreateCustomView: handleOpenCreateDialog, customViews: customViews, onEditCustomView: handleOpenEditDialog, defaultColumns: defaultColumns, setDefaultColumns: setDefaultColumns, updateSelectedView: updateSelectedView })] })) })), _jsx(CreateViewDialog, { open: isCreateDialogOpen, onClose: handleCloseCreateDialog, availableColumns: defaultColumns, defaultColumns: defaultColumns, onCreate: handleSaveView, editingView: editingView, onDelete: handleDeleteView, tableViews: shouldUseCurrentState ? defaultColumns : undefined, mode: mode })] }));
|
|
43
44
|
}
|
|
44
45
|
export default memo(ViewSelector);
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import React from 'react';
|
|
2
2
|
import type { ViewsDropdownProps } from './types';
|
|
3
|
-
declare function ViewsDropdown({ open, selectedViewInfo, setSelectedViewInfo, onSelect, setViews, anchorEl, onCreateCustomView, customViews, onEditCustomView, defaultColumns, setDefaultColumns, }: Readonly<ViewsDropdownProps>): import("react/jsx-runtime").JSX.Element;
|
|
3
|
+
declare function ViewsDropdown({ open, selectedViewInfo, setSelectedViewInfo, onSelect, setViews, anchorEl, onCreateCustomView, customViews, onEditCustomView, defaultColumns, setDefaultColumns, updateSelectedView, }: Readonly<ViewsDropdownProps>): import("react/jsx-runtime").JSX.Element;
|
|
4
4
|
declare const _default: React.MemoExoticComponent<typeof ViewsDropdown>;
|
|
5
5
|
export default _default;
|
|
@@ -14,7 +14,7 @@ import { defaultViewList } from './data';
|
|
|
14
14
|
import { ViewsSubmenu } from './components/ViewsSubmenu';
|
|
15
15
|
import { ListStyled, DropdownStyled, MenuItem as StyledMenuItem, Space, SpaceAfter, SubmenuContainer, SaveCustomViewBox, SaveCustomViewInnerBox, ButtonsContainer, CancelButtonSx, OkayButtonSx, ModifiedTextSx, } from './styles';
|
|
16
16
|
import { deepCloneColumns, toggleSingleColumn, toggleSubItem, getSubmenuItems, hasSubmenu, areAllCurrentColumnsSelected, areSomeCurrentColumnsSelected, toggleAllCurrentColumns, areColumnsEqual, } from './utils';
|
|
17
|
-
function ViewsDropdown({ open, selectedViewInfo, setSelectedViewInfo, onSelect, setViews, anchorEl, onCreateCustomView, customViews = [], onEditCustomView, defaultColumns = [], setDefaultColumns, }) {
|
|
17
|
+
function ViewsDropdown({ open, selectedViewInfo, setSelectedViewInfo, onSelect, setViews, anchorEl, onCreateCustomView, customViews = [], onEditCustomView, defaultColumns = [], setDefaultColumns, updateSelectedView, }) {
|
|
18
18
|
const { t } = useTranslation();
|
|
19
19
|
const { hoveredColumn: hoveredItem, anchorEl: submenuAnchorEl, openSubmenu: handleMenuItemHover, closeSubmenu: handleMenuItemLeave, cancelClose: handleSubmenuEnter, forceClose: forceCloseSubmenu, } = useSubmenuHover();
|
|
20
20
|
const [hoveredCustomView, setHoveredCustomView] = React.useState(null);
|
|
@@ -123,6 +123,16 @@ function ViewsDropdown({ open, selectedViewInfo, setSelectedViewInfo, onSelect,
|
|
|
123
123
|
setIsDefaultModified(hasChanges);
|
|
124
124
|
if (hasChanges) {
|
|
125
125
|
setBaselineColumns(deepCloneColumns(originalColumns));
|
|
126
|
+
// Update selected view internally and notify parent via callback
|
|
127
|
+
if (selectedViewInfo.id === 'default' && defaultColumns.length > 0 && updateSelectedView) {
|
|
128
|
+
const defaultViewWithColumns = {
|
|
129
|
+
id: 'default',
|
|
130
|
+
label: 'Default',
|
|
131
|
+
submenu: [...defaultColumns],
|
|
132
|
+
columns: defaultColumns.map((col) => col.name),
|
|
133
|
+
};
|
|
134
|
+
updateSelectedView(defaultViewWithColumns);
|
|
135
|
+
}
|
|
126
136
|
}
|
|
127
137
|
else {
|
|
128
138
|
setBaselineColumns([]);
|
|
@@ -29,8 +29,9 @@ export interface UseViewSelectorProps {
|
|
|
29
29
|
defaultTemplate?: ViewMenuItem;
|
|
30
30
|
setInternalCustomViews: (views: ViewMenuItem[]) => void;
|
|
31
31
|
setInternalTableViews: (views: ColumnViewProps[]) => void;
|
|
32
|
+
setDefaultColumns?: (columns: ColumnViewProps[]) => void;
|
|
32
33
|
}
|
|
33
|
-
export declare const useViewSelector: ({ mode, onViewChange, onTableViewsChange, onCustomViewsChange, onCreateCustomView, onEditCustomView, onDeleteCustomView, resetTableViews, setTableViews, tableViews, customViews, defaultColumns, defaultTemplate, setInternalCustomViews, setInternalTableViews, }: UseViewSelectorProps) => {
|
|
34
|
+
export declare const useViewSelector: ({ mode, onViewChange, onTableViewsChange, onCustomViewsChange, onCreateCustomView, onEditCustomView, onDeleteCustomView, resetTableViews, setTableViews, tableViews, customViews, defaultColumns, defaultTemplate, setInternalCustomViews, setInternalTableViews, setDefaultColumns, }: UseViewSelectorProps) => {
|
|
34
35
|
anchorViewEl: HTMLDivElement | null;
|
|
35
36
|
defaultViewEl: HTMLDivElement | null;
|
|
36
37
|
setDefaultViewElement: import("react").Dispatch<import("react").SetStateAction<HTMLDivElement | null>>;
|
|
@@ -53,4 +54,5 @@ export declare const useViewSelector: ({ mode, onViewChange, onTableViewsChange,
|
|
|
53
54
|
handleDeleteView: (viewId: string) => Promise<void>;
|
|
54
55
|
handleResetViews: (views: string[]) => void;
|
|
55
56
|
handleTableViewsChange: (newTableViews: ColumnViewProps[]) => void;
|
|
57
|
+
updateSelectedView: (updatedView: ViewMenuItem) => void;
|
|
56
58
|
};
|
|
@@ -9,7 +9,7 @@ var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, ge
|
|
|
9
9
|
};
|
|
10
10
|
import { useState, useCallback, useEffect } from 'react';
|
|
11
11
|
import { createCustomViewMenuItem } from '../utils';
|
|
12
|
-
export const useViewSelector = ({ mode, onViewChange, onTableViewsChange, onCustomViewsChange, onCreateCustomView, onEditCustomView, onDeleteCustomView, resetTableViews, setTableViews, tableViews, customViews, defaultColumns, defaultTemplate, setInternalCustomViews, setInternalTableViews, }) => {
|
|
12
|
+
export const useViewSelector = ({ mode, onViewChange, onTableViewsChange, onCustomViewsChange, onCreateCustomView, onEditCustomView, onDeleteCustomView, resetTableViews, setTableViews, tableViews, customViews, defaultColumns, defaultTemplate, setInternalCustomViews, setInternalTableViews, setDefaultColumns, }) => {
|
|
13
13
|
const [anchorViewEl, setAnchorViewEl] = useState(null);
|
|
14
14
|
const [defaultViewEl, setDefaultViewElement] = useState(null);
|
|
15
15
|
const [isCreateDialogOpen, setIsCreateDialogOpen] = useState(false);
|
|
@@ -81,6 +81,13 @@ export const useViewSelector = ({ mode, onViewChange, onTableViewsChange, onCust
|
|
|
81
81
|
onViewChange === null || onViewChange === void 0 ? void 0 : onViewChange(newSelectedView);
|
|
82
82
|
handleCloseViewDropdown();
|
|
83
83
|
}, [handleCloseViewDropdown, onViewChange]);
|
|
84
|
+
// Internal function to update selected view and notify parent
|
|
85
|
+
// Used when default columns change via "Okay" button
|
|
86
|
+
const updateSelectedView = useCallback((updatedView) => {
|
|
87
|
+
setSelectedView(updatedView);
|
|
88
|
+
setSelectedViewInfo({ id: updatedView.id, label: updatedView.label });
|
|
89
|
+
onViewChange === null || onViewChange === void 0 ? void 0 : onViewChange(updatedView);
|
|
90
|
+
}, [onViewChange, setSelectedViewInfo]);
|
|
84
91
|
const handleOpenCreateDialog = useCallback((useCurrentState = false) => {
|
|
85
92
|
setEditingView(null);
|
|
86
93
|
setShouldUseCurrentState(useCurrentState);
|
|
@@ -173,5 +180,6 @@ export const useViewSelector = ({ mode, onViewChange, onTableViewsChange, onCust
|
|
|
173
180
|
handleDeleteView,
|
|
174
181
|
handleResetViews,
|
|
175
182
|
handleTableViewsChange,
|
|
183
|
+
updateSelectedView,
|
|
176
184
|
};
|
|
177
185
|
};
|
|
@@ -132,6 +132,7 @@ export interface ViewsDropdownProps {
|
|
|
132
132
|
onEditCustomView?: (view: ViewMenuItem) => void;
|
|
133
133
|
defaultColumns?: ColumnViewProps[];
|
|
134
134
|
setDefaultColumns?: (columns: ColumnViewProps[]) => void;
|
|
135
|
+
updateSelectedView?: (view: ViewMenuItem) => void;
|
|
135
136
|
}
|
|
136
137
|
export interface ColumnListProps {
|
|
137
138
|
selectedColumns: ColumnViewProps[];
|
package/package.json
CHANGED
|
@@ -1,8 +1,8 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@tap-payments/os-micro-frontend-shared",
|
|
3
3
|
"description": "Shared components and utilities for Tap Payments micro frontends",
|
|
4
|
-
"version": "0.1.373-test.
|
|
5
|
-
"testVersion":
|
|
4
|
+
"version": "0.1.373-test.2-test.3-test.4",
|
|
5
|
+
"testVersion": 4,
|
|
6
6
|
"type": "module",
|
|
7
7
|
"main": "build/index.js",
|
|
8
8
|
"module": "build/index.js",
|