@tap-payments/os-micro-frontend-shared 0.1.373-test.2-test.3 → 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.
@@ -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,
@@ -40,6 +40,6 @@ function ViewSelector({ onViewChange, setIsViewVisible, setTableViews, tableView
40
40
  });
41
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) => {
42
42
  setDefaultViewElement(defaultViewEl ? null : e.currentTarget);
43
- }, setViews: handleResetViews, tableViews: tableViews, setTableViews: handleTableViewsChange, onCreateCustomView: handleOpenCreateDialog, customViews: customViews, onEditCustomView: handleOpenEditDialog, defaultColumns: defaultColumns, setDefaultColumns: setDefaultColumns, onViewChange: onViewChange })] })) })), _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 })] }));
44
44
  }
45
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, onViewChange, }: 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, onViewChange, }) {
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,15 +123,15 @@ function ViewsDropdown({ open, selectedViewInfo, setSelectedViewInfo, onSelect,
123
123
  setIsDefaultModified(hasChanges);
124
124
  if (hasChanges) {
125
125
  setBaselineColumns(deepCloneColumns(originalColumns));
126
- // Update table when default columns change and default view is selected
127
- if (selectedViewInfo.id === 'default' && defaultColumns.length > 0) {
126
+ // Update selected view internally and notify parent via callback
127
+ if (selectedViewInfo.id === 'default' && defaultColumns.length > 0 && updateSelectedView) {
128
128
  const defaultViewWithColumns = {
129
129
  id: 'default',
130
130
  label: 'Default',
131
131
  submenu: [...defaultColumns],
132
132
  columns: defaultColumns.map((col) => col.name),
133
133
  };
134
- onViewChange === null || onViewChange === void 0 ? void 0 : onViewChange(defaultViewWithColumns);
134
+ updateSelectedView(defaultViewWithColumns);
135
135
  }
136
136
  }
137
137
  else {
@@ -54,4 +54,5 @@ export declare const useViewSelector: ({ mode, onViewChange, onTableViewsChange,
54
54
  handleDeleteView: (viewId: string) => Promise<void>;
55
55
  handleResetViews: (views: string[]) => void;
56
56
  handleTableViewsChange: (newTableViews: ColumnViewProps[]) => void;
57
+ updateSelectedView: (updatedView: ViewMenuItem) => void;
57
58
  };
@@ -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,7 +132,7 @@ export interface ViewsDropdownProps {
132
132
  onEditCustomView?: (view: ViewMenuItem) => void;
133
133
  defaultColumns?: ColumnViewProps[];
134
134
  setDefaultColumns?: (columns: ColumnViewProps[]) => void;
135
- onViewChange?: (selectedView?: ViewMenuItem) => void;
135
+ updateSelectedView?: (view: ViewMenuItem) => void;
136
136
  }
137
137
  export interface ColumnListProps {
138
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.2-test.3",
5
- "testVersion": 3,
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",