@wix/auto-patterns 1.22.0 → 1.24.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.
Files changed (122) hide show
  1. package/dist/cjs/components/AutoPatternsEntityPage/AutoPatternsEntityPage.js +12 -323
  2. package/dist/cjs/components/AutoPatternsEntityPage/AutoPatternsEntityPage.js.map +1 -1
  3. package/dist/cjs/components/AutoPatternsEntityPage/EditModeEntityPage.js +172 -0
  4. package/dist/cjs/components/AutoPatternsEntityPage/EditModeEntityPage.js.map +1 -0
  5. package/dist/cjs/components/AutoPatternsEntityPage/RenderLayout/RenderLayoutCard.js +78 -0
  6. package/dist/cjs/components/AutoPatternsEntityPage/RenderLayout/RenderLayoutCard.js.map +1 -0
  7. package/dist/cjs/components/AutoPatternsEntityPage/RenderLayout/RenderLayoutContent.js +119 -0
  8. package/dist/cjs/components/AutoPatternsEntityPage/RenderLayout/RenderLayoutContent.js.map +1 -0
  9. package/dist/cjs/components/AutoPatternsEntityPage/RenderLayout/RenderViewField.js +79 -0
  10. package/dist/cjs/components/AutoPatternsEntityPage/RenderLayout/RenderViewField.js.map +1 -0
  11. package/dist/cjs/components/AutoPatternsEntityPage/RenderLayout/index.js +16 -0
  12. package/dist/cjs/components/AutoPatternsEntityPage/RenderLayout/index.js.map +1 -0
  13. package/dist/cjs/components/AutoPatternsEntityPage/ViewEntityPage/RenderViewLayoutCard.js +77 -0
  14. package/dist/cjs/components/AutoPatternsEntityPage/ViewEntityPage/RenderViewLayoutCard.js.map +1 -0
  15. package/dist/cjs/components/AutoPatternsEntityPage/ViewEntityPage/RenderViewLayoutContent.js +109 -0
  16. package/dist/cjs/components/AutoPatternsEntityPage/ViewEntityPage/RenderViewLayoutContent.js.map +1 -0
  17. package/dist/cjs/components/AutoPatternsEntityPage/ViewModeEntityPage.js +196 -0
  18. package/dist/cjs/components/AutoPatternsEntityPage/ViewModeEntityPage.js.map +1 -0
  19. package/dist/cjs/components/AutoPatternsEntityPage/index.js +12 -0
  20. package/dist/cjs/components/AutoPatternsEntityPage/index.js.map +1 -1
  21. package/dist/cjs/hooks/useActionCell.js.map +1 -1
  22. package/dist/cjs/hooks/useEntityPageActions.js +105 -0
  23. package/dist/cjs/hooks/useEntityPageActions.js.map +1 -0
  24. package/dist/cjs/hooks/useEntityPageMoreActions.js +10 -0
  25. package/dist/cjs/hooks/useEntityPageMoreActions.js.map +1 -1
  26. package/dist/cjs/hooks/useNavigateEditEntityAction.js +50 -0
  27. package/dist/cjs/hooks/useNavigateEditEntityAction.js.map +1 -0
  28. package/dist/cjs/hooks/useNavigationUtils.js +12 -1
  29. package/dist/cjs/hooks/useNavigationUtils.js.map +1 -1
  30. package/dist/cjs/providers/PatternsWizardOverridesContext.js +1 -1
  31. package/dist/cjs/providers/PatternsWizardOverridesContext.js.map +1 -1
  32. package/dist/cjs/types/EntityPageConfig.js.map +1 -1
  33. package/dist/cjs/types/actions/base.js.map +1 -1
  34. package/dist/cjs/types/actions/entityPageActions.js.map +1 -1
  35. package/dist/cjs/utils/actions/types.js.map +1 -1
  36. package/dist/docs/action_cell.md +6 -2
  37. package/dist/docs/app_config_structure.md +48 -6
  38. package/dist/docs/auto-patterns-guide.md +391 -60
  39. package/dist/docs/bulk_actions.md +7 -6
  40. package/dist/docs/collection_page_actions.md +14 -4
  41. package/dist/docs/custom_overrides.md +86 -15
  42. package/dist/docs/entity_page.md +65 -1
  43. package/dist/docs/entity_page_actions.md +13 -11
  44. package/dist/docs/entity_page_view_actions.md +137 -0
  45. package/dist/docs/index.md +6 -2
  46. package/dist/docs/pages_configuration.md +1 -11
  47. package/dist/docs/sdk_utilities.md +11 -4
  48. package/dist/docs/wix_fqdn_custom_data_source.md +25 -5
  49. package/dist/esm/components/AutoPatternsEntityPage/AutoPatternsEntityPage.js +9 -201
  50. package/dist/esm/components/AutoPatternsEntityPage/AutoPatternsEntityPage.js.map +1 -1
  51. package/dist/esm/components/AutoPatternsEntityPage/EditModeEntityPage.js +115 -0
  52. package/dist/esm/components/AutoPatternsEntityPage/EditModeEntityPage.js.map +1 -0
  53. package/dist/esm/components/AutoPatternsEntityPage/RenderLayout/RenderLayoutCard.js +33 -0
  54. package/dist/esm/components/AutoPatternsEntityPage/RenderLayout/RenderLayoutCard.js.map +1 -0
  55. package/dist/esm/components/AutoPatternsEntityPage/RenderLayout/RenderLayoutContent.js +70 -0
  56. package/dist/esm/components/AutoPatternsEntityPage/RenderLayout/RenderLayoutContent.js.map +1 -0
  57. package/dist/esm/components/AutoPatternsEntityPage/RenderLayout/RenderViewField.js +48 -0
  58. package/dist/esm/components/AutoPatternsEntityPage/RenderLayout/RenderViewField.js.map +1 -0
  59. package/dist/esm/components/AutoPatternsEntityPage/RenderLayout/index.js +3 -0
  60. package/dist/esm/components/AutoPatternsEntityPage/RenderLayout/index.js.map +1 -0
  61. package/dist/esm/components/AutoPatternsEntityPage/ViewEntityPage/RenderViewLayoutCard.js +31 -0
  62. package/dist/esm/components/AutoPatternsEntityPage/ViewEntityPage/RenderViewLayoutCard.js.map +1 -0
  63. package/dist/esm/components/AutoPatternsEntityPage/ViewEntityPage/RenderViewLayoutContent.js +66 -0
  64. package/dist/esm/components/AutoPatternsEntityPage/ViewEntityPage/RenderViewLayoutContent.js.map +1 -0
  65. package/dist/esm/components/AutoPatternsEntityPage/ViewModeEntityPage.js +109 -0
  66. package/dist/esm/components/AutoPatternsEntityPage/ViewModeEntityPage.js.map +1 -0
  67. package/dist/esm/components/AutoPatternsEntityPage/index.js +2 -0
  68. package/dist/esm/components/AutoPatternsEntityPage/index.js.map +1 -1
  69. package/dist/esm/hooks/useActionCell.js.map +1 -1
  70. package/dist/esm/hooks/useEntityPageActions.js +82 -0
  71. package/dist/esm/hooks/useEntityPageActions.js.map +1 -0
  72. package/dist/esm/hooks/useEntityPageMoreActions.js +11 -1
  73. package/dist/esm/hooks/useEntityPageMoreActions.js.map +1 -1
  74. package/dist/esm/hooks/useNavigateEditEntityAction.js +46 -0
  75. package/dist/esm/hooks/useNavigateEditEntityAction.js.map +1 -0
  76. package/dist/esm/hooks/useNavigationUtils.js +12 -1
  77. package/dist/esm/hooks/useNavigationUtils.js.map +1 -1
  78. package/dist/esm/providers/PatternsWizardOverridesContext.js.map +1 -1
  79. package/dist/esm/types/EntityPageConfig.js.map +1 -1
  80. package/dist/esm/types/actions/base.js.map +1 -1
  81. package/dist/esm/types/actions/entityPageActions.js.map +1 -1
  82. package/dist/esm/utils/actions/types.js.map +1 -1
  83. package/dist/types/components/AutoPatternsEntityPage/AutoPatternsEntityPage.d.ts.map +1 -1
  84. package/dist/types/components/AutoPatternsEntityPage/EditModeEntityPage.d.ts +6 -0
  85. package/dist/types/components/AutoPatternsEntityPage/EditModeEntityPage.d.ts.map +1 -0
  86. package/dist/types/components/AutoPatternsEntityPage/RenderLayout/RenderLayoutCard.d.ts +11 -0
  87. package/dist/types/components/AutoPatternsEntityPage/RenderLayout/RenderLayoutCard.d.ts.map +1 -0
  88. package/dist/types/components/AutoPatternsEntityPage/RenderLayout/RenderLayoutContent.d.ts +13 -0
  89. package/dist/types/components/AutoPatternsEntityPage/RenderLayout/RenderLayoutContent.d.ts.map +1 -0
  90. package/dist/types/components/AutoPatternsEntityPage/RenderLayout/RenderViewField.d.ts +8 -0
  91. package/dist/types/components/AutoPatternsEntityPage/RenderLayout/RenderViewField.d.ts.map +1 -0
  92. package/dist/types/components/AutoPatternsEntityPage/RenderLayout/index.d.ts +3 -0
  93. package/dist/types/components/AutoPatternsEntityPage/RenderLayout/index.d.ts.map +1 -0
  94. package/dist/types/components/AutoPatternsEntityPage/ViewEntityPage/RenderViewLayoutCard.d.ts +8 -0
  95. package/dist/types/components/AutoPatternsEntityPage/ViewEntityPage/RenderViewLayoutCard.d.ts.map +1 -0
  96. package/dist/types/components/AutoPatternsEntityPage/ViewEntityPage/RenderViewLayoutContent.d.ts +8 -0
  97. package/dist/types/components/AutoPatternsEntityPage/ViewEntityPage/RenderViewLayoutContent.d.ts.map +1 -0
  98. package/dist/types/components/AutoPatternsEntityPage/ViewModeEntityPage.d.ts +8 -0
  99. package/dist/types/components/AutoPatternsEntityPage/ViewModeEntityPage.d.ts.map +1 -0
  100. package/dist/types/components/AutoPatternsEntityPage/index.d.ts +2 -0
  101. package/dist/types/components/AutoPatternsEntityPage/index.d.ts.map +1 -1
  102. package/dist/types/hooks/useEntityPageActions.d.ts +9 -0
  103. package/dist/types/hooks/useEntityPageActions.d.ts.map +1 -0
  104. package/dist/types/hooks/useEntityPageHeaderTexts.d.ts.map +1 -1
  105. package/dist/types/hooks/useEntityPageMoreActions.d.ts +2 -2
  106. package/dist/types/hooks/useEntityPageMoreActions.d.ts.map +1 -1
  107. package/dist/types/hooks/useNavigateEditEntityAction.d.ts +6 -0
  108. package/dist/types/hooks/useNavigateEditEntityAction.d.ts.map +1 -0
  109. package/dist/types/hooks/useNavigationUtils.d.ts +1 -0
  110. package/dist/types/hooks/useNavigationUtils.d.ts.map +1 -1
  111. package/dist/types/providers/PatternsWizardOverridesContext.d.ts +2 -5
  112. package/dist/types/providers/PatternsWizardOverridesContext.d.ts.map +1 -1
  113. package/dist/types/types/EntityPageConfig.d.ts +20 -4
  114. package/dist/types/types/EntityPageConfig.d.ts.map +1 -1
  115. package/dist/types/types/actions/base.d.ts +0 -4
  116. package/dist/types/types/actions/base.d.ts.map +1 -1
  117. package/dist/types/types/actions/entityPageActions.d.ts +24 -5
  118. package/dist/types/types/actions/entityPageActions.d.ts.map +1 -1
  119. package/dist/types/utils/actions/types.d.ts +1 -1
  120. package/dist/types/utils/actions/types.d.ts.map +1 -1
  121. package/package.json +15 -15
  122. package/dist/docs/config_schema.md +0 -184
@@ -0,0 +1,48 @@
1
+ import React from 'react';
2
+ import { Cell, Box, Text } from '@wix/design-system';
3
+ export const RenderViewField = _ref => {
4
+ let {
5
+ field,
6
+ fieldId,
7
+ entity,
8
+ span
9
+ } = _ref;
10
+ const fieldValue = entity == null ? void 0 : entity[fieldId];
11
+
12
+ // Safe display value conversion for all field types
13
+ const getDisplayValue = value => {
14
+ if (value === null || value === undefined) {
15
+ return '-';
16
+ }
17
+ if (typeof value === 'string' || typeof value === 'number' || typeof value === 'boolean') {
18
+ return String(value);
19
+ }
20
+ if (Array.isArray(value)) {
21
+ return value.length > 0 ? value.join(', ') : '-';
22
+ }
23
+ if (typeof value === 'object') {
24
+ // Handle dates
25
+ if (value instanceof Date) {
26
+ return value.toLocaleDateString();
27
+ }
28
+ // Handle objects with display properties
29
+ if (value.toString && value.toString !== Object.prototype.toString) {
30
+ return value.toString();
31
+ }
32
+ // Fallback for complex objects
33
+ return JSON.stringify(value);
34
+ }
35
+ return String(value);
36
+ };
37
+ const displayValue = getDisplayValue(fieldValue);
38
+ return /*#__PURE__*/React.createElement(Cell, {
39
+ span: span
40
+ }, /*#__PURE__*/React.createElement(Box, {
41
+ direction: "vertical",
42
+ gap: "4px"
43
+ }, /*#__PURE__*/React.createElement(Text, {
44
+ size: "small",
45
+ secondary: true
46
+ }, field.displayName || fieldId), /*#__PURE__*/React.createElement(Text, null, displayValue)));
47
+ };
48
+ //# sourceMappingURL=RenderViewField.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"names":["React","Cell","Box","Text","RenderViewField","_ref","field","fieldId","entity","span","fieldValue","getDisplayValue","value","undefined","String","Array","isArray","length","join","Date","toLocaleDateString","toString","Object","prototype","JSON","stringify","displayValue","createElement","direction","gap","size","secondary","displayName"],"sources":["../../../../../src/components/AutoPatternsEntityPage/RenderLayout/RenderViewField.tsx"],"sourcesContent":["import React from 'react';\nimport { Cell, Box, Text } from '@wix/design-system';\n\nexport const RenderViewField: React.FC<{\n field: any;\n fieldId: string;\n entity: any;\n span?: number;\n}> = ({ field, fieldId, entity, span }) => {\n const fieldValue = entity?.[fieldId];\n\n // Safe display value conversion for all field types\n const getDisplayValue = (value: any): string => {\n if (value === null || value === undefined) {\n return '-';\n }\n if (\n typeof value === 'string' ||\n typeof value === 'number' ||\n typeof value === 'boolean'\n ) {\n return String(value);\n }\n if (Array.isArray(value)) {\n return value.length > 0 ? value.join(', ') : '-';\n }\n if (typeof value === 'object') {\n // Handle dates\n if (value instanceof Date) {\n return value.toLocaleDateString();\n }\n // Handle objects with display properties\n if (value.toString && value.toString !== Object.prototype.toString) {\n return value.toString();\n }\n // Fallback for complex objects\n return JSON.stringify(value);\n }\n return String(value);\n };\n\n const displayValue = getDisplayValue(fieldValue);\n\n return (\n <Cell span={span}>\n <Box direction=\"vertical\" gap=\"4px\">\n <Text size=\"small\" secondary>\n {field.displayName || fieldId}\n </Text>\n <Text>{displayValue}</Text>\n </Box>\n </Cell>\n );\n};\n"],"mappings":"AAAA,OAAOA,KAAK,MAAM,OAAO;AACzB,SAASC,IAAI,EAAEC,GAAG,EAAEC,IAAI,QAAQ,oBAAoB;AAEpD,OAAO,MAAMC,eAKX,GAAGC,IAAA,IAAsC;EAAA,IAArC;IAAEC,KAAK;IAAEC,OAAO;IAAEC,MAAM;IAAEC;EAAK,CAAC,GAAAJ,IAAA;EACpC,MAAMK,UAAU,GAAGF,MAAM,oBAANA,MAAM,CAAGD,OAAO,CAAC;;EAEpC;EACA,MAAMI,eAAe,GAAIC,KAAU,IAAa;IAC9C,IAAIA,KAAK,KAAK,IAAI,IAAIA,KAAK,KAAKC,SAAS,EAAE;MACzC,OAAO,GAAG;IACZ;IACA,IACE,OAAOD,KAAK,KAAK,QAAQ,IACzB,OAAOA,KAAK,KAAK,QAAQ,IACzB,OAAOA,KAAK,KAAK,SAAS,EAC1B;MACA,OAAOE,MAAM,CAACF,KAAK,CAAC;IACtB;IACA,IAAIG,KAAK,CAACC,OAAO,CAACJ,KAAK,CAAC,EAAE;MACxB,OAAOA,KAAK,CAACK,MAAM,GAAG,CAAC,GAAGL,KAAK,CAACM,IAAI,CAAC,IAAI,CAAC,GAAG,GAAG;IAClD;IACA,IAAI,OAAON,KAAK,KAAK,QAAQ,EAAE;MAC7B;MACA,IAAIA,KAAK,YAAYO,IAAI,EAAE;QACzB,OAAOP,KAAK,CAACQ,kBAAkB,CAAC,CAAC;MACnC;MACA;MACA,IAAIR,KAAK,CAACS,QAAQ,IAAIT,KAAK,CAACS,QAAQ,KAAKC,MAAM,CAACC,SAAS,CAACF,QAAQ,EAAE;QAClE,OAAOT,KAAK,CAACS,QAAQ,CAAC,CAAC;MACzB;MACA;MACA,OAAOG,IAAI,CAACC,SAAS,CAACb,KAAK,CAAC;IAC9B;IACA,OAAOE,MAAM,CAACF,KAAK,CAAC;EACtB,CAAC;EAED,MAAMc,YAAY,GAAGf,eAAe,CAACD,UAAU,CAAC;EAEhD,oBACEV,KAAA,CAAA2B,aAAA,CAAC1B,IAAI;IAACQ,IAAI,EAAEA;EAAK,gBACfT,KAAA,CAAA2B,aAAA,CAACzB,GAAG;IAAC0B,SAAS,EAAC,UAAU;IAACC,GAAG,EAAC;EAAK,gBACjC7B,KAAA,CAAA2B,aAAA,CAACxB,IAAI;IAAC2B,IAAI,EAAC,OAAO;IAACC,SAAS;EAAA,GACzBzB,KAAK,CAAC0B,WAAW,IAAIzB,OAClB,CAAC,eACPP,KAAA,CAAA2B,aAAA,CAACxB,IAAI,QAAEuB,YAAmB,CACvB,CACD,CAAC;AAEX,CAAC","ignoreList":[]}
@@ -0,0 +1,3 @@
1
+ export * from './RenderLayoutCard';
2
+ export * from './RenderLayoutContent';
3
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"names":[],"sources":["../../../../../src/components/AutoPatternsEntityPage/RenderLayout/index.ts"],"sourcesContent":["export * from './RenderLayoutCard';\nexport * from './RenderLayoutContent';\n"],"mappings":"AAAA,cAAc,oBAAoB;AAClC,cAAc,uBAAuB","ignoreList":[]}
@@ -0,0 +1,31 @@
1
+ import React from 'react';
2
+ import { Card, Layout } from '@wix/design-system';
3
+ import { RenderViewLayoutContent } from './RenderViewLayoutContent';
4
+ // TODO: remove this component and use RenderLayoutCard instead
5
+ export const RenderViewLayoutCard = _ref => {
6
+ var _layout$card$subtitle;
7
+ let {
8
+ entity,
9
+ layout,
10
+ sectionId,
11
+ cardIndex
12
+ } = _ref;
13
+ switch (layout.type) {
14
+ case 'card':
15
+ return /*#__PURE__*/React.createElement(Card, null, /*#__PURE__*/React.createElement(Card.Header, {
16
+ title: layout.card.title.text,
17
+ subtitle: (_layout$card$subtitle = layout.card.subtitle) == null ? void 0 : _layout$card$subtitle.text
18
+ }), /*#__PURE__*/React.createElement(Card.Divider, null), /*#__PURE__*/React.createElement(Card.Content, null, /*#__PURE__*/React.createElement(Layout, null, layout.card.children.map((child, index) => /*#__PURE__*/React.createElement(RenderViewLayoutContent, {
19
+ key: `${sectionId}-card-${cardIndex}-content-${index}`,
20
+ entity: entity,
21
+ content: child,
22
+ level: 0,
23
+ sectionId: sectionId,
24
+ cardIndex: cardIndex,
25
+ contentIndex: index
26
+ })))));
27
+ default:
28
+ return null;
29
+ }
30
+ };
31
+ //# sourceMappingURL=RenderViewLayoutCard.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"names":["React","Card","Layout","RenderViewLayoutContent","RenderViewLayoutCard","_ref","_layout$card$subtitle","entity","layout","sectionId","cardIndex","type","createElement","Header","title","card","text","subtitle","Divider","Content","children","map","child","index","key","content","level","contentIndex"],"sources":["../../../../../src/components/AutoPatternsEntityPage/ViewEntityPage/RenderViewLayoutCard.tsx"],"sourcesContent":["import React from 'react';\nimport { Card, Layout } from '@wix/design-system';\nimport { RenderViewLayoutContent } from './RenderViewLayoutContent';\nimport { RenderLayoutCardProps } from '../RenderLayout';\n\ninterface RenderViewLayoutCardProps\n extends Omit<RenderLayoutCardProps, 'setInputRef'> {\n entity: Record<string, any>;\n}\n\n// TODO: remove this component and use RenderLayoutCard instead\nexport const RenderViewLayoutCard: React.FC<RenderViewLayoutCardProps> = ({\n entity,\n layout,\n sectionId,\n cardIndex,\n}) => {\n switch (layout.type) {\n case 'card':\n return (\n <Card>\n <Card.Header\n title={layout.card.title.text}\n subtitle={layout.card.subtitle?.text}\n />\n <Card.Divider />\n <Card.Content>\n <Layout>\n {layout.card.children.map((child, index: number) => (\n <RenderViewLayoutContent\n key={`${sectionId}-card-${cardIndex}-content-${index}`}\n entity={entity}\n content={child}\n level={0}\n sectionId={sectionId}\n cardIndex={cardIndex}\n contentIndex={index}\n />\n ))}\n </Layout>\n </Card.Content>\n </Card>\n );\n default:\n return null;\n }\n};\n"],"mappings":"AAAA,OAAOA,KAAK,MAAM,OAAO;AACzB,SAASC,IAAI,EAAEC,MAAM,QAAQ,oBAAoB;AACjD,SAASC,uBAAuB,QAAQ,2BAA2B;AAQnE;AACA,OAAO,MAAMC,oBAAyD,GAAGC,IAAA,IAKnE;EAAA,IAAAC,qBAAA;EAAA,IALoE;IACxEC,MAAM;IACNC,MAAM;IACNC,SAAS;IACTC;EACF,CAAC,GAAAL,IAAA;EACC,QAAQG,MAAM,CAACG,IAAI;IACjB,KAAK,MAAM;MACT,oBACEX,KAAA,CAAAY,aAAA,CAACX,IAAI,qBACHD,KAAA,CAAAY,aAAA,CAACX,IAAI,CAACY,MAAM;QACVC,KAAK,EAAEN,MAAM,CAACO,IAAI,CAACD,KAAK,CAACE,IAAK;QAC9BC,QAAQ,GAAAX,qBAAA,GAAEE,MAAM,CAACO,IAAI,CAACE,QAAQ,qBAApBX,qBAAA,CAAsBU;MAAK,CACtC,CAAC,eACFhB,KAAA,CAAAY,aAAA,CAACX,IAAI,CAACiB,OAAO,MAAE,CAAC,eAChBlB,KAAA,CAAAY,aAAA,CAACX,IAAI,CAACkB,OAAO,qBACXnB,KAAA,CAAAY,aAAA,CAACV,MAAM,QACJM,MAAM,CAACO,IAAI,CAACK,QAAQ,CAACC,GAAG,CAAC,CAACC,KAAK,EAAEC,KAAa,kBAC7CvB,KAAA,CAAAY,aAAA,CAACT,uBAAuB;QACtBqB,GAAG,EAAE,GAAGf,SAAS,SAASC,SAAS,YAAYa,KAAK,EAAG;QACvDhB,MAAM,EAAEA,MAAO;QACfkB,OAAO,EAAEH,KAAM;QACfI,KAAK,EAAE,CAAE;QACTjB,SAAS,EAAEA,SAAU;QACrBC,SAAS,EAAEA,SAAU;QACrBiB,YAAY,EAAEJ;MAAM,CACrB,CACF,CACK,CACI,CACV,CAAC;IAEX;MACE,OAAO,IAAI;EACf;AACF,CAAC","ignoreList":[]}
@@ -0,0 +1,66 @@
1
+ import React from 'react';
2
+ import { Cell, Layout } from '@wix/design-system';
3
+ import { useSchema } from '../../../providers/SchemaContext';
4
+ import { usePatternsWizardOverridesContext } from '../../../providers';
5
+ import { RenderViewField } from '../RenderLayout/RenderViewField';
6
+ // TODO: remove this component and use RenderLayoutContent instead
7
+ export const RenderViewLayoutContent = _ref => {
8
+ var _content$container$ch, _overrides$components;
9
+ let {
10
+ entity,
11
+ content,
12
+ level,
13
+ sectionId,
14
+ cardIndex,
15
+ contentIndex
16
+ } = _ref;
17
+ const schema = useSchema();
18
+ const overrides = usePatternsWizardOverridesContext();
19
+ switch (content.type) {
20
+ case 'field':
21
+ if (!content.field.fieldId) {
22
+ return null;
23
+ }
24
+ const field = schema.fields[content.field.fieldId];
25
+ if (!field) {
26
+ return null;
27
+ }
28
+ return /*#__PURE__*/React.createElement(RenderViewField, {
29
+ field: field,
30
+ fieldId: content.field.fieldId,
31
+ entity: entity,
32
+ span: content.field.span
33
+ });
34
+ case 'container':
35
+ if (!((_content$container$ch = content.container.children) != null && _content$container$ch.length)) {
36
+ return null;
37
+ }
38
+ return /*#__PURE__*/React.createElement(Cell, {
39
+ span: content.container.span
40
+ }, /*#__PURE__*/React.createElement(Layout, null, content.container.children.map((child, index) => /*#__PURE__*/React.createElement(RenderViewLayoutContent, {
41
+ key: `${sectionId}-card-${cardIndex}-content-${contentIndex}-level-${level}-child-${index}`,
42
+ entity: entity,
43
+ content: child,
44
+ level: level + 1,
45
+ sectionId: sectionId,
46
+ cardIndex: cardIndex,
47
+ contentIndex: index
48
+ }))));
49
+ case 'component':
50
+ if (!content.component.componentId) {
51
+ return null;
52
+ }
53
+ const Component = overrides == null || (_overrides$components = overrides.components) == null ? void 0 : _overrides$components[content.component.componentId];
54
+ if (!Component) {
55
+ return null;
56
+ }
57
+ return /*#__PURE__*/React.createElement(Cell, {
58
+ span: content.component.span
59
+ }, /*#__PURE__*/React.createElement(Component, {
60
+ entity: entity
61
+ }));
62
+ default:
63
+ return null;
64
+ }
65
+ };
66
+ //# sourceMappingURL=RenderViewLayoutContent.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"names":["React","Cell","Layout","useSchema","usePatternsWizardOverridesContext","RenderViewField","RenderViewLayoutContent","_ref","_content$container$ch","_overrides$components","entity","content","level","sectionId","cardIndex","contentIndex","schema","overrides","type","field","fieldId","fields","createElement","span","container","children","length","map","child","index","key","component","componentId","Component","components"],"sources":["../../../../../src/components/AutoPatternsEntityPage/ViewEntityPage/RenderViewLayoutContent.tsx"],"sourcesContent":["import React from 'react';\nimport { Cell, Layout } from '@wix/design-system';\nimport { useSchema } from '../../../providers/SchemaContext';\nimport { usePatternsWizardOverridesContext } from '../../../providers';\nimport { RenderViewField } from '../RenderLayout/RenderViewField';\nimport { RenderLayoutContentProps } from '../RenderLayout';\n\ninterface RenderViewLayoutContentProps\n extends Omit<RenderLayoutContentProps, 'setInputRef'> {\n entity: Record<string, any>;\n}\n\n// TODO: remove this component and use RenderLayoutContent instead\nexport const RenderViewLayoutContent: React.FC<\n RenderViewLayoutContentProps\n> = ({ entity, content, level, sectionId, cardIndex, contentIndex }) => {\n const schema = useSchema();\n const overrides = usePatternsWizardOverridesContext();\n\n switch (content.type) {\n case 'field':\n if (!content.field.fieldId) {\n return null;\n }\n\n const field = schema.fields[content.field.fieldId];\n if (!field) {\n return null;\n }\n\n return (\n <RenderViewField\n field={field}\n fieldId={content.field.fieldId}\n entity={entity}\n span={content.field.span}\n />\n );\n\n case 'container':\n if (!content.container.children?.length) {\n return null;\n }\n\n return (\n <Cell span={content.container.span}>\n <Layout>\n {content.container.children.map((child, index) => (\n <RenderViewLayoutContent\n key={`${sectionId}-card-${cardIndex}-content-${contentIndex}-level-${level}-child-${index}`}\n entity={entity}\n content={child}\n level={level + 1}\n sectionId={sectionId}\n cardIndex={cardIndex}\n contentIndex={index}\n />\n ))}\n </Layout>\n </Cell>\n );\n\n case 'component':\n if (!content.component.componentId) {\n return null;\n }\n\n const Component = overrides?.components?.[content.component.componentId];\n if (!Component) {\n return null;\n }\n\n return (\n <Cell span={content.component.span}>\n <Component entity={entity} />\n </Cell>\n );\n\n default:\n return null;\n }\n};\n"],"mappings":"AAAA,OAAOA,KAAK,MAAM,OAAO;AACzB,SAASC,IAAI,EAAEC,MAAM,QAAQ,oBAAoB;AACjD,SAASC,SAAS,QAAQ,kCAAkC;AAC5D,SAASC,iCAAiC,QAAQ,oBAAoB;AACtE,SAASC,eAAe,QAAQ,iCAAiC;AAQjE;AACA,OAAO,MAAMC,uBAEZ,GAAGC,IAAA,IAAoE;EAAA,IAAAC,qBAAA,EAAAC,qBAAA;EAAA,IAAnE;IAAEC,MAAM;IAAEC,OAAO;IAAEC,KAAK;IAAEC,SAAS;IAAEC,SAAS;IAAEC;EAAa,CAAC,GAAAR,IAAA;EACjE,MAAMS,MAAM,GAAGb,SAAS,CAAC,CAAC;EAC1B,MAAMc,SAAS,GAAGb,iCAAiC,CAAC,CAAC;EAErD,QAAQO,OAAO,CAACO,IAAI;IAClB,KAAK,OAAO;MACV,IAAI,CAACP,OAAO,CAACQ,KAAK,CAACC,OAAO,EAAE;QAC1B,OAAO,IAAI;MACb;MAEA,MAAMD,KAAK,GAAGH,MAAM,CAACK,MAAM,CAACV,OAAO,CAACQ,KAAK,CAACC,OAAO,CAAC;MAClD,IAAI,CAACD,KAAK,EAAE;QACV,OAAO,IAAI;MACb;MAEA,oBACEnB,KAAA,CAAAsB,aAAA,CAACjB,eAAe;QACdc,KAAK,EAAEA,KAAM;QACbC,OAAO,EAAET,OAAO,CAACQ,KAAK,CAACC,OAAQ;QAC/BV,MAAM,EAAEA,MAAO;QACfa,IAAI,EAAEZ,OAAO,CAACQ,KAAK,CAACI;MAAK,CAC1B,CAAC;IAGN,KAAK,WAAW;MACd,IAAI,GAAAf,qBAAA,GAACG,OAAO,CAACa,SAAS,CAACC,QAAQ,aAA1BjB,qBAAA,CAA4BkB,MAAM,GAAE;QACvC,OAAO,IAAI;MACb;MAEA,oBACE1B,KAAA,CAAAsB,aAAA,CAACrB,IAAI;QAACsB,IAAI,EAAEZ,OAAO,CAACa,SAAS,CAACD;MAAK,gBACjCvB,KAAA,CAAAsB,aAAA,CAACpB,MAAM,QACJS,OAAO,CAACa,SAAS,CAACC,QAAQ,CAACE,GAAG,CAAC,CAACC,KAAK,EAAEC,KAAK,kBAC3C7B,KAAA,CAAAsB,aAAA,CAAChB,uBAAuB;QACtBwB,GAAG,EAAE,GAAGjB,SAAS,SAASC,SAAS,YAAYC,YAAY,UAAUH,KAAK,UAAUiB,KAAK,EAAG;QAC5FnB,MAAM,EAAEA,MAAO;QACfC,OAAO,EAAEiB,KAAM;QACfhB,KAAK,EAAEA,KAAK,GAAG,CAAE;QACjBC,SAAS,EAAEA,SAAU;QACrBC,SAAS,EAAEA,SAAU;QACrBC,YAAY,EAAEc;MAAM,CACrB,CACF,CACK,CACJ,CAAC;IAGX,KAAK,WAAW;MACd,IAAI,CAAClB,OAAO,CAACoB,SAAS,CAACC,WAAW,EAAE;QAClC,OAAO,IAAI;MACb;MAEA,MAAMC,SAAS,GAAGhB,SAAS,aAAAR,qBAAA,GAATQ,SAAS,CAAEiB,UAAU,qBAArBzB,qBAAA,CAAwBE,OAAO,CAACoB,SAAS,CAACC,WAAW,CAAC;MACxE,IAAI,CAACC,SAAS,EAAE;QACd,OAAO,IAAI;MACb;MAEA,oBACEjC,KAAA,CAAAsB,aAAA,CAACrB,IAAI;QAACsB,IAAI,EAAEZ,OAAO,CAACoB,SAAS,CAACR;MAAK,gBACjCvB,KAAA,CAAAsB,aAAA,CAACW,SAAS;QAACvB,MAAM,EAAEA;MAAO,CAAE,CACxB,CAAC;IAGX;MACE,OAAO,IAAI;EACf;AACF,CAAC","ignoreList":[]}
@@ -0,0 +1,109 @@
1
+ import React, { useEffect, useMemo, useState } from 'react';
2
+ import { Box, Cell, Heading, Layout, Page } from '@wix/design-system';
3
+ import { RenderViewLayoutCard } from './ViewEntityPage/RenderViewLayoutCard';
4
+ import { useParams } from 'react-router-dom';
5
+ import { useSchema } from '../../providers';
6
+ import { useNavigation } from '../../hooks/useNavigationUtils';
7
+ import { MoreActions } from '@wix/patterns';
8
+ import { useEntityPageActions } from '../../hooks/useEntityPageActions';
9
+ import { useEntityPageMoreActions } from '../../hooks/useEntityPageMoreActions';
10
+ import { useActionsSDK } from '../../hooks/useActionsSDK';
11
+ import { useNavigateEditEntityAction } from '../../hooks/useNavigateEditEntityAction';
12
+ // TODO: temp solution until we have a proper view mode entity page
13
+ export const ViewModeEntityPage = _ref => {
14
+ var _configuration$subtit, _pageLayout$main, _pageLayout$sidebar;
15
+ let {
16
+ configuration
17
+ } = _ref;
18
+ const {
19
+ route
20
+ } = configuration;
21
+ const params = useParams();
22
+ const entityId = params[route.params.id];
23
+ const schema = useSchema();
24
+ const {
25
+ layout: pageLayout
26
+ } = configuration;
27
+ const {
28
+ navigateToCollectionPage
29
+ } = useNavigation();
30
+ const [entity, setEntity] = useState(undefined);
31
+ useEffect(() => {
32
+ let isMounted = true;
33
+ const fetchEntity = async () => {
34
+ if (!entityId) {
35
+ setEntity(undefined);
36
+ return;
37
+ }
38
+ const fetchedEntity = await schema.actions.get(entityId);
39
+ if (isMounted) {
40
+ setEntity(fetchedEntity);
41
+ }
42
+ };
43
+ fetchEntity();
44
+ return () => {
45
+ isMounted = false;
46
+ };
47
+ }, [entityId, schema]);
48
+ const title = useMemo(() => {
49
+ if (configuration.title) {
50
+ return configuration.title.text;
51
+ } else {
52
+ return (entity == null ? void 0 : entity[schema.displayField]) ?? 'View Item';
53
+ }
54
+ }, [configuration.title, entity, schema.displayField]);
55
+ const subtitle = (_configuration$subtit = configuration.subtitle) == null ? void 0 : _configuration$subtit.text;
56
+ const sdk = useActionsSDK({
57
+ collectionId: configuration.collectionId
58
+ });
59
+ const actions = useEntityPageActions({
60
+ entityPageActions: configuration.actions,
61
+ entity,
62
+ sdk
63
+ });
64
+
65
+ // add OOTB navigate to edit action
66
+ const moreActions = useNavigateEditEntityAction({
67
+ displayName: entity == null ? void 0 : entity[schema.displayField],
68
+ configuration
69
+ });
70
+ const resolvedMoreActions = useEntityPageMoreActions(moreActions, entity, sdk);
71
+ return /*#__PURE__*/React.createElement(Page, {
72
+ dataHook: "view-mode-entity-page"
73
+ }, /*#__PURE__*/React.createElement(Page.Header, {
74
+ title: /*#__PURE__*/React.createElement(Heading, {
75
+ size: "extraLarge"
76
+ }, title),
77
+ subtitle: subtitle,
78
+ showBackButton: true,
79
+ onBackClicked: () => navigateToCollectionPage(configuration.parentPageId),
80
+ actionsBar: /*#__PURE__*/React.createElement(Box, {
81
+ gap: "SP2"
82
+ }, resolvedMoreActions.length > 0 ? /*#__PURE__*/React.createElement(MoreActions, {
83
+ items: resolvedMoreActions
84
+ }) : undefined, actions)
85
+ }), /*#__PURE__*/React.createElement(Page.Content, null, /*#__PURE__*/React.createElement(Layout, null, /*#__PURE__*/React.createElement(Cell, {
86
+ span: pageLayout != null && pageLayout.sidebar ? 8 : 12
87
+ }, /*#__PURE__*/React.createElement(Box, {
88
+ direction: "vertical",
89
+ gap: "SP4"
90
+ }, pageLayout == null || (_pageLayout$main = pageLayout.main) == null ? void 0 : _pageLayout$main.map((layout, layoutIndex) => /*#__PURE__*/React.createElement(RenderViewLayoutCard, {
91
+ key: `main-section-card-${layoutIndex}`,
92
+ entity: entity,
93
+ layout: layout,
94
+ sectionId: "main",
95
+ cardIndex: layoutIndex
96
+ })))), pageLayout != null && pageLayout.sidebar ? /*#__PURE__*/React.createElement(Cell, {
97
+ span: 4
98
+ }, /*#__PURE__*/React.createElement(Box, {
99
+ direction: "vertical",
100
+ gap: "SP4"
101
+ }, (_pageLayout$sidebar = pageLayout.sidebar) == null ? void 0 : _pageLayout$sidebar.map((layout, layoutIndex) => /*#__PURE__*/React.createElement(RenderViewLayoutCard, {
102
+ key: `sidebar-section-card-${layoutIndex}`,
103
+ entity: entity,
104
+ layout: layout,
105
+ sectionId: "sidebar",
106
+ cardIndex: layoutIndex
107
+ })))) : null)));
108
+ };
109
+ //# sourceMappingURL=ViewModeEntityPage.js.map
@@ -0,0 +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 items={resolvedMoreActions} />\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":"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","ignoreList":[]}
@@ -1,2 +1,4 @@
1
1
  export * from './AutoPatternsEntityPage';
2
+ export * from './ViewModeEntityPage';
3
+ export * from './RenderLayout';
2
4
  //# sourceMappingURL=index.js.map
@@ -1 +1 @@
1
- {"version":3,"names":[],"sources":["../../../../src/components/AutoPatternsEntityPage/index.ts"],"sourcesContent":["export * from './AutoPatternsEntityPage';\n"],"mappings":"AAAA,cAAc,0BAA0B","ignoreList":[]}
1
+ {"version":3,"names":[],"sources":["../../../../src/components/AutoPatternsEntityPage/index.ts"],"sourcesContent":["export * from './AutoPatternsEntityPage';\nexport * from './ViewModeEntityPage';\nexport * from './RenderLayout';\n"],"mappings":"AAAA,cAAc,0BAA0B;AACxC,cAAc,sBAAsB;AACpC,cAAc,gBAAgB","ignoreList":[]}
@@ -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 } = 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":[]}
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 } = 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":[]}
@@ -0,0 +1,82 @@
1
+ import React, { useCallback } from 'react';
2
+ import { createAction, customAction, resolveAction, groupActions } from '../utils/actions';
3
+ import { PrimaryActions, SecondaryActions } from '@wix/patterns';
4
+ export const useEntityPageActions = _ref => {
5
+ let {
6
+ entityPageActions,
7
+ entity,
8
+ sdk
9
+ } = _ref;
10
+ const buildEntityPageActions = useCallback(() => {
11
+ if (!entityPageActions) {
12
+ return;
13
+ }
14
+ const buildAction = actionConfig => {
15
+ let actionToResolve = null;
16
+ const baseParams = {
17
+ actionParams: {
18
+ entity
19
+ },
20
+ sdk
21
+ };
22
+ switch (actionConfig.type) {
23
+ case 'create':
24
+ actionToResolve = createAction({
25
+ action: actionConfig,
26
+ ...baseParams
27
+ });
28
+ break;
29
+ case 'custom':
30
+ actionToResolve = customAction({
31
+ action: actionConfig,
32
+ ...baseParams
33
+ });
34
+ break;
35
+ default:
36
+ return null;
37
+ }
38
+ if (!actionToResolve) {
39
+ return null;
40
+ }
41
+ const resolvedAction = resolveAction(actionConfig, actionToResolve);
42
+ const {
43
+ tooltip,
44
+ icon,
45
+ ...resolvedActionProps
46
+ } = resolvedAction;
47
+ return {
48
+ ...resolvedActionProps,
49
+ prefixIcon: icon,
50
+ disabledDescription: resolvedAction.tooltip
51
+ };
52
+ };
53
+ const handleActionsType = actions => {
54
+ if (actions.type === 'action') {
55
+ return buildAction(actions.action.item);
56
+ }
57
+ if (actions.type === 'menu') {
58
+ const actionGroups = groupActions(actions.menu.items);
59
+ const subItems = actionGroups.map(group => group.map(buildAction).filter(action => action !== null)).filter(group => group.length > 0);
60
+ if (!subItems.length) {
61
+ return null;
62
+ }
63
+ return {
64
+ label: actions.menu.label,
65
+ subItems
66
+ };
67
+ }
68
+ return null;
69
+ };
70
+ const primaryActions = (entityPageActions == null ? void 0 : entityPageActions.primaryActions) && handleActionsType(entityPageActions.primaryActions);
71
+ const secondaryActions = (entityPageActions == null ? void 0 : entityPageActions.secondaryActions) && handleActionsType(entityPageActions.secondaryActions);
72
+ if (!primaryActions && !secondaryActions) {
73
+ return;
74
+ }
75
+ return /*#__PURE__*/React.createElement(React.Fragment, null, secondaryActions ? /*#__PURE__*/React.createElement(SecondaryActions, secondaryActions) : undefined, primaryActions ? /*#__PURE__*/React.createElement(PrimaryActions, primaryActions) : undefined);
76
+ }, [entityPageActions, entity, sdk]);
77
+ if (!(entityPageActions != null && entityPageActions.primaryActions) && !(entityPageActions != null && entityPageActions.secondaryActions)) {
78
+ return null;
79
+ }
80
+ return buildEntityPageActions() ?? null;
81
+ };
82
+ //# sourceMappingURL=useEntityPageActions.js.map
@@ -0,0 +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":"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","ignoreList":[]}
@@ -1,4 +1,4 @@
1
- import { customAction, resolveAction, groupActions } from '../utils/actions';
1
+ import { customAction, resolveAction, groupActions, updateAction } from '../utils/actions';
2
2
  import { useCallback } from 'react';
3
3
  export function useEntityPageMoreActions(moreActions, entity, sdk, form) {
4
4
  const buildEntityPageActions = useCallback(() => {
@@ -15,6 +15,16 @@ export function useEntityPageMoreActions(moreActions, entity, sdk, form) {
15
15
  sdk
16
16
  };
17
17
  switch (actionConfig.type) {
18
+ case 'update':
19
+ actionToResolve = updateAction({
20
+ action: actionConfig,
21
+ ...baseParams,
22
+ actionParams: {
23
+ ...baseParams.actionParams,
24
+ item: entity
25
+ }
26
+ });
27
+ break;
18
28
  case 'custom':
19
29
  actionToResolve = customAction({
20
30
  action: actionConfig,
@@ -1 +1 @@
1
- {"version":3,"names":["customAction","resolveAction","groupActions","useCallback","useEntityPageMoreActions","moreActions","entity","sdk","form","buildEntityPageActions","buildAction","actionConfig","actionToResolve","baseParams","actionParams","type","action","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 { EntityPageMoreActions } from '../types/actions';\nimport { customAction, resolveAction, groupActions } from '../utils/actions';\nimport { useCallback } from 'react';\nimport { MoreActionsItem } from '@wix/patterns';\nimport { FieldValues, UseFormReturn } from '@wix/patterns/form';\nimport { CustomActionConfig } from '../types/actions/base';\n\nexport function useEntityPageMoreActions(\n moreActions: EntityPageMoreActions | 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,\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 '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":"AAEA,SAASA,YAAY,EAAEC,aAAa,EAAEC,YAAY,QAAQ,kBAAkB;AAC5E,SAASC,WAAW,QAAQ,OAAO;AAKnC,OAAO,SAASC,wBAAwBA,CACtCC,WAA8C,EAC9CC,MAA2B,EAC3BC,GAAe,EACfC,IAAgD,EAChD;EACA,MAAMC,sBAAsB,GAAGN,WAAW,CAAC,MAAM;IAC/C,IAAI,CAACE,WAAW,EAAE;MAChB;IACF;IAEA,MAAMK,WAAW,GACfC,YAAgC,IACL;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,GAAGZ,YAAY,CAAC;YAC7BgB,MAAM,EAAEL,YAAY;YACpB,GAAGE;UACL,CAAC,CAAC;UACF;QACF;UACE,OAAO,IAAI;MACf;MAEA,IAAI,CAACD,eAAe,EAAE;QACpB,OAAO,IAAI;MACb;MAEA,MAAMK,QAAQ,GAAGhB,aAAa,CAC5BU,YAAY,EACZC,eACF,CAAmB;MAEnB,OAAO;QACLM,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,GAAGtB,YAAY,CAACG,WAAW,CAAC;IAC9C,OAAOmB,YAAY,CAChBC,GAAG,CAAEC,KAAK,IACTA,KAAK,CACFD,GAAG,CAACf,WAAW,CAAC,CAChBiB,MAAM,CAAEX,MAAM,IAAgCY,OAAO,CAACZ,MAAM,CAAC,CAClE,CAAC,CACAW,MAAM,CAAED,KAAK,IAAKA,KAAK,CAACG,MAAM,GAAG,CAAC,CAAC;EACxC,CAAC,EAAE,CAACxB,WAAW,EAAEE,GAAG,EAAED,MAAM,EAAEE,IAAI,CAAC,CAAC;EAEpC,OAAOC,sBAAsB,CAAC,CAAC,IAAI,EAAE;AACvC","ignoreList":[]}
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;QACpB,OAAO,IAAI;MACb;MAEA,MAAMM,QAAQ,GAAGlB,aAAa,CAC5BW,YAAY,EACZC,eACF,CAAmB;MAEnB,OAAO;QACLO,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,GAAGxB,YAAY,CAACI,WAAW,CAAC;IAC9C,OAAOoB,YAAY,CAChBC,GAAG,CAAEC,KAAK,IACTA,KAAK,CACFD,GAAG,CAAChB,WAAW,CAAC,CAChBkB,MAAM,CAAEZ,MAAM,IAAgCa,OAAO,CAACb,MAAM,CAAC,CAClE,CAAC,CACAY,MAAM,CAAED,KAAK,IAAKA,KAAK,CAACG,MAAM,GAAG,CAAC,CAAC;EACxC,CAAC,EAAE,CAACzB,WAAW,EAAEE,GAAG,EAAED,MAAM,EAAEE,IAAI,CAAC,CAAC;EAEpC,OAAOC,sBAAsB,CAAC,CAAC,IAAI,EAAE;AACvC","ignoreList":[]}
@@ -0,0 +1,46 @@
1
+ import { useMemo } from 'react';
2
+ import { useAppConfigContext } from '../providers';
3
+ export const useNavigateEditEntityAction = _ref => {
4
+ var _configuration$action3;
5
+ let {
6
+ displayName,
7
+ configuration
8
+ } = _ref;
9
+ const appConfig = useAppConfigContext();
10
+ const editPageId = useMemo(() => {
11
+ // Find edit page by matching collectionId and looking for edit mode
12
+ const editPage = appConfig.pages.find(page => {
13
+ if (page.type !== 'entityPage') {
14
+ return false;
15
+ }
16
+ const entityPage = page.entityPage;
17
+ // Check if same collection and is edit mode (either no mode specified or mode: 'edit')
18
+ return entityPage.collectionId === configuration.collectionId && (!entityPage.mode || entityPage.mode === 'edit');
19
+ });
20
+ return editPage == null ? void 0 : editPage.id;
21
+ }, [appConfig.pages, configuration.collectionId]);
22
+ return useMemo(() => {
23
+ var _configuration$action2;
24
+ // Don't show edit action if no edit page is found
25
+ if (!editPageId) {
26
+ var _configuration$action;
27
+ return ((_configuration$action = configuration.actions) == null ? void 0 : _configuration$action.moreActions) || [];
28
+ }
29
+ const navigateToEditAction = {
30
+ id: 'navigate-to-edit',
31
+ label: `Edit ${displayName}`,
32
+ type: 'update',
33
+ update: {
34
+ mode: 'page',
35
+ page: {
36
+ id: editPageId
37
+ }
38
+ }
39
+ };
40
+ if (!((_configuration$action2 = configuration.actions) != null && _configuration$action2.moreActions)) {
41
+ return [navigateToEditAction];
42
+ }
43
+ return [navigateToEditAction, ...configuration.actions.moreActions];
44
+ }, [(_configuration$action3 = configuration.actions) == null ? void 0 : _configuration$action3.moreActions, displayName, editPageId]);
45
+ };
46
+ //# sourceMappingURL=useNavigateEditEntityAction.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"names":["useMemo","useAppConfigContext","useNavigateEditEntityAction","_ref","_configuration$action3","displayName","configuration","appConfig","editPageId","editPage","pages","find","page","type","entityPage","collectionId","mode","id","_configuration$action2","_configuration$action","actions","moreActions","navigateToEditAction","label","update"],"sources":["../../../src/hooks/useNavigateEditEntityAction.tsx"],"sourcesContent":["import { useMemo } from 'react';\nimport { UpdateActionConfig, ViewEntityPageConfig } from '../types';\nimport { useAppConfigContext } from '../providers';\n\nexport const useNavigateEditEntityAction = ({\n displayName,\n configuration,\n}: {\n displayName: string;\n configuration: ViewEntityPageConfig;\n}) => {\n const appConfig = useAppConfigContext();\n\n const editPageId = useMemo(() => {\n // Find edit page by matching collectionId and looking for edit mode\n const editPage = appConfig.pages.find((page) => {\n if (page.type !== 'entityPage') {\n return false;\n }\n\n const entityPage = page.entityPage;\n // Check if same collection and is edit mode (either no mode specified or mode: 'edit')\n return (\n entityPage.collectionId === configuration.collectionId &&\n (!entityPage.mode || entityPage.mode === 'edit')\n );\n });\n\n return editPage?.id;\n }, [appConfig.pages, configuration.collectionId]);\n\n return useMemo(() => {\n // Don't show edit action if no edit page is found\n if (!editPageId) {\n return configuration.actions?.moreActions || [];\n }\n\n const navigateToEditAction: UpdateActionConfig = {\n id: 'navigate-to-edit',\n label: `Edit ${displayName}`,\n type: 'update',\n update: {\n mode: 'page',\n page: {\n id: editPageId,\n },\n },\n };\n\n if (!configuration.actions?.moreActions) {\n return [navigateToEditAction];\n }\n return [navigateToEditAction, ...configuration.actions.moreActions];\n }, [configuration.actions?.moreActions, displayName, editPageId]);\n};\n"],"mappings":"AAAA,SAASA,OAAO,QAAQ,OAAO;AAE/B,SAASC,mBAAmB,QAAQ,cAAc;AAElD,OAAO,MAAMC,2BAA2B,GAAGC,IAAA,IAMrC;EAAA,IAAAC,sBAAA;EAAA,IANsC;IAC1CC,WAAW;IACXC;EAIF,CAAC,GAAAH,IAAA;EACC,MAAMI,SAAS,GAAGN,mBAAmB,CAAC,CAAC;EAEvC,MAAMO,UAAU,GAAGR,OAAO,CAAC,MAAM;IAC/B;IACA,MAAMS,QAAQ,GAAGF,SAAS,CAACG,KAAK,CAACC,IAAI,CAAEC,IAAI,IAAK;MAC9C,IAAIA,IAAI,CAACC,IAAI,KAAK,YAAY,EAAE;QAC9B,OAAO,KAAK;MACd;MAEA,MAAMC,UAAU,GAAGF,IAAI,CAACE,UAAU;MAClC;MACA,OACEA,UAAU,CAACC,YAAY,KAAKT,aAAa,CAACS,YAAY,KACrD,CAACD,UAAU,CAACE,IAAI,IAAIF,UAAU,CAACE,IAAI,KAAK,MAAM,CAAC;IAEpD,CAAC,CAAC;IAEF,OAAOP,QAAQ,oBAARA,QAAQ,CAAEQ,EAAE;EACrB,CAAC,EAAE,CAACV,SAAS,CAACG,KAAK,EAAEJ,aAAa,CAACS,YAAY,CAAC,CAAC;EAEjD,OAAOf,OAAO,CAAC,MAAM;IAAA,IAAAkB,sBAAA;IACnB;IACA,IAAI,CAACV,UAAU,EAAE;MAAA,IAAAW,qBAAA;MACf,OAAO,EAAAA,qBAAA,GAAAb,aAAa,CAACc,OAAO,qBAArBD,qBAAA,CAAuBE,WAAW,KAAI,EAAE;IACjD;IAEA,MAAMC,oBAAwC,GAAG;MAC/CL,EAAE,EAAE,kBAAkB;MACtBM,KAAK,EAAE,QAAQlB,WAAW,EAAE;MAC5BQ,IAAI,EAAE,QAAQ;MACdW,MAAM,EAAE;QACNR,IAAI,EAAE,MAAM;QACZJ,IAAI,EAAE;UACJK,EAAE,EAAET;QACN;MACF;IACF,CAAC;IAED,IAAI,GAAAU,sBAAA,GAACZ,aAAa,CAACc,OAAO,aAArBF,sBAAA,CAAuBG,WAAW,GAAE;MACvC,OAAO,CAACC,oBAAoB,CAAC;IAC/B;IACA,OAAO,CAACA,oBAAoB,EAAE,GAAGhB,aAAa,CAACc,OAAO,CAACC,WAAW,CAAC;EACrE,CAAC,EAAE,EAAAjB,sBAAA,GAACE,aAAa,CAACc,OAAO,qBAArBhB,sBAAA,CAAuBiB,WAAW,EAAEhB,WAAW,EAAEG,UAAU,CAAC,CAAC;AACnE,CAAC","ignoreList":[]}
@@ -5,7 +5,8 @@ import { generatePath } from 'react-router-dom';
5
5
  import { usePagePath } from './usePagePath';
6
6
  export const useNavigation = () => {
7
7
  const {
8
- navigateToEntityPage: navigateToEntityPagePatterns
8
+ navigateToEntityPage: navigateToEntityPagePatterns,
9
+ navigateToCollectionPage: navigateToCollectionPagePatterns
9
10
  } = usePatternsNavigate();
10
11
  const appConfig = useAppConfigContext();
11
12
  const {
@@ -39,11 +40,21 @@ export const useNavigation = () => {
39
40
  });
40
41
  }
41
42
  }, [appConfig, navigateToEntityPagePatterns, getSchema]);
43
+ const navigateToCollectionPage = useCallback(parentPageId => {
44
+ const parentPagePath = getPagePath(parentPageId);
45
+ if (!parentPagePath) {
46
+ return;
47
+ }
48
+ navigateToCollectionPagePatterns({
49
+ path: parentPagePath
50
+ });
51
+ }, [navigateToCollectionPagePatterns, getPagePath]);
42
52
  const getParentPagePath = useCallback(parentPageId => {
43
53
  return getPagePath(parentPageId);
44
54
  }, [getPagePath]);
45
55
  return {
46
56
  navigateToEntityPage,
57
+ navigateToCollectionPage,
47
58
  getParentPagePath,
48
59
  getPagePath
49
60
  };