@wix/auto-patterns 1.24.0 → 1.25.0
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/cjs/components/AutoPatternsEntityPage/ViewModeEntityPage.js +13 -11
- package/dist/cjs/components/AutoPatternsEntityPage/ViewModeEntityPage.js.map +1 -1
- package/dist/cjs/dataSourceAdapters/cms/cmsAdapter.js +2 -1
- package/dist/cjs/dataSourceAdapters/cms/cmsAdapter.js.map +1 -1
- package/dist/cjs/hooks/useActionCell.js +2 -1
- package/dist/cjs/hooks/useActionCell.js.map +1 -1
- package/dist/cjs/hooks/useBulkActionToolbar.js +2 -1
- package/dist/cjs/hooks/useBulkActionToolbar.js.map +1 -1
- package/dist/cjs/hooks/useCollectionPageActions.js +2 -1
- package/dist/cjs/hooks/useCollectionPageActions.js.map +1 -1
- package/dist/cjs/hooks/useEntityPageActions.js +2 -1
- package/dist/cjs/hooks/useEntityPageActions.js.map +1 -1
- package/dist/cjs/hooks/useEntityPageMoreActions.js +1 -1
- package/dist/cjs/hooks/useEntityPageMoreActions.js.map +1 -1
- package/dist/cjs/providers/ErrorContext.js +6 -3
- package/dist/cjs/providers/ErrorContext.js.map +1 -1
- package/dist/cjs/providers/PatternsWizardOverridesContext.js +1 -1
- package/dist/cjs/providers/PatternsWizardOverridesContext.js.map +1 -1
- package/dist/cjs/types/actions/actionCell.js.map +1 -1
- package/dist/cjs/utils/actions/types.js.map +1 -1
- package/dist/docs/action_cell.md +5 -4
- package/dist/docs/auto-patterns-guide.md +6 -4
- package/dist/docs/bulk_actions.md +1 -0
- package/dist/esm/components/AutoPatternsEntityPage/ViewModeEntityPage.js +2 -0
- package/dist/esm/components/AutoPatternsEntityPage/ViewModeEntityPage.js.map +1 -1
- package/dist/esm/dataSourceAdapters/cms/cmsAdapter.js +2 -1
- package/dist/esm/dataSourceAdapters/cms/cmsAdapter.js.map +1 -1
- package/dist/esm/hooks/useActionCell.js +2 -1
- package/dist/esm/hooks/useActionCell.js.map +1 -1
- package/dist/esm/hooks/useBulkActionToolbar.js +2 -1
- package/dist/esm/hooks/useBulkActionToolbar.js.map +1 -1
- package/dist/esm/hooks/useCollectionPageActions.js +2 -1
- package/dist/esm/hooks/useCollectionPageActions.js.map +1 -1
- package/dist/esm/hooks/useEntityPageActions.js +2 -1
- package/dist/esm/hooks/useEntityPageActions.js.map +1 -1
- package/dist/esm/hooks/useEntityPageMoreActions.js +1 -1
- package/dist/esm/hooks/useEntityPageMoreActions.js.map +1 -1
- package/dist/esm/providers/ErrorContext.js +4 -1
- package/dist/esm/providers/ErrorContext.js.map +1 -1
- package/dist/esm/providers/PatternsWizardOverridesContext.js.map +1 -1
- package/dist/esm/types/actions/actionCell.js.map +1 -1
- package/dist/esm/utils/actions/types.js.map +1 -1
- package/dist/types/components/AutoPatternsEntityPage/ViewModeEntityPage.d.ts.map +1 -1
- package/dist/types/dataSourceAdapters/cms/cmsAdapter.d.ts.map +1 -1
- package/dist/types/hooks/useActionCell.d.ts.map +1 -1
- package/dist/types/providers/ErrorContext.d.ts +7 -0
- package/dist/types/providers/ErrorContext.d.ts.map +1 -1
- package/dist/types/providers/PatternsWizardOverridesContext.d.ts +2 -2
- package/dist/types/providers/PatternsWizardOverridesContext.d.ts.map +1 -1
- package/dist/types/types/actions/actionCell.d.ts +7 -1
- package/dist/types/types/actions/actionCell.d.ts.map +1 -1
- package/dist/types/utils/actions/customAction.d.ts +1 -1
- package/dist/types/utils/actions/customAction.d.ts.map +1 -1
- package/dist/types/utils/actions/resolveAction.d.ts +1 -0
- package/dist/types/utils/actions/resolveAction.d.ts.map +1 -1
- package/dist/types/utils/actions/types.d.ts +1 -0
- package/dist/types/utils/actions/types.d.ts.map +1 -1
- package/package.json +13 -12
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["_react","_interopRequireWildcard","require","_jsxFileName","_getRequireWildcardCache","e","WeakMap","r","t","__esModule","default","has","get","n","__proto__","a","Object","defineProperty","getOwnPropertyDescriptor","u","hasOwnProperty","call","i","set","PatternsWizardOverridesContext","createContext","undefined","PatternsWizardOverridesProvider","children","value","createElement","Provider","__self","__source","fileName","lineNumber","columnNumber","exports","usePatternsWizardOverridesContext","useContext"],"sources":["../../../src/providers/PatternsWizardOverridesContext.tsx"],"sourcesContent":["import React, { createContext, useContext, ReactNode } from 'react';\nimport {\n CustomComponentProps,\n
|
|
1
|
+
{"version":3,"names":["_react","_interopRequireWildcard","require","_jsxFileName","_getRequireWildcardCache","e","WeakMap","r","t","__esModule","default","has","get","n","__proto__","a","Object","defineProperty","getOwnPropertyDescriptor","u","hasOwnProperty","call","i","set","PatternsWizardOverridesContext","createContext","undefined","PatternsWizardOverridesProvider","children","value","createElement","Provider","__self","__source","fileName","lineNumber","columnNumber","exports","usePatternsWizardOverridesContext","useContext"],"sources":["../../../src/providers/PatternsWizardOverridesContext.tsx"],"sourcesContent":["import React, { createContext, useContext, ReactNode } from 'react';\nimport {\n CustomComponentProps,\n CustomActionCellPrimaryActionResolver,\n CustomActionCellSecondaryActionResolver,\n CustomEntityPageActionResolver,\n CustomBulkActionsActionResolver,\n CustomActionCollectionPageActionResolver,\n CustomActionCollectionPageActionOnRowClickResolver,\n IColumnValue,\n SchemaConfig,\n} from '../types';\n\nimport { Section } from '@wix/patterns';\n\nexport interface PatternsWizardOverridesContextProps {\n actions?: Record<\n string,\n | CustomActionCellPrimaryActionResolver\n | CustomActionCellSecondaryActionResolver\n | CustomBulkActionsActionResolver\n | CustomEntityPageActionResolver\n | CustomActionCollectionPageActionResolver\n | CustomActionCollectionPageActionOnRowClickResolver\n >;\n columns?: Record<string, (props: IColumnValue<any>) => void>;\n modals?: Record<string, React.FC<any>>;\n emptyState?: Record<string, () => void>;\n components?: Record<string, React.FC<CustomComponentProps>>;\n slots?: Record<string, React.FC>;\n customDataSources?: Record<\n string,\n (collectionId: string, context: any) => Promise<SchemaConfig>\n >;\n sections?: Record<string, (item: any) => Section>;\n}\n\nconst PatternsWizardOverridesContext = createContext<\n PatternsWizardOverridesContextProps | undefined\n>(undefined);\n\nexport const PatternsWizardOverridesProvider: React.FC<{\n children: ReactNode;\n value: PatternsWizardOverridesContextProps;\n}> = ({ children, value }) => {\n return (\n <PatternsWizardOverridesContext.Provider value={value}>\n {children}\n </PatternsWizardOverridesContext.Provider>\n );\n};\n\nexport const usePatternsWizardOverridesContext = ():\n | PatternsWizardOverridesContextProps\n | undefined => {\n return useContext(PatternsWizardOverridesContext);\n};\n"],"mappings":";;;;AAAA,IAAAA,MAAA,GAAAC,uBAAA,CAAAC,OAAA;AAAoE,IAAAC,YAAA;AAAA,SAAAC,yBAAAC,CAAA,6BAAAC,OAAA,mBAAAC,CAAA,OAAAD,OAAA,IAAAE,CAAA,OAAAF,OAAA,YAAAF,wBAAA,YAAAA,CAAAC,CAAA,WAAAA,CAAA,GAAAG,CAAA,GAAAD,CAAA,KAAAF,CAAA;AAAA,SAAAJ,wBAAAI,CAAA,EAAAE,CAAA,SAAAA,CAAA,IAAAF,CAAA,IAAAA,CAAA,CAAAI,UAAA,SAAAJ,CAAA,eAAAA,CAAA,uBAAAA,CAAA,yBAAAA,CAAA,WAAAK,OAAA,EAAAL,CAAA,QAAAG,CAAA,GAAAJ,wBAAA,CAAAG,CAAA,OAAAC,CAAA,IAAAA,CAAA,CAAAG,GAAA,CAAAN,CAAA,UAAAG,CAAA,CAAAI,GAAA,CAAAP,CAAA,OAAAQ,CAAA,KAAAC,SAAA,UAAAC,CAAA,GAAAC,MAAA,CAAAC,cAAA,IAAAD,MAAA,CAAAE,wBAAA,WAAAC,CAAA,IAAAd,CAAA,oBAAAc,CAAA,OAAAC,cAAA,CAAAC,IAAA,CAAAhB,CAAA,EAAAc,CAAA,SAAAG,CAAA,GAAAP,CAAA,GAAAC,MAAA,CAAAE,wBAAA,CAAAb,CAAA,EAAAc,CAAA,UAAAG,CAAA,KAAAA,CAAA,CAAAV,GAAA,IAAAU,CAAA,CAAAC,GAAA,IAAAP,MAAA,CAAAC,cAAA,CAAAJ,CAAA,EAAAM,CAAA,EAAAG,CAAA,IAAAT,CAAA,CAAAM,CAAA,IAAAd,CAAA,CAAAc,CAAA,YAAAN,CAAA,CAAAH,OAAA,GAAAL,CAAA,EAAAG,CAAA,IAAAA,CAAA,CAAAe,GAAA,CAAAlB,CAAA,EAAAQ,CAAA,GAAAA,CAAA;AAqCpE,MAAMW,8BAA8B,gBAAG,IAAAC,oBAAa,EAElDC,SAAS,CAAC;AAEL,MAAMC,+BAGX,GAAGA,CAAC;EAAEC,QAAQ;EAAEC;AAAM,CAAC,KAAK;EAC5B,oBACE7B,MAAA,CAAAU,OAAA,CAAAoB,aAAA,CAACN,8BAA8B,CAACO,QAAQ;IAACF,KAAK,EAAEA,KAAM;IAAAG,MAAA;IAAAC,QAAA;MAAAC,QAAA,EAAA/B,YAAA;MAAAgC,UAAA;MAAAC,YAAA;IAAA;EAAA,GACnDR,QACsC,CAAC;AAE9C,CAAC;AAACS,OAAA,CAAAV,+BAAA,GAAAA,+BAAA;AAEK,MAAMW,iCAAiC,GAAGA,CAAA,KAEhC;EACf,OAAO,IAAAC,iBAAU,EAACf,8BAA8B,CAAC;AACnD,CAAC;AAACa,OAAA,CAAAC,iCAAA,GAAAA,iCAAA","ignoreList":[]}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":[],"sources":["../../../../src/types/actions/actionCell.ts"],"sourcesContent":["import {\n CustomActionModalProps,\n CustomActionParams,\n ResolvedAction,\n} from '../../exports/types';\nimport {\n CustomActionConfig,\n DeleteActionConfig,\n UpdateActionConfig,\n DividerActionConfig,\n} from './base';\n\nexport type ActionCellItemConfig =\n | UpdateActionConfig\n | CustomActionConfig\n | DeleteActionConfig;\n\nexport interface ActionCellPrimaryAction {\n item: ActionCellItemConfig;\n alwaysVisible?: boolean;\n}\n\nexport interface ActionCellSecondaryActions {\n items: (ActionCellItemConfig | DividerActionConfig)[];\n inlineCount?: number;\n inlineAlwaysVisible?: boolean;\n}\n\nexport interface ActionCellConfig {\n primaryAction?: ActionCellPrimaryAction;\n secondaryActions?: ActionCellSecondaryActions;\n}\n\nexport interface ActionCellActionParams {\n item: any;\n}\n\nexport type CustomActionCellActionParams =\n CustomActionParams<ActionCellActionParams>;\n\nexport type
|
|
1
|
+
{"version":3,"names":[],"sources":["../../../../src/types/actions/actionCell.ts"],"sourcesContent":["import {\n CustomActionModalProps,\n CustomActionParams,\n ResolvedAction,\n} from '../../exports/types';\nimport {\n CustomActionConfig,\n DeleteActionConfig,\n UpdateActionConfig,\n DividerActionConfig,\n} from './base';\nimport { IconElement } from '@wix/design-system';\n\nexport type ActionCellItemConfig =\n | UpdateActionConfig\n | CustomActionConfig\n | DeleteActionConfig;\n\nexport interface ActionCellPrimaryAction {\n item: ActionCellItemConfig;\n alwaysVisible?: boolean;\n}\n\nexport interface ActionCellSecondaryActions {\n items: (ActionCellItemConfig | DividerActionConfig)[];\n inlineCount?: number;\n inlineAlwaysVisible?: boolean;\n}\n\nexport interface ActionCellConfig {\n primaryAction?: ActionCellPrimaryAction;\n secondaryActions?: ActionCellSecondaryActions;\n}\n\nexport interface ResolvedActionCellPrimaryAction\n extends Omit<ResolvedAction, 'icon'> {\n prefixIcon?: IconElement;\n suffixIcon?: IconElement;\n}\n\nexport interface ActionCellActionParams {\n item: any;\n}\n\nexport type CustomActionCellActionParams =\n CustomActionParams<ActionCellActionParams>;\n\nexport type CustomActionCellPrimaryActionResolver = (\n params: CustomActionCellActionParams,\n) => ResolvedActionCellPrimaryAction;\n\nexport type CustomActionCellSecondaryActionResolver = (\n params: CustomActionCellActionParams,\n) => ResolvedAction;\n\nexport interface CustomActionCellActionModalProps\n extends CustomActionModalProps {\n actionParams: ActionCellActionParams;\n}\n"],"mappings":"","ignoreList":[]}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":[],"sources":["../../../../src/utils/actions/types.ts"],"sourcesContent":["import { ActionCellAPI, CollectionOptimisticActions } from '@wix/patterns';\nimport {\n UpdateActionConfig,\n CustomActionConfig,\n SchemaConfig,\n BulkDeleteActionConfig,\n DeleteActionConfig,\n CreateActionConfig,\n BaseSDK,\n} from '../../types';\nimport { IconElement } from '@wix/design-system';\n\nexport interface ResolvedAction {\n label: string;\n icon: IconElement;\n onClick: () => void;\n disabled?: boolean;\n tooltip?: string;\n skin?: string;\n}\n\nexport interface BaseContextParams {\n schema: SchemaConfig;\n}\n\nexport interface ActionsSDK extends BaseSDK {\n getSchema: (collectionId: string) => SchemaConfig | undefined;\n collectionId: string; // TODO: Why collectionId is needed here? getSchema with internal collectionId is enough\n getOptimisticActions: (\n collectionId: string,\n ) => CollectionOptimisticActions<any, any>;\n}\n\nexport interface BaseActionParams<T = Record<string, any>> {\n sdk: ActionsSDK;\n actionParams: T;\n}\n\nexport interface ActionCellBaseParams extends BaseActionParams {\n actionParams: {\n item: any;\n index: number;\n api: ActionCellAPI<any, any>;\n };\n}\n\nexport interface BulkDeleteActionParams extends BaseActionParams {\n action: BulkDeleteActionConfig;\n actionParams: {\n selectedValues: any[];\n total: number;\n };\n}\n\nexport interface DeleteActionParams extends ActionCellBaseParams {\n action: DeleteActionConfig;\n}\n\nexport interface UpdateActionParams extends BaseActionParams {\n action: UpdateActionConfig;\n}\n\nexport interface CreateActionParams extends BaseActionParams {\n action: CreateActionConfig;\n}\n\nexport interface CustomActionParams<T> extends BaseActionParams<T> {\n action: CustomActionConfig;\n}\n\nexport interface ActionModalProps {\n modalParams: Record<string, any>;\n actionParams: Record<string, any>;\n sdk: ActionsSDK;\n}\n\nexport interface CustomActionModalProps extends ActionModalProps {\n modalParams: { id: string };\n}\n"],"mappings":"","ignoreList":[]}
|
|
1
|
+
{"version":3,"names":[],"sources":["../../../../src/utils/actions/types.ts"],"sourcesContent":["import { ActionCellAPI, CollectionOptimisticActions } from '@wix/patterns';\nimport {\n UpdateActionConfig,\n CustomActionConfig,\n SchemaConfig,\n BulkDeleteActionConfig,\n DeleteActionConfig,\n CreateActionConfig,\n BaseSDK,\n} from '../../types';\nimport { IconElement } from '@wix/design-system';\n\nexport interface ResolvedAction {\n label: string;\n icon: IconElement;\n onClick: () => void;\n disabled?: boolean;\n hidden?: boolean;\n tooltip?: string;\n skin?: string;\n}\n\nexport interface BaseContextParams {\n schema: SchemaConfig;\n}\n\nexport interface ActionsSDK extends BaseSDK {\n getSchema: (collectionId: string) => SchemaConfig | undefined;\n collectionId: string; // TODO: Why collectionId is needed here? getSchema with internal collectionId is enough\n getOptimisticActions: (\n collectionId: string,\n ) => CollectionOptimisticActions<any, any>;\n}\n\nexport interface BaseActionParams<T = Record<string, any>> {\n sdk: ActionsSDK;\n actionParams: T;\n}\n\nexport interface ActionCellBaseParams extends BaseActionParams {\n actionParams: {\n item: any;\n index: number;\n api: ActionCellAPI<any, any>;\n };\n}\n\nexport interface BulkDeleteActionParams extends BaseActionParams {\n action: BulkDeleteActionConfig;\n actionParams: {\n selectedValues: any[];\n total: number;\n };\n}\n\nexport interface DeleteActionParams extends ActionCellBaseParams {\n action: DeleteActionConfig;\n}\n\nexport interface UpdateActionParams extends BaseActionParams {\n action: UpdateActionConfig;\n}\n\nexport interface CreateActionParams extends BaseActionParams {\n action: CreateActionConfig;\n}\n\nexport interface CustomActionParams<T> extends BaseActionParams<T> {\n action: CustomActionConfig;\n}\n\nexport interface ActionModalProps {\n modalParams: Record<string, any>;\n actionParams: Record<string, any>;\n sdk: ActionsSDK;\n}\n\nexport interface CustomActionModalProps extends ActionModalProps {\n modalParams: { id: string };\n}\n"],"mappings":"","ignoreList":[]}
|
package/dist/docs/action_cell.md
CHANGED
|
@@ -109,12 +109,12 @@ Custom actions execute JavaScript code that you define. These actions receive pa
|
|
|
109
109
|
|
|
110
110
|
2. Create your action handler in `downloadPetDetails.tsx` (note: the filename and function name MUST match your action id):
|
|
111
111
|
```typescript
|
|
112
|
-
import {
|
|
112
|
+
import { CustomActionCellSecondaryActionResolver } from '@wix/auto-patterns';
|
|
113
113
|
import { Download } from '@wix/wix-ui-icons-common';
|
|
114
114
|
import React from 'react';
|
|
115
115
|
|
|
116
116
|
// IMPORTANT: Function name MUST match the action id in your configuration
|
|
117
|
-
export const downloadPetDetails:
|
|
117
|
+
export const downloadPetDetails: CustomActionCellSecondaryActionResolver = (params) => {
|
|
118
118
|
const { actionParams, sdk } = params;
|
|
119
119
|
const { item } = actionParams;
|
|
120
120
|
|
|
@@ -190,7 +190,7 @@ Custom actions execute JavaScript code that you define. These actions receive pa
|
|
|
190
190
|
- The action `id` in the configuration MUST exactly match the function name exported from your actions folder
|
|
191
191
|
- The function name and file name should follow a consistent naming convention (e.g., camelCase)
|
|
192
192
|
- The implementation must be exported as a named export (not default export)
|
|
193
|
-
- The implementation must use
|
|
193
|
+
- The implementation must use either `CustomActionCellPrimaryActionResolver` or `CustomActionCellSecondaryActionResolver` type depending on your use case
|
|
194
194
|
|
|
195
195
|
#### Validation Rules for Custom Actions:
|
|
196
196
|
|
|
@@ -203,9 +203,10 @@ Custom actions execute JavaScript code that you define. These actions receive pa
|
|
|
203
203
|
- `label`: Text displayed for the action
|
|
204
204
|
- `icon`: An Icon component from "@wix/wix-ui-icons-common"
|
|
205
205
|
- `onClick`: Handler function for the action
|
|
206
|
+
- `hidden` (optional): Boolean to hide the action when true
|
|
206
207
|
|
|
207
208
|
3. The implementation must:
|
|
208
|
-
- Use the correct type: `
|
|
209
|
+
- Use the correct type: `CustomActionCellPrimaryActionResolver` for primary actions (with prefixIcon/suffixIcon) or `CustomActionCellSecondaryActionResolver` for secondary actions (with icon)
|
|
209
210
|
- Be exported as a named export
|
|
210
211
|
- Have a filename matching the function name
|
|
211
212
|
|
|
@@ -1510,12 +1510,12 @@ Custom actions execute JavaScript code that you define. These actions receive pa
|
|
|
1510
1510
|
|
|
1511
1511
|
2. Create your action handler in `downloadPetDetails.tsx` (note: the filename and function name MUST match your action id):
|
|
1512
1512
|
```typescript
|
|
1513
|
-
import {
|
|
1513
|
+
import { CustomActionCellSecondaryActionResolver } from '@wix/auto-patterns';
|
|
1514
1514
|
import { Download } from '@wix/wix-ui-icons-common';
|
|
1515
1515
|
import React from 'react';
|
|
1516
1516
|
|
|
1517
1517
|
// IMPORTANT: Function name MUST match the action id in your configuration
|
|
1518
|
-
export const downloadPetDetails:
|
|
1518
|
+
export const downloadPetDetails: CustomActionCellSecondaryActionResolver = (params) => {
|
|
1519
1519
|
const { actionParams, sdk } = params;
|
|
1520
1520
|
const { item } = actionParams;
|
|
1521
1521
|
|
|
@@ -1591,7 +1591,7 @@ Custom actions execute JavaScript code that you define. These actions receive pa
|
|
|
1591
1591
|
- The action `id` in the configuration MUST exactly match the function name exported from your actions folder
|
|
1592
1592
|
- The function name and file name should follow a consistent naming convention (e.g., camelCase)
|
|
1593
1593
|
- The implementation must be exported as a named export (not default export)
|
|
1594
|
-
- The implementation must use
|
|
1594
|
+
- The implementation must use either `CustomActionCellPrimaryActionResolver` or `CustomActionCellSecondaryActionResolver` type depending on your use case
|
|
1595
1595
|
|
|
1596
1596
|
#### Validation Rules for Custom Actions:
|
|
1597
1597
|
|
|
@@ -1604,9 +1604,10 @@ Custom actions execute JavaScript code that you define. These actions receive pa
|
|
|
1604
1604
|
- `label`: Text displayed for the action
|
|
1605
1605
|
- `icon`: An Icon component from "@wix/wix-ui-icons-common"
|
|
1606
1606
|
- `onClick`: Handler function for the action
|
|
1607
|
+
- `hidden` (optional): Boolean to hide the action when true
|
|
1607
1608
|
|
|
1608
1609
|
3. The implementation must:
|
|
1609
|
-
- Use the correct type: `
|
|
1610
|
+
- Use the correct type: `CustomActionCellPrimaryActionResolver` for primary actions (with prefixIcon/suffixIcon) or `CustomActionCellSecondaryActionResolver` for secondary actions (with icon)
|
|
1610
1611
|
- Be exported as a named export
|
|
1611
1612
|
- Have a filename matching the function name
|
|
1612
1613
|
|
|
@@ -1842,6 +1843,7 @@ Custom bulk actions execute JavaScript code that you define for bulk operations.
|
|
|
1842
1843
|
- `label`: Text displayed for the action
|
|
1843
1844
|
- `icon`: An Icon component from "@wix/wix-ui-icons-common"
|
|
1844
1845
|
- `onClick`: Handler function for the bulk action
|
|
1846
|
+
- `hidden` (optional): Boolean to hide the action when true
|
|
1845
1847
|
|
|
1846
1848
|
3. The implementation must:
|
|
1847
1849
|
- Use the correct type: `CustomBulkActionsActionResolver`
|
|
@@ -178,6 +178,7 @@ Custom bulk actions execute JavaScript code that you define for bulk operations.
|
|
|
178
178
|
- `label`: Text displayed for the action
|
|
179
179
|
- `icon`: An Icon component from "@wix/wix-ui-icons-common"
|
|
180
180
|
- `onClick`: Handler function for the bulk action
|
|
181
|
+
- `hidden` (optional): Boolean to hide the action when true
|
|
181
182
|
|
|
182
183
|
3. The implementation must:
|
|
183
184
|
- Use the correct type: `CustomBulkActionsActionResolver`
|
|
@@ -71,6 +71,7 @@ export const ViewModeEntityPage = _ref => {
|
|
|
71
71
|
return /*#__PURE__*/React.createElement(Page, {
|
|
72
72
|
dataHook: "view-mode-entity-page"
|
|
73
73
|
}, /*#__PURE__*/React.createElement(Page.Header, {
|
|
74
|
+
dataHook: "view-mode-entity-page-header",
|
|
74
75
|
title: /*#__PURE__*/React.createElement(Heading, {
|
|
75
76
|
size: "extraLarge"
|
|
76
77
|
}, title),
|
|
@@ -80,6 +81,7 @@ export const ViewModeEntityPage = _ref => {
|
|
|
80
81
|
actionsBar: /*#__PURE__*/React.createElement(Box, {
|
|
81
82
|
gap: "SP2"
|
|
82
83
|
}, resolvedMoreActions.length > 0 ? /*#__PURE__*/React.createElement(MoreActions, {
|
|
84
|
+
dataHook: "view-mode-entity-page-more-actions",
|
|
83
85
|
items: resolvedMoreActions
|
|
84
86
|
}) : undefined, actions)
|
|
85
87
|
}), /*#__PURE__*/React.createElement(Page.Content, null, /*#__PURE__*/React.createElement(Layout, null, /*#__PURE__*/React.createElement(Cell, {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["React","useEffect","useMemo","useState","Box","Cell","Heading","Layout","Page","RenderViewLayoutCard","useParams","useSchema","useNavigation","MoreActions","useEntityPageActions","useEntityPageMoreActions","useActionsSDK","useNavigateEditEntityAction","ViewModeEntityPage","_ref","_configuration$subtit","_pageLayout$main","_pageLayout$sidebar","configuration","route","params","entityId","id","schema","layout","pageLayout","navigateToCollectionPage","entity","setEntity","undefined","isMounted","fetchEntity","fetchedEntity","actions","get","title","text","displayField","subtitle","sdk","collectionId","entityPageActions","moreActions","displayName","resolvedMoreActions","createElement","dataHook","Header","size","showBackButton","onBackClicked","parentPageId","actionsBar","gap","length","items","Content","span","sidebar","direction","main","map","layoutIndex","key","sectionId","cardIndex"],"sources":["../../../../src/components/AutoPatternsEntityPage/ViewModeEntityPage.tsx"],"sourcesContent":["import React, { useEffect, useMemo, useState } from 'react';\nimport { ViewEntityPageConfig } from '../../types';\nimport { Box, Cell, Heading, Layout, Page } from '@wix/design-system';\nimport { RenderViewLayoutCard } from './ViewEntityPage/RenderViewLayoutCard';\nimport { useParams } from 'react-router-dom';\nimport { useSchema } from '../../providers';\nimport { useNavigation } from '../../hooks/useNavigationUtils';\nimport { MoreActions } from '@wix/patterns';\nimport { useEntityPageActions } from '../../hooks/useEntityPageActions';\nimport { useEntityPageMoreActions } from '../../hooks/useEntityPageMoreActions';\nimport { useActionsSDK } from '../../hooks/useActionsSDK';\nimport { useNavigateEditEntityAction } from '../../hooks/useNavigateEditEntityAction';\n\ninterface ViewModeEntityPageProps {\n configuration: ViewEntityPageConfig;\n}\n\n// TODO: temp solution until we have a proper view mode entity page\nexport const ViewModeEntityPage: React.FC<ViewModeEntityPageProps> = ({\n configuration,\n}) => {\n const { route } = configuration;\n const params = useParams();\n const entityId = params[route.params.id];\n const schema = useSchema();\n const { layout: pageLayout } = configuration;\n const { navigateToCollectionPage } = useNavigation();\n\n const [entity, setEntity] = useState<any>(undefined);\n\n useEffect(() => {\n let isMounted = true;\n const fetchEntity = async () => {\n if (!entityId) {\n setEntity(undefined);\n return;\n }\n const fetchedEntity = await schema.actions.get(entityId);\n if (isMounted) {\n setEntity(fetchedEntity);\n }\n };\n fetchEntity();\n return () => {\n isMounted = false;\n };\n }, [entityId, schema]);\n\n const title = useMemo(() => {\n if (configuration.title) {\n return configuration.title.text;\n } else {\n return entity?.[schema.displayField] ?? 'View Item';\n }\n }, [configuration.title, entity, schema.displayField]);\n\n const subtitle = configuration.subtitle?.text;\n\n const sdk = useActionsSDK({\n collectionId: configuration.collectionId,\n });\n\n const actions = useEntityPageActions({\n entityPageActions: configuration.actions,\n entity,\n sdk,\n });\n\n // add OOTB navigate to edit action\n const moreActions = useNavigateEditEntityAction({\n displayName: entity?.[schema.displayField],\n configuration,\n });\n\n const resolvedMoreActions = useEntityPageMoreActions(\n moreActions,\n entity,\n sdk,\n );\n\n return (\n <Page dataHook=\"view-mode-entity-page\">\n <Page.Header\n title={<Heading size=\"extraLarge\">{title}</Heading>}\n subtitle={subtitle}\n showBackButton\n onBackClicked={() =>\n navigateToCollectionPage(configuration.parentPageId!)\n }\n actionsBar={\n <Box gap=\"SP2\">\n {resolvedMoreActions.length > 0 ? (\n <MoreActions
|
|
1
|
+
{"version":3,"names":["React","useEffect","useMemo","useState","Box","Cell","Heading","Layout","Page","RenderViewLayoutCard","useParams","useSchema","useNavigation","MoreActions","useEntityPageActions","useEntityPageMoreActions","useActionsSDK","useNavigateEditEntityAction","ViewModeEntityPage","_ref","_configuration$subtit","_pageLayout$main","_pageLayout$sidebar","configuration","route","params","entityId","id","schema","layout","pageLayout","navigateToCollectionPage","entity","setEntity","undefined","isMounted","fetchEntity","fetchedEntity","actions","get","title","text","displayField","subtitle","sdk","collectionId","entityPageActions","moreActions","displayName","resolvedMoreActions","createElement","dataHook","Header","size","showBackButton","onBackClicked","parentPageId","actionsBar","gap","length","items","Content","span","sidebar","direction","main","map","layoutIndex","key","sectionId","cardIndex"],"sources":["../../../../src/components/AutoPatternsEntityPage/ViewModeEntityPage.tsx"],"sourcesContent":["import React, { useEffect, useMemo, useState } from 'react';\nimport { ViewEntityPageConfig } from '../../types';\nimport { Box, Cell, Heading, Layout, Page } from '@wix/design-system';\nimport { RenderViewLayoutCard } from './ViewEntityPage/RenderViewLayoutCard';\nimport { useParams } from 'react-router-dom';\nimport { useSchema } from '../../providers';\nimport { useNavigation } from '../../hooks/useNavigationUtils';\nimport { MoreActions } from '@wix/patterns';\nimport { useEntityPageActions } from '../../hooks/useEntityPageActions';\nimport { useEntityPageMoreActions } from '../../hooks/useEntityPageMoreActions';\nimport { useActionsSDK } from '../../hooks/useActionsSDK';\nimport { useNavigateEditEntityAction } from '../../hooks/useNavigateEditEntityAction';\n\ninterface ViewModeEntityPageProps {\n configuration: ViewEntityPageConfig;\n}\n\n// TODO: temp solution until we have a proper view mode entity page\nexport const ViewModeEntityPage: React.FC<ViewModeEntityPageProps> = ({\n configuration,\n}) => {\n const { route } = configuration;\n const params = useParams();\n const entityId = params[route.params.id];\n const schema = useSchema();\n const { layout: pageLayout } = configuration;\n const { navigateToCollectionPage } = useNavigation();\n\n const [entity, setEntity] = useState<any>(undefined);\n\n useEffect(() => {\n let isMounted = true;\n const fetchEntity = async () => {\n if (!entityId) {\n setEntity(undefined);\n return;\n }\n const fetchedEntity = await schema.actions.get(entityId);\n if (isMounted) {\n setEntity(fetchedEntity);\n }\n };\n fetchEntity();\n return () => {\n isMounted = false;\n };\n }, [entityId, schema]);\n\n const title = useMemo(() => {\n if (configuration.title) {\n return configuration.title.text;\n } else {\n return entity?.[schema.displayField] ?? 'View Item';\n }\n }, [configuration.title, entity, schema.displayField]);\n\n const subtitle = configuration.subtitle?.text;\n\n const sdk = useActionsSDK({\n collectionId: configuration.collectionId,\n });\n\n const actions = useEntityPageActions({\n entityPageActions: configuration.actions,\n entity,\n sdk,\n });\n\n // add OOTB navigate to edit action\n const moreActions = useNavigateEditEntityAction({\n displayName: entity?.[schema.displayField],\n configuration,\n });\n\n const resolvedMoreActions = useEntityPageMoreActions(\n moreActions,\n entity,\n sdk,\n );\n\n return (\n <Page dataHook=\"view-mode-entity-page\">\n <Page.Header\n dataHook=\"view-mode-entity-page-header\"\n title={<Heading size=\"extraLarge\">{title}</Heading>}\n subtitle={subtitle}\n showBackButton\n onBackClicked={() =>\n navigateToCollectionPage(configuration.parentPageId!)\n }\n actionsBar={\n <Box gap=\"SP2\">\n {resolvedMoreActions.length > 0 ? (\n <MoreActions\n dataHook=\"view-mode-entity-page-more-actions\"\n items={resolvedMoreActions}\n />\n ) : undefined}\n {actions}\n </Box>\n }\n />\n <Page.Content>\n <Layout>\n <Cell span={pageLayout?.sidebar ? 8 : 12}>\n <Box direction=\"vertical\" gap=\"SP4\">\n {pageLayout?.main?.map((layout, layoutIndex) => (\n <RenderViewLayoutCard\n key={`main-section-card-${layoutIndex}`}\n entity={entity}\n layout={layout}\n sectionId=\"main\"\n cardIndex={layoutIndex}\n />\n ))}\n </Box>\n </Cell>\n {pageLayout?.sidebar ? (\n <Cell span={4}>\n <Box direction=\"vertical\" gap=\"SP4\">\n {pageLayout.sidebar?.map((layout, layoutIndex) => (\n <RenderViewLayoutCard\n key={`sidebar-section-card-${layoutIndex}`}\n entity={entity}\n layout={layout}\n sectionId=\"sidebar\"\n cardIndex={layoutIndex}\n />\n ))}\n </Box>\n </Cell>\n ) : null}\n </Layout>\n </Page.Content>\n </Page>\n );\n};\n"],"mappings":"AAAA,OAAOA,KAAK,IAAIC,SAAS,EAAEC,OAAO,EAAEC,QAAQ,QAAQ,OAAO;AAE3D,SAASC,GAAG,EAAEC,IAAI,EAAEC,OAAO,EAAEC,MAAM,EAAEC,IAAI,QAAQ,oBAAoB;AACrE,SAASC,oBAAoB,QAAQ,uCAAuC;AAC5E,SAASC,SAAS,QAAQ,kBAAkB;AAC5C,SAASC,SAAS,QAAQ,iBAAiB;AAC3C,SAASC,aAAa,QAAQ,gCAAgC;AAC9D,SAASC,WAAW,QAAQ,eAAe;AAC3C,SAASC,oBAAoB,QAAQ,kCAAkC;AACvE,SAASC,wBAAwB,QAAQ,sCAAsC;AAC/E,SAASC,aAAa,QAAQ,2BAA2B;AACzD,SAASC,2BAA2B,QAAQ,yCAAyC;AAMrF;AACA,OAAO,MAAMC,kBAAqD,GAAGC,IAAA,IAE/D;EAAA,IAAAC,qBAAA,EAAAC,gBAAA,EAAAC,mBAAA;EAAA,IAFgE;IACpEC;EACF,CAAC,GAAAJ,IAAA;EACC,MAAM;IAAEK;EAAM,CAAC,GAAGD,aAAa;EAC/B,MAAME,MAAM,GAAGf,SAAS,CAAC,CAAC;EAC1B,MAAMgB,QAAQ,GAAGD,MAAM,CAACD,KAAK,CAACC,MAAM,CAACE,EAAE,CAAC;EACxC,MAAMC,MAAM,GAAGjB,SAAS,CAAC,CAAC;EAC1B,MAAM;IAAEkB,MAAM,EAAEC;EAAW,CAAC,GAAGP,aAAa;EAC5C,MAAM;IAAEQ;EAAyB,CAAC,GAAGnB,aAAa,CAAC,CAAC;EAEpD,MAAM,CAACoB,MAAM,EAAEC,SAAS,CAAC,GAAG9B,QAAQ,CAAM+B,SAAS,CAAC;EAEpDjC,SAAS,CAAC,MAAM;IACd,IAAIkC,SAAS,GAAG,IAAI;IACpB,MAAMC,WAAW,GAAG,MAAAA,CAAA,KAAY;MAC9B,IAAI,CAACV,QAAQ,EAAE;QACbO,SAAS,CAACC,SAAS,CAAC;QACpB;MACF;MACA,MAAMG,aAAa,GAAG,MAAMT,MAAM,CAACU,OAAO,CAACC,GAAG,CAACb,QAAQ,CAAC;MACxD,IAAIS,SAAS,EAAE;QACbF,SAAS,CAACI,aAAa,CAAC;MAC1B;IACF,CAAC;IACDD,WAAW,CAAC,CAAC;IACb,OAAO,MAAM;MACXD,SAAS,GAAG,KAAK;IACnB,CAAC;EACH,CAAC,EAAE,CAACT,QAAQ,EAAEE,MAAM,CAAC,CAAC;EAEtB,MAAMY,KAAK,GAAGtC,OAAO,CAAC,MAAM;IAC1B,IAAIqB,aAAa,CAACiB,KAAK,EAAE;MACvB,OAAOjB,aAAa,CAACiB,KAAK,CAACC,IAAI;IACjC,CAAC,MAAM;MACL,OAAO,CAAAT,MAAM,oBAANA,MAAM,CAAGJ,MAAM,CAACc,YAAY,CAAC,KAAI,WAAW;IACrD;EACF,CAAC,EAAE,CAACnB,aAAa,CAACiB,KAAK,EAAER,MAAM,EAAEJ,MAAM,CAACc,YAAY,CAAC,CAAC;EAEtD,MAAMC,QAAQ,IAAAvB,qBAAA,GAAGG,aAAa,CAACoB,QAAQ,qBAAtBvB,qBAAA,CAAwBqB,IAAI;EAE7C,MAAMG,GAAG,GAAG5B,aAAa,CAAC;IACxB6B,YAAY,EAAEtB,aAAa,CAACsB;EAC9B,CAAC,CAAC;EAEF,MAAMP,OAAO,GAAGxB,oBAAoB,CAAC;IACnCgC,iBAAiB,EAAEvB,aAAa,CAACe,OAAO;IACxCN,MAAM;IACNY;EACF,CAAC,CAAC;;EAEF;EACA,MAAMG,WAAW,GAAG9B,2BAA2B,CAAC;IAC9C+B,WAAW,EAAEhB,MAAM,oBAANA,MAAM,CAAGJ,MAAM,CAACc,YAAY,CAAC;IAC1CnB;EACF,CAAC,CAAC;EAEF,MAAM0B,mBAAmB,GAAGlC,wBAAwB,CAClDgC,WAAW,EACXf,MAAM,EACNY,GACF,CAAC;EAED,oBACE5C,KAAA,CAAAkD,aAAA,CAAC1C,IAAI;IAAC2C,QAAQ,EAAC;EAAuB,gBACpCnD,KAAA,CAAAkD,aAAA,CAAC1C,IAAI,CAAC4C,MAAM;IACVD,QAAQ,EAAC,8BAA8B;IACvCX,KAAK,eAAExC,KAAA,CAAAkD,aAAA,CAAC5C,OAAO;MAAC+C,IAAI,EAAC;IAAY,GAAEb,KAAe,CAAE;IACpDG,QAAQ,EAAEA,QAAS;IACnBW,cAAc;IACdC,aAAa,EAAEA,CAAA,KACbxB,wBAAwB,CAACR,aAAa,CAACiC,YAAa,CACrD;IACDC,UAAU,eACRzD,KAAA,CAAAkD,aAAA,CAAC9C,GAAG;MAACsD,GAAG,EAAC;IAAK,GACXT,mBAAmB,CAACU,MAAM,GAAG,CAAC,gBAC7B3D,KAAA,CAAAkD,aAAA,CAACrC,WAAW;MACVsC,QAAQ,EAAC,oCAAoC;MAC7CS,KAAK,EAAEX;IAAoB,CAC5B,CAAC,GACAf,SAAS,EACZI,OACE;EACN,CACF,CAAC,eACFtC,KAAA,CAAAkD,aAAA,CAAC1C,IAAI,CAACqD,OAAO,qBACX7D,KAAA,CAAAkD,aAAA,CAAC3C,MAAM,qBACLP,KAAA,CAAAkD,aAAA,CAAC7C,IAAI;IAACyD,IAAI,EAAEhC,UAAU,YAAVA,UAAU,CAAEiC,OAAO,GAAG,CAAC,GAAG;EAAG,gBACvC/D,KAAA,CAAAkD,aAAA,CAAC9C,GAAG;IAAC4D,SAAS,EAAC,UAAU;IAACN,GAAG,EAAC;EAAK,GAChC5B,UAAU,aAAAT,gBAAA,GAAVS,UAAU,CAAEmC,IAAI,qBAAhB5C,gBAAA,CAAkB6C,GAAG,CAAC,CAACrC,MAAM,EAAEsC,WAAW,kBACzCnE,KAAA,CAAAkD,aAAA,CAACzC,oBAAoB;IACnB2D,GAAG,EAAE,qBAAqBD,WAAW,EAAG;IACxCnC,MAAM,EAAEA,MAAO;IACfH,MAAM,EAAEA,MAAO;IACfwC,SAAS,EAAC,MAAM;IAChBC,SAAS,EAAEH;EAAY,CACxB,CACF,CACE,CACD,CAAC,EACNrC,UAAU,YAAVA,UAAU,CAAEiC,OAAO,gBAClB/D,KAAA,CAAAkD,aAAA,CAAC7C,IAAI;IAACyD,IAAI,EAAE;EAAE,gBACZ9D,KAAA,CAAAkD,aAAA,CAAC9C,GAAG;IAAC4D,SAAS,EAAC,UAAU;IAACN,GAAG,EAAC;EAAK,IAAApC,mBAAA,GAChCQ,UAAU,CAACiC,OAAO,qBAAlBzC,mBAAA,CAAoB4C,GAAG,CAAC,CAACrC,MAAM,EAAEsC,WAAW,kBAC3CnE,KAAA,CAAAkD,aAAA,CAACzC,oBAAoB;IACnB2D,GAAG,EAAE,wBAAwBD,WAAW,EAAG;IAC3CnC,MAAM,EAAEA,MAAO;IACfH,MAAM,EAAEA,MAAO;IACfwC,SAAS,EAAC,SAAS;IACnBC,SAAS,EAAEH;EAAY,CACxB,CACF,CACE,CACD,CAAC,GACL,IACE,CACI,CACV,CAAC;AAEX,CAAC","ignoreList":[]}
|
|
@@ -1,5 +1,6 @@
|
|
|
1
1
|
import { collections, items } from '@wix/data';
|
|
2
2
|
import { fetchCmsData } from './fetchCmsData';
|
|
3
|
+
import { errorHandler } from '@wix/essentials';
|
|
3
4
|
export const CmsFieldTypeToPatternsFieldType = {
|
|
4
5
|
[collections.Type.TEXT]: 'SHORT_TEXT',
|
|
5
6
|
[collections.Type.DATE]: 'DATE',
|
|
@@ -17,7 +18,7 @@ export const CmsFieldTypeToPatternsFieldType = {
|
|
|
17
18
|
[collections.Type.IMAGE]: 'IMAGE'
|
|
18
19
|
};
|
|
19
20
|
export async function fetchCmsSchema(collectionId) {
|
|
20
|
-
const schema = await collections.getDataCollection(collectionId);
|
|
21
|
+
const schema = await errorHandler.withErrorHandler(async () => collections.getDataCollection(collectionId), {});
|
|
21
22
|
const transformedFields = schema.fields.reduce((acc, field) => {
|
|
22
23
|
var _field$capabilities, _field$capabilities2, _field$typeMetadata;
|
|
23
24
|
if (!field.key) {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["collections","items","fetchCmsData","CmsFieldTypeToPatternsFieldType","Type","TEXT","DATE","DATETIME","NUMBER","BOOLEAN","URL","ADDRESS","OBJECT","RICH_TEXT","RICH_CONTENT","ARRAY","ARRAY_STRING","REFERENCE","IMAGE","fetchCmsSchema","collectionId","schema","getDataCollection","transformedFields","fields","reduce","acc","field","_field$capabilities","_field$capabilities2","_field$typeMetadata","key","fieldType","type","baseField","id","displayName","validation","numberRange","min","undefined","max","stringLengthRange","minLength","maxLength","required","capabilities","supportedQueryOperators","queryOperators","sortable","typeMetadata","reference","referencedCollectionId","referenceField","referenceMetadata","nonReferenceType","nonReferenceField","schemaConfig","displayField","idField","actions","get","entityId","create","entity","insert","update","delete","remove","bulkDelete","entityIds","bulkRemove","find","query","options"],"sources":["../../../../src/dataSourceAdapters/cms/cmsAdapter.ts"],"sourcesContent":["import { Field, SchemaConfig, PatternsFieldType } from '../../types';\nimport { collections, items } from '@wix/data';\nimport { fetchCmsData } from './fetchCmsData';\n\nexport const CmsFieldTypeToPatternsFieldType: Partial<\n Record<collections.Type, PatternsFieldType>\n> = {\n [collections.Type.TEXT]: 'SHORT_TEXT',\n [collections.Type.DATE]: 'DATE',\n [collections.Type.DATETIME]: 'DATETIME',\n [collections.Type.NUMBER]: 'NUMBER',\n [collections.Type.BOOLEAN]: 'BOOLEAN',\n [collections.Type.URL]: 'URL',\n [collections.Type.ADDRESS]: 'SHORT_TEXT',\n [collections.Type.OBJECT]: 'LONG_TEXT',\n [collections.Type.RICH_TEXT]: 'LONG_TEXT',\n [collections.Type.RICH_CONTENT]: 'SHORT_TEXT',\n [collections.Type.ARRAY]: 'ARRAY',\n [collections.Type.ARRAY_STRING]: 'ARRAY',\n [collections.Type.REFERENCE]: 'REFERENCE',\n [collections.Type.IMAGE]: 'IMAGE',\n};\n\nexport async function fetchCmsSchema(\n collectionId: string,\n): Promise<SchemaConfig> {\n const schema = await collections.getDataCollection(collectionId)
|
|
1
|
+
{"version":3,"names":["collections","items","fetchCmsData","errorHandler","CmsFieldTypeToPatternsFieldType","Type","TEXT","DATE","DATETIME","NUMBER","BOOLEAN","URL","ADDRESS","OBJECT","RICH_TEXT","RICH_CONTENT","ARRAY","ARRAY_STRING","REFERENCE","IMAGE","fetchCmsSchema","collectionId","schema","withErrorHandler","getDataCollection","transformedFields","fields","reduce","acc","field","_field$capabilities","_field$capabilities2","_field$typeMetadata","key","fieldType","type","baseField","id","displayName","validation","numberRange","min","undefined","max","stringLengthRange","minLength","maxLength","required","capabilities","supportedQueryOperators","queryOperators","sortable","typeMetadata","reference","referencedCollectionId","referenceField","referenceMetadata","nonReferenceType","nonReferenceField","schemaConfig","displayField","idField","actions","get","entityId","create","entity","insert","update","delete","remove","bulkDelete","entityIds","bulkRemove","find","query","options"],"sources":["../../../../src/dataSourceAdapters/cms/cmsAdapter.ts"],"sourcesContent":["import { Field, SchemaConfig, PatternsFieldType } from '../../types';\nimport { collections, items } from '@wix/data';\nimport { fetchCmsData } from './fetchCmsData';\nimport { errorHandler } from '@wix/essentials';\n\nexport const CmsFieldTypeToPatternsFieldType: Partial<\n Record<collections.Type, PatternsFieldType>\n> = {\n [collections.Type.TEXT]: 'SHORT_TEXT',\n [collections.Type.DATE]: 'DATE',\n [collections.Type.DATETIME]: 'DATETIME',\n [collections.Type.NUMBER]: 'NUMBER',\n [collections.Type.BOOLEAN]: 'BOOLEAN',\n [collections.Type.URL]: 'URL',\n [collections.Type.ADDRESS]: 'SHORT_TEXT',\n [collections.Type.OBJECT]: 'LONG_TEXT',\n [collections.Type.RICH_TEXT]: 'LONG_TEXT',\n [collections.Type.RICH_CONTENT]: 'SHORT_TEXT',\n [collections.Type.ARRAY]: 'ARRAY',\n [collections.Type.ARRAY_STRING]: 'ARRAY',\n [collections.Type.REFERENCE]: 'REFERENCE',\n [collections.Type.IMAGE]: 'IMAGE',\n};\n\nexport async function fetchCmsSchema(\n collectionId: string,\n): Promise<SchemaConfig> {\n const schema = await errorHandler.withErrorHandler(\n async () => collections.getDataCollection(collectionId),\n {},\n );\n const transformedFields = schema.fields.reduce<Record<string, Field>>(\n (acc, field) => {\n if (!field.key) {\n return acc;\n }\n\n const fieldType = field.type\n ? CmsFieldTypeToPatternsFieldType[field.type] || 'SHORT_TEXT'\n : 'SHORT_TEXT';\n const baseField = {\n id: field.key,\n displayName: field.displayName || '',\n validation: {\n numberRange: field.numberRange\n ? {\n min: field.numberRange.min ?? undefined,\n max: field.numberRange.max ?? undefined,\n }\n : undefined,\n stringLengthRange: field.stringLengthRange\n ? {\n minLength: field.stringLengthRange.minLength ?? undefined,\n maxLength: field.stringLengthRange.maxLength ?? undefined,\n }\n : undefined,\n required: field.required ?? false,\n },\n capabilities: {\n supportedQueryOperators: field.capabilities?.queryOperators || [],\n sortable: field.capabilities?.sortable || false,\n },\n };\n\n if (\n fieldType === 'REFERENCE' &&\n field.typeMetadata?.reference?.referencedCollectionId\n ) {\n const referenceField: Field = {\n ...baseField,\n type: 'REFERENCE',\n referenceMetadata: {\n referencedCollectionId:\n field.typeMetadata.reference.referencedCollectionId,\n },\n };\n acc[field.key] = referenceField;\n } else {\n const nonReferenceType =\n fieldType === 'REFERENCE' ? 'SHORT_TEXT' : fieldType;\n const nonReferenceField: Field = {\n ...baseField,\n type: nonReferenceType,\n };\n acc[field.key] = nonReferenceField;\n }\n\n return acc;\n },\n {},\n );\n\n const schemaConfig: SchemaConfig = {\n id: collectionId,\n displayField: schema.displayField ?? '_id',\n idField: '_id',\n fields: transformedFields,\n actions: {\n get: (entityId: string) => {\n return items.get(collectionId, entityId);\n },\n create: (entity) => {\n return items.insert(collectionId, entity);\n },\n update: (entity) => {\n return items.update(collectionId, entity);\n },\n delete: (entityId) => {\n return items.remove(collectionId, entityId);\n },\n bulkDelete: (entityIds) => {\n return items.bulkRemove(collectionId, entityIds);\n },\n find: async (\n query,\n options: {\n searchableFieldIds?: string[];\n filterFieldMapping?: Record<string, { fieldId: string }>;\n } = {},\n ) => {\n return fetchCmsData(collectionId, query, transformedFields, options);\n },\n },\n };\n\n return schemaConfig;\n}\n"],"mappings":"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","ignoreList":[]}
|
|
@@ -55,13 +55,14 @@ export const useActionCell = _ref => {
|
|
|
55
55
|
default:
|
|
56
56
|
return null;
|
|
57
57
|
}
|
|
58
|
-
if (!actionToResolve) {
|
|
58
|
+
if (!actionToResolve || actionToResolve.hidden) {
|
|
59
59
|
return null;
|
|
60
60
|
}
|
|
61
61
|
const resolvedAction = resolveAction(actionConfig, actionToResolve);
|
|
62
62
|
const {
|
|
63
63
|
label,
|
|
64
64
|
tooltip,
|
|
65
|
+
hidden,
|
|
65
66
|
...resolvedActionProps
|
|
66
67
|
} = resolvedAction;
|
|
67
68
|
return {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["useCallback","useActionsSDK","updateAction","customAction","resolveAction","deleteAction","cleanupActionsWithDividers","actions","inlineCount","clean","a","filter","x","i","ar","_ar","divider","length","slice","useActionCell","_ref","config","collectionId","sdk","buildCellActions","item","index","api","_config$primaryAction","_config$primaryAction2","_config$secondaryActi","_config$secondaryActi2","_config$secondaryActi3","_config$secondaryActi4","buildAction","actionConfig","type","actionToResolve","baseParams","actionParams","action","resolvedAction","label","tooltip","resolvedActionProps","text","disabledDescription","primaryAction","undefined","primaryActionProps","alwaysVisible","visibility","rawSecondaryActions","secondaryActions","items","map","Boolean","numOfVisibleSecondaryActions","alwaysShowSecondaryActions","inlineAlwaysVisible"],"sources":["../../../src/hooks/useActionCell.ts"],"sourcesContent":["import { useCallback } from 'react';\nimport {\n ActionCellConfig,\n ActionCellItemConfig,\n ResolvedAction,\n} from '../types';\nimport { useActionsSDK } from './useActionsSDK';\nimport {\n updateAction,\n customAction,\n resolveAction,\n deleteAction,\n} from '../utils/actions';\nimport { DividerActionConfig } from '../types/actions/base';\n\nexport interface useActionCellParams {\n config?: ActionCellConfig;\n collectionId: string;\n}\n\nconst cleanupActionsWithDividers = (\n actions: any[],\n inlineCount?: number,\n): any[] => {\n const clean = (a: any[]) =>\n a.filter(\n (x, i, ar) =>\n x?.divider !== true ||\n (i > 0 && i < ar.length - 1 && ar[i - 1]?.divider !== true),\n );\n return !actions?.length || !inlineCount || inlineCount >= actions.length\n ? clean(actions || [])\n : [\n ...clean(actions.slice(0, inlineCount)),\n ...clean(actions.slice(inlineCount)),\n ];\n};\n\nexport const useActionCell = ({\n config,\n collectionId,\n}: useActionCellParams) => {\n const sdk = useActionsSDK({\n collectionId,\n });\n\n const buildCellActions = useCallback(\n (item, index, api) => {\n const buildAction = (\n actionConfig: ActionCellItemConfig | DividerActionConfig,\n ) => {\n if (actionConfig.type === 'divider') {\n return { divider: true };\n }\n\n let actionToResolve: Partial<ResolvedAction> | null = null;\n\n const baseParams = {\n actionParams: { item, index, api },\n sdk,\n };\n\n switch (actionConfig.type) {\n case 'update':\n actionToResolve = updateAction({\n action: actionConfig,\n ...baseParams,\n });\n break;\n\n case 'delete':\n actionToResolve = deleteAction({\n action: actionConfig,\n ...baseParams,\n });\n break;\n\n case 'custom':\n actionToResolve = customAction({\n action: actionConfig,\n ...baseParams,\n });\n break;\n\n default:\n return null;\n }\n\n if (!actionToResolve) {\n return null;\n }\n\n const resolvedAction = resolveAction(actionConfig, actionToResolve);\n const { label, tooltip, ...resolvedActionProps }
|
|
1
|
+
{"version":3,"names":["useCallback","useActionsSDK","updateAction","customAction","resolveAction","deleteAction","cleanupActionsWithDividers","actions","inlineCount","clean","a","filter","x","i","ar","_ar","divider","length","slice","useActionCell","_ref","config","collectionId","sdk","buildCellActions","item","index","api","_config$primaryAction","_config$primaryAction2","_config$secondaryActi","_config$secondaryActi2","_config$secondaryActi3","_config$secondaryActi4","buildAction","actionConfig","type","actionToResolve","baseParams","actionParams","action","hidden","resolvedAction","label","tooltip","resolvedActionProps","text","disabledDescription","primaryAction","undefined","primaryActionProps","alwaysVisible","visibility","rawSecondaryActions","secondaryActions","items","map","Boolean","numOfVisibleSecondaryActions","alwaysShowSecondaryActions","inlineAlwaysVisible"],"sources":["../../../src/hooks/useActionCell.ts"],"sourcesContent":["import { useCallback } from 'react';\nimport {\n ActionCellConfig,\n ActionCellItemConfig,\n ResolvedAction,\n} from '../types';\nimport { useActionsSDK } from './useActionsSDK';\nimport {\n updateAction,\n customAction,\n resolveAction,\n deleteAction,\n} from '../utils/actions';\nimport { DividerActionConfig } from '../types/actions/base';\n\nexport interface useActionCellParams {\n config?: ActionCellConfig;\n collectionId: string;\n}\n\nconst cleanupActionsWithDividers = (\n actions: any[],\n inlineCount?: number,\n): any[] => {\n const clean = (a: any[]) =>\n a.filter(\n (x, i, ar) =>\n x?.divider !== true ||\n (i > 0 && i < ar.length - 1 && ar[i - 1]?.divider !== true),\n );\n return !actions?.length || !inlineCount || inlineCount >= actions.length\n ? clean(actions || [])\n : [\n ...clean(actions.slice(0, inlineCount)),\n ...clean(actions.slice(inlineCount)),\n ];\n};\n\nexport const useActionCell = ({\n config,\n collectionId,\n}: useActionCellParams) => {\n const sdk = useActionsSDK({\n collectionId,\n });\n\n const buildCellActions = useCallback(\n (item, index, api) => {\n const buildAction = (\n actionConfig: ActionCellItemConfig | DividerActionConfig,\n ) => {\n if (actionConfig.type === 'divider') {\n return { divider: true };\n }\n\n let actionToResolve: Partial<ResolvedAction> | null = null;\n\n const baseParams = {\n actionParams: { item, index, api },\n sdk,\n };\n\n switch (actionConfig.type) {\n case 'update':\n actionToResolve = updateAction({\n action: actionConfig,\n ...baseParams,\n });\n break;\n\n case 'delete':\n actionToResolve = deleteAction({\n action: actionConfig,\n ...baseParams,\n });\n break;\n\n case 'custom':\n actionToResolve = customAction({\n action: actionConfig,\n ...baseParams,\n });\n break;\n\n default:\n return null;\n }\n\n if (!actionToResolve || actionToResolve.hidden) {\n return null;\n }\n\n const resolvedAction = resolveAction(actionConfig, actionToResolve);\n\n const { label, tooltip, hidden, ...resolvedActionProps } =\n resolvedAction;\n\n return {\n ...resolvedActionProps,\n text: resolvedAction.label,\n disabledDescription: resolvedAction.tooltip,\n };\n };\n\n const primaryAction = config?.primaryAction?.item\n ? buildAction(config.primaryAction.item)\n : undefined;\n\n const primaryActionProps = {\n ...(config?.primaryAction?.alwaysVisible\n ? { visibility: 'always' }\n : {}),\n };\n\n const rawSecondaryActions = config?.secondaryActions?.items.length\n ? config.secondaryActions.items.map(buildAction).filter(Boolean)\n : [];\n\n // Process secondary actions with inline count consideration\n const secondaryActions = cleanupActionsWithDividers(\n rawSecondaryActions,\n config?.secondaryActions?.inlineCount,\n );\n\n const numOfVisibleSecondaryActions =\n config?.secondaryActions?.inlineCount;\n const alwaysShowSecondaryActions =\n config?.secondaryActions?.inlineAlwaysVisible;\n\n if (!primaryAction && !secondaryActions.length) {\n return {};\n }\n\n return {\n ...(primaryAction\n ? {\n primaryAction: {\n ...primaryAction,\n ...primaryActionProps,\n },\n }\n : { primaryAction: undefined }),\n ...(secondaryActions.length && { secondaryActions }),\n numOfVisibleSecondaryActions,\n alwaysShowSecondaryActions,\n };\n },\n [config, sdk],\n );\n\n return buildCellActions;\n};\n"],"mappings":"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","ignoreList":[]}
|
|
@@ -33,12 +33,13 @@ export const useBulkActionToolbar = _ref => {
|
|
|
33
33
|
default:
|
|
34
34
|
return null;
|
|
35
35
|
}
|
|
36
|
-
if (!actionToResolve) {
|
|
36
|
+
if (!actionToResolve || actionToResolve.hidden) {
|
|
37
37
|
return null;
|
|
38
38
|
}
|
|
39
39
|
const resolvedAction = resolveAction(actionConfig, actionToResolve);
|
|
40
40
|
const {
|
|
41
41
|
icon,
|
|
42
|
+
hidden,
|
|
42
43
|
...resolvedActionParams
|
|
43
44
|
} = resolvedAction;
|
|
44
45
|
return {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["React","useCallback","useActionsSDK","MultiBulkActionToolbar","bulkDeleteAction","customAction","resolveAction","groupActions","useBulkActionToolbar","_ref","config","collectionId","sdk","bulkActionToolbar","param","buildAction","actionConfig","actionToResolve","baseParams","actionParams","type","action","resolvedAction","icon","resolvedActionParams","prefixIcon","isValidElement","undefined","dataHook","id","buildPrimaryActions","primaryActions","map","primaryItem","index","item","actionGroups","menu","items","subItems","group","filter","Boolean","length","label","primaryActionItems","secondaryActionItems","secondaryActions","createElement","hasPrimaryActions","hasSecondaryActions"],"sources":["../../../src/hooks/useBulkActionToolbar.tsx"],"sourcesContent":["import React, { useCallback } from 'react';\nimport {\n BulkActionItemConfig,\n BulkActionsConfig,\n ResolvedAction,\n} from '../types';\nimport { useActionsSDK } from './useActionsSDK';\nimport {\n TableProps,\n MultiBulkActionToolbar,\n ActionSubitem,\n} from '@wix/patterns';\nimport {\n bulkDeleteAction,\n customAction,\n resolveAction,\n groupActions,\n} from '../utils/actions';\n\nexport type BulkActionToolbarRenderProp = Parameters<\n NonNullable<TableProps<any, any>['bulkActionToolbar']>\n>[0];\n\nexport interface useBulkActionToolbarParams {\n config?: BulkActionsConfig;\n collectionId: string;\n}\n\nexport const useBulkActionToolbar = ({\n config,\n collectionId,\n}: useBulkActionToolbarParams) => {\n const sdk = useActionsSDK({\n collectionId,\n });\n\n const bulkActionToolbar = useCallback(\n (param: BulkActionToolbarRenderProp) => {\n const buildAction = (\n actionConfig: BulkActionItemConfig,\n ): ActionSubitem | null => {\n let actionToResolve: Partial<ResolvedAction> | null = null;\n\n const baseParams = {\n actionParams: param,\n sdk,\n };\n\n switch (actionConfig.type) {\n case 'bulkDelete':\n actionToResolve = bulkDeleteAction({\n action: actionConfig,\n ...baseParams,\n });\n break;\n\n case 'custom':\n actionToResolve = customAction({\n action: actionConfig,\n ...baseParams,\n });\n break;\n\n default:\n return null;\n }\n\n if (!actionToResolve) {\n return null;\n }\n\n const resolvedAction = resolveAction(actionConfig, actionToResolve);\n const { icon, ...resolvedActionParams } = resolvedAction;\n\n return {\n prefixIcon: React.isValidElement(icon) ? icon : undefined,\n dataHook: actionConfig.id,\n ...resolvedActionParams,\n };\n };\n\n const buildPrimaryActions = (): ActionSubitem[] => {\n if (!config?.primaryActions) {\n return [];\n }\n\n return config.primaryActions\n .map((primaryItem, index) => {\n if (primaryItem.type === 'action') {\n return buildAction(primaryItem.action.item);\n }\n\n if (primaryItem.type === 'menu') {\n const actionGroups = groupActions(primaryItem.menu.items);\n const subItems = actionGroups\n .map((group) =>\n group\n .map(buildAction)\n .filter((action): action is ActionSubitem =>\n Boolean(action),\n ),\n )\n .filter((group) => group.length > 0);\n\n if (subItems.length === 0) {\n return null;\n }\n\n return {\n label: primaryItem.menu.label,\n subItems,\n dataHook: `bulk-multi-action-${index}`,\n };\n }\n\n return null;\n })\n .filter((action): action is ActionSubitem => Boolean(action));\n };\n\n const primaryActionItems = buildPrimaryActions();\n\n const secondaryActionItems = config?.secondaryActions\n ? groupActions(config.secondaryActions)\n .map((group) =>\n group\n .map(buildAction)\n .filter((action): action is ActionSubitem => Boolean(action)),\n )\n .filter((group) => group.length > 0)\n : [];\n\n return (\n <MultiBulkActionToolbar\n primaryActionItems={primaryActionItems}\n secondaryActionItems={secondaryActionItems}\n />\n );\n },\n [config, sdk],\n );\n\n if (!config) {\n return undefined;\n }\n\n const hasPrimaryActions =\n config.primaryActions && config.primaryActions.length > 0;\n\n const hasSecondaryActions =\n config.secondaryActions && config.secondaryActions.length > 0;\n\n if (!hasPrimaryActions && !hasSecondaryActions) {\n return undefined;\n }\n\n return bulkActionToolbar;\n};\n"],"mappings":"AAAA,OAAOA,KAAK,IAAIC,WAAW,QAAQ,OAAO;AAM1C,SAASC,aAAa,QAAQ,iBAAiB;AAC/C,SAEEC,sBAAsB,QAEjB,eAAe;AACtB,SACEC,gBAAgB,EAChBC,YAAY,EACZC,aAAa,EACbC,YAAY,QACP,kBAAkB;AAWzB,OAAO,MAAMC,oBAAoB,GAAGC,IAAA,IAGF;EAAA,IAHG;IACnCC,MAAM;IACNC;EAC0B,CAAC,GAAAF,IAAA;EAC3B,MAAMG,GAAG,GAAGV,aAAa,CAAC;IACxBS;EACF,CAAC,CAAC;EAEF,MAAME,iBAAiB,GAAGZ,WAAW,CAClCa,KAAkC,IAAK;IACtC,MAAMC,WAAW,GACfC,YAAkC,IACT;MACzB,IAAIC,eAA+C,GAAG,IAAI;MAE1D,MAAMC,UAAU,GAAG;QACjBC,YAAY,EAAEL,KAAK;QACnBF;MACF,CAAC;MAED,QAAQI,YAAY,CAACI,IAAI;QACvB,KAAK,YAAY;UACfH,eAAe,GAAGb,gBAAgB,CAAC;YACjCiB,MAAM,EAAEL,YAAY;YACpB,GAAGE;UACL,CAAC,CAAC;UACF;QAEF,KAAK,QAAQ;UACXD,eAAe,GAAGZ,YAAY,CAAC;YAC7BgB,MAAM,EAAEL,YAAY;YACpB,GAAGE;UACL,CAAC,CAAC;UACF;QAEF;UACE,OAAO,IAAI;MACf;MAEA,IAAI,CAACD,eAAe,EAAE;
|
|
1
|
+
{"version":3,"names":["React","useCallback","useActionsSDK","MultiBulkActionToolbar","bulkDeleteAction","customAction","resolveAction","groupActions","useBulkActionToolbar","_ref","config","collectionId","sdk","bulkActionToolbar","param","buildAction","actionConfig","actionToResolve","baseParams","actionParams","type","action","hidden","resolvedAction","icon","resolvedActionParams","prefixIcon","isValidElement","undefined","dataHook","id","buildPrimaryActions","primaryActions","map","primaryItem","index","item","actionGroups","menu","items","subItems","group","filter","Boolean","length","label","primaryActionItems","secondaryActionItems","secondaryActions","createElement","hasPrimaryActions","hasSecondaryActions"],"sources":["../../../src/hooks/useBulkActionToolbar.tsx"],"sourcesContent":["import React, { useCallback } from 'react';\nimport {\n BulkActionItemConfig,\n BulkActionsConfig,\n ResolvedAction,\n} from '../types';\nimport { useActionsSDK } from './useActionsSDK';\nimport {\n TableProps,\n MultiBulkActionToolbar,\n ActionSubitem,\n} from '@wix/patterns';\nimport {\n bulkDeleteAction,\n customAction,\n resolveAction,\n groupActions,\n} from '../utils/actions';\n\nexport type BulkActionToolbarRenderProp = Parameters<\n NonNullable<TableProps<any, any>['bulkActionToolbar']>\n>[0];\n\nexport interface useBulkActionToolbarParams {\n config?: BulkActionsConfig;\n collectionId: string;\n}\n\nexport const useBulkActionToolbar = ({\n config,\n collectionId,\n}: useBulkActionToolbarParams) => {\n const sdk = useActionsSDK({\n collectionId,\n });\n\n const bulkActionToolbar = useCallback(\n (param: BulkActionToolbarRenderProp) => {\n const buildAction = (\n actionConfig: BulkActionItemConfig,\n ): ActionSubitem | null => {\n let actionToResolve: Partial<ResolvedAction> | null = null;\n\n const baseParams = {\n actionParams: param,\n sdk,\n };\n\n switch (actionConfig.type) {\n case 'bulkDelete':\n actionToResolve = bulkDeleteAction({\n action: actionConfig,\n ...baseParams,\n });\n break;\n\n case 'custom':\n actionToResolve = customAction({\n action: actionConfig,\n ...baseParams,\n });\n break;\n\n default:\n return null;\n }\n\n if (!actionToResolve || actionToResolve.hidden) {\n return null;\n }\n\n const resolvedAction = resolveAction(actionConfig, actionToResolve);\n const { icon, hidden, ...resolvedActionParams } = resolvedAction;\n\n return {\n prefixIcon: React.isValidElement(icon) ? icon : undefined,\n dataHook: actionConfig.id,\n ...resolvedActionParams,\n };\n };\n\n const buildPrimaryActions = (): ActionSubitem[] => {\n if (!config?.primaryActions) {\n return [];\n }\n\n return config.primaryActions\n .map((primaryItem, index) => {\n if (primaryItem.type === 'action') {\n return buildAction(primaryItem.action.item);\n }\n\n if (primaryItem.type === 'menu') {\n const actionGroups = groupActions(primaryItem.menu.items);\n const subItems = actionGroups\n .map((group) =>\n group\n .map(buildAction)\n .filter((action): action is ActionSubitem =>\n Boolean(action),\n ),\n )\n .filter((group) => group.length > 0);\n\n if (subItems.length === 0) {\n return null;\n }\n\n return {\n label: primaryItem.menu.label,\n subItems,\n dataHook: `bulk-multi-action-${index}`,\n };\n }\n\n return null;\n })\n .filter((action): action is ActionSubitem => Boolean(action));\n };\n\n const primaryActionItems = buildPrimaryActions();\n\n const secondaryActionItems = config?.secondaryActions\n ? groupActions(config.secondaryActions)\n .map((group) =>\n group\n .map(buildAction)\n .filter((action): action is ActionSubitem => Boolean(action)),\n )\n .filter((group) => group.length > 0)\n : [];\n\n return (\n <MultiBulkActionToolbar\n primaryActionItems={primaryActionItems}\n secondaryActionItems={secondaryActionItems}\n />\n );\n },\n [config, sdk],\n );\n\n if (!config) {\n return undefined;\n }\n\n const hasPrimaryActions =\n config.primaryActions && config.primaryActions.length > 0;\n\n const hasSecondaryActions =\n config.secondaryActions && config.secondaryActions.length > 0;\n\n if (!hasPrimaryActions && !hasSecondaryActions) {\n return undefined;\n }\n\n return bulkActionToolbar;\n};\n"],"mappings":"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","ignoreList":[]}
|
|
@@ -37,13 +37,14 @@ export const useCollectionPageActions = _ref => {
|
|
|
37
37
|
default:
|
|
38
38
|
return null;
|
|
39
39
|
}
|
|
40
|
-
if (!actionToResolve) {
|
|
40
|
+
if (!actionToResolve || actionToResolve.hidden) {
|
|
41
41
|
return null;
|
|
42
42
|
}
|
|
43
43
|
const resolvedAction = resolveAction(actionConfig, actionToResolve);
|
|
44
44
|
const {
|
|
45
45
|
tooltip,
|
|
46
46
|
icon,
|
|
47
|
+
hidden,
|
|
47
48
|
...resolvedActionProps
|
|
48
49
|
} = resolvedAction;
|
|
49
50
|
return {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["React","useCallback","useMemo","useActionsSDK","createAction","customAction","resolveAction","groupActions","PrimaryActions","SecondaryActions","useCollectionPageActions","_ref","collectionPageActions","sdk","collectionId","buildCollectionPageActions","buildAction","actionConfig","actionToResolve","baseParams","actionParams","collection","type","action","resolvedAction","tooltip","icon","resolvedActionProps","prefixIcon","disabledDescription","handleActionsType","actions","item","actionGroups","menu","items","subItems","map","group","filter","length","label","primaryActions","secondaryActions","createElement","undefined"],"sources":["../../../src/hooks/useCollectionPageActions.tsx"],"sourcesContent":["import React, { useCallback, useMemo } from 'react';\nimport {\n CollectionPageActionConfig,\n CollectionPageConfig,\n CollectionPagePrimaryActions,\n CollectionPageSecondaryActions,\n ResolvedAction,\n} from '../types';\nimport { useActionsSDK } from './useActionsSDK';\nimport {\n createAction,\n customAction,\n resolveAction,\n groupActions,\n} from '../utils/actions';\nimport { IconElement } from '@wix/design-system';\nimport { PrimaryActions, SecondaryActions } from '@wix/patterns';\n\nexport interface UseCollectionPageActionsParams {\n collectionPageActions: CollectionPageConfig['actions'];\n}\n\nexport const useCollectionPageActions = ({\n collectionPageActions,\n}: UseCollectionPageActionsParams) => {\n const sdk = useActionsSDK({\n collectionId: '',\n });\n\n const buildCollectionPageActions = useCallback(() => {\n if (!collectionPageActions) {\n return;\n }\n\n const buildAction = (actionConfig: CollectionPageActionConfig) => {\n let actionToResolve: Partial<ResolvedAction> | null = null;\n\n const baseParams = {\n actionParams: {\n collectionId: actionConfig.collection.collectionId,\n },\n sdk,\n };\n\n switch (actionConfig.type) {\n case 'create':\n actionToResolve = createAction({\n action: actionConfig,\n ...baseParams,\n });\n break;\n\n case 'custom':\n actionToResolve = customAction({\n action: actionConfig,\n ...baseParams,\n });\n break;\n\n default:\n return null;\n }\n\n if (!actionToResolve) {\n return null;\n }\n\n const resolvedAction = resolveAction(actionConfig, actionToResolve);\n const { tooltip, icon, ...resolvedActionProps } = resolvedAction;\n\n return {\n ...resolvedActionProps,\n prefixIcon: icon as IconElement,\n disabledDescription: resolvedAction.tooltip,\n };\n };\n\n const handleActionsType = (\n actions: CollectionPagePrimaryActions | CollectionPageSecondaryActions,\n ) => {\n if (actions.type === 'action') {\n return buildAction(actions.action.item);\n }\n\n if (actions.type === 'menu') {\n const actionGroups = groupActions(actions.menu.items);\n const subItems = actionGroups\n .map((group) =>\n group.map(buildAction).filter((action) => action !== null),\n )\n .filter((group) => group.length > 0);\n\n if (!subItems.length) {\n return null;\n }\n\n return {\n label: actions.menu.label,\n subItems,\n };\n }\n\n return null;\n };\n\n const primaryActions =\n collectionPageActions?.primaryActions &&\n handleActionsType(collectionPageActions.primaryActions);\n\n const secondaryActions =\n collectionPageActions?.secondaryActions &&\n handleActionsType(collectionPageActions.secondaryActions);\n\n if (!primaryActions && !secondaryActions) {\n return;\n }\n\n return {\n primaryActions: primaryActions ? (\n <PrimaryActions {...primaryActions} />\n ) : undefined,\n secondaryActions: secondaryActions ? (\n <SecondaryActions {...secondaryActions} />\n ) : undefined,\n };\n }, [collectionPageActions, sdk]);\n\n const actions = useMemo(() => {\n return {\n primaryActions: undefined,\n secondaryActions: undefined,\n };\n }, []);\n\n if (\n !collectionPageActions?.primaryActions &&\n !collectionPageActions?.secondaryActions\n ) {\n return { ...actions };\n }\n\n return buildCollectionPageActions() ?? { ...actions };\n};\n"],"mappings":"AAAA,OAAOA,KAAK,IAAIC,WAAW,EAAEC,OAAO,QAAQ,OAAO;AAQnD,SAASC,aAAa,QAAQ,iBAAiB;AAC/C,SACEC,YAAY,EACZC,YAAY,EACZC,aAAa,EACbC,YAAY,QACP,kBAAkB;AAEzB,SAASC,cAAc,EAAEC,gBAAgB,QAAQ,eAAe;AAMhE,OAAO,MAAMC,wBAAwB,GAAGC,IAAA,IAEF;EAAA,IAFG;IACvCC;EAC8B,CAAC,GAAAD,IAAA;EAC/B,MAAME,GAAG,GAAGV,aAAa,CAAC;IACxBW,YAAY,EAAE;EAChB,CAAC,CAAC;EAEF,MAAMC,0BAA0B,GAAGd,WAAW,CAAC,MAAM;IACnD,IAAI,CAACW,qBAAqB,EAAE;MAC1B;IACF;IAEA,MAAMI,WAAW,GAAIC,YAAwC,IAAK;MAChE,IAAIC,eAA+C,GAAG,IAAI;MAE1D,MAAMC,UAAU,GAAG;QACjBC,YAAY,EAAE;UACZN,YAAY,EAAEG,YAAY,CAACI,UAAU,CAACP;QACxC,CAAC;QACDD;MACF,CAAC;MAED,QAAQI,YAAY,CAACK,IAAI;QACvB,KAAK,QAAQ;UACXJ,eAAe,GAAGd,YAAY,CAAC;YAC7BmB,MAAM,EAAEN,YAAY;YACpB,GAAGE;UACL,CAAC,CAAC;UACF;QAEF,KAAK,QAAQ;UACXD,eAAe,GAAGb,YAAY,CAAC;YAC7BkB,MAAM,EAAEN,YAAY;YACpB,GAAGE;UACL,CAAC,CAAC;UACF;QAEF;UACE,OAAO,IAAI;MACf;MAEA,IAAI,CAACD,eAAe,EAAE;
|
|
1
|
+
{"version":3,"names":["React","useCallback","useMemo","useActionsSDK","createAction","customAction","resolveAction","groupActions","PrimaryActions","SecondaryActions","useCollectionPageActions","_ref","collectionPageActions","sdk","collectionId","buildCollectionPageActions","buildAction","actionConfig","actionToResolve","baseParams","actionParams","collection","type","action","hidden","resolvedAction","tooltip","icon","resolvedActionProps","prefixIcon","disabledDescription","handleActionsType","actions","item","actionGroups","menu","items","subItems","map","group","filter","length","label","primaryActions","secondaryActions","createElement","undefined"],"sources":["../../../src/hooks/useCollectionPageActions.tsx"],"sourcesContent":["import React, { useCallback, useMemo } from 'react';\nimport {\n CollectionPageActionConfig,\n CollectionPageConfig,\n CollectionPagePrimaryActions,\n CollectionPageSecondaryActions,\n ResolvedAction,\n} from '../types';\nimport { useActionsSDK } from './useActionsSDK';\nimport {\n createAction,\n customAction,\n resolveAction,\n groupActions,\n} from '../utils/actions';\nimport { IconElement } from '@wix/design-system';\nimport { PrimaryActions, SecondaryActions } from '@wix/patterns';\n\nexport interface UseCollectionPageActionsParams {\n collectionPageActions: CollectionPageConfig['actions'];\n}\n\nexport const useCollectionPageActions = ({\n collectionPageActions,\n}: UseCollectionPageActionsParams) => {\n const sdk = useActionsSDK({\n collectionId: '',\n });\n\n const buildCollectionPageActions = useCallback(() => {\n if (!collectionPageActions) {\n return;\n }\n\n const buildAction = (actionConfig: CollectionPageActionConfig) => {\n let actionToResolve: Partial<ResolvedAction> | null = null;\n\n const baseParams = {\n actionParams: {\n collectionId: actionConfig.collection.collectionId,\n },\n sdk,\n };\n\n switch (actionConfig.type) {\n case 'create':\n actionToResolve = createAction({\n action: actionConfig,\n ...baseParams,\n });\n break;\n\n case 'custom':\n actionToResolve = customAction({\n action: actionConfig,\n ...baseParams,\n });\n break;\n\n default:\n return null;\n }\n\n if (!actionToResolve || actionToResolve.hidden) {\n return null;\n }\n\n const resolvedAction = resolveAction(actionConfig, actionToResolve);\n const { tooltip, icon, hidden, ...resolvedActionProps } = resolvedAction;\n\n return {\n ...resolvedActionProps,\n prefixIcon: icon as IconElement,\n disabledDescription: resolvedAction.tooltip,\n };\n };\n\n const handleActionsType = (\n actions: CollectionPagePrimaryActions | CollectionPageSecondaryActions,\n ) => {\n if (actions.type === 'action') {\n return buildAction(actions.action.item);\n }\n\n if (actions.type === 'menu') {\n const actionGroups = groupActions(actions.menu.items);\n const subItems = actionGroups\n .map((group) =>\n group.map(buildAction).filter((action) => action !== null),\n )\n .filter((group) => group.length > 0);\n\n if (!subItems.length) {\n return null;\n }\n\n return {\n label: actions.menu.label,\n subItems,\n };\n }\n\n return null;\n };\n\n const primaryActions =\n collectionPageActions?.primaryActions &&\n handleActionsType(collectionPageActions.primaryActions);\n\n const secondaryActions =\n collectionPageActions?.secondaryActions &&\n handleActionsType(collectionPageActions.secondaryActions);\n\n if (!primaryActions && !secondaryActions) {\n return;\n }\n\n return {\n primaryActions: primaryActions ? (\n <PrimaryActions {...primaryActions} />\n ) : undefined,\n secondaryActions: secondaryActions ? (\n <SecondaryActions {...secondaryActions} />\n ) : undefined,\n };\n }, [collectionPageActions, sdk]);\n\n const actions = useMemo(() => {\n return {\n primaryActions: undefined,\n secondaryActions: undefined,\n };\n }, []);\n\n if (\n !collectionPageActions?.primaryActions &&\n !collectionPageActions?.secondaryActions\n ) {\n return { ...actions };\n }\n\n return buildCollectionPageActions() ?? { ...actions };\n};\n"],"mappings":"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","ignoreList":[]}
|
|
@@ -35,13 +35,14 @@ export const useEntityPageActions = _ref => {
|
|
|
35
35
|
default:
|
|
36
36
|
return null;
|
|
37
37
|
}
|
|
38
|
-
if (!actionToResolve) {
|
|
38
|
+
if (!actionToResolve || actionToResolve.hidden) {
|
|
39
39
|
return null;
|
|
40
40
|
}
|
|
41
41
|
const resolvedAction = resolveAction(actionConfig, actionToResolve);
|
|
42
42
|
const {
|
|
43
43
|
tooltip,
|
|
44
44
|
icon,
|
|
45
|
+
hidden,
|
|
45
46
|
...resolvedActionProps
|
|
46
47
|
} = resolvedAction;
|
|
47
48
|
return {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["React","useCallback","createAction","customAction","resolveAction","groupActions","PrimaryActions","SecondaryActions","useEntityPageActions","_ref","entityPageActions","entity","sdk","buildEntityPageActions","buildAction","actionConfig","actionToResolve","baseParams","actionParams","type","action","resolvedAction","tooltip","icon","resolvedActionProps","prefixIcon","disabledDescription","handleActionsType","actions","item","actionGroups","menu","items","subItems","map","group","filter","length","label","primaryActions","secondaryActions","createElement","Fragment","undefined"],"sources":["../../../src/hooks/useEntityPageActions.tsx"],"sourcesContent":["import React, { useCallback } from 'react';\nimport {\n ActionsSDK,\n EntityPageActionConfig,\n EntityPageConfig,\n EntityPagePrimaryActions,\n EntityPageSecondaryActions,\n ResolvedAction,\n} from '../types';\nimport {\n createAction,\n customAction,\n resolveAction,\n groupActions,\n} from '../utils/actions';\nimport { IconElement } from '@wix/design-system';\nimport { PrimaryActions, SecondaryActions } from '@wix/patterns';\n\nexport interface UseEntityPageActionsParams {\n entityPageActions: EntityPageConfig['actions'];\n entity: Record<string, any>;\n sdk: ActionsSDK;\n}\n\nexport const useEntityPageActions = ({\n entityPageActions,\n entity,\n sdk,\n}: UseEntityPageActionsParams) => {\n const buildEntityPageActions = useCallback(() => {\n if (!entityPageActions) {\n return;\n }\n\n const buildAction = (actionConfig: EntityPageActionConfig) => {\n let actionToResolve: Partial<ResolvedAction> | null = null;\n\n const baseParams = {\n actionParams: {\n entity,\n },\n sdk,\n };\n\n switch (actionConfig.type) {\n case 'create':\n actionToResolve = createAction({\n action: actionConfig,\n ...baseParams,\n });\n break;\n\n case 'custom':\n actionToResolve = customAction({\n action: actionConfig,\n ...baseParams,\n });\n break;\n\n default:\n return null;\n }\n\n if (!actionToResolve) {\n return null;\n }\n\n const resolvedAction = resolveAction(actionConfig, actionToResolve);\n const { tooltip, icon, ...resolvedActionProps } = resolvedAction;\n\n return {\n ...resolvedActionProps,\n prefixIcon: icon as IconElement,\n disabledDescription: resolvedAction.tooltip,\n };\n };\n\n const handleActionsType = (\n actions: EntityPagePrimaryActions | EntityPageSecondaryActions,\n ) => {\n if (actions.type === 'action') {\n return buildAction(actions.action.item);\n }\n\n if (actions.type === 'menu') {\n const actionGroups = groupActions(actions.menu.items);\n const subItems = actionGroups\n .map((group) =>\n group.map(buildAction).filter((action) => action !== null),\n )\n .filter((group) => group.length > 0);\n\n if (!subItems.length) {\n return null;\n }\n\n return {\n label: actions.menu.label,\n subItems,\n };\n }\n\n return null;\n };\n\n const primaryActions =\n entityPageActions?.primaryActions &&\n handleActionsType(entityPageActions.primaryActions);\n\n const secondaryActions =\n entityPageActions?.secondaryActions &&\n handleActionsType(entityPageActions.secondaryActions);\n\n if (!primaryActions && !secondaryActions) {\n return;\n }\n\n return (\n <>\n {secondaryActions ? (\n <SecondaryActions {...secondaryActions} />\n ) : undefined}\n {primaryActions ? <PrimaryActions {...primaryActions} /> : undefined}\n </>\n );\n }, [entityPageActions, entity, sdk]);\n\n if (\n !entityPageActions?.primaryActions &&\n !entityPageActions?.secondaryActions\n ) {\n return null;\n }\n\n return buildEntityPageActions() ?? null;\n};\n"],"mappings":"AAAA,OAAOA,KAAK,IAAIC,WAAW,QAAQ,OAAO;AAS1C,SACEC,YAAY,EACZC,YAAY,EACZC,aAAa,EACbC,YAAY,QACP,kBAAkB;AAEzB,SAASC,cAAc,EAAEC,gBAAgB,QAAQ,eAAe;AAQhE,OAAO,MAAMC,oBAAoB,GAAGC,IAAA,IAIF;EAAA,IAJG;IACnCC,iBAAiB;IACjBC,MAAM;IACNC;EAC0B,CAAC,GAAAH,IAAA;EAC3B,MAAMI,sBAAsB,GAAGZ,WAAW,CAAC,MAAM;IAC/C,IAAI,CAACS,iBAAiB,EAAE;MACtB;IACF;IAEA,MAAMI,WAAW,GAAIC,YAAoC,IAAK;MAC5D,IAAIC,eAA+C,GAAG,IAAI;MAE1D,MAAMC,UAAU,GAAG;QACjBC,YAAY,EAAE;UACZP;QACF,CAAC;QACDC;MACF,CAAC;MAED,QAAQG,YAAY,CAACI,IAAI;QACvB,KAAK,QAAQ;UACXH,eAAe,GAAGd,YAAY,CAAC;YAC7BkB,MAAM,EAAEL,YAAY;YACpB,GAAGE;UACL,CAAC,CAAC;UACF;QAEF,KAAK,QAAQ;UACXD,eAAe,GAAGb,YAAY,CAAC;YAC7BiB,MAAM,EAAEL,YAAY;YACpB,GAAGE;UACL,CAAC,CAAC;UACF;QAEF;UACE,OAAO,IAAI;MACf;MAEA,IAAI,CAACD,eAAe,EAAE;
|
|
1
|
+
{"version":3,"names":["React","useCallback","createAction","customAction","resolveAction","groupActions","PrimaryActions","SecondaryActions","useEntityPageActions","_ref","entityPageActions","entity","sdk","buildEntityPageActions","buildAction","actionConfig","actionToResolve","baseParams","actionParams","type","action","hidden","resolvedAction","tooltip","icon","resolvedActionProps","prefixIcon","disabledDescription","handleActionsType","actions","item","actionGroups","menu","items","subItems","map","group","filter","length","label","primaryActions","secondaryActions","createElement","Fragment","undefined"],"sources":["../../../src/hooks/useEntityPageActions.tsx"],"sourcesContent":["import React, { useCallback } from 'react';\nimport {\n ActionsSDK,\n EntityPageActionConfig,\n EntityPageConfig,\n EntityPagePrimaryActions,\n EntityPageSecondaryActions,\n ResolvedAction,\n} from '../types';\nimport {\n createAction,\n customAction,\n resolveAction,\n groupActions,\n} from '../utils/actions';\nimport { IconElement } from '@wix/design-system';\nimport { PrimaryActions, SecondaryActions } from '@wix/patterns';\n\nexport interface UseEntityPageActionsParams {\n entityPageActions: EntityPageConfig['actions'];\n entity: Record<string, any>;\n sdk: ActionsSDK;\n}\n\nexport const useEntityPageActions = ({\n entityPageActions,\n entity,\n sdk,\n}: UseEntityPageActionsParams) => {\n const buildEntityPageActions = useCallback(() => {\n if (!entityPageActions) {\n return;\n }\n\n const buildAction = (actionConfig: EntityPageActionConfig) => {\n let actionToResolve: Partial<ResolvedAction> | null = null;\n\n const baseParams = {\n actionParams: {\n entity,\n },\n sdk,\n };\n\n switch (actionConfig.type) {\n case 'create':\n actionToResolve = createAction({\n action: actionConfig,\n ...baseParams,\n });\n break;\n\n case 'custom':\n actionToResolve = customAction({\n action: actionConfig,\n ...baseParams,\n });\n break;\n\n default:\n return null;\n }\n\n if (!actionToResolve || actionToResolve.hidden) {\n return null;\n }\n\n const resolvedAction = resolveAction(actionConfig, actionToResolve);\n const { tooltip, icon, hidden, ...resolvedActionProps } = resolvedAction;\n\n return {\n ...resolvedActionProps,\n prefixIcon: icon as IconElement,\n disabledDescription: resolvedAction.tooltip,\n };\n };\n\n const handleActionsType = (\n actions: EntityPagePrimaryActions | EntityPageSecondaryActions,\n ) => {\n if (actions.type === 'action') {\n return buildAction(actions.action.item);\n }\n\n if (actions.type === 'menu') {\n const actionGroups = groupActions(actions.menu.items);\n const subItems = actionGroups\n .map((group) =>\n group.map(buildAction).filter((action) => action !== null),\n )\n .filter((group) => group.length > 0);\n\n if (!subItems.length) {\n return null;\n }\n\n return {\n label: actions.menu.label,\n subItems,\n };\n }\n\n return null;\n };\n\n const primaryActions =\n entityPageActions?.primaryActions &&\n handleActionsType(entityPageActions.primaryActions);\n\n const secondaryActions =\n entityPageActions?.secondaryActions &&\n handleActionsType(entityPageActions.secondaryActions);\n\n if (!primaryActions && !secondaryActions) {\n return;\n }\n\n return (\n <>\n {secondaryActions ? (\n <SecondaryActions {...secondaryActions} />\n ) : undefined}\n {primaryActions ? <PrimaryActions {...primaryActions} /> : undefined}\n </>\n );\n }, [entityPageActions, entity, sdk]);\n\n if (\n !entityPageActions?.primaryActions &&\n !entityPageActions?.secondaryActions\n ) {\n return null;\n }\n\n return buildEntityPageActions() ?? null;\n};\n"],"mappings":"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","ignoreList":[]}
|
|
@@ -34,7 +34,7 @@ export function useEntityPageMoreActions(moreActions, entity, sdk, form) {
|
|
|
34
34
|
default:
|
|
35
35
|
return null;
|
|
36
36
|
}
|
|
37
|
-
if (!actionToResolve) {
|
|
37
|
+
if (!actionToResolve || actionToResolve.hidden) {
|
|
38
38
|
return null;
|
|
39
39
|
}
|
|
40
40
|
const resolved = resolveAction(actionConfig, actionToResolve);
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["customAction","resolveAction","groupActions","updateAction","useCallback","useEntityPageMoreActions","moreActions","entity","sdk","form","buildEntityPageActions","buildAction","actionConfig","actionToResolve","baseParams","actionParams","type","action","item","resolved","onClick","text","label","prefixIcon","icon","disabled","actionGroups","map","group","filter","Boolean","length"],"sources":["../../../src/hooks/useEntityPageMoreActions.ts"],"sourcesContent":["import { ActionsSDK, ResolvedAction } from '../types';\nimport {\n customAction,\n resolveAction,\n groupActions,\n updateAction,\n} from '../utils/actions';\nimport { useCallback } from 'react';\nimport { MoreActionsItem } from '@wix/patterns';\nimport { FieldValues, UseFormReturn } from '@wix/patterns/form';\nimport {\n CustomActionConfig,\n DividerActionConfig,\n UpdateActionConfig,\n} from '../types/actions/base';\n\nexport function useEntityPageMoreActions(\n moreActions:\n | (CustomActionConfig | UpdateActionConfig | DividerActionConfig)[]\n | undefined,\n entity: Record<string, any>,\n sdk: ActionsSDK,\n form?: UseFormReturn<FieldValues, any, undefined>,\n) {\n const buildEntityPageActions = useCallback(() => {\n if (!moreActions) {\n return;\n }\n\n const buildAction = (\n actionConfig: CustomActionConfig | UpdateActionConfig,\n ): MoreActionsItem | null => {\n let actionToResolve: Partial<ResolvedAction> | null = null;\n const baseParams = {\n actionParams: { entity, form },\n sdk,\n };\n\n switch (actionConfig.type) {\n case 'update':\n actionToResolve = updateAction({\n action: actionConfig,\n ...baseParams,\n actionParams: {\n ...baseParams.actionParams,\n item: entity,\n },\n });\n break;\n case 'custom':\n actionToResolve = customAction({\n action: actionConfig,\n ...baseParams,\n });\n break;\n default:\n return null;\n }\n\n if (!actionToResolve) {\n return null;\n }\n\n const resolved = resolveAction(\n actionConfig,\n actionToResolve,\n ) as ResolvedAction;\n\n return {\n onClick: resolved.onClick,\n text: resolved.label,\n prefixIcon: resolved.icon,\n disabled: resolved.disabled,\n };\n };\n\n const actionGroups = groupActions(moreActions);\n return actionGroups\n .map((group) =>\n group\n .map(buildAction)\n .filter((action): action is MoreActionsItem => Boolean(action)),\n )\n .filter((group) => group.length > 0);\n }, [moreActions, sdk, entity, form]);\n\n return buildEntityPageActions() ?? [];\n}\n"],"mappings":"AACA,SACEA,YAAY,EACZC,aAAa,EACbC,YAAY,EACZC,YAAY,QACP,kBAAkB;AACzB,SAASC,WAAW,QAAQ,OAAO;AASnC,OAAO,SAASC,wBAAwBA,CACtCC,WAEa,EACbC,MAA2B,EAC3BC,GAAe,EACfC,IAAiD,EACjD;EACA,MAAMC,sBAAsB,GAAGN,WAAW,CAAC,MAAM;IAC/C,IAAI,CAACE,WAAW,EAAE;MAChB;IACF;IAEA,MAAMK,WAAW,GACfC,YAAqD,IAC1B;MAC3B,IAAIC,eAA+C,GAAG,IAAI;MAC1D,MAAMC,UAAU,GAAG;QACjBC,YAAY,EAAE;UAAER,MAAM;UAAEE;QAAK,CAAC;QAC9BD;MACF,CAAC;MAED,QAAQI,YAAY,CAACI,IAAI;QACvB,KAAK,QAAQ;UACXH,eAAe,GAAGV,YAAY,CAAC;YAC7Bc,MAAM,EAAEL,YAAY;YACpB,GAAGE,UAAU;YACbC,YAAY,EAAE;cACZ,GAAGD,UAAU,CAACC,YAAY;cAC1BG,IAAI,EAAEX;YACR;UACF,CAAC,CAAC;UACF;QACF,KAAK,QAAQ;UACXM,eAAe,GAAGb,YAAY,CAAC;YAC7BiB,MAAM,EAAEL,YAAY;YACpB,GAAGE;UACL,CAAC,CAAC;UACF;QACF;UACE,OAAO,IAAI;MACf;MAEA,IAAI,CAACD,eAAe,EAAE;
|
|
1
|
+
{"version":3,"names":["customAction","resolveAction","groupActions","updateAction","useCallback","useEntityPageMoreActions","moreActions","entity","sdk","form","buildEntityPageActions","buildAction","actionConfig","actionToResolve","baseParams","actionParams","type","action","item","hidden","resolved","onClick","text","label","prefixIcon","icon","disabled","actionGroups","map","group","filter","Boolean","length"],"sources":["../../../src/hooks/useEntityPageMoreActions.ts"],"sourcesContent":["import { ActionsSDK, ResolvedAction } from '../types';\nimport {\n customAction,\n resolveAction,\n groupActions,\n updateAction,\n} from '../utils/actions';\nimport { useCallback } from 'react';\nimport { MoreActionsItem } from '@wix/patterns';\nimport { FieldValues, UseFormReturn } from '@wix/patterns/form';\nimport {\n CustomActionConfig,\n DividerActionConfig,\n UpdateActionConfig,\n} from '../types/actions/base';\n\nexport function useEntityPageMoreActions(\n moreActions:\n | (CustomActionConfig | UpdateActionConfig | DividerActionConfig)[]\n | undefined,\n entity: Record<string, any>,\n sdk: ActionsSDK,\n form?: UseFormReturn<FieldValues, any, undefined>,\n) {\n const buildEntityPageActions = useCallback(() => {\n if (!moreActions) {\n return;\n }\n\n const buildAction = (\n actionConfig: CustomActionConfig | UpdateActionConfig,\n ): MoreActionsItem | null => {\n let actionToResolve: Partial<ResolvedAction> | null = null;\n const baseParams = {\n actionParams: { entity, form },\n sdk,\n };\n\n switch (actionConfig.type) {\n case 'update':\n actionToResolve = updateAction({\n action: actionConfig,\n ...baseParams,\n actionParams: {\n ...baseParams.actionParams,\n item: entity,\n },\n });\n break;\n case 'custom':\n actionToResolve = customAction({\n action: actionConfig,\n ...baseParams,\n });\n break;\n default:\n return null;\n }\n\n if (!actionToResolve || actionToResolve.hidden) {\n return null;\n }\n\n const resolved = resolveAction(\n actionConfig,\n actionToResolve,\n ) as ResolvedAction;\n\n return {\n onClick: resolved.onClick,\n text: resolved.label,\n prefixIcon: resolved.icon,\n disabled: resolved.disabled,\n };\n };\n\n const actionGroups = groupActions(moreActions);\n return actionGroups\n .map((group) =>\n group\n .map(buildAction)\n .filter((action): action is MoreActionsItem => Boolean(action)),\n )\n .filter((group) => group.length > 0);\n }, [moreActions, sdk, entity, form]);\n\n return buildEntityPageActions() ?? [];\n}\n"],"mappings":"AACA,SACEA,YAAY,EACZC,aAAa,EACbC,YAAY,EACZC,YAAY,QACP,kBAAkB;AACzB,SAASC,WAAW,QAAQ,OAAO;AASnC,OAAO,SAASC,wBAAwBA,CACtCC,WAEa,EACbC,MAA2B,EAC3BC,GAAe,EACfC,IAAiD,EACjD;EACA,MAAMC,sBAAsB,GAAGN,WAAW,CAAC,MAAM;IAC/C,IAAI,CAACE,WAAW,EAAE;MAChB;IACF;IAEA,MAAMK,WAAW,GACfC,YAAqD,IAC1B;MAC3B,IAAIC,eAA+C,GAAG,IAAI;MAC1D,MAAMC,UAAU,GAAG;QACjBC,YAAY,EAAE;UAAER,MAAM;UAAEE;QAAK,CAAC;QAC9BD;MACF,CAAC;MAED,QAAQI,YAAY,CAACI,IAAI;QACvB,KAAK,QAAQ;UACXH,eAAe,GAAGV,YAAY,CAAC;YAC7Bc,MAAM,EAAEL,YAAY;YACpB,GAAGE,UAAU;YACbC,YAAY,EAAE;cACZ,GAAGD,UAAU,CAACC,YAAY;cAC1BG,IAAI,EAAEX;YACR;UACF,CAAC,CAAC;UACF;QACF,KAAK,QAAQ;UACXM,eAAe,GAAGb,YAAY,CAAC;YAC7BiB,MAAM,EAAEL,YAAY;YACpB,GAAGE;UACL,CAAC,CAAC;UACF;QACF;UACE,OAAO,IAAI;MACf;MAEA,IAAI,CAACD,eAAe,IAAIA,eAAe,CAACM,MAAM,EAAE;QAC9C,OAAO,IAAI;MACb;MAEA,MAAMC,QAAQ,GAAGnB,aAAa,CAC5BW,YAAY,EACZC,eACF,CAAmB;MAEnB,OAAO;QACLQ,OAAO,EAAED,QAAQ,CAACC,OAAO;QACzBC,IAAI,EAAEF,QAAQ,CAACG,KAAK;QACpBC,UAAU,EAAEJ,QAAQ,CAACK,IAAI;QACzBC,QAAQ,EAAEN,QAAQ,CAACM;MACrB,CAAC;IACH,CAAC;IAED,MAAMC,YAAY,GAAGzB,YAAY,CAACI,WAAW,CAAC;IAC9C,OAAOqB,YAAY,CAChBC,GAAG,CAAEC,KAAK,IACTA,KAAK,CACFD,GAAG,CAACjB,WAAW,CAAC,CAChBmB,MAAM,CAAEb,MAAM,IAAgCc,OAAO,CAACd,MAAM,CAAC,CAClE,CAAC,CACAa,MAAM,CAAED,KAAK,IAAKA,KAAK,CAACG,MAAM,GAAG,CAAC,CAAC;EACxC,CAAC,EAAE,CAAC1B,WAAW,EAAEE,GAAG,EAAED,MAAM,EAAEE,IAAI,CAAC,CAAC;EAEpC,OAAOC,sBAAsB,CAAC,CAAC,IAAI,EAAE;AACvC","ignoreList":[]}
|
|
@@ -1,5 +1,6 @@
|
|
|
1
1
|
import React, { createContext, useContext, useState, useCallback } from 'react';
|
|
2
2
|
import { PageErrorState } from '@wix/patterns';
|
|
3
|
+
import { errorHandler } from '@wix/essentials';
|
|
3
4
|
const ErrorContext = /*#__PURE__*/createContext(undefined);
|
|
4
5
|
export const ErrorProvider = _ref => {
|
|
5
6
|
let {
|
|
@@ -23,8 +24,10 @@ export const ErrorProvider = _ref => {
|
|
|
23
24
|
});
|
|
24
25
|
}, []);
|
|
25
26
|
if (errorState.hasError && errorState.error) {
|
|
27
|
+
const subtitle = errorHandler.getResolvedError(errorState.error).message;
|
|
26
28
|
return /*#__PURE__*/React.createElement(PageErrorState, {
|
|
27
|
-
subtitle:
|
|
29
|
+
subtitle: subtitle,
|
|
30
|
+
dataHook: "error-page"
|
|
28
31
|
});
|
|
29
32
|
}
|
|
30
33
|
return /*#__PURE__*/React.createElement(ErrorContext.Provider, {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["React","createContext","useContext","useState","useCallback","PageErrorState","ErrorContext","undefined","ErrorProvider","_ref","children","errorState","setErrorState","hasError","error","showError","errorObj","Error","clearError","
|
|
1
|
+
{"version":3,"names":["React","createContext","useContext","useState","useCallback","PageErrorState","errorHandler","ErrorContext","undefined","ErrorProvider","_ref","children","errorState","setErrorState","hasError","error","showError","errorObj","Error","clearError","subtitle","getResolvedError","message","createElement","dataHook","Provider","value","useError","context"],"sources":["../../../src/providers/ErrorContext.tsx"],"sourcesContent":["import React, {\n createContext,\n useContext,\n useState,\n useCallback,\n ReactNode,\n} from 'react';\nimport { PageErrorState } from '@wix/patterns';\nimport { errorHandler } from '@wix/essentials';\n\nexport interface ErrorResponse extends Error {\n details: {\n applicationError: {\n description: string;\n };\n };\n}\n\ninterface ErrorState {\n hasError: boolean;\n error: Error | null;\n}\n\ninterface ErrorContextType {\n showError: (error: Error) => void;\n clearError: () => void;\n}\n\nconst ErrorContext = createContext<ErrorContextType | undefined>(undefined);\n\nexport const ErrorProvider: React.FC<{ children: ReactNode }> = ({\n children,\n}) => {\n const [errorState, setErrorState] = useState<ErrorState>({\n hasError: false,\n error: null,\n });\n\n const showError = useCallback((error: Error | string) => {\n const errorObj = typeof error === 'string' ? new Error(error) : error;\n setErrorState({\n hasError: true,\n error: errorObj,\n });\n }, []);\n\n const clearError = useCallback(() => {\n setErrorState({\n hasError: false,\n error: null,\n });\n }, []);\n\n if (errorState.hasError && errorState.error) {\n const subtitle = errorHandler.getResolvedError(errorState.error).message;\n\n return <PageErrorState subtitle={subtitle} dataHook=\"error-page\" />;\n }\n\n return (\n <ErrorContext.Provider value={{ showError, clearError }}>\n {children}\n </ErrorContext.Provider>\n );\n};\n\nexport const useError = (): ErrorContextType => {\n const context = useContext(ErrorContext);\n if (!context) {\n throw new Error('useError must be used within an ErrorProvider');\n }\n return context;\n};\n"],"mappings":"AAAA,OAAOA,KAAK,IACVC,aAAa,EACbC,UAAU,EACVC,QAAQ,EACRC,WAAW,QAEN,OAAO;AACd,SAASC,cAAc,QAAQ,eAAe;AAC9C,SAASC,YAAY,QAAQ,iBAAiB;AAoB9C,MAAMC,YAAY,gBAAGN,aAAa,CAA+BO,SAAS,CAAC;AAE3E,OAAO,MAAMC,aAAgD,GAAGC,IAAA,IAE1D;EAAA,IAF2D;IAC/DC;EACF,CAAC,GAAAD,IAAA;EACC,MAAM,CAACE,UAAU,EAAEC,aAAa,CAAC,GAAGV,QAAQ,CAAa;IACvDW,QAAQ,EAAE,KAAK;IACfC,KAAK,EAAE;EACT,CAAC,CAAC;EAEF,MAAMC,SAAS,GAAGZ,WAAW,CAAEW,KAAqB,IAAK;IACvD,MAAME,QAAQ,GAAG,OAAOF,KAAK,KAAK,QAAQ,GAAG,IAAIG,KAAK,CAACH,KAAK,CAAC,GAAGA,KAAK;IACrEF,aAAa,CAAC;MACZC,QAAQ,EAAE,IAAI;MACdC,KAAK,EAAEE;IACT,CAAC,CAAC;EACJ,CAAC,EAAE,EAAE,CAAC;EAEN,MAAME,UAAU,GAAGf,WAAW,CAAC,MAAM;IACnCS,aAAa,CAAC;MACZC,QAAQ,EAAE,KAAK;MACfC,KAAK,EAAE;IACT,CAAC,CAAC;EACJ,CAAC,EAAE,EAAE,CAAC;EAEN,IAAIH,UAAU,CAACE,QAAQ,IAAIF,UAAU,CAACG,KAAK,EAAE;IAC3C,MAAMK,QAAQ,GAAGd,YAAY,CAACe,gBAAgB,CAACT,UAAU,CAACG,KAAK,CAAC,CAACO,OAAO;IAExE,oBAAOtB,KAAA,CAAAuB,aAAA,CAAClB,cAAc;MAACe,QAAQ,EAAEA,QAAS;MAACI,QAAQ,EAAC;IAAY,CAAE,CAAC;EACrE;EAEA,oBACExB,KAAA,CAAAuB,aAAA,CAAChB,YAAY,CAACkB,QAAQ;IAACC,KAAK,EAAE;MAAEV,SAAS;MAAEG;IAAW;EAAE,GACrDR,QACoB,CAAC;AAE5B,CAAC;AAED,OAAO,MAAMgB,QAAQ,GAAGA,CAAA,KAAwB;EAC9C,MAAMC,OAAO,GAAG1B,UAAU,CAACK,YAAY,CAAC;EACxC,IAAI,CAACqB,OAAO,EAAE;IACZ,MAAM,IAAIV,KAAK,CAAC,+CAA+C,CAAC;EAClE;EACA,OAAOU,OAAO;AAChB,CAAC","ignoreList":[]}
|