@tap-payments/os-micro-frontend-shared 0.1.372-test.2-test.3 → 0.1.372-test.2-test.3-test.4-test.5

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.
@@ -40,7 +40,9 @@ function CreateViewDialog({ open, onClose, onCreate, availableColumns = [], isLo
40
40
  const handleDelete = () => __awaiter(this, void 0, void 0, function* () {
41
41
  if (!editingView)
42
42
  return;
43
- yield (onDelete === null || onDelete === void 0 ? void 0 : onDelete(editingView.id));
43
+ const templateId = editingView.templateId || editingView.id;
44
+ console.log({ templateId });
45
+ yield (onDelete === null || onDelete === void 0 ? void 0 : onDelete(templateId));
44
46
  onClose();
45
47
  });
46
48
  if (!open)
@@ -1,5 +1,5 @@
1
1
  /// <reference types="react" />
2
2
  import type { ViewSelectorProps } from './types';
3
- declare function ViewSelector({ onViewChange, setIsViewVisible, setTableViews, tableViews: externalTableViews, resetTableViews, customViews: externalCustomViews, onCreateCustomView, onEditCustomView, onDeleteCustomView, tableMode, onTableViewsChange, initialTableViews, onCustomViewsChange, initialCustomViews, layoutData, templates, lang, }: ViewSelectorProps): import("react/jsx-runtime").JSX.Element;
3
+ declare function ViewSelector({ onViewChange, setIsViewVisible, setTableViews, tableViews: externalTableViews, resetTableViews, customViews: externalCustomViews, onCreateCustomView, onEditCustomView, onDeleteCustomView, tableMode, onTableViewsChange, onCustomViewsChange, templates, lang, }: ViewSelectorProps): import("react/jsx-runtime").JSX.Element;
4
4
  declare const _default: import("react").MemoExoticComponent<typeof ViewSelector>;
5
5
  export default _default;
@@ -9,15 +9,12 @@ import CreateViewDialog from './CreateViewDialog';
9
9
  import { ViewWrapper } from './styles';
10
10
  import { useViewsManager } from './hooks';
11
11
  import { useViewSelector } from './hooks/useViewSelector';
12
- function ViewSelector({ onViewChange, setIsViewVisible, setTableViews, tableViews: externalTableViews, resetTableViews, customViews: externalCustomViews, onCreateCustomView, onEditCustomView, onDeleteCustomView, tableMode = 'default', onTableViewsChange, initialTableViews, onCustomViewsChange, initialCustomViews, layoutData, templates, lang = 'en', }) {
12
+ function ViewSelector({ onViewChange, setIsViewVisible, setTableViews, tableViews: externalTableViews, resetTableViews, customViews: externalCustomViews, onCreateCustomView, onEditCustomView, onDeleteCustomView, tableMode = 'default', onTableViewsChange, onCustomViewsChange, templates, lang = 'en', }) {
13
13
  const { t } = useTranslation();
14
14
  // Map tableMode to viewMode: 'sheet' → 'sheet', 'default' → 'advanced'
15
15
  const mode = tableMode === 'sheet' ? 'sheet' : 'advanced';
16
16
  const { defaultColumns, setDefaultColumns, internalTableViews, setInternalTableViews, internalCustomViews, setInternalCustomViews } = useViewsManager({
17
17
  mode,
18
- layoutData,
19
- initialTableViews,
20
- initialCustomViews,
21
18
  templates,
22
19
  lang,
23
20
  });
@@ -25,7 +22,6 @@ function ViewSelector({ onViewChange, setIsViewVisible, setTableViews, tableView
25
22
  const customViews = externalCustomViews !== null && externalCustomViews !== void 0 ? externalCustomViews : internalCustomViews;
26
23
  const { anchorViewEl, defaultViewEl, setDefaultViewElement, isCreateDialogOpen, editingView, selectedViewInfo, shouldUseCurrentState, handleViewButtonClick, handleCloseViewDropdown, handleSelectedViewInfo, handleOpenCreateDialog, handleOpenEditDialog, handleCloseCreateDialog, handleSaveView, handleDeleteView, handleResetViews, handleTableViewsChange, } = useViewSelector({
27
24
  mode,
28
- layoutData,
29
25
  onTableViewsChange,
30
26
  onCustomViewsChange,
31
27
  onCreateCustomView,
@@ -35,11 +31,12 @@ function ViewSelector({ onViewChange, setIsViewVisible, setTableViews, tableView
35
31
  setTableViews,
36
32
  tableViews,
37
33
  customViews,
34
+ defaultColumns,
38
35
  setInternalCustomViews,
39
36
  setInternalTableViews,
40
37
  });
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) => {
42
- onViewChange === null || onViewChange === void 0 ? void 0 : onViewChange();
38
+ 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, templateId) => {
39
+ onViewChange === null || onViewChange === void 0 ? void 0 : onViewChange(templateId);
43
40
  setDefaultViewElement(defaultViewEl ? null : e.currentTarget);
44
41
  }, 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 })] }));
45
42
  }
@@ -38,6 +38,26 @@ function ViewsDropdown({ open, selectedViewInfo, setSelectedViewInfo, onSelect,
38
38
  const { hoveredNestedColumn, nestedSubmenuAnchorEl, openNestedSubmenu, closeNestedSubmenu, cancelNestedClose } = useNestedSubmenu();
39
39
  // Default templates are merged into built-in Default view, so no need to sort
40
40
  const viewList = [...defaultViewList, ...customViews];
41
+ const handleViewClick = (item) => {
42
+ setSelectedViewInfo(item);
43
+ if (item.columns)
44
+ setViews === null || setViews === void 0 ? void 0 : setViews(item.columns);
45
+ // Call onSelect with templateId for custom views
46
+ if (item.isCustom && item.templateId) {
47
+ // Create a synthetic event-like object for onSelect
48
+ const syntheticEvent = {
49
+ currentTarget: anchorEl || document.createElement('div'),
50
+ };
51
+ onSelect(syntheticEvent, item.templateId);
52
+ }
53
+ else {
54
+ // For default view, call onSelect without templateId
55
+ const syntheticEvent = {
56
+ currentTarget: anchorEl || document.createElement('div'),
57
+ };
58
+ onSelect(syntheticEvent);
59
+ }
60
+ };
41
61
  const toggleColumnSelection = (columnName) => {
42
62
  if (!setDefaultColumns)
43
63
  return;
@@ -149,11 +169,7 @@ function ViewsDropdown({ open, selectedViewInfo, setSelectedViewInfo, onSelect,
149
169
  else if (hasSubmenu(item, defaultColumns)) {
150
170
  handleMenuItemLeave();
151
171
  }
152
- }, onClick: () => {
153
- setSelectedViewInfo(item);
154
- if (item.columns)
155
- setViews === null || setViews === void 0 ? void 0 : setViews(item.columns);
156
- }, sx: {
172
+ }, onClick: () => handleViewClick(item), sx: {
157
173
  position: 'relative',
158
174
  cursor: 'pointer',
159
175
  pr: 1.5,
@@ -4,7 +4,6 @@ import type { ViewMenuItem, LayoutSection, ViewMode } from '../types';
4
4
  import type { ViewOption } from '../../type';
5
5
  export interface UseViewSelectorProps {
6
6
  mode: ViewMode;
7
- layoutData?: LayoutSection[];
8
7
  onTableViewsChange?: (tableViews: ColumnViewProps[]) => void;
9
8
  onCustomViewsChange?: (customViews: ViewMenuItem[]) => void;
10
9
  onCreateCustomView?: (data: {
@@ -25,10 +24,11 @@ export interface UseViewSelectorProps {
25
24
  setTableViews?: (columns: ColumnViewProps[]) => void;
26
25
  tableViews: ColumnViewProps[];
27
26
  customViews: ViewMenuItem[];
27
+ defaultColumns: ColumnViewProps[];
28
28
  setInternalCustomViews: (views: ViewMenuItem[]) => void;
29
29
  setInternalTableViews: (views: ColumnViewProps[]) => void;
30
30
  }
31
- export declare const useViewSelector: ({ mode, layoutData, onTableViewsChange, onCustomViewsChange, onCreateCustomView, onEditCustomView, onDeleteCustomView, resetTableViews, setTableViews, tableViews, customViews, setInternalCustomViews, setInternalTableViews, }: UseViewSelectorProps) => {
31
+ export declare const useViewSelector: ({ mode, onTableViewsChange, onCustomViewsChange, onCreateCustomView, onEditCustomView, onDeleteCustomView, resetTableViews, setTableViews, tableViews, customViews, defaultColumns, setInternalCustomViews, setInternalTableViews, }: UseViewSelectorProps) => {
32
32
  anchorViewEl: HTMLDivElement | null;
33
33
  defaultViewEl: HTMLDivElement | null;
34
34
  setDefaultViewElement: import("react").Dispatch<import("react").SetStateAction<HTMLDivElement | null>>;
@@ -8,8 +8,8 @@ var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, ge
8
8
  });
9
9
  };
10
10
  import { useState, useCallback } from 'react';
11
- import { getColumnsByMode, createCustomViewMenuItem } from '../utils';
12
- export const useViewSelector = ({ mode, layoutData, onTableViewsChange, onCustomViewsChange, onCreateCustomView, onEditCustomView, onDeleteCustomView, resetTableViews, setTableViews, tableViews, customViews, setInternalCustomViews, setInternalTableViews, }) => {
11
+ import { createCustomViewMenuItem } from '../utils';
12
+ export const useViewSelector = ({ mode, onTableViewsChange, onCustomViewsChange, onCreateCustomView, onEditCustomView, onDeleteCustomView, resetTableViews, setTableViews, tableViews, customViews, defaultColumns, setInternalCustomViews, setInternalTableViews, }) => {
13
13
  const [anchorViewEl, setAnchorViewEl] = useState(null);
14
14
  const [defaultViewEl, setDefaultViewElement] = useState(null);
15
15
  const [isCreateDialogOpen, setIsCreateDialogOpen] = useState(false);
@@ -81,10 +81,10 @@ export const useViewSelector = ({ mode, layoutData, onTableViewsChange, onCustom
81
81
  resetTableViews({ id: views[0], label: views[0] });
82
82
  }
83
83
  else {
84
- const resetColumns = getColumnsByMode(mode, layoutData);
85
- handleTableViewsChange(resetColumns);
84
+ // Reset to default columns from templates
85
+ handleTableViewsChange([...defaultColumns]);
86
86
  }
87
- }, [resetTableViews, mode, layoutData, handleTableViewsChange]);
87
+ }, [resetTableViews, defaultColumns, handleTableViewsChange]);
88
88
  return {
89
89
  // State
90
90
  anchorViewEl,
@@ -1,7 +1,7 @@
1
1
  /// <reference types="react" />
2
2
  import type { ColumnViewProps } from '../../../../types/index.js';
3
3
  import type { UseViewsManagerProps, ViewMenuItem } from '../types';
4
- export declare const useViewsManager: ({ mode, layoutData, initialTableViews, initialCustomViews, templates, lang }: UseViewsManagerProps) => {
4
+ export declare const useViewsManager: ({ mode, templates, lang }: UseViewsManagerProps) => {
5
5
  defaultColumns: ColumnViewProps[];
6
6
  setDefaultColumns: import("react").Dispatch<import("react").SetStateAction<ColumnViewProps[]>>;
7
7
  internalTableViews: ColumnViewProps[];
@@ -1,7 +1,7 @@
1
1
  import { useState, useEffect, useMemo } from 'react';
2
- import { getColumnsByMode, transformTemplatesToViewMenuItems, getLayoutDataFromTemplates } from '../utils';
3
- export const useViewsManager = ({ mode, layoutData, initialTableViews, initialCustomViews, templates, lang = 'en' }) => {
4
- // Transform templates internally if provided
2
+ import { transformTemplatesToViewMenuItems, getLayoutDataFromTemplates, getColumnsByMode } from '../utils';
3
+ export const useViewsManager = ({ mode, templates, lang = 'en' }) => {
4
+ // Transform templates internally - this is the only source of data
5
5
  const transformedTemplates = useMemo(() => {
6
6
  if (!templates)
7
7
  return null;
@@ -38,11 +38,8 @@ export const useViewsManager = ({ mode, layoutData, initialTableViews, initialCu
38
38
  defaultTemplateColumns,
39
39
  };
40
40
  }, [templates, mode, lang]);
41
- // Use transformed templates or provided props
42
- const effectiveLayoutData = (transformedTemplates === null || transformedTemplates === void 0 ? void 0 : transformedTemplates.layoutData) || layoutData;
43
- const effectiveCustomViews = (transformedTemplates === null || transformedTemplates === void 0 ? void 0 : transformedTemplates.customViews) || initialCustomViews;
44
41
  const [defaultColumns, setDefaultColumns] = useState(() => {
45
- // If we have default template columns from templates, use them; otherwise use layoutData
42
+ // Only use data from templates - no other sources
46
43
  if (templates) {
47
44
  const templatesArray = Array.isArray(templates) ? templates : templates.templates;
48
45
  const { defaultTemplateColumns } = transformTemplatesToViewMenuItems(templatesArray, mode, lang);
@@ -50,31 +47,55 @@ export const useViewsManager = ({ mode, layoutData, initialTableViews, initialCu
50
47
  return defaultTemplateColumns;
51
48
  }
52
49
  }
53
- return getColumnsByMode(mode, layoutData || []);
50
+ // Return empty array if no templates
51
+ return [];
52
+ });
53
+ const [internalTableViews, setInternalTableViews] = useState(() => {
54
+ // Initialize from templates only
55
+ if (templates) {
56
+ const templatesArray = Array.isArray(templates) ? templates : templates.templates;
57
+ const { defaultTemplateColumns } = transformTemplatesToViewMenuItems(templatesArray, mode, lang);
58
+ if (defaultTemplateColumns) {
59
+ return defaultTemplateColumns;
60
+ }
61
+ }
62
+ return [];
63
+ });
64
+ const [internalCustomViews, setInternalCustomViews] = useState(() => {
65
+ // Initialize from templates only
66
+ if (templates) {
67
+ const templatesArray = Array.isArray(templates) ? templates : templates.templates;
68
+ const { customViews } = transformTemplatesToViewMenuItems(templatesArray, mode, lang);
69
+ return customViews || [];
70
+ }
71
+ return [];
54
72
  });
55
- const [internalTableViews, setInternalTableViews] = useState(initialTableViews || defaultColumns || []);
56
- const [internalCustomViews, setInternalCustomViews] = useState(effectiveCustomViews || []);
57
73
  useEffect(() => {
58
- // If we have default template columns, use them; otherwise use layoutData
74
+ // Only use data from templates
59
75
  if (transformedTemplates === null || transformedTemplates === void 0 ? void 0 : transformedTemplates.defaultTemplateColumns) {
60
76
  setDefaultColumns(transformedTemplates.defaultTemplateColumns);
61
- if (!initialTableViews) {
62
- setInternalTableViews(transformedTemplates.defaultTemplateColumns);
63
- }
77
+ setInternalTableViews(transformedTemplates.defaultTemplateColumns);
64
78
  }
65
- else {
66
- const columns = getColumnsByMode(mode, effectiveLayoutData);
79
+ else if ((transformedTemplates === null || transformedTemplates === void 0 ? void 0 : transformedTemplates.layoutData) && transformedTemplates.layoutData.length > 0) {
80
+ // Use layoutData from templates
81
+ const columns = getColumnsByMode(mode, transformedTemplates.layoutData);
67
82
  setDefaultColumns(columns);
68
- if (!initialTableViews && effectiveLayoutData) {
69
- setInternalTableViews(columns);
70
- }
83
+ setInternalTableViews(columns);
71
84
  }
72
- }, [mode, effectiveLayoutData, initialTableViews, transformedTemplates === null || transformedTemplates === void 0 ? void 0 : transformedTemplates.defaultTemplateColumns]);
85
+ else {
86
+ // No templates - set empty arrays
87
+ setDefaultColumns([]);
88
+ setInternalTableViews([]);
89
+ }
90
+ }, [mode, transformedTemplates === null || transformedTemplates === void 0 ? void 0 : transformedTemplates.defaultTemplateColumns, transformedTemplates === null || transformedTemplates === void 0 ? void 0 : transformedTemplates.layoutData]);
73
91
  // Update custom views when templates change
74
92
  useEffect(() => {
75
93
  if (transformedTemplates === null || transformedTemplates === void 0 ? void 0 : transformedTemplates.customViews) {
76
94
  setInternalCustomViews(transformedTemplates.customViews);
77
95
  }
96
+ else {
97
+ setInternalCustomViews([]);
98
+ }
78
99
  }, [transformedTemplates === null || transformedTemplates === void 0 ? void 0 : transformedTemplates.customViews]);
79
100
  return {
80
101
  defaultColumns,
@@ -8,4 +8,6 @@ export { default as CreateViewDialog } from './CreateViewDialog';
8
8
  export { transformLayoutToColumns, getColumnsByMode, createCustomViewMenuItem, setViewAsDefault, transformTemplatesToViewMenuItems, convertColumnsToLayoutSection, isDateColumn, getColumnCheckState, } from './utils';
9
9
  export { useSubmenuHover } from './hooks';
10
10
  export { DIALOG_WIDTH, DIALOG_HEIGHT, MAX_CUSTOM_VIEWS, TEMPLATE_NAME_MAX_LENGTH } from './constants';
11
+ // Note: defaultViewList, advancedColumns, sheetColumns are only exported for demo purposes
12
+ // They should not be used as defaults in production - all data should come from API
11
13
  export { defaultViewList, advancedColumns, sheetColumns } from './data';
@@ -5,6 +5,7 @@ export type ViewMode = 'advanced' | 'sheet';
5
5
  export interface ViewMenuItem {
6
6
  label: string;
7
7
  id: string;
8
+ templateId?: string;
8
9
  columns?: string[];
9
10
  submenu?: ColumnViewProps[];
10
11
  isCustom?: boolean;
@@ -16,6 +17,7 @@ export interface FieldItem {
16
17
  text: string;
17
18
  lang: string;
18
19
  }[];
20
+ order?: number | null;
19
21
  default?: boolean;
20
22
  }
21
23
  export interface ColumnItem {
@@ -33,23 +35,28 @@ export interface LayoutSection {
33
35
  columns: ColumnItem[];
34
36
  }
35
37
  export interface TemplateResponse {
36
- id: string;
37
- object: string;
38
- master: boolean;
39
- live_mode: boolean;
40
- api_version: string;
41
- feature_version: string;
42
- created: number;
43
- updated: number;
38
+ templateId: string;
44
39
  segment: string;
45
40
  app: string;
46
41
  service: string;
42
+ name: string;
43
+ layout: LayoutSection[];
44
+ id: {
45
+ timestamp: number;
46
+ date: string;
47
+ };
48
+ masterTemplateId: string;
47
49
  user: {
48
50
  id: string;
49
51
  };
50
- name: string;
52
+ created: number;
53
+ updated: number;
51
54
  default: boolean;
52
- layout: LayoutSection[];
55
+ object?: string;
56
+ master?: boolean;
57
+ live_mode?: boolean;
58
+ api_version?: string;
59
+ feature_version?: string;
53
60
  }
54
61
  export interface TemplatesListResponse {
55
62
  object: string;
@@ -74,6 +81,7 @@ export interface CreateCustomViewDialogProps {
74
81
  editingView?: {
75
82
  id: string;
76
83
  label: string;
84
+ templateId?: string;
77
85
  submenu?: ColumnViewProps[];
78
86
  } | null;
79
87
  onDelete?: (viewId: string) => Promise<void>;
@@ -115,7 +123,7 @@ export interface ViewsDropdownProps {
115
123
  open: boolean;
116
124
  selectedViewInfo: ViewOption;
117
125
  setSelectedViewInfo: (selected: ViewOption) => void;
118
- onSelect: (e: React.MouseEvent<HTMLDivElement>) => void;
126
+ onSelect: (e: React.MouseEvent<HTMLDivElement>, templateId?: string) => void;
119
127
  setViews?: (views: string[]) => void;
120
128
  anchorEl: Element | null;
121
129
  tableViews?: ColumnViewProps[];
@@ -167,9 +175,6 @@ export interface UseCreateViewDialogProps {
167
175
  }
168
176
  export interface UseViewsManagerProps {
169
177
  mode: ViewMode;
170
- layoutData?: LayoutSection[];
171
- initialTableViews?: ColumnViewProps[];
172
- initialCustomViews?: ViewMenuItem[];
173
178
  templates?: TemplatesListResponse | TemplateResponse[];
174
179
  lang?: string;
175
180
  }
@@ -25,10 +25,14 @@ export declare const setViewAsDefault: (views: ViewMenuItem[], viewId: string) =
25
25
  * Separates default templates (to be merged into built-in Default view) from custom views
26
26
  */
27
27
  export declare const transformTemplatesToViewMenuItems: (templates: Array<{
28
- id: string;
28
+ id: string | {
29
+ timestamp: number;
30
+ date: string;
31
+ };
29
32
  name: string;
30
33
  default: boolean;
31
34
  layout: LayoutSection[];
35
+ templateId: string;
32
36
  }>, mode?: ViewMode, lang?: string) => {
33
37
  customViews: ViewMenuItem[];
34
38
  defaultTemplateColumns?: ColumnViewProps[] | undefined;
@@ -1,4 +1,4 @@
1
- import { advancedColumns, sheetColumns } from './data';
1
+ // Note: advancedColumns and sheetColumns are only used in demo - not imported here to avoid default data
2
2
  /**
3
3
  * Transform API layout response to internal ColumnViewProps format
4
4
  */
@@ -35,7 +35,8 @@ export const getColumnsByMode = (mode, layoutData) => {
35
35
  return transformLayoutToColumns([section]);
36
36
  }
37
37
  }
38
- return mode === 'advanced' ? [...advancedColumns] : [...sheetColumns];
38
+ // Return empty array - all data should come from API
39
+ return [];
39
40
  };
40
41
  export const isDateColumn = (name) => {
41
42
  return name.toLowerCase() === 'date';
@@ -102,6 +103,9 @@ export const transformTemplatesToViewMenuItems = (templates, mode = 'sheet', lan
102
103
  // Get columns for the specified mode
103
104
  const section = template.layout.find((s) => s.code.toLowerCase() === mode.toLowerCase());
104
105
  const columns = section ? transformLayoutToColumns([section], lang) : [];
106
+ // Handle id as either string or object
107
+ const templateIdString = typeof template.id === 'string' ? template.id : template.templateId;
108
+ const viewId = typeof template.id === 'string' ? template.id : template.templateId;
105
109
  if (template.default) {
106
110
  // Store default template columns to merge into built-in Default view
107
111
  defaultTemplateColumns = columns;
@@ -109,7 +113,8 @@ export const transformTemplatesToViewMenuItems = (templates, mode = 'sheet', lan
109
113
  else {
110
114
  // Add non-default templates as custom views
111
115
  customViews.push({
112
- id: template.id,
116
+ id: viewId,
117
+ templateId: template.templateId,
113
118
  label: template.name,
114
119
  isCustom: true,
115
120
  default: false,
@@ -23,7 +23,7 @@ export interface TableHeaderProps<IStatus extends TableHeaderStatus | TableHeade
23
23
  calendarMode?: CalenderMode;
24
24
  onStatusChange?: <T extends IStatus>(status?: T) => void;
25
25
  onSearch?: (search: string) => void;
26
- onViewChange?: () => void;
26
+ onViewChange?: (templateId?: string) => void;
27
27
  onDateChange?: (date: Date | [Date, Date]) => void;
28
28
  tableReportsComponent?: React.ReactNode;
29
29
  tableFilterComponent?: React.ReactNode;
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.372-test.2-test.3",
5
- "testVersion": 3,
4
+ "version": "0.1.372-test.2-test.3-test.4-test.5",
5
+ "testVersion": 5,
6
6
  "type": "module",
7
7
  "main": "build/index.js",
8
8
  "module": "build/index.js",