@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.
- package/dist/cjs/components/AutoPatternsEntityPage/AutoPatternsEntityPage.js +12 -323
- package/dist/cjs/components/AutoPatternsEntityPage/AutoPatternsEntityPage.js.map +1 -1
- package/dist/cjs/components/AutoPatternsEntityPage/EditModeEntityPage.js +172 -0
- package/dist/cjs/components/AutoPatternsEntityPage/EditModeEntityPage.js.map +1 -0
- package/dist/cjs/components/AutoPatternsEntityPage/RenderLayout/RenderLayoutCard.js +78 -0
- package/dist/cjs/components/AutoPatternsEntityPage/RenderLayout/RenderLayoutCard.js.map +1 -0
- package/dist/cjs/components/AutoPatternsEntityPage/RenderLayout/RenderLayoutContent.js +119 -0
- package/dist/cjs/components/AutoPatternsEntityPage/RenderLayout/RenderLayoutContent.js.map +1 -0
- package/dist/cjs/components/AutoPatternsEntityPage/RenderLayout/RenderViewField.js +79 -0
- package/dist/cjs/components/AutoPatternsEntityPage/RenderLayout/RenderViewField.js.map +1 -0
- package/dist/cjs/components/AutoPatternsEntityPage/RenderLayout/index.js +16 -0
- package/dist/cjs/components/AutoPatternsEntityPage/RenderLayout/index.js.map +1 -0
- package/dist/cjs/components/AutoPatternsEntityPage/ViewEntityPage/RenderViewLayoutCard.js +77 -0
- package/dist/cjs/components/AutoPatternsEntityPage/ViewEntityPage/RenderViewLayoutCard.js.map +1 -0
- package/dist/cjs/components/AutoPatternsEntityPage/ViewEntityPage/RenderViewLayoutContent.js +109 -0
- package/dist/cjs/components/AutoPatternsEntityPage/ViewEntityPage/RenderViewLayoutContent.js.map +1 -0
- package/dist/cjs/components/AutoPatternsEntityPage/ViewModeEntityPage.js +196 -0
- package/dist/cjs/components/AutoPatternsEntityPage/ViewModeEntityPage.js.map +1 -0
- package/dist/cjs/components/AutoPatternsEntityPage/index.js +12 -0
- package/dist/cjs/components/AutoPatternsEntityPage/index.js.map +1 -1
- package/dist/cjs/hooks/useActionCell.js.map +1 -1
- package/dist/cjs/hooks/useEntityPageActions.js +105 -0
- package/dist/cjs/hooks/useEntityPageActions.js.map +1 -0
- package/dist/cjs/hooks/useEntityPageMoreActions.js +10 -0
- package/dist/cjs/hooks/useEntityPageMoreActions.js.map +1 -1
- package/dist/cjs/hooks/useNavigateEditEntityAction.js +50 -0
- package/dist/cjs/hooks/useNavigateEditEntityAction.js.map +1 -0
- package/dist/cjs/hooks/useNavigationUtils.js +12 -1
- package/dist/cjs/hooks/useNavigationUtils.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/EntityPageConfig.js.map +1 -1
- package/dist/cjs/types/actions/base.js.map +1 -1
- package/dist/cjs/types/actions/entityPageActions.js.map +1 -1
- package/dist/cjs/utils/actions/types.js.map +1 -1
- package/dist/docs/action_cell.md +6 -2
- package/dist/docs/app_config_structure.md +48 -6
- package/dist/docs/auto-patterns-guide.md +391 -60
- package/dist/docs/bulk_actions.md +7 -6
- package/dist/docs/collection_page_actions.md +14 -4
- package/dist/docs/custom_overrides.md +86 -15
- package/dist/docs/entity_page.md +65 -1
- package/dist/docs/entity_page_actions.md +13 -11
- package/dist/docs/entity_page_view_actions.md +137 -0
- package/dist/docs/index.md +6 -2
- package/dist/docs/pages_configuration.md +1 -11
- package/dist/docs/sdk_utilities.md +11 -4
- package/dist/docs/wix_fqdn_custom_data_source.md +25 -5
- package/dist/esm/components/AutoPatternsEntityPage/AutoPatternsEntityPage.js +9 -201
- package/dist/esm/components/AutoPatternsEntityPage/AutoPatternsEntityPage.js.map +1 -1
- package/dist/esm/components/AutoPatternsEntityPage/EditModeEntityPage.js +115 -0
- package/dist/esm/components/AutoPatternsEntityPage/EditModeEntityPage.js.map +1 -0
- package/dist/esm/components/AutoPatternsEntityPage/RenderLayout/RenderLayoutCard.js +33 -0
- package/dist/esm/components/AutoPatternsEntityPage/RenderLayout/RenderLayoutCard.js.map +1 -0
- package/dist/esm/components/AutoPatternsEntityPage/RenderLayout/RenderLayoutContent.js +70 -0
- package/dist/esm/components/AutoPatternsEntityPage/RenderLayout/RenderLayoutContent.js.map +1 -0
- package/dist/esm/components/AutoPatternsEntityPage/RenderLayout/RenderViewField.js +48 -0
- package/dist/esm/components/AutoPatternsEntityPage/RenderLayout/RenderViewField.js.map +1 -0
- package/dist/esm/components/AutoPatternsEntityPage/RenderLayout/index.js +3 -0
- package/dist/esm/components/AutoPatternsEntityPage/RenderLayout/index.js.map +1 -0
- package/dist/esm/components/AutoPatternsEntityPage/ViewEntityPage/RenderViewLayoutCard.js +31 -0
- package/dist/esm/components/AutoPatternsEntityPage/ViewEntityPage/RenderViewLayoutCard.js.map +1 -0
- package/dist/esm/components/AutoPatternsEntityPage/ViewEntityPage/RenderViewLayoutContent.js +66 -0
- package/dist/esm/components/AutoPatternsEntityPage/ViewEntityPage/RenderViewLayoutContent.js.map +1 -0
- package/dist/esm/components/AutoPatternsEntityPage/ViewModeEntityPage.js +109 -0
- package/dist/esm/components/AutoPatternsEntityPage/ViewModeEntityPage.js.map +1 -0
- package/dist/esm/components/AutoPatternsEntityPage/index.js +2 -0
- package/dist/esm/components/AutoPatternsEntityPage/index.js.map +1 -1
- package/dist/esm/hooks/useActionCell.js.map +1 -1
- package/dist/esm/hooks/useEntityPageActions.js +82 -0
- package/dist/esm/hooks/useEntityPageActions.js.map +1 -0
- package/dist/esm/hooks/useEntityPageMoreActions.js +11 -1
- package/dist/esm/hooks/useEntityPageMoreActions.js.map +1 -1
- package/dist/esm/hooks/useNavigateEditEntityAction.js +46 -0
- package/dist/esm/hooks/useNavigateEditEntityAction.js.map +1 -0
- package/dist/esm/hooks/useNavigationUtils.js +12 -1
- package/dist/esm/hooks/useNavigationUtils.js.map +1 -1
- package/dist/esm/providers/PatternsWizardOverridesContext.js.map +1 -1
- package/dist/esm/types/EntityPageConfig.js.map +1 -1
- package/dist/esm/types/actions/base.js.map +1 -1
- package/dist/esm/types/actions/entityPageActions.js.map +1 -1
- package/dist/esm/utils/actions/types.js.map +1 -1
- package/dist/types/components/AutoPatternsEntityPage/AutoPatternsEntityPage.d.ts.map +1 -1
- package/dist/types/components/AutoPatternsEntityPage/EditModeEntityPage.d.ts +6 -0
- package/dist/types/components/AutoPatternsEntityPage/EditModeEntityPage.d.ts.map +1 -0
- package/dist/types/components/AutoPatternsEntityPage/RenderLayout/RenderLayoutCard.d.ts +11 -0
- package/dist/types/components/AutoPatternsEntityPage/RenderLayout/RenderLayoutCard.d.ts.map +1 -0
- package/dist/types/components/AutoPatternsEntityPage/RenderLayout/RenderLayoutContent.d.ts +13 -0
- package/dist/types/components/AutoPatternsEntityPage/RenderLayout/RenderLayoutContent.d.ts.map +1 -0
- package/dist/types/components/AutoPatternsEntityPage/RenderLayout/RenderViewField.d.ts +8 -0
- package/dist/types/components/AutoPatternsEntityPage/RenderLayout/RenderViewField.d.ts.map +1 -0
- package/dist/types/components/AutoPatternsEntityPage/RenderLayout/index.d.ts +3 -0
- package/dist/types/components/AutoPatternsEntityPage/RenderLayout/index.d.ts.map +1 -0
- package/dist/types/components/AutoPatternsEntityPage/ViewEntityPage/RenderViewLayoutCard.d.ts +8 -0
- package/dist/types/components/AutoPatternsEntityPage/ViewEntityPage/RenderViewLayoutCard.d.ts.map +1 -0
- package/dist/types/components/AutoPatternsEntityPage/ViewEntityPage/RenderViewLayoutContent.d.ts +8 -0
- package/dist/types/components/AutoPatternsEntityPage/ViewEntityPage/RenderViewLayoutContent.d.ts.map +1 -0
- package/dist/types/components/AutoPatternsEntityPage/ViewModeEntityPage.d.ts +8 -0
- package/dist/types/components/AutoPatternsEntityPage/ViewModeEntityPage.d.ts.map +1 -0
- package/dist/types/components/AutoPatternsEntityPage/index.d.ts +2 -0
- package/dist/types/components/AutoPatternsEntityPage/index.d.ts.map +1 -1
- package/dist/types/hooks/useEntityPageActions.d.ts +9 -0
- package/dist/types/hooks/useEntityPageActions.d.ts.map +1 -0
- package/dist/types/hooks/useEntityPageHeaderTexts.d.ts.map +1 -1
- package/dist/types/hooks/useEntityPageMoreActions.d.ts +2 -2
- package/dist/types/hooks/useEntityPageMoreActions.d.ts.map +1 -1
- package/dist/types/hooks/useNavigateEditEntityAction.d.ts +6 -0
- package/dist/types/hooks/useNavigateEditEntityAction.d.ts.map +1 -0
- package/dist/types/hooks/useNavigationUtils.d.ts +1 -0
- package/dist/types/hooks/useNavigationUtils.d.ts.map +1 -1
- package/dist/types/providers/PatternsWizardOverridesContext.d.ts +2 -5
- package/dist/types/providers/PatternsWizardOverridesContext.d.ts.map +1 -1
- package/dist/types/types/EntityPageConfig.d.ts +20 -4
- package/dist/types/types/EntityPageConfig.d.ts.map +1 -1
- package/dist/types/types/actions/base.d.ts +0 -4
- package/dist/types/types/actions/base.d.ts.map +1 -1
- package/dist/types/types/actions/entityPageActions.d.ts +24 -5
- package/dist/types/types/actions/entityPageActions.d.ts.map +1 -1
- package/dist/types/utils/actions/types.d.ts +1 -1
- package/dist/types/utils/actions/types.d.ts.map +1 -1
- package/package.json +15 -15
- 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 @@
|
|
|
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
|
package/dist/esm/components/AutoPatternsEntityPage/ViewEntityPage/RenderViewLayoutContent.js.map
ADDED
|
@@ -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 +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
|
|
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 {
|
|
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
|
};
|