@sparrowengg/integrations-templates-frontend 6.0.0 → 6.0.1
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/triggers/components/EventSetup.js +2 -1
- package/dist/cjs/triggers/components/EventSetup.js.map +1 -1
- package/dist/cjs/triggers/components/trigger.js +26 -18
- package/dist/cjs/triggers/components/trigger.js.map +1 -1
- package/dist/cjs/triggers/utils/validation.utils.js +10 -0
- package/dist/cjs/triggers/utils/validation.utils.js.map +1 -1
- package/dist/es/triggers/components/EventSetup.js +2 -1
- package/dist/es/triggers/components/EventSetup.js.map +1 -1
- package/dist/es/triggers/components/trigger.js +28 -20
- package/dist/es/triggers/components/trigger.js.map +1 -1
- package/dist/es/triggers/utils/validation.utils.js +10 -1
- package/dist/es/triggers/utils/validation.utils.js.map +1 -1
- package/package.json +1 -1
|
@@ -65,7 +65,7 @@ const EventSetup = ({
|
|
|
65
65
|
);
|
|
66
66
|
}
|
|
67
67
|
}, [actions == null ? void 0 : actions.value, objects == null ? void 0 : objects.value, actions, objects, eventFields]);
|
|
68
|
-
React.useMemo(
|
|
68
|
+
const isContinueDisabled = React.useMemo(
|
|
69
69
|
() => validation_utils.isEventSetupDisabled(actions, objects, eventFields),
|
|
70
70
|
[actions, objects, eventFields]
|
|
71
71
|
);
|
|
@@ -213,6 +213,7 @@ const EventSetup = ({
|
|
|
213
213
|
size: "lg",
|
|
214
214
|
rightIcon: /* @__PURE__ */ React.createElement(chevronRight.ChevronRightIcon, null),
|
|
215
215
|
css: { marginTop: "$16" },
|
|
216
|
+
disabled: isContinueDisabled || forceDisableEventSetupCTA,
|
|
216
217
|
onClick: handleContinueClick
|
|
217
218
|
},
|
|
218
219
|
uiStrings.TRIGGERS_UI_STRINGS.CONTINUE
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"EventSetup.js","sources":["../../../../src/triggers/components/EventSetup.tsx"],"sourcesContent":["/* ----- Imports ----- */\n\nimport React, { useEffect, useCallback, useMemo } from \"react\";\nimport {\n Box,\n Button,\n Flex,\n FormLabel,\n Heading,\n Select,\n FormHelperText,\n Text,\n} from \"@sparrowengg/twigs-react\";\nimport { ChevronRightIcon } from \"@sparrowengg/twigs-react-icons\";\nimport CustomPill from \"../../commons/components/custom-pill\";\nimport { EventSetupProps } from \"../types\";\nimport { TRIGGERS_UI_STRINGS } from \"../constants\";\nimport { isEventSetupDisabled } from \"../utils\";\nimport { sanitizeHTML } from \"../../commons/utils\";\n\n/* ----- Helper Components ----- */\n\n/**\n * Custom multi-value component for Select\n *\n * @param {any} props - Component props\n * @returns {JSX.Element} Rendered custom pill\n */\nconst CustomMultiValue: React.FC<any> = (props) => {\n return (\n <CustomPill\n label={props.data.label}\n onCloseHandler={() => props.removeProps.onClick()}\n variant=\"default\"\n radius=\"md\"\n />\n );\n};\n\n/* ----- Main Component ----- */\n\n/**\n * EventSetup component for configuring trigger event details\n *\n * @param {EventSetupProps} props - Component props\n * @returns {JSX.Element} Rendered EventSetup component\n */\nconst EventSetup: React.FC<EventSetupProps> = ({\n forceDisableEventSetupCTA,\n eventFields,\n accounts,\n objects,\n actions,\n surveyDetails,\n navigateTriggerPage,\n}) => {\n /* ----- Effects ----- */\n\n useEffect(() => {\n if (\n actions?.options?.filter((action: any) =>\n eventFields?.action?.includes(action?.value)\n )?.length\n ) {\n actions?.onChangeHandler(\n Object.keys(actions?.value || {})?.length\n ? actions?.value\n : actions?.options\n ?.filter((action: any) =>\n eventFields?.action?.includes(action?.value)\n )\n ?.map((action: any) => action)\n );\n }\n if (\n objects?.options?.find(\n (object: any) => object?.value === eventFields?.object\n )\n ) {\n objects?.onChangeHandler(\n objects?.value ??\n objects?.options?.find(\n (object: any) => object?.value === eventFields?.object\n )\n );\n }\n }, [actions?.value, objects?.value, actions, objects, eventFields]);\n\n /* ----- Constants ----- */\n\n const isContinueDisabled = useMemo(\n () => isEventSetupDisabled(actions, objects, eventFields),\n [actions, objects, eventFields]\n );\n\n const accountValue = useMemo(\n () =>\n accounts?.options?.find(\n (account: any) => account?.value === eventFields?.account\n ) ?? accounts?.value,\n [accounts?.options, accounts?.value, eventFields?.account]\n );\n\n const objectValue = useMemo(\n () =>\n objects?.value ??\n objects?.options?.find(\n (object: any) => object.value === eventFields?.object\n ),\n [objects?.value, objects?.options, eventFields?.object]\n );\n\n const actionValue = useMemo(\n () =>\n Object.keys(actions?.value || {})?.length\n ? actions.value\n : actions?.options\n .filter((action: any) =>\n eventFields?.action?.includes(action?.value)\n )\n ?.map((action: any) => action),\n [actions?.value, actions?.options, eventFields?.action]\n );\n\n /* ----- Event Handlers ----- */\n\n const handleAccountChange = useCallback(\n (value: any) => {\n accounts.onChangeHandler(value);\n },\n [accounts]\n );\n\n const handleObjectChange = useCallback(\n (value: any) => {\n objects.onChangeHandler(value);\n },\n [objects]\n );\n\n const handleActionChange = useCallback(\n (value: any) => {\n actions.onChangeHandler(value);\n },\n [actions]\n );\n\n const handleContinueClick = useCallback(() => {\n navigateTriggerPage(true);\n }, [navigateTriggerPage]);\n\n /* ----- Render ----- */\n\n return (\n <Flex\n css={{ paddingTop: \"$40\" }}\n alignItems=\"center\"\n justifyContent=\"center\"\n >\n <Box css={{ width: 488 }}>\n <Heading size=\"h5\">{TRIGGERS_UI_STRINGS.ACCOUNT_DETAILS}</Heading>\n <Flex gap=\"$2\" css={{ marginTop: \"$4\" }}>\n <Text size=\"sm\" css={{ color: \"$neutral500\" }}>\n {TRIGGERS_UI_STRINGS.SURVEY_NAME_LABEL}\n </Text>\n <Text size=\"sm\" weight={\"medium\"} css={{ color: \"$neutral800\" }}>\n {surveyDetails.surveyName}\n </Text>\n </Flex>\n <Flex flexDirection=\"column\" gap=\"$8\" css={{ marginTop: \"$16\" }}>\n {accounts?.hasAccounts && (\n <Flex gap=\"$2\" flexDirection=\"column\">\n <FormLabel size=\"xs\" css={{ fontWeight: \"$5\" }}>\n {TRIGGERS_UI_STRINGS.CHOOSE_ACCOUNT}\n </FormLabel>\n <Select\n value={accountValue}\n options={accounts.options}\n isMulti={accounts?.isMulti}\n placeholder={TRIGGERS_UI_STRINGS.PLACEHOLDER_EMPTY}\n onChange={handleAccountChange}\n size=\"lg\"\n />\n <FormHelperText\n dangerouslySetInnerHTML={{\n __html: sanitizeHTML(accounts?.helperText ?? \"\"),\n }}\n size=\"xs\"\n css={{\n color: \"$neutral500\",\n a: {\n color: \"$primary600\",\n },\n }}\n />\n </Flex>\n )}\n {objects?.hasObjects && (\n <Flex gap=\"$2\" flexDirection=\"column\">\n <FormLabel size=\"xs\" css={{ fontWeight: \"$5\" }}>\n {TRIGGERS_UI_STRINGS.CHOOSE_OBJECT}\n </FormLabel>\n <Select\n options={objects.options}\n value={objectValue}\n isMulti={objects?.isMulti}\n placeholder={TRIGGERS_UI_STRINGS.PLACEHOLDER_EMPTY}\n onChange={handleObjectChange}\n size=\"lg\"\n />\n <FormHelperText\n dangerouslySetInnerHTML={{\n __html: sanitizeHTML(objects?.helperText ?? \"\"),\n }}\n size=\"xs\"\n css={{\n color: \"$neutral500\",\n a: {\n color: \"$primary600\",\n },\n }}\n />\n </Flex>\n )}\n {actions?.hasActions && (\n <Flex gap=\"$2\" flexDirection=\"column\">\n <FormLabel size=\"xs\" css={{ fontWeight: \"$5\" }}>\n {TRIGGERS_UI_STRINGS.CHOOSE_ACTION}\n </FormLabel>\n <Select\n size=\"lg\"\n options={actions.options}\n value={actionValue}\n isMulti={actions?.isMulti}\n placeholder={TRIGGERS_UI_STRINGS.PLACEHOLDER_EMPTY}\n css={{\n \".twigs-select__value-container--is-multi\": {\n gap: \"$2\",\n },\n }}\n components={{\n MultiValue: CustomMultiValue,\n }}\n onChange={handleActionChange}\n />\n <FormHelperText\n dangerouslySetInnerHTML={{\n __html: sanitizeHTML(actions?.helperText ?? \"\"),\n }}\n size=\"xs\"\n css={{\n color: \"$neutral500\",\n a: {\n color: \"$primary600\",\n },\n }}\n />\n </Flex>\n )}\n </Flex>\n <Button\n size=\"lg\"\n rightIcon={<ChevronRightIcon />}\n css={{ marginTop: \"$16\" }}\n // disabled={isContinueDisabled || forceDisableEventSetupCTA}\n onClick={handleContinueClick}\n >\n {TRIGGERS_UI_STRINGS.CONTINUE}\n </Button>\n </Box>\n </Flex>\n );\n};\n\nexport default EventSetup;\n\n"],"names":["CustomPill","useEffect","_a","_b","_c","useMemo","isEventSetupDisabled","useCallback","Flex","Box","Heading","TRIGGERS_UI_STRINGS","Text","FormLabel","Select","FormHelperText","sanitizeHTML","Button","ChevronRightIcon"],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"EventSetup.js","sources":["../../../../src/triggers/components/EventSetup.tsx"],"sourcesContent":["/* ----- Imports ----- */\n\nimport React, { useEffect, useCallback, useMemo } from \"react\";\nimport {\n Box,\n Button,\n Flex,\n FormLabel,\n Heading,\n Select,\n FormHelperText,\n Text,\n} from \"@sparrowengg/twigs-react\";\nimport { ChevronRightIcon } from \"@sparrowengg/twigs-react-icons\";\nimport CustomPill from \"../../commons/components/custom-pill\";\nimport { EventSetupProps } from \"../types\";\nimport { TRIGGERS_UI_STRINGS } from \"../constants\";\nimport { isEventSetupDisabled } from \"../utils\";\nimport { sanitizeHTML } from \"../../commons/utils\";\n\n/* ----- Helper Components ----- */\n\n/**\n * Custom multi-value component for Select\n *\n * @param {any} props - Component props\n * @returns {JSX.Element} Rendered custom pill\n */\nconst CustomMultiValue: React.FC<any> = (props) => {\n return (\n <CustomPill\n label={props.data.label}\n onCloseHandler={() => props.removeProps.onClick()}\n variant=\"default\"\n radius=\"md\"\n />\n );\n};\n\n/* ----- Main Component ----- */\n\n/**\n * EventSetup component for configuring trigger event details\n *\n * @param {EventSetupProps} props - Component props\n * @returns {JSX.Element} Rendered EventSetup component\n */\nconst EventSetup: React.FC<EventSetupProps> = ({\n forceDisableEventSetupCTA,\n eventFields,\n accounts,\n objects,\n actions,\n surveyDetails,\n navigateTriggerPage,\n}) => {\n /* ----- Effects ----- */\n\n useEffect(() => {\n if (\n actions?.options?.filter((action: any) =>\n eventFields?.action?.includes(action?.value)\n )?.length\n ) {\n actions?.onChangeHandler(\n Object.keys(actions?.value || {})?.length\n ? actions?.value\n : actions?.options\n ?.filter((action: any) =>\n eventFields?.action?.includes(action?.value)\n )\n ?.map((action: any) => action)\n );\n }\n if (\n objects?.options?.find(\n (object: any) => object?.value === eventFields?.object\n )\n ) {\n objects?.onChangeHandler(\n objects?.value ??\n objects?.options?.find(\n (object: any) => object?.value === eventFields?.object\n )\n );\n }\n }, [actions?.value, objects?.value, actions, objects, eventFields]);\n\n /* ----- Constants ----- */\n\n const isContinueDisabled = useMemo(\n () => isEventSetupDisabled(actions, objects, eventFields),\n [actions, objects, eventFields]\n );\n\n const accountValue = useMemo(\n () =>\n accounts?.options?.find(\n (account: any) => account?.value === eventFields?.account\n ) ?? accounts?.value,\n [accounts?.options, accounts?.value, eventFields?.account]\n );\n\n const objectValue = useMemo(\n () =>\n objects?.value ??\n objects?.options?.find(\n (object: any) => object.value === eventFields?.object\n ),\n [objects?.value, objects?.options, eventFields?.object]\n );\n\n const actionValue = useMemo(\n () =>\n Object.keys(actions?.value || {})?.length\n ? actions.value\n : actions?.options\n .filter((action: any) =>\n eventFields?.action?.includes(action?.value)\n )\n ?.map((action: any) => action),\n [actions?.value, actions?.options, eventFields?.action]\n );\n\n /* ----- Event Handlers ----- */\n\n const handleAccountChange = useCallback(\n (value: any) => {\n accounts.onChangeHandler(value);\n },\n [accounts]\n );\n\n const handleObjectChange = useCallback(\n (value: any) => {\n objects.onChangeHandler(value);\n },\n [objects]\n );\n\n const handleActionChange = useCallback(\n (value: any) => {\n actions.onChangeHandler(value);\n },\n [actions]\n );\n\n const handleContinueClick = useCallback(() => {\n navigateTriggerPage(true);\n }, [navigateTriggerPage]);\n\n /* ----- Render ----- */\n\n return (\n <Flex\n css={{ paddingTop: \"$40\" }}\n alignItems=\"center\"\n justifyContent=\"center\"\n >\n <Box css={{ width: 488 }}>\n <Heading size=\"h5\">{TRIGGERS_UI_STRINGS.ACCOUNT_DETAILS}</Heading>\n <Flex gap=\"$2\" css={{ marginTop: \"$4\" }}>\n <Text size=\"sm\" css={{ color: \"$neutral500\" }}>\n {TRIGGERS_UI_STRINGS.SURVEY_NAME_LABEL}\n </Text>\n <Text size=\"sm\" weight={\"medium\"} css={{ color: \"$neutral800\" }}>\n {surveyDetails.surveyName}\n </Text>\n </Flex>\n <Flex flexDirection=\"column\" gap=\"$8\" css={{ marginTop: \"$16\" }}>\n {accounts?.hasAccounts && (\n <Flex gap=\"$2\" flexDirection=\"column\">\n <FormLabel size=\"xs\" css={{ fontWeight: \"$5\" }}>\n {TRIGGERS_UI_STRINGS.CHOOSE_ACCOUNT}\n </FormLabel>\n <Select\n value={accountValue}\n options={accounts.options}\n isMulti={accounts?.isMulti}\n placeholder={TRIGGERS_UI_STRINGS.PLACEHOLDER_EMPTY}\n onChange={handleAccountChange}\n size=\"lg\"\n />\n <FormHelperText\n dangerouslySetInnerHTML={{\n __html: sanitizeHTML(accounts?.helperText ?? \"\"),\n }}\n size=\"xs\"\n css={{\n color: \"$neutral500\",\n a: {\n color: \"$primary600\",\n },\n }}\n />\n </Flex>\n )}\n {objects?.hasObjects && (\n <Flex gap=\"$2\" flexDirection=\"column\">\n <FormLabel size=\"xs\" css={{ fontWeight: \"$5\" }}>\n {TRIGGERS_UI_STRINGS.CHOOSE_OBJECT}\n </FormLabel>\n <Select\n options={objects.options}\n value={objectValue}\n isMulti={objects?.isMulti}\n placeholder={TRIGGERS_UI_STRINGS.PLACEHOLDER_EMPTY}\n onChange={handleObjectChange}\n size=\"lg\"\n />\n <FormHelperText\n dangerouslySetInnerHTML={{\n __html: sanitizeHTML(objects?.helperText ?? \"\"),\n }}\n size=\"xs\"\n css={{\n color: \"$neutral500\",\n a: {\n color: \"$primary600\",\n },\n }}\n />\n </Flex>\n )}\n {actions?.hasActions && (\n <Flex gap=\"$2\" flexDirection=\"column\">\n <FormLabel size=\"xs\" css={{ fontWeight: \"$5\" }}>\n {TRIGGERS_UI_STRINGS.CHOOSE_ACTION}\n </FormLabel>\n <Select\n size=\"lg\"\n options={actions.options}\n value={actionValue}\n isMulti={actions?.isMulti}\n placeholder={TRIGGERS_UI_STRINGS.PLACEHOLDER_EMPTY}\n css={{\n \".twigs-select__value-container--is-multi\": {\n gap: \"$2\",\n },\n }}\n components={{\n MultiValue: CustomMultiValue,\n }}\n onChange={handleActionChange}\n />\n <FormHelperText\n dangerouslySetInnerHTML={{\n __html: sanitizeHTML(actions?.helperText ?? \"\"),\n }}\n size=\"xs\"\n css={{\n color: \"$neutral500\",\n a: {\n color: \"$primary600\",\n },\n }}\n />\n </Flex>\n )}\n </Flex>\n <Button\n size=\"lg\"\n rightIcon={<ChevronRightIcon />}\n css={{ marginTop: \"$16\" }}\n disabled={isContinueDisabled || forceDisableEventSetupCTA}\n onClick={handleContinueClick}\n >\n {TRIGGERS_UI_STRINGS.CONTINUE}\n </Button>\n </Box>\n </Flex>\n );\n};\n\nexport default EventSetup;\n\n"],"names":["CustomPill","useEffect","_a","_b","_c","useMemo","isEventSetupDisabled","useCallback","Flex","Box","Heading","TRIGGERS_UI_STRINGS","Text","FormLabel","Select","FormHelperText","sanitizeHTML","Button","ChevronRightIcon"],"mappings":"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"}
|
|
@@ -57,7 +57,7 @@ const Trigger = ({
|
|
|
57
57
|
variableOptions,
|
|
58
58
|
contactUniqueConstraint
|
|
59
59
|
}) => {
|
|
60
|
-
var _a, _b, _c, _d, _e, _f;
|
|
60
|
+
var _a, _b, _c, _d, _e, _f, _g;
|
|
61
61
|
const { isEditing, setIsEditing } = useTriggerState.useTriggerState();
|
|
62
62
|
const {
|
|
63
63
|
addFilterCondition,
|
|
@@ -76,6 +76,23 @@ const Trigger = ({
|
|
|
76
76
|
surveyId: surveyDetails == null ? void 0 : surveyDetails.surveyId,
|
|
77
77
|
shareChannelOptions
|
|
78
78
|
});
|
|
79
|
+
const hasFiltersWithValues = React.useMemo(
|
|
80
|
+
() => validation_utils.hasFiltersWithValues(fields),
|
|
81
|
+
[fields]
|
|
82
|
+
);
|
|
83
|
+
const [passAndSendSectionsUnlocked, setPassAndSendSectionsUnlocked] = React.useState(false);
|
|
84
|
+
React.useEffect(() => {
|
|
85
|
+
if (hasFiltersWithValues) {
|
|
86
|
+
setPassAndSendSectionsUnlocked(true);
|
|
87
|
+
}
|
|
88
|
+
}, [hasFiltersWithValues]);
|
|
89
|
+
React.useEffect(() => {
|
|
90
|
+
var _a2;
|
|
91
|
+
if (!((_a2 = fields == null ? void 0 : fields.filters) == null ? void 0 : _a2.length)) {
|
|
92
|
+
setPassAndSendSectionsUnlocked(false);
|
|
93
|
+
}
|
|
94
|
+
}, [(_a = fields == null ? void 0 : fields.filters) == null ? void 0 : _a.length]);
|
|
95
|
+
const showPassAndSendSections = passAndSendSectionsUnlocked || hasFiltersWithValues;
|
|
79
96
|
const selectedCondition = React.useMemo(
|
|
80
97
|
() => {
|
|
81
98
|
var _a2;
|
|
@@ -85,15 +102,6 @@ const Trigger = ({
|
|
|
85
102
|
},
|
|
86
103
|
[fields.condition]
|
|
87
104
|
);
|
|
88
|
-
const hasFiltersWithValues = React.useMemo(
|
|
89
|
-
() => fields.filters.some(
|
|
90
|
-
(filter) => {
|
|
91
|
-
var _a2;
|
|
92
|
-
return (_a2 = filter == null ? void 0 : filter.filter) == null ? void 0 : _a2.some((currentFilter) => !!(currentFilter == null ? void 0 : currentFilter.value));
|
|
93
|
-
}
|
|
94
|
-
),
|
|
95
|
-
[fields.filters]
|
|
96
|
-
);
|
|
97
105
|
const filteredShareRecipientOptions = React.useMemo(
|
|
98
106
|
() => shareRecipientOptions == null ? void 0 : shareRecipientOptions.filter(
|
|
99
107
|
(option) => {
|
|
@@ -101,7 +109,7 @@ const Trigger = ({
|
|
|
101
109
|
return (option == null ? void 0 : option.type) === ((_a2 = triggerDetails.shareType) == null ? void 0 : _a2.value);
|
|
102
110
|
}
|
|
103
111
|
),
|
|
104
|
-
[shareRecipientOptions, (
|
|
112
|
+
[shareRecipientOptions, (_b = triggerDetails.shareType) == null ? void 0 : _b.value]
|
|
105
113
|
);
|
|
106
114
|
const filteredShareChannelOptions = React.useMemo(() => {
|
|
107
115
|
var _a2, _b2;
|
|
@@ -123,7 +131,7 @@ const Trigger = ({
|
|
|
123
131
|
];
|
|
124
132
|
}
|
|
125
133
|
return [];
|
|
126
|
-
}, [channels, (
|
|
134
|
+
}, [channels, (_c = triggerDetails == null ? void 0 : triggerDetails.shareType) == null ? void 0 : _c.value]);
|
|
127
135
|
const setTriggerFields = React.useCallback(
|
|
128
136
|
(property, value) => {
|
|
129
137
|
setTriggerDetails((prev) => __spreadProps(__spreadValues({}, prev), {
|
|
@@ -271,9 +279,9 @@ const Trigger = ({
|
|
|
271
279
|
{
|
|
272
280
|
flexDirection: "column",
|
|
273
281
|
gap: "$12",
|
|
274
|
-
css: { marginTop: ((
|
|
282
|
+
css: { marginTop: ((_d = fields == null ? void 0 : fields.filters) == null ? void 0 : _d.length) ? "$12" : 0 }
|
|
275
283
|
},
|
|
276
|
-
(
|
|
284
|
+
(_e = fields == null ? void 0 : fields.filters) == null ? void 0 : _e.map((filters, index) => /* @__PURE__ */ React.createElement(
|
|
277
285
|
filter.Filter,
|
|
278
286
|
{
|
|
279
287
|
key: filters.id,
|
|
@@ -302,7 +310,7 @@ const Trigger = ({
|
|
|
302
310
|
onClick: handleAddConditionClick
|
|
303
311
|
},
|
|
304
312
|
"Add Condition"
|
|
305
|
-
),
|
|
313
|
+
), showPassAndSendSections ? /* @__PURE__ */ React.createElement(flex.Flex, { flexDirection: "column", gap: "$12", css: { marginTop: "$40" } }, /* @__PURE__ */ React.createElement(heading.Heading, { size: "h5" }, "Pass Variable to Survey"), /* @__PURE__ */ React.createElement(flex.Flex, { gap: "$2", flexDirection: "column" }, /* @__PURE__ */ React.createElement(formLabel.FormLabel, { size: "xs", css: { fontWeight: "$5" } }, "Choose Fields"), /* @__PURE__ */ React.createElement(
|
|
306
314
|
select.Select,
|
|
307
315
|
{
|
|
308
316
|
placeholder: "",
|
|
@@ -356,7 +364,7 @@ const Trigger = ({
|
|
|
356
364
|
},
|
|
357
365
|
options: variableOptions
|
|
358
366
|
}
|
|
359
|
-
)) : null) : null,
|
|
367
|
+
)) : null) : null, showPassAndSendSections ? /* @__PURE__ */ React.createElement(flex.Flex, { flexDirection: "column", gap: "$12", css: { marginBlock: "$40" } }, /* @__PURE__ */ React.createElement(heading.Heading, { size: "h5" }, "Send Survey"), /* @__PURE__ */ React.createElement(flex.Flex, { flexDirection: "column", gap: "$8" }, /* @__PURE__ */ React.createElement(flex.Flex, { gap: "$2", flexDirection: "column" }, /* @__PURE__ */ React.createElement(formLabel.FormLabel, { size: "xs", css: { fontWeight: "$5" } }, "Choose Share Type"), /* @__PURE__ */ React.createElement(
|
|
360
368
|
select.Select,
|
|
361
369
|
{
|
|
362
370
|
placeholder: "",
|
|
@@ -397,7 +405,7 @@ const Trigger = ({
|
|
|
397
405
|
placeholder: "",
|
|
398
406
|
size: "lg",
|
|
399
407
|
onChange: handleShareRecipientChange,
|
|
400
|
-
isDisabled: !((
|
|
408
|
+
isDisabled: !((_f = triggerDetails == null ? void 0 : triggerDetails.shareType) == null ? void 0 : _f.value),
|
|
401
409
|
value: triggerDetails == null ? void 0 : triggerDetails.shareRecipient,
|
|
402
410
|
options: filteredShareRecipientOptions
|
|
403
411
|
}
|
|
@@ -416,7 +424,7 @@ const Trigger = ({
|
|
|
416
424
|
alignItems: "center"
|
|
417
425
|
})
|
|
418
426
|
},
|
|
419
|
-
isDisabled: !((
|
|
427
|
+
isDisabled: !((_g = triggerDetails == null ? void 0 : triggerDetails.shareType) == null ? void 0 : _g.value),
|
|
420
428
|
value: triggerDetails == null ? void 0 : triggerDetails.shareChannel,
|
|
421
429
|
onChange: handleShareChannelChange,
|
|
422
430
|
options: filteredShareChannelOptions
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"trigger.js","sources":["../../../../src/triggers/components/trigger.tsx"],"sourcesContent":["/* ----- Imports ----- */\n\nimport {\n Box,\n Button,\n DropdownMenu,\n DropdownMenuContent,\n DropdownMenuItem,\n DropdownMenuTrigger,\n Flex,\n FormLabel,\n Heading,\n Select,\n Text,\n} from \"@sparrowengg/twigs-react\";\nimport { ChevronDownIcon, PlusIcon } from \"@sparrowengg/twigs-react-icons\";\nimport React, { useCallback, useMemo } from \"react\";\nimport { topLevelCondition } from \"../constants\";\nimport { Filter } from \"./subcomponents\";\nimport {\n CustomShareOption,\n CustomSingleValue,\n CustomMultiValue,\n CustomShareChannelOption,\n CustomShareChannelSingleValue,\n} from \"./custom-share-components\";\nimport {\n useTriggerState,\n useFilterManagement,\n useChannelData,\n} from \"../hooks\";\nimport { isEmpty } from \"../utils\";\nimport { ContactUniqueConstraint } from \"../types\";\n\n/* ----- Types / Interfaces ----- */\n\ntype TriggerProps = {\n fields: any;\n setFields: (fields: any) => void;\n token: string;\n apiURL: string;\n surveyDetails: any;\n hasNestedCondition: boolean;\n shareRecipientOptions: any[];\n shareChannelOptions: any[];\n triggerDetails: any;\n setTriggerDetails: (details: any) => void;\n fieldOptions: any[];\n variableOptions: any[];\n contactUniqueConstraint?: ContactUniqueConstraint;\n};\n\n/* ----- Main Component ----- */\n\n/**\n * Trigger component for setting up trigger conditions and actions\n *\n * @param {TriggerProps} props - Component props\n * @returns {JSX.Element} Rendered Trigger component\n */\nconst Trigger: React.FC<TriggerProps> = ({\n fields,\n setFields,\n token,\n apiURL,\n hasNestedCondition,\n surveyDetails,\n shareRecipientOptions,\n shareChannelOptions,\n triggerDetails,\n setTriggerDetails,\n fieldOptions,\n variableOptions,\n contactUniqueConstraint,\n}) => {\n /* ----- Hooks ----- */\n\n const { isEditing, setIsEditing } = useTriggerState();\n\n const {\n addFilterCondition,\n addNestedFilterCondition,\n setCurrentField,\n removeCurrentFilter,\n removeNestedField,\n setNestedFieldCondition,\n } = useFilterManagement({\n setFields,\n setIsEditing,\n });\n\n const { channels } = useChannelData({\n token,\n apiURL,\n surveyId: surveyDetails?.surveyId,\n shareChannelOptions,\n });\n\n /* ----- Constants ----- */\n\n const selectedCondition = useMemo(\n () =>\n topLevelCondition.find(\n (condition) => condition.value === fields.condition\n )?.label,\n [fields.condition]\n );\n\n const hasFiltersWithValues = useMemo(\n () =>\n fields.filters.some((filter: any) =>\n filter?.filter?.some((currentFilter: any) => !!currentFilter?.value)\n ),\n [fields.filters]\n );\n\n const filteredShareRecipientOptions = useMemo(\n () =>\n shareRecipientOptions?.filter(\n (option: any) => option?.type === triggerDetails.shareType?.value\n ),\n [shareRecipientOptions, triggerDetails.shareType?.value]\n );\n\n const filteredShareChannelOptions = useMemo(() => {\n const filtered = channels.filter(\n (channel: any) => channel?.type === triggerDetails?.shareType?.value\n );\n if (filtered.length) {\n return filtered;\n }\n if (\n triggerDetails?.shareType?.value !== \"WHATSAPP\" &&\n triggerDetails?.shareType?.value !== \"SMS\"\n ) {\n return [\n {\n label: \"New Share \",\n value: \"NEW_SHARE\",\n },\n ];\n }\n return [];\n }, [channels, triggerDetails?.shareType?.value]);\n\n /* ----- Event Handlers ----- */\n\n const setTriggerFields = useCallback(\n (property: string, value: any) => {\n setTriggerDetails((prev: any) => ({\n ...prev,\n [property]: value,\n }));\n },\n [setTriggerDetails]\n );\n\n const handleConditionChange = useCallback(\n (conditionValue: string) => {\n setFields((prev: any) => ({\n ...prev,\n condition: conditionValue,\n }));\n },\n [setFields]\n );\n\n const handleAddConditionClick = useCallback(() => {\n setIsEditing(true);\n addFilterCondition();\n }, [setIsEditing, addFilterCondition]);\n\n const handleVariablesChange = useCallback(\n (field: any) => {\n setTriggerFields(\"variables\", field);\n },\n [setTriggerFields]\n );\n\n const handleShareTypeChange = useCallback(\n (field: any) => {\n setTriggerFields(\"shareType\", field);\n setTriggerFields(\"shareRecipient\", null);\n setTriggerFields(\"shareChannel\", null);\n },\n [setTriggerFields]\n );\n\n const handleShareRecipientChange = useCallback(\n (field: any) => {\n setTriggerFields(\"shareRecipient\", field);\n },\n [setTriggerFields]\n );\n\n const handleShareChannelChange = useCallback(\n (field: any) => {\n setTriggerFields(\"shareChannel\", field);\n },\n [setTriggerFields]\n );\n\n const handleContactUniqueFieldChange = useCallback(\n (field: any) => {\n const constraintKey = contactUniqueConstraint?.value;\n if (!constraintKey) return;\n setTriggerFields(\n \"contactUniqueField\",\n field?.value ? { [constraintKey]: field.value } : null\n );\n },\n [setTriggerFields, contactUniqueConstraint?.value]\n );\n\n const selectedContactUniqueOption = useMemo(() => {\n const constraintKey = contactUniqueConstraint?.value;\n const stored = triggerDetails?.contactUniqueField;\n if (!constraintKey || !stored) return null;\n const variableValue = stored[constraintKey];\n if (!variableValue) return null;\n return (\n variableOptions?.find((option: any) => option?.value === variableValue) ??\n null\n );\n }, [\n contactUniqueConstraint?.value,\n triggerDetails?.contactUniqueField,\n variableOptions,\n ]);\n\n const resetEditing = useCallback(() => {\n setIsEditing(false);\n }, [setIsEditing]);\n\n /* ----- Render ----- */\n return (\n <Flex\n justifyContent=\"center\"\n alignItems=\"center\"\n css={{ marginTop: \"$40\" }}\n >\n <Box css={{ maxWidth: 488, width: \"100%\" }}>\n <Heading size=\"h5\">Set Condition</Heading>\n <Flex alignItems=\"center\" css={{ marginTop: \"$12\" }}>\n <Text\n size=\"md\"\n css={{ color: \"$neutral700\", display: \"inline-flex\" }}\n >\n which meets{\" \"}\n </Text>\n <DropdownMenu>\n <DropdownMenuTrigger asChild>\n <Flex\n alignItems=\"center\"\n css={{\n margin: \"0 $2\",\n }}\n >\n <Text\n size=\"md\"\n weight=\"medium\"\n css={{ color: \"$neutral900\", lineHeight: \"$sm\" }}\n >\n {selectedCondition}\n </Text>\n <ChevronDownIcon size={16} color=\"#6A6A6A\" />\n </Flex>\n </DropdownMenuTrigger>\n <DropdownMenuContent\n align=\"end\"\n sideOffset={5}\n css={{\n padding: \"$4 0\",\n minWidth: \"$15\",\n }}\n >\n {topLevelCondition.map((condition) => (\n <DropdownMenuItem\n key={condition.value}\n onClick={() => handleConditionChange(condition.value)}\n css={{\n ...(condition.value === fields.condition && {\n background: \"$primary100\",\n color: \"$neutral900\",\n \"&:hover\": {\n background: \"$primary100\",\n color: \"$neutral900\",\n },\n }),\n }}\n >\n {condition.label}\n </DropdownMenuItem>\n ))}\n </DropdownMenuContent>\n </DropdownMenu>\n <Text\n size=\"md\"\n css={{ color: \"$neutral700\", display: \"inline-flex\" }}\n >\n of these conditions\n </Text>\n </Flex>\n <Flex\n flexDirection=\"column\"\n gap=\"$12\"\n css={{ marginTop: fields?.filters?.length ? \"$12\" : 0 }}\n >\n {fields?.filters?.map((filters: any, index: number) => (\n <Filter\n key={filters.id}\n filters={filters}\n fields={fields}\n hasNestedCondition={hasNestedCondition}\n index={index}\n isEditing={isEditing}\n setIsEditing={setIsEditing}\n setCurrentField={setCurrentField}\n resetEditing={resetEditing}\n addNestedFilterCondition={addNestedFilterCondition}\n setNestedFieldCondition={setNestedFieldCondition}\n removeCurrentFilter={removeCurrentFilter}\n removeNestedField={removeNestedField}\n fieldOptions={fieldOptions}\n />\n ))}\n </Flex>\n <Button\n css={{ marginTop: \"$8\", marginLeft: \"-$2\" }}\n leftIcon={<PlusIcon />}\n variant=\"ghost\"\n size=\"md\"\n onClick={handleAddConditionClick}\n >\n Add Condition\n </Button>\n {hasFiltersWithValues ? (\n <Flex flexDirection=\"column\" gap=\"$12\" css={{ marginTop: \"$40\" }}>\n <Heading size=\"h5\">Pass Variable to Survey</Heading>\n <Flex gap=\"$2\" flexDirection=\"column\">\n <FormLabel size=\"xs\" css={{ fontWeight: \"$5\" }}>\n Choose Fields\n </FormLabel>\n <Select\n placeholder=\"\"\n size=\"lg\"\n isMulti\n closeMenuOnSelect={false}\n isClearable={false}\n value={triggerDetails?.variables}\n onChange={handleVariablesChange}\n css={{\n p: {\n fontFamily: \"'Roboto Mono', monospace !important\",\n },\n \" .twigs-select__indicators\": {\n height: \"40px\",\n },\n \"& .twigs-select__control\": {\n overflow: \"auto\",\n maxHeight: 488,\n height: \"100%\",\n },\n \".twigs-select__value-container--is-multi\": {\n gap: \"$2\",\n },\n }}\n components={{\n MultiValue: CustomMultiValue,\n }}\n options={variableOptions}\n />\n </Flex>\n {contactUniqueConstraint?.hasUniqueConstraint ? (\n <Flex gap=\"$2\" flexDirection=\"column\">\n <FormLabel size=\"xs\" css={{ fontWeight: \"$5\" }}>\n {`Contact Uniqueness Field for \"${contactUniqueConstraint.label}\"`}\n </FormLabel>\n <Select\n placeholder=\"\"\n size=\"lg\"\n isClearable={false}\n value={selectedContactUniqueOption}\n onChange={handleContactUniqueFieldChange}\n css={{\n p: {\n fontFamily: \"'Roboto Mono', monospace !important\",\n },\n \" .twigs-select__indicators\": {\n height: \"40px\",\n },\n \"& .twigs-select__control\": {\n overflow: \"auto\",\n maxHeight: 488,\n height: \"100%\",\n },\n }}\n options={variableOptions}\n />\n </Flex>\n ) : null}\n </Flex>\n ) : null}\n {hasFiltersWithValues ? (\n <Flex flexDirection=\"column\" gap=\"$12\" css={{ marginBlock: \"$40\" }}>\n <Heading size=\"h5\">Send Survey</Heading>\n <Flex flexDirection=\"column\" gap=\"$8\">\n <Flex gap=\"$2\" flexDirection=\"column\">\n <FormLabel size=\"xs\" css={{ fontWeight: \"$5\" }}>\n Choose Share Type\n </FormLabel>\n <Select\n placeholder=\"\"\n size=\"lg\"\n components={{\n Option: CustomShareOption,\n SingleValue: CustomSingleValue,\n }}\n styles={{\n singleValue: (provided, state) => ({\n ...provided,\n display: \"flex\",\n alignItems: \"center\",\n }),\n }}\n value={triggerDetails?.shareType}\n onChange={handleShareTypeChange}\n options={[\n {\n id: 1,\n label: \"Email\",\n value: \"EMAIL\",\n },\n {\n id: 2,\n label: \"SMS\",\n value: \"SMS\",\n },\n {\n id: 3,\n label: \"Whatsapp\",\n value: \"WHATSAPP\",\n },\n ]}\n />\n </Flex>\n {!isEmpty(triggerDetails?.shareType) && (\n <>\n <Flex gap=\"$2\" flexDirection=\"column\">\n <FormLabel size=\"xs\" css={{ fontWeight: \"$5\" }}>\n Choose Recipient\n </FormLabel>\n <Select\n placeholder=\"\"\n size=\"lg\"\n onChange={handleShareRecipientChange}\n isDisabled={!triggerDetails?.shareType?.value}\n value={triggerDetails?.shareRecipient}\n options={filteredShareRecipientOptions}\n />\n </Flex>\n <Flex gap=\"$2\" flexDirection=\"column\">\n <FormLabel size=\"xs\" css={{ fontWeight: \"$5\" }}>\n Choose Share Channel\n </FormLabel>\n <Select\n placeholder=\"\"\n size=\"lg\"\n components={{\n Option: CustomShareChannelOption,\n SingleValue: CustomShareChannelSingleValue,\n }}\n styles={{\n singleValue: (provided, state) => ({\n ...provided,\n display: \"flex\",\n alignItems: \"center\",\n }),\n }}\n isDisabled={!triggerDetails?.shareType?.value}\n value={triggerDetails?.shareChannel}\n onChange={handleShareChannelChange}\n options={filteredShareChannelOptions}\n />\n </Flex>\n </>\n )}\n </Flex>\n </Flex>\n ) : null}\n </Box>\n </Flex>\n );\n};\n\nexport default Trigger;"],"names":["useTriggerState","useFilterManagement","useChannelData","useMemo","_a","topLevelCondition","_b","useCallback","Flex","Box","Heading","Text","DropdownMenu","DropdownMenuTrigger","ChevronDownIcon","DropdownMenuContent","DropdownMenuItem","Filter","Button","PlusIcon","FormLabel","Select","CustomMultiValue","CustomShareOption","CustomSingleValue","isEmpty","CustomShareChannelOption","CustomShareChannelSingleValue"],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"trigger.js","sources":["../../../../src/triggers/components/trigger.tsx"],"sourcesContent":["/* ----- Imports ----- */\n\nimport {\n Box,\n Button,\n DropdownMenu,\n DropdownMenuContent,\n DropdownMenuItem,\n DropdownMenuTrigger,\n Flex,\n FormLabel,\n Heading,\n Select,\n Text,\n} from \"@sparrowengg/twigs-react\";\nimport { ChevronDownIcon, PlusIcon } from \"@sparrowengg/twigs-react-icons\";\nimport React, { useCallback, useEffect, useMemo, useState } from \"react\";\nimport { topLevelCondition } from \"../constants\";\nimport { Filter } from \"./subcomponents\";\nimport {\n CustomShareOption,\n CustomSingleValue,\n CustomMultiValue,\n CustomShareChannelOption,\n CustomShareChannelSingleValue,\n} from \"./custom-share-components\";\nimport { useTriggerState, useFilterManagement, useChannelData } from \"../hooks\";\nimport { hasFiltersWithValues as checkFiltersHaveValues } from \"../utils\";\nimport { isEmpty } from \"../utils\";\nimport { ContactUniqueConstraint } from \"../types\";\n\n/* ----- Types / Interfaces ----- */\n\ntype TriggerProps = {\n fields: any;\n setFields: (fields: any) => void;\n token: string;\n apiURL: string;\n surveyDetails: any;\n hasNestedCondition: boolean;\n shareRecipientOptions: any[];\n shareChannelOptions: any[];\n triggerDetails: any;\n setTriggerDetails: (details: any) => void;\n fieldOptions: any[];\n variableOptions: any[];\n contactUniqueConstraint?: ContactUniqueConstraint;\n};\n\n/* ----- Main Component ----- */\n\n/**\n * Trigger component for setting up trigger conditions and actions\n *\n * @param {TriggerProps} props - Component props\n * @returns {JSX.Element} Rendered Trigger component\n */\nconst Trigger: React.FC<TriggerProps> = ({\n fields,\n setFields,\n token,\n apiURL,\n hasNestedCondition,\n surveyDetails,\n shareRecipientOptions,\n shareChannelOptions,\n triggerDetails,\n setTriggerDetails,\n fieldOptions,\n variableOptions,\n contactUniqueConstraint,\n}) => {\n /* ----- Hooks ----- */\n\n const { isEditing, setIsEditing } = useTriggerState();\n\n const {\n addFilterCondition,\n addNestedFilterCondition,\n setCurrentField,\n removeCurrentFilter,\n removeNestedField,\n setNestedFieldCondition,\n } = useFilterManagement({\n setFields,\n setIsEditing,\n });\n\n const { channels } = useChannelData({\n token,\n apiURL,\n surveyId: surveyDetails?.surveyId,\n shareChannelOptions,\n });\n\n const hasFiltersWithValues = useMemo(\n () => checkFiltersHaveValues(fields),\n [fields]\n );\n\n const [passAndSendSectionsUnlocked, setPassAndSendSectionsUnlocked] =\n useState(false);\n\n useEffect(() => {\n if (hasFiltersWithValues) {\n setPassAndSendSectionsUnlocked(true);\n }\n }, [hasFiltersWithValues]);\n\n useEffect(() => {\n if (!fields?.filters?.length) {\n setPassAndSendSectionsUnlocked(false);\n }\n }, [fields?.filters?.length]);\n\n const showPassAndSendSections =\n passAndSendSectionsUnlocked || hasFiltersWithValues;\n\n /* ----- Constants ----- */\n\n const selectedCondition = useMemo(\n () =>\n topLevelCondition.find(\n (condition) => condition.value === fields.condition\n )?.label,\n [fields.condition]\n );\n\n const filteredShareRecipientOptions = useMemo(\n () =>\n shareRecipientOptions?.filter(\n (option: any) => option?.type === triggerDetails.shareType?.value\n ),\n [shareRecipientOptions, triggerDetails.shareType?.value]\n );\n\n const filteredShareChannelOptions = useMemo(() => {\n const filtered = channels.filter(\n (channel: any) => channel?.type === triggerDetails?.shareType?.value\n );\n if (filtered.length) {\n return filtered;\n }\n if (\n triggerDetails?.shareType?.value !== \"WHATSAPP\" &&\n triggerDetails?.shareType?.value !== \"SMS\"\n ) {\n return [\n {\n label: \"New Share \",\n value: \"NEW_SHARE\",\n },\n ];\n }\n return [];\n }, [channels, triggerDetails?.shareType?.value]);\n\n /* ----- Event Handlers ----- */\n\n const setTriggerFields = useCallback(\n (property: string, value: any) => {\n setTriggerDetails((prev: any) => ({\n ...prev,\n [property]: value,\n }));\n },\n [setTriggerDetails]\n );\n\n const handleConditionChange = useCallback(\n (conditionValue: string) => {\n setFields((prev: any) => ({\n ...prev,\n condition: conditionValue,\n }));\n },\n [setFields]\n );\n\n const handleAddConditionClick = useCallback(() => {\n setIsEditing(true);\n addFilterCondition();\n }, [setIsEditing, addFilterCondition]);\n\n const handleVariablesChange = useCallback(\n (field: any) => {\n setTriggerFields(\"variables\", field);\n },\n [setTriggerFields]\n );\n\n const handleShareTypeChange = useCallback(\n (field: any) => {\n setTriggerFields(\"shareType\", field);\n setTriggerFields(\"shareRecipient\", null);\n setTriggerFields(\"shareChannel\", null);\n },\n [setTriggerFields]\n );\n\n const handleShareRecipientChange = useCallback(\n (field: any) => {\n setTriggerFields(\"shareRecipient\", field);\n },\n [setTriggerFields]\n );\n\n const handleShareChannelChange = useCallback(\n (field: any) => {\n setTriggerFields(\"shareChannel\", field);\n },\n [setTriggerFields]\n );\n\n const handleContactUniqueFieldChange = useCallback(\n (field: any) => {\n const constraintKey = contactUniqueConstraint?.value;\n if (!constraintKey) return;\n setTriggerFields(\n \"contactUniqueField\",\n field?.value ? { [constraintKey]: field.value } : null\n );\n },\n [setTriggerFields, contactUniqueConstraint?.value]\n );\n\n const selectedContactUniqueOption = useMemo(() => {\n const constraintKey = contactUniqueConstraint?.value;\n const stored = triggerDetails?.contactUniqueField;\n if (!constraintKey || !stored) return null;\n const variableValue = stored[constraintKey];\n if (!variableValue) return null;\n return (\n variableOptions?.find((option: any) => option?.value === variableValue) ??\n null\n );\n }, [\n contactUniqueConstraint?.value,\n triggerDetails?.contactUniqueField,\n variableOptions,\n ]);\n\n const resetEditing = useCallback(() => {\n setIsEditing(false);\n }, [setIsEditing]);\n\n /* ----- Render ----- */\n return (\n <Flex\n justifyContent=\"center\"\n alignItems=\"center\"\n css={{ marginTop: \"$40\" }}\n >\n <Box css={{ maxWidth: 488, width: \"100%\" }}>\n <Heading size=\"h5\">Set Condition</Heading>\n <Flex alignItems=\"center\" css={{ marginTop: \"$12\" }}>\n <Text\n size=\"md\"\n css={{ color: \"$neutral700\", display: \"inline-flex\" }}\n >\n which meets{\" \"}\n </Text>\n <DropdownMenu>\n <DropdownMenuTrigger asChild>\n <Flex\n alignItems=\"center\"\n css={{\n margin: \"0 $2\",\n }}\n >\n <Text\n size=\"md\"\n weight=\"medium\"\n css={{ color: \"$neutral900\", lineHeight: \"$sm\" }}\n >\n {selectedCondition}\n </Text>\n <ChevronDownIcon size={16} color=\"#6A6A6A\" />\n </Flex>\n </DropdownMenuTrigger>\n <DropdownMenuContent\n align=\"end\"\n sideOffset={5}\n css={{\n padding: \"$4 0\",\n minWidth: \"$15\",\n }}\n >\n {topLevelCondition.map((condition) => (\n <DropdownMenuItem\n key={condition.value}\n onClick={() => handleConditionChange(condition.value)}\n css={{\n ...(condition.value === fields.condition && {\n background: \"$primary100\",\n color: \"$neutral900\",\n \"&:hover\": {\n background: \"$primary100\",\n color: \"$neutral900\",\n },\n }),\n }}\n >\n {condition.label}\n </DropdownMenuItem>\n ))}\n </DropdownMenuContent>\n </DropdownMenu>\n <Text\n size=\"md\"\n css={{ color: \"$neutral700\", display: \"inline-flex\" }}\n >\n of these conditions\n </Text>\n </Flex>\n <Flex\n flexDirection=\"column\"\n gap=\"$12\"\n css={{ marginTop: fields?.filters?.length ? \"$12\" : 0 }}\n >\n {fields?.filters?.map((filters: any, index: number) => (\n <Filter\n key={filters.id}\n filters={filters}\n fields={fields}\n hasNestedCondition={hasNestedCondition}\n index={index}\n isEditing={isEditing}\n setIsEditing={setIsEditing}\n setCurrentField={setCurrentField}\n resetEditing={resetEditing}\n addNestedFilterCondition={addNestedFilterCondition}\n setNestedFieldCondition={setNestedFieldCondition}\n removeCurrentFilter={removeCurrentFilter}\n removeNestedField={removeNestedField}\n fieldOptions={fieldOptions}\n />\n ))}\n </Flex>\n <Button\n css={{ marginTop: \"$8\", marginLeft: \"-$2\" }}\n leftIcon={<PlusIcon />}\n variant=\"ghost\"\n size=\"md\"\n onClick={handleAddConditionClick}\n >\n Add Condition\n </Button>\n {showPassAndSendSections ? (\n <Flex flexDirection=\"column\" gap=\"$12\" css={{ marginTop: \"$40\" }}>\n <Heading size=\"h5\">Pass Variable to Survey</Heading>\n <Flex gap=\"$2\" flexDirection=\"column\">\n <FormLabel size=\"xs\" css={{ fontWeight: \"$5\" }}>\n Choose Fields\n </FormLabel>\n <Select\n placeholder=\"\"\n size=\"lg\"\n isMulti\n closeMenuOnSelect={false}\n isClearable={false}\n value={triggerDetails?.variables}\n onChange={handleVariablesChange}\n css={{\n p: {\n fontFamily: \"'Roboto Mono', monospace !important\",\n },\n \" .twigs-select__indicators\": {\n height: \"40px\",\n },\n \"& .twigs-select__control\": {\n overflow: \"auto\",\n maxHeight: 488,\n height: \"100%\",\n },\n \".twigs-select__value-container--is-multi\": {\n gap: \"$2\",\n },\n }}\n components={{\n MultiValue: CustomMultiValue,\n }}\n options={variableOptions}\n />\n </Flex>\n {contactUniqueConstraint?.hasUniqueConstraint ? (\n <Flex gap=\"$2\" flexDirection=\"column\">\n <FormLabel size=\"xs\" css={{ fontWeight: \"$5\" }}>\n {`Contact Uniqueness Field for \"${contactUniqueConstraint.label}\"`}\n </FormLabel>\n <Select\n placeholder=\"\"\n size=\"lg\"\n isClearable={false}\n value={selectedContactUniqueOption}\n onChange={handleContactUniqueFieldChange}\n css={{\n p: {\n fontFamily: \"'Roboto Mono', monospace !important\",\n },\n \" .twigs-select__indicators\": {\n height: \"40px\",\n },\n \"& .twigs-select__control\": {\n overflow: \"auto\",\n maxHeight: 488,\n height: \"100%\",\n },\n }}\n options={variableOptions}\n />\n </Flex>\n ) : null}\n </Flex>\n ) : null}\n {showPassAndSendSections ? (\n <Flex flexDirection=\"column\" gap=\"$12\" css={{ marginBlock: \"$40\" }}>\n <Heading size=\"h5\">Send Survey</Heading>\n <Flex flexDirection=\"column\" gap=\"$8\">\n <Flex gap=\"$2\" flexDirection=\"column\">\n <FormLabel size=\"xs\" css={{ fontWeight: \"$5\" }}>\n Choose Share Type\n </FormLabel>\n <Select\n placeholder=\"\"\n size=\"lg\"\n components={{\n Option: CustomShareOption,\n SingleValue: CustomSingleValue,\n }}\n styles={{\n singleValue: (provided, state) => ({\n ...provided,\n display: \"flex\",\n alignItems: \"center\",\n }),\n }}\n value={triggerDetails?.shareType}\n onChange={handleShareTypeChange}\n options={[\n {\n id: 1,\n label: \"Email\",\n value: \"EMAIL\",\n },\n {\n id: 2,\n label: \"SMS\",\n value: \"SMS\",\n },\n {\n id: 3,\n label: \"Whatsapp\",\n value: \"WHATSAPP\",\n },\n ]}\n />\n </Flex>\n {!isEmpty(triggerDetails?.shareType) && (\n <>\n <Flex gap=\"$2\" flexDirection=\"column\">\n <FormLabel size=\"xs\" css={{ fontWeight: \"$5\" }}>\n Choose Recipient\n </FormLabel>\n <Select\n placeholder=\"\"\n size=\"lg\"\n onChange={handleShareRecipientChange}\n isDisabled={!triggerDetails?.shareType?.value}\n value={triggerDetails?.shareRecipient}\n options={filteredShareRecipientOptions}\n />\n </Flex>\n <Flex gap=\"$2\" flexDirection=\"column\">\n <FormLabel size=\"xs\" css={{ fontWeight: \"$5\" }}>\n Choose Share Channel\n </FormLabel>\n <Select\n placeholder=\"\"\n size=\"lg\"\n components={{\n Option: CustomShareChannelOption,\n SingleValue: CustomShareChannelSingleValue,\n }}\n styles={{\n singleValue: (provided, state) => ({\n ...provided,\n display: \"flex\",\n alignItems: \"center\",\n }),\n }}\n isDisabled={!triggerDetails?.shareType?.value}\n value={triggerDetails?.shareChannel}\n onChange={handleShareChannelChange}\n options={filteredShareChannelOptions}\n />\n </Flex>\n </>\n )}\n </Flex>\n </Flex>\n ) : null}\n </Box>\n </Flex>\n );\n};\n\nexport default Trigger;"],"names":["useTriggerState","useFilterManagement","useChannelData","useMemo","checkFiltersHaveValues","useState","useEffect","_a","topLevelCondition","_b","useCallback","Flex","Box","Heading","Text","DropdownMenu","DropdownMenuTrigger","ChevronDownIcon","DropdownMenuContent","DropdownMenuItem","Filter","Button","PlusIcon","FormLabel","Select","CustomMultiValue","CustomShareOption","CustomSingleValue","isEmpty","CustomShareChannelOption","CustomShareChannelSingleValue"],"mappings":"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"}
|
|
@@ -13,6 +13,15 @@ const isTriggerDetailsValid = (triggerDetails, contactUniqueConstraint) => {
|
|
|
13
13
|
}
|
|
14
14
|
return true;
|
|
15
15
|
};
|
|
16
|
+
const hasFiltersWithValues = (fields) => {
|
|
17
|
+
var _a;
|
|
18
|
+
return (_a = fields == null ? void 0 : fields.filters) == null ? void 0 : _a.some(
|
|
19
|
+
(filter) => {
|
|
20
|
+
var _a2;
|
|
21
|
+
return (_a2 = filter == null ? void 0 : filter.filter) == null ? void 0 : _a2.some((currentFilter) => !!(currentFilter == null ? void 0 : currentFilter.value));
|
|
22
|
+
}
|
|
23
|
+
);
|
|
24
|
+
};
|
|
16
25
|
const isEventSetupDisabled = (actions, objects, eventFields) => {
|
|
17
26
|
return (!actions.value || !objects.value) && (!objects.options.find((object) => object.value === (eventFields == null ? void 0 : eventFields.object)) || !actions.options.find(
|
|
18
27
|
(action) => {
|
|
@@ -39,6 +48,7 @@ const isSaveDisabled = (fields, triggerDetails, contactUniqueConstraint) => {
|
|
|
39
48
|
};
|
|
40
49
|
|
|
41
50
|
exports.areAllFiltersComplete = areAllFiltersComplete;
|
|
51
|
+
exports.hasFiltersWithValues = hasFiltersWithValues;
|
|
42
52
|
exports.isEmpty = isEmpty;
|
|
43
53
|
exports.isEventSetupDisabled = isEventSetupDisabled;
|
|
44
54
|
exports.isSaveDisabled = isSaveDisabled;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"validation.utils.js","sources":["../../../../src/triggers/utils/validation.utils.ts"],"sourcesContent":["/**\n * Validation utilities for Triggers module\n */\n\n/**\n * Checks if an object is empty\n * @param object - Object to check\n * @returns boolean indicating if object is empty\n */\nexport const isEmpty = (object: any): boolean => {\n return Object.entries(object ?? {})?.length === 0;\n};\n\n/**\n * Checks if trigger details are valid\n * @param triggerDetails - Trigger details object\n * @param contactUniqueConstraint - Optional unique constraint metadata\n * @returns boolean indicating if details are valid\n */\nexport const isTriggerDetailsValid = (\n triggerDetails: any,\n contactUniqueConstraint?: { hasUniqueConstraint?: boolean } | null\n): boolean => {\n const baseValid =\n !isEmpty(triggerDetails.shareChannel) &&\n !isEmpty(triggerDetails.shareRecipient) &&\n !isEmpty(triggerDetails.shareType);\n\n if (!baseValid) return false;\n\n if (contactUniqueConstraint?.hasUniqueConstraint) {\n return !isEmpty(triggerDetails.contactUniqueField);\n }\n\n return true;\n};\n\n/**\n * Checks if any filter has a value\n * @param fields - Fields object with filters\n * @returns boolean indicating if any filter has value\n */\nexport const hasFiltersWithValues = (fields: any): boolean => {\n return fields?.filters?.some((filter: any) =>\n filter?.filter?.some((currentFilter: any) => !!currentFilter?.value)\n );\n};\n\n/**\n * Checks if event setup is disabled\n * @param actions - Actions configuration\n * @param objects - Objects configuration\n * @param eventFields - Event fields\n * @returns boolean indicating if setup is disabled\n */\nexport const isEventSetupDisabled = (\n actions: any,\n objects: any,\n eventFields?: any\n): boolean => {\n return (\n (!actions.value || !objects.value) &&\n (!objects.options.find((object: any) => object.value === eventFields?.object) ||\n !actions.options.find((action: any) =>\n eventFields?.action?.includes(action?.value)\n ))\n );\n};\n\n/**\n * Checks if all filter conditions are completely filled out,\n * including nested conditions (field, comparator, and value).\n * @param fields - Fields object with filters\n * @returns boolean indicating if all filters are complete\n */\nexport const areAllFiltersComplete = (fields: any): boolean => {\n if (!fields?.filters?.length) return false;\n\n return fields.filters.every((filterGroup: any) =>\n filterGroup?.filter?.length > 0 &&\n filterGroup.filter.every(\n (currentFilter: any) =>\n !!currentFilter?.field && !!currentFilter?.comparator && !!currentFilter?.value\n )\n );\n};\n\n/**\n * Checks if save button should be disabled\n * @param fields - Fields with filters\n * @param triggerDetails - Trigger details\n * @param contactUniqueConstraint - Optional unique constraint metadata\n * @returns boolean indicating if save should be disabled\n */\nexport const isSaveDisabled = (\n fields: any,\n triggerDetails: any,\n contactUniqueConstraint?: { hasUniqueConstraint?: boolean } | null\n): boolean => {\n return (\n !areAllFiltersComplete(fields) ||\n !isTriggerDetailsValid(triggerDetails, contactUniqueConstraint)\n );\n};\n\n"],"names":["_a"],"mappings":";;AASO,MAAM,OAAA,GAAU,CAAC,MAAA,KAAyB;AATjD,EAAA,IAAA,EAAA;AAUE,EAAA,OAAA,CAAA,CAAO,YAAO,OAAA,CAAQ,MAAA,IAAA,IAAA,GAAA,MAAA,GAAU,EAAE,CAAA,KAA3B,mBAA8B,MAAA,MAAW,CAAA;AAClD;AAQO,MAAM,qBAAA,GAAwB,CACnC,cAAA,EACA,uBAAA,KACY;AACZ,EAAA,MAAM,SAAA,GACJ,CAAC,OAAA,CAAQ,cAAA,CAAe,YAAY,CAAA,IACpC,CAAC,OAAA,CAAQ,cAAA,CAAe,cAAc,CAAA,IACtC,CAAC,OAAA,CAAQ,eAAe,SAAS,CAAA;AAEnC,EAAA,IAAI,CAAC,SAAA;AAAW,IAAA,OAAO,KAAA;AAEvB,EAAA,IAAI,mEAAyB,mBAAA,EAAqB;AAChD,IAAA,OAAO,CAAC,OAAA,CAAQ,cAAA,CAAe,kBAAkB,CAAA;AAAA,EACnD;AAEA,EAAA,OAAO,IAAA;AACT;
|
|
1
|
+
{"version":3,"file":"validation.utils.js","sources":["../../../../src/triggers/utils/validation.utils.ts"],"sourcesContent":["/**\n * Validation utilities for Triggers module\n */\n\n/**\n * Checks if an object is empty\n * @param object - Object to check\n * @returns boolean indicating if object is empty\n */\nexport const isEmpty = (object: any): boolean => {\n return Object.entries(object ?? {})?.length === 0;\n};\n\n/**\n * Checks if trigger details are valid\n * @param triggerDetails - Trigger details object\n * @param contactUniqueConstraint - Optional unique constraint metadata\n * @returns boolean indicating if details are valid\n */\nexport const isTriggerDetailsValid = (\n triggerDetails: any,\n contactUniqueConstraint?: { hasUniqueConstraint?: boolean } | null\n): boolean => {\n const baseValid =\n !isEmpty(triggerDetails.shareChannel) &&\n !isEmpty(triggerDetails.shareRecipient) &&\n !isEmpty(triggerDetails.shareType);\n\n if (!baseValid) return false;\n\n if (contactUniqueConstraint?.hasUniqueConstraint) {\n return !isEmpty(triggerDetails.contactUniqueField);\n }\n\n return true;\n};\n\n/**\n * Checks if any filter has a value\n * @param fields - Fields object with filters\n * @returns boolean indicating if any filter has value\n */\nexport const hasFiltersWithValues = (fields: any): boolean => {\n return fields?.filters?.some((filter: any) =>\n filter?.filter?.some((currentFilter: any) => !!currentFilter?.value)\n );\n};\n\n/**\n * Checks if event setup is disabled\n * @param actions - Actions configuration\n * @param objects - Objects configuration\n * @param eventFields - Event fields\n * @returns boolean indicating if setup is disabled\n */\nexport const isEventSetupDisabled = (\n actions: any,\n objects: any,\n eventFields?: any\n): boolean => {\n return (\n (!actions.value || !objects.value) &&\n (!objects.options.find((object: any) => object.value === eventFields?.object) ||\n !actions.options.find((action: any) =>\n eventFields?.action?.includes(action?.value)\n ))\n );\n};\n\n/**\n * Checks if all filter conditions are completely filled out,\n * including nested conditions (field, comparator, and value).\n * @param fields - Fields object with filters\n * @returns boolean indicating if all filters are complete\n */\nexport const areAllFiltersComplete = (fields: any): boolean => {\n if (!fields?.filters?.length) return false;\n\n return fields.filters.every((filterGroup: any) =>\n filterGroup?.filter?.length > 0 &&\n filterGroup.filter.every(\n (currentFilter: any) =>\n !!currentFilter?.field && !!currentFilter?.comparator && !!currentFilter?.value\n )\n );\n};\n\n/**\n * Checks if save button should be disabled\n * @param fields - Fields with filters\n * @param triggerDetails - Trigger details\n * @param contactUniqueConstraint - Optional unique constraint metadata\n * @returns boolean indicating if save should be disabled\n */\nexport const isSaveDisabled = (\n fields: any,\n triggerDetails: any,\n contactUniqueConstraint?: { hasUniqueConstraint?: boolean } | null\n): boolean => {\n return (\n !areAllFiltersComplete(fields) ||\n !isTriggerDetailsValid(triggerDetails, contactUniqueConstraint)\n );\n};\n\n"],"names":["_a"],"mappings":"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"}
|
|
@@ -61,7 +61,7 @@ const EventSetup = ({
|
|
|
61
61
|
);
|
|
62
62
|
}
|
|
63
63
|
}, [actions == null ? void 0 : actions.value, objects == null ? void 0 : objects.value, actions, objects, eventFields]);
|
|
64
|
-
useMemo(
|
|
64
|
+
const isContinueDisabled = useMemo(
|
|
65
65
|
() => isEventSetupDisabled(actions, objects, eventFields),
|
|
66
66
|
[actions, objects, eventFields]
|
|
67
67
|
);
|
|
@@ -209,6 +209,7 @@ const EventSetup = ({
|
|
|
209
209
|
size: "lg",
|
|
210
210
|
rightIcon: /* @__PURE__ */ React__default.createElement(ChevronRightIcon, null),
|
|
211
211
|
css: { marginTop: "$16" },
|
|
212
|
+
disabled: isContinueDisabled || forceDisableEventSetupCTA,
|
|
212
213
|
onClick: handleContinueClick
|
|
213
214
|
},
|
|
214
215
|
TRIGGERS_UI_STRINGS.CONTINUE
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"EventSetup.js","sources":["../../../../src/triggers/components/EventSetup.tsx"],"sourcesContent":["/* ----- Imports ----- */\n\nimport React, { useEffect, useCallback, useMemo } from \"react\";\nimport {\n Box,\n Button,\n Flex,\n FormLabel,\n Heading,\n Select,\n FormHelperText,\n Text,\n} from \"@sparrowengg/twigs-react\";\nimport { ChevronRightIcon } from \"@sparrowengg/twigs-react-icons\";\nimport CustomPill from \"../../commons/components/custom-pill\";\nimport { EventSetupProps } from \"../types\";\nimport { TRIGGERS_UI_STRINGS } from \"../constants\";\nimport { isEventSetupDisabled } from \"../utils\";\nimport { sanitizeHTML } from \"../../commons/utils\";\n\n/* ----- Helper Components ----- */\n\n/**\n * Custom multi-value component for Select\n *\n * @param {any} props - Component props\n * @returns {JSX.Element} Rendered custom pill\n */\nconst CustomMultiValue: React.FC<any> = (props) => {\n return (\n <CustomPill\n label={props.data.label}\n onCloseHandler={() => props.removeProps.onClick()}\n variant=\"default\"\n radius=\"md\"\n />\n );\n};\n\n/* ----- Main Component ----- */\n\n/**\n * EventSetup component for configuring trigger event details\n *\n * @param {EventSetupProps} props - Component props\n * @returns {JSX.Element} Rendered EventSetup component\n */\nconst EventSetup: React.FC<EventSetupProps> = ({\n forceDisableEventSetupCTA,\n eventFields,\n accounts,\n objects,\n actions,\n surveyDetails,\n navigateTriggerPage,\n}) => {\n /* ----- Effects ----- */\n\n useEffect(() => {\n if (\n actions?.options?.filter((action: any) =>\n eventFields?.action?.includes(action?.value)\n )?.length\n ) {\n actions?.onChangeHandler(\n Object.keys(actions?.value || {})?.length\n ? actions?.value\n : actions?.options\n ?.filter((action: any) =>\n eventFields?.action?.includes(action?.value)\n )\n ?.map((action: any) => action)\n );\n }\n if (\n objects?.options?.find(\n (object: any) => object?.value === eventFields?.object\n )\n ) {\n objects?.onChangeHandler(\n objects?.value ??\n objects?.options?.find(\n (object: any) => object?.value === eventFields?.object\n )\n );\n }\n }, [actions?.value, objects?.value, actions, objects, eventFields]);\n\n /* ----- Constants ----- */\n\n const isContinueDisabled = useMemo(\n () => isEventSetupDisabled(actions, objects, eventFields),\n [actions, objects, eventFields]\n );\n\n const accountValue = useMemo(\n () =>\n accounts?.options?.find(\n (account: any) => account?.value === eventFields?.account\n ) ?? accounts?.value,\n [accounts?.options, accounts?.value, eventFields?.account]\n );\n\n const objectValue = useMemo(\n () =>\n objects?.value ??\n objects?.options?.find(\n (object: any) => object.value === eventFields?.object\n ),\n [objects?.value, objects?.options, eventFields?.object]\n );\n\n const actionValue = useMemo(\n () =>\n Object.keys(actions?.value || {})?.length\n ? actions.value\n : actions?.options\n .filter((action: any) =>\n eventFields?.action?.includes(action?.value)\n )\n ?.map((action: any) => action),\n [actions?.value, actions?.options, eventFields?.action]\n );\n\n /* ----- Event Handlers ----- */\n\n const handleAccountChange = useCallback(\n (value: any) => {\n accounts.onChangeHandler(value);\n },\n [accounts]\n );\n\n const handleObjectChange = useCallback(\n (value: any) => {\n objects.onChangeHandler(value);\n },\n [objects]\n );\n\n const handleActionChange = useCallback(\n (value: any) => {\n actions.onChangeHandler(value);\n },\n [actions]\n );\n\n const handleContinueClick = useCallback(() => {\n navigateTriggerPage(true);\n }, [navigateTriggerPage]);\n\n /* ----- Render ----- */\n\n return (\n <Flex\n css={{ paddingTop: \"$40\" }}\n alignItems=\"center\"\n justifyContent=\"center\"\n >\n <Box css={{ width: 488 }}>\n <Heading size=\"h5\">{TRIGGERS_UI_STRINGS.ACCOUNT_DETAILS}</Heading>\n <Flex gap=\"$2\" css={{ marginTop: \"$4\" }}>\n <Text size=\"sm\" css={{ color: \"$neutral500\" }}>\n {TRIGGERS_UI_STRINGS.SURVEY_NAME_LABEL}\n </Text>\n <Text size=\"sm\" weight={\"medium\"} css={{ color: \"$neutral800\" }}>\n {surveyDetails.surveyName}\n </Text>\n </Flex>\n <Flex flexDirection=\"column\" gap=\"$8\" css={{ marginTop: \"$16\" }}>\n {accounts?.hasAccounts && (\n <Flex gap=\"$2\" flexDirection=\"column\">\n <FormLabel size=\"xs\" css={{ fontWeight: \"$5\" }}>\n {TRIGGERS_UI_STRINGS.CHOOSE_ACCOUNT}\n </FormLabel>\n <Select\n value={accountValue}\n options={accounts.options}\n isMulti={accounts?.isMulti}\n placeholder={TRIGGERS_UI_STRINGS.PLACEHOLDER_EMPTY}\n onChange={handleAccountChange}\n size=\"lg\"\n />\n <FormHelperText\n dangerouslySetInnerHTML={{\n __html: sanitizeHTML(accounts?.helperText ?? \"\"),\n }}\n size=\"xs\"\n css={{\n color: \"$neutral500\",\n a: {\n color: \"$primary600\",\n },\n }}\n />\n </Flex>\n )}\n {objects?.hasObjects && (\n <Flex gap=\"$2\" flexDirection=\"column\">\n <FormLabel size=\"xs\" css={{ fontWeight: \"$5\" }}>\n {TRIGGERS_UI_STRINGS.CHOOSE_OBJECT}\n </FormLabel>\n <Select\n options={objects.options}\n value={objectValue}\n isMulti={objects?.isMulti}\n placeholder={TRIGGERS_UI_STRINGS.PLACEHOLDER_EMPTY}\n onChange={handleObjectChange}\n size=\"lg\"\n />\n <FormHelperText\n dangerouslySetInnerHTML={{\n __html: sanitizeHTML(objects?.helperText ?? \"\"),\n }}\n size=\"xs\"\n css={{\n color: \"$neutral500\",\n a: {\n color: \"$primary600\",\n },\n }}\n />\n </Flex>\n )}\n {actions?.hasActions && (\n <Flex gap=\"$2\" flexDirection=\"column\">\n <FormLabel size=\"xs\" css={{ fontWeight: \"$5\" }}>\n {TRIGGERS_UI_STRINGS.CHOOSE_ACTION}\n </FormLabel>\n <Select\n size=\"lg\"\n options={actions.options}\n value={actionValue}\n isMulti={actions?.isMulti}\n placeholder={TRIGGERS_UI_STRINGS.PLACEHOLDER_EMPTY}\n css={{\n \".twigs-select__value-container--is-multi\": {\n gap: \"$2\",\n },\n }}\n components={{\n MultiValue: CustomMultiValue,\n }}\n onChange={handleActionChange}\n />\n <FormHelperText\n dangerouslySetInnerHTML={{\n __html: sanitizeHTML(actions?.helperText ?? \"\"),\n }}\n size=\"xs\"\n css={{\n color: \"$neutral500\",\n a: {\n color: \"$primary600\",\n },\n }}\n />\n </Flex>\n )}\n </Flex>\n <Button\n size=\"lg\"\n rightIcon={<ChevronRightIcon />}\n css={{ marginTop: \"$16\" }}\n // disabled={isContinueDisabled || forceDisableEventSetupCTA}\n onClick={handleContinueClick}\n >\n {TRIGGERS_UI_STRINGS.CONTINUE}\n </Button>\n </Box>\n </Flex>\n );\n};\n\nexport default EventSetup;\n\n"],"names":["React","_a","_b","_c"],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"EventSetup.js","sources":["../../../../src/triggers/components/EventSetup.tsx"],"sourcesContent":["/* ----- Imports ----- */\n\nimport React, { useEffect, useCallback, useMemo } from \"react\";\nimport {\n Box,\n Button,\n Flex,\n FormLabel,\n Heading,\n Select,\n FormHelperText,\n Text,\n} from \"@sparrowengg/twigs-react\";\nimport { ChevronRightIcon } from \"@sparrowengg/twigs-react-icons\";\nimport CustomPill from \"../../commons/components/custom-pill\";\nimport { EventSetupProps } from \"../types\";\nimport { TRIGGERS_UI_STRINGS } from \"../constants\";\nimport { isEventSetupDisabled } from \"../utils\";\nimport { sanitizeHTML } from \"../../commons/utils\";\n\n/* ----- Helper Components ----- */\n\n/**\n * Custom multi-value component for Select\n *\n * @param {any} props - Component props\n * @returns {JSX.Element} Rendered custom pill\n */\nconst CustomMultiValue: React.FC<any> = (props) => {\n return (\n <CustomPill\n label={props.data.label}\n onCloseHandler={() => props.removeProps.onClick()}\n variant=\"default\"\n radius=\"md\"\n />\n );\n};\n\n/* ----- Main Component ----- */\n\n/**\n * EventSetup component for configuring trigger event details\n *\n * @param {EventSetupProps} props - Component props\n * @returns {JSX.Element} Rendered EventSetup component\n */\nconst EventSetup: React.FC<EventSetupProps> = ({\n forceDisableEventSetupCTA,\n eventFields,\n accounts,\n objects,\n actions,\n surveyDetails,\n navigateTriggerPage,\n}) => {\n /* ----- Effects ----- */\n\n useEffect(() => {\n if (\n actions?.options?.filter((action: any) =>\n eventFields?.action?.includes(action?.value)\n )?.length\n ) {\n actions?.onChangeHandler(\n Object.keys(actions?.value || {})?.length\n ? actions?.value\n : actions?.options\n ?.filter((action: any) =>\n eventFields?.action?.includes(action?.value)\n )\n ?.map((action: any) => action)\n );\n }\n if (\n objects?.options?.find(\n (object: any) => object?.value === eventFields?.object\n )\n ) {\n objects?.onChangeHandler(\n objects?.value ??\n objects?.options?.find(\n (object: any) => object?.value === eventFields?.object\n )\n );\n }\n }, [actions?.value, objects?.value, actions, objects, eventFields]);\n\n /* ----- Constants ----- */\n\n const isContinueDisabled = useMemo(\n () => isEventSetupDisabled(actions, objects, eventFields),\n [actions, objects, eventFields]\n );\n\n const accountValue = useMemo(\n () =>\n accounts?.options?.find(\n (account: any) => account?.value === eventFields?.account\n ) ?? accounts?.value,\n [accounts?.options, accounts?.value, eventFields?.account]\n );\n\n const objectValue = useMemo(\n () =>\n objects?.value ??\n objects?.options?.find(\n (object: any) => object.value === eventFields?.object\n ),\n [objects?.value, objects?.options, eventFields?.object]\n );\n\n const actionValue = useMemo(\n () =>\n Object.keys(actions?.value || {})?.length\n ? actions.value\n : actions?.options\n .filter((action: any) =>\n eventFields?.action?.includes(action?.value)\n )\n ?.map((action: any) => action),\n [actions?.value, actions?.options, eventFields?.action]\n );\n\n /* ----- Event Handlers ----- */\n\n const handleAccountChange = useCallback(\n (value: any) => {\n accounts.onChangeHandler(value);\n },\n [accounts]\n );\n\n const handleObjectChange = useCallback(\n (value: any) => {\n objects.onChangeHandler(value);\n },\n [objects]\n );\n\n const handleActionChange = useCallback(\n (value: any) => {\n actions.onChangeHandler(value);\n },\n [actions]\n );\n\n const handleContinueClick = useCallback(() => {\n navigateTriggerPage(true);\n }, [navigateTriggerPage]);\n\n /* ----- Render ----- */\n\n return (\n <Flex\n css={{ paddingTop: \"$40\" }}\n alignItems=\"center\"\n justifyContent=\"center\"\n >\n <Box css={{ width: 488 }}>\n <Heading size=\"h5\">{TRIGGERS_UI_STRINGS.ACCOUNT_DETAILS}</Heading>\n <Flex gap=\"$2\" css={{ marginTop: \"$4\" }}>\n <Text size=\"sm\" css={{ color: \"$neutral500\" }}>\n {TRIGGERS_UI_STRINGS.SURVEY_NAME_LABEL}\n </Text>\n <Text size=\"sm\" weight={\"medium\"} css={{ color: \"$neutral800\" }}>\n {surveyDetails.surveyName}\n </Text>\n </Flex>\n <Flex flexDirection=\"column\" gap=\"$8\" css={{ marginTop: \"$16\" }}>\n {accounts?.hasAccounts && (\n <Flex gap=\"$2\" flexDirection=\"column\">\n <FormLabel size=\"xs\" css={{ fontWeight: \"$5\" }}>\n {TRIGGERS_UI_STRINGS.CHOOSE_ACCOUNT}\n </FormLabel>\n <Select\n value={accountValue}\n options={accounts.options}\n isMulti={accounts?.isMulti}\n placeholder={TRIGGERS_UI_STRINGS.PLACEHOLDER_EMPTY}\n onChange={handleAccountChange}\n size=\"lg\"\n />\n <FormHelperText\n dangerouslySetInnerHTML={{\n __html: sanitizeHTML(accounts?.helperText ?? \"\"),\n }}\n size=\"xs\"\n css={{\n color: \"$neutral500\",\n a: {\n color: \"$primary600\",\n },\n }}\n />\n </Flex>\n )}\n {objects?.hasObjects && (\n <Flex gap=\"$2\" flexDirection=\"column\">\n <FormLabel size=\"xs\" css={{ fontWeight: \"$5\" }}>\n {TRIGGERS_UI_STRINGS.CHOOSE_OBJECT}\n </FormLabel>\n <Select\n options={objects.options}\n value={objectValue}\n isMulti={objects?.isMulti}\n placeholder={TRIGGERS_UI_STRINGS.PLACEHOLDER_EMPTY}\n onChange={handleObjectChange}\n size=\"lg\"\n />\n <FormHelperText\n dangerouslySetInnerHTML={{\n __html: sanitizeHTML(objects?.helperText ?? \"\"),\n }}\n size=\"xs\"\n css={{\n color: \"$neutral500\",\n a: {\n color: \"$primary600\",\n },\n }}\n />\n </Flex>\n )}\n {actions?.hasActions && (\n <Flex gap=\"$2\" flexDirection=\"column\">\n <FormLabel size=\"xs\" css={{ fontWeight: \"$5\" }}>\n {TRIGGERS_UI_STRINGS.CHOOSE_ACTION}\n </FormLabel>\n <Select\n size=\"lg\"\n options={actions.options}\n value={actionValue}\n isMulti={actions?.isMulti}\n placeholder={TRIGGERS_UI_STRINGS.PLACEHOLDER_EMPTY}\n css={{\n \".twigs-select__value-container--is-multi\": {\n gap: \"$2\",\n },\n }}\n components={{\n MultiValue: CustomMultiValue,\n }}\n onChange={handleActionChange}\n />\n <FormHelperText\n dangerouslySetInnerHTML={{\n __html: sanitizeHTML(actions?.helperText ?? \"\"),\n }}\n size=\"xs\"\n css={{\n color: \"$neutral500\",\n a: {\n color: \"$primary600\",\n },\n }}\n />\n </Flex>\n )}\n </Flex>\n <Button\n size=\"lg\"\n rightIcon={<ChevronRightIcon />}\n css={{ marginTop: \"$16\" }}\n disabled={isContinueDisabled || forceDisableEventSetupCTA}\n onClick={handleContinueClick}\n >\n {TRIGGERS_UI_STRINGS.CONTINUE}\n </Button>\n </Box>\n </Flex>\n );\n};\n\nexport default EventSetup;\n\n"],"names":["React","_a","_b","_c"],"mappings":"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"}
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import React__default, { useMemo, useCallback } from 'react';
|
|
1
|
+
import React__default, { useMemo, useState, useEffect, useCallback } from 'react';
|
|
2
2
|
import { topLevelCondition } from '../constants/index.js';
|
|
3
3
|
import { Filter } from './filter/filter.js';
|
|
4
4
|
import '../../node_modules/dayjs/dayjs.min.js';
|
|
@@ -7,7 +7,7 @@ import { useTriggerState } from '../hooks/use-trigger-state.js';
|
|
|
7
7
|
import { useFilterManagement } from '../hooks/use-filter-management.js';
|
|
8
8
|
import { useChannelData } from '../hooks/use-channel-data.js';
|
|
9
9
|
import { CustomMultiValue, CustomSingleValue, CustomShareOption, CustomShareChannelSingleValue, CustomShareChannelOption } from './custom-share-components.js';
|
|
10
|
-
import { isEmpty } from '../utils/validation.utils.js';
|
|
10
|
+
import { hasFiltersWithValues, isEmpty } from '../utils/validation.utils.js';
|
|
11
11
|
import { Flex } from '../../node_modules/@sparrowengg/twigs-react/dist/es/flex/flex.js';
|
|
12
12
|
import { Box } from '../../node_modules/@sparrowengg/twigs-react/dist/es/box/box.js';
|
|
13
13
|
import { Heading } from '../../node_modules/@sparrowengg/twigs-react/dist/es/heading/heading.js';
|
|
@@ -53,7 +53,7 @@ const Trigger = ({
|
|
|
53
53
|
variableOptions,
|
|
54
54
|
contactUniqueConstraint
|
|
55
55
|
}) => {
|
|
56
|
-
var _a, _b, _c, _d, _e, _f;
|
|
56
|
+
var _a, _b, _c, _d, _e, _f, _g;
|
|
57
57
|
const { isEditing, setIsEditing } = useTriggerState();
|
|
58
58
|
const {
|
|
59
59
|
addFilterCondition,
|
|
@@ -72,6 +72,23 @@ const Trigger = ({
|
|
|
72
72
|
surveyId: surveyDetails == null ? void 0 : surveyDetails.surveyId,
|
|
73
73
|
shareChannelOptions
|
|
74
74
|
});
|
|
75
|
+
const hasFiltersWithValues$1 = useMemo(
|
|
76
|
+
() => hasFiltersWithValues(fields),
|
|
77
|
+
[fields]
|
|
78
|
+
);
|
|
79
|
+
const [passAndSendSectionsUnlocked, setPassAndSendSectionsUnlocked] = useState(false);
|
|
80
|
+
useEffect(() => {
|
|
81
|
+
if (hasFiltersWithValues$1) {
|
|
82
|
+
setPassAndSendSectionsUnlocked(true);
|
|
83
|
+
}
|
|
84
|
+
}, [hasFiltersWithValues$1]);
|
|
85
|
+
useEffect(() => {
|
|
86
|
+
var _a2;
|
|
87
|
+
if (!((_a2 = fields == null ? void 0 : fields.filters) == null ? void 0 : _a2.length)) {
|
|
88
|
+
setPassAndSendSectionsUnlocked(false);
|
|
89
|
+
}
|
|
90
|
+
}, [(_a = fields == null ? void 0 : fields.filters) == null ? void 0 : _a.length]);
|
|
91
|
+
const showPassAndSendSections = passAndSendSectionsUnlocked || hasFiltersWithValues$1;
|
|
75
92
|
const selectedCondition = useMemo(
|
|
76
93
|
() => {
|
|
77
94
|
var _a2;
|
|
@@ -81,15 +98,6 @@ const Trigger = ({
|
|
|
81
98
|
},
|
|
82
99
|
[fields.condition]
|
|
83
100
|
);
|
|
84
|
-
const hasFiltersWithValues = useMemo(
|
|
85
|
-
() => fields.filters.some(
|
|
86
|
-
(filter) => {
|
|
87
|
-
var _a2;
|
|
88
|
-
return (_a2 = filter == null ? void 0 : filter.filter) == null ? void 0 : _a2.some((currentFilter) => !!(currentFilter == null ? void 0 : currentFilter.value));
|
|
89
|
-
}
|
|
90
|
-
),
|
|
91
|
-
[fields.filters]
|
|
92
|
-
);
|
|
93
101
|
const filteredShareRecipientOptions = useMemo(
|
|
94
102
|
() => shareRecipientOptions == null ? void 0 : shareRecipientOptions.filter(
|
|
95
103
|
(option) => {
|
|
@@ -97,7 +105,7 @@ const Trigger = ({
|
|
|
97
105
|
return (option == null ? void 0 : option.type) === ((_a2 = triggerDetails.shareType) == null ? void 0 : _a2.value);
|
|
98
106
|
}
|
|
99
107
|
),
|
|
100
|
-
[shareRecipientOptions, (
|
|
108
|
+
[shareRecipientOptions, (_b = triggerDetails.shareType) == null ? void 0 : _b.value]
|
|
101
109
|
);
|
|
102
110
|
const filteredShareChannelOptions = useMemo(() => {
|
|
103
111
|
var _a2, _b2;
|
|
@@ -119,7 +127,7 @@ const Trigger = ({
|
|
|
119
127
|
];
|
|
120
128
|
}
|
|
121
129
|
return [];
|
|
122
|
-
}, [channels, (
|
|
130
|
+
}, [channels, (_c = triggerDetails == null ? void 0 : triggerDetails.shareType) == null ? void 0 : _c.value]);
|
|
123
131
|
const setTriggerFields = useCallback(
|
|
124
132
|
(property, value) => {
|
|
125
133
|
setTriggerDetails((prev) => __spreadProps(__spreadValues({}, prev), {
|
|
@@ -267,9 +275,9 @@ const Trigger = ({
|
|
|
267
275
|
{
|
|
268
276
|
flexDirection: "column",
|
|
269
277
|
gap: "$12",
|
|
270
|
-
css: { marginTop: ((
|
|
278
|
+
css: { marginTop: ((_d = fields == null ? void 0 : fields.filters) == null ? void 0 : _d.length) ? "$12" : 0 }
|
|
271
279
|
},
|
|
272
|
-
(
|
|
280
|
+
(_e = fields == null ? void 0 : fields.filters) == null ? void 0 : _e.map((filters, index) => /* @__PURE__ */ React__default.createElement(
|
|
273
281
|
Filter,
|
|
274
282
|
{
|
|
275
283
|
key: filters.id,
|
|
@@ -298,7 +306,7 @@ const Trigger = ({
|
|
|
298
306
|
onClick: handleAddConditionClick
|
|
299
307
|
},
|
|
300
308
|
"Add Condition"
|
|
301
|
-
),
|
|
309
|
+
), showPassAndSendSections ? /* @__PURE__ */ React__default.createElement(Flex, { flexDirection: "column", gap: "$12", css: { marginTop: "$40" } }, /* @__PURE__ */ React__default.createElement(Heading, { size: "h5" }, "Pass Variable to Survey"), /* @__PURE__ */ React__default.createElement(Flex, { gap: "$2", flexDirection: "column" }, /* @__PURE__ */ React__default.createElement(FormLabel, { size: "xs", css: { fontWeight: "$5" } }, "Choose Fields"), /* @__PURE__ */ React__default.createElement(
|
|
302
310
|
Select,
|
|
303
311
|
{
|
|
304
312
|
placeholder: "",
|
|
@@ -352,7 +360,7 @@ const Trigger = ({
|
|
|
352
360
|
},
|
|
353
361
|
options: variableOptions
|
|
354
362
|
}
|
|
355
|
-
)) : null) : null,
|
|
363
|
+
)) : null) : null, showPassAndSendSections ? /* @__PURE__ */ React__default.createElement(Flex, { flexDirection: "column", gap: "$12", css: { marginBlock: "$40" } }, /* @__PURE__ */ React__default.createElement(Heading, { size: "h5" }, "Send Survey"), /* @__PURE__ */ React__default.createElement(Flex, { flexDirection: "column", gap: "$8" }, /* @__PURE__ */ React__default.createElement(Flex, { gap: "$2", flexDirection: "column" }, /* @__PURE__ */ React__default.createElement(FormLabel, { size: "xs", css: { fontWeight: "$5" } }, "Choose Share Type"), /* @__PURE__ */ React__default.createElement(
|
|
356
364
|
Select,
|
|
357
365
|
{
|
|
358
366
|
placeholder: "",
|
|
@@ -393,7 +401,7 @@ const Trigger = ({
|
|
|
393
401
|
placeholder: "",
|
|
394
402
|
size: "lg",
|
|
395
403
|
onChange: handleShareRecipientChange,
|
|
396
|
-
isDisabled: !((
|
|
404
|
+
isDisabled: !((_f = triggerDetails == null ? void 0 : triggerDetails.shareType) == null ? void 0 : _f.value),
|
|
397
405
|
value: triggerDetails == null ? void 0 : triggerDetails.shareRecipient,
|
|
398
406
|
options: filteredShareRecipientOptions
|
|
399
407
|
}
|
|
@@ -412,7 +420,7 @@ const Trigger = ({
|
|
|
412
420
|
alignItems: "center"
|
|
413
421
|
})
|
|
414
422
|
},
|
|
415
|
-
isDisabled: !((
|
|
423
|
+
isDisabled: !((_g = triggerDetails == null ? void 0 : triggerDetails.shareType) == null ? void 0 : _g.value),
|
|
416
424
|
value: triggerDetails == null ? void 0 : triggerDetails.shareChannel,
|
|
417
425
|
onChange: handleShareChannelChange,
|
|
418
426
|
options: filteredShareChannelOptions
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"trigger.js","sources":["../../../../src/triggers/components/trigger.tsx"],"sourcesContent":["/* ----- Imports ----- */\n\nimport {\n Box,\n Button,\n DropdownMenu,\n DropdownMenuContent,\n DropdownMenuItem,\n DropdownMenuTrigger,\n Flex,\n FormLabel,\n Heading,\n Select,\n Text,\n} from \"@sparrowengg/twigs-react\";\nimport { ChevronDownIcon, PlusIcon } from \"@sparrowengg/twigs-react-icons\";\nimport React, { useCallback, useMemo } from \"react\";\nimport { topLevelCondition } from \"../constants\";\nimport { Filter } from \"./subcomponents\";\nimport {\n CustomShareOption,\n CustomSingleValue,\n CustomMultiValue,\n CustomShareChannelOption,\n CustomShareChannelSingleValue,\n} from \"./custom-share-components\";\nimport {\n useTriggerState,\n useFilterManagement,\n useChannelData,\n} from \"../hooks\";\nimport { isEmpty } from \"../utils\";\nimport { ContactUniqueConstraint } from \"../types\";\n\n/* ----- Types / Interfaces ----- */\n\ntype TriggerProps = {\n fields: any;\n setFields: (fields: any) => void;\n token: string;\n apiURL: string;\n surveyDetails: any;\n hasNestedCondition: boolean;\n shareRecipientOptions: any[];\n shareChannelOptions: any[];\n triggerDetails: any;\n setTriggerDetails: (details: any) => void;\n fieldOptions: any[];\n variableOptions: any[];\n contactUniqueConstraint?: ContactUniqueConstraint;\n};\n\n/* ----- Main Component ----- */\n\n/**\n * Trigger component for setting up trigger conditions and actions\n *\n * @param {TriggerProps} props - Component props\n * @returns {JSX.Element} Rendered Trigger component\n */\nconst Trigger: React.FC<TriggerProps> = ({\n fields,\n setFields,\n token,\n apiURL,\n hasNestedCondition,\n surveyDetails,\n shareRecipientOptions,\n shareChannelOptions,\n triggerDetails,\n setTriggerDetails,\n fieldOptions,\n variableOptions,\n contactUniqueConstraint,\n}) => {\n /* ----- Hooks ----- */\n\n const { isEditing, setIsEditing } = useTriggerState();\n\n const {\n addFilterCondition,\n addNestedFilterCondition,\n setCurrentField,\n removeCurrentFilter,\n removeNestedField,\n setNestedFieldCondition,\n } = useFilterManagement({\n setFields,\n setIsEditing,\n });\n\n const { channels } = useChannelData({\n token,\n apiURL,\n surveyId: surveyDetails?.surveyId,\n shareChannelOptions,\n });\n\n /* ----- Constants ----- */\n\n const selectedCondition = useMemo(\n () =>\n topLevelCondition.find(\n (condition) => condition.value === fields.condition\n )?.label,\n [fields.condition]\n );\n\n const hasFiltersWithValues = useMemo(\n () =>\n fields.filters.some((filter: any) =>\n filter?.filter?.some((currentFilter: any) => !!currentFilter?.value)\n ),\n [fields.filters]\n );\n\n const filteredShareRecipientOptions = useMemo(\n () =>\n shareRecipientOptions?.filter(\n (option: any) => option?.type === triggerDetails.shareType?.value\n ),\n [shareRecipientOptions, triggerDetails.shareType?.value]\n );\n\n const filteredShareChannelOptions = useMemo(() => {\n const filtered = channels.filter(\n (channel: any) => channel?.type === triggerDetails?.shareType?.value\n );\n if (filtered.length) {\n return filtered;\n }\n if (\n triggerDetails?.shareType?.value !== \"WHATSAPP\" &&\n triggerDetails?.shareType?.value !== \"SMS\"\n ) {\n return [\n {\n label: \"New Share \",\n value: \"NEW_SHARE\",\n },\n ];\n }\n return [];\n }, [channels, triggerDetails?.shareType?.value]);\n\n /* ----- Event Handlers ----- */\n\n const setTriggerFields = useCallback(\n (property: string, value: any) => {\n setTriggerDetails((prev: any) => ({\n ...prev,\n [property]: value,\n }));\n },\n [setTriggerDetails]\n );\n\n const handleConditionChange = useCallback(\n (conditionValue: string) => {\n setFields((prev: any) => ({\n ...prev,\n condition: conditionValue,\n }));\n },\n [setFields]\n );\n\n const handleAddConditionClick = useCallback(() => {\n setIsEditing(true);\n addFilterCondition();\n }, [setIsEditing, addFilterCondition]);\n\n const handleVariablesChange = useCallback(\n (field: any) => {\n setTriggerFields(\"variables\", field);\n },\n [setTriggerFields]\n );\n\n const handleShareTypeChange = useCallback(\n (field: any) => {\n setTriggerFields(\"shareType\", field);\n setTriggerFields(\"shareRecipient\", null);\n setTriggerFields(\"shareChannel\", null);\n },\n [setTriggerFields]\n );\n\n const handleShareRecipientChange = useCallback(\n (field: any) => {\n setTriggerFields(\"shareRecipient\", field);\n },\n [setTriggerFields]\n );\n\n const handleShareChannelChange = useCallback(\n (field: any) => {\n setTriggerFields(\"shareChannel\", field);\n },\n [setTriggerFields]\n );\n\n const handleContactUniqueFieldChange = useCallback(\n (field: any) => {\n const constraintKey = contactUniqueConstraint?.value;\n if (!constraintKey) return;\n setTriggerFields(\n \"contactUniqueField\",\n field?.value ? { [constraintKey]: field.value } : null\n );\n },\n [setTriggerFields, contactUniqueConstraint?.value]\n );\n\n const selectedContactUniqueOption = useMemo(() => {\n const constraintKey = contactUniqueConstraint?.value;\n const stored = triggerDetails?.contactUniqueField;\n if (!constraintKey || !stored) return null;\n const variableValue = stored[constraintKey];\n if (!variableValue) return null;\n return (\n variableOptions?.find((option: any) => option?.value === variableValue) ??\n null\n );\n }, [\n contactUniqueConstraint?.value,\n triggerDetails?.contactUniqueField,\n variableOptions,\n ]);\n\n const resetEditing = useCallback(() => {\n setIsEditing(false);\n }, [setIsEditing]);\n\n /* ----- Render ----- */\n return (\n <Flex\n justifyContent=\"center\"\n alignItems=\"center\"\n css={{ marginTop: \"$40\" }}\n >\n <Box css={{ maxWidth: 488, width: \"100%\" }}>\n <Heading size=\"h5\">Set Condition</Heading>\n <Flex alignItems=\"center\" css={{ marginTop: \"$12\" }}>\n <Text\n size=\"md\"\n css={{ color: \"$neutral700\", display: \"inline-flex\" }}\n >\n which meets{\" \"}\n </Text>\n <DropdownMenu>\n <DropdownMenuTrigger asChild>\n <Flex\n alignItems=\"center\"\n css={{\n margin: \"0 $2\",\n }}\n >\n <Text\n size=\"md\"\n weight=\"medium\"\n css={{ color: \"$neutral900\", lineHeight: \"$sm\" }}\n >\n {selectedCondition}\n </Text>\n <ChevronDownIcon size={16} color=\"#6A6A6A\" />\n </Flex>\n </DropdownMenuTrigger>\n <DropdownMenuContent\n align=\"end\"\n sideOffset={5}\n css={{\n padding: \"$4 0\",\n minWidth: \"$15\",\n }}\n >\n {topLevelCondition.map((condition) => (\n <DropdownMenuItem\n key={condition.value}\n onClick={() => handleConditionChange(condition.value)}\n css={{\n ...(condition.value === fields.condition && {\n background: \"$primary100\",\n color: \"$neutral900\",\n \"&:hover\": {\n background: \"$primary100\",\n color: \"$neutral900\",\n },\n }),\n }}\n >\n {condition.label}\n </DropdownMenuItem>\n ))}\n </DropdownMenuContent>\n </DropdownMenu>\n <Text\n size=\"md\"\n css={{ color: \"$neutral700\", display: \"inline-flex\" }}\n >\n of these conditions\n </Text>\n </Flex>\n <Flex\n flexDirection=\"column\"\n gap=\"$12\"\n css={{ marginTop: fields?.filters?.length ? \"$12\" : 0 }}\n >\n {fields?.filters?.map((filters: any, index: number) => (\n <Filter\n key={filters.id}\n filters={filters}\n fields={fields}\n hasNestedCondition={hasNestedCondition}\n index={index}\n isEditing={isEditing}\n setIsEditing={setIsEditing}\n setCurrentField={setCurrentField}\n resetEditing={resetEditing}\n addNestedFilterCondition={addNestedFilterCondition}\n setNestedFieldCondition={setNestedFieldCondition}\n removeCurrentFilter={removeCurrentFilter}\n removeNestedField={removeNestedField}\n fieldOptions={fieldOptions}\n />\n ))}\n </Flex>\n <Button\n css={{ marginTop: \"$8\", marginLeft: \"-$2\" }}\n leftIcon={<PlusIcon />}\n variant=\"ghost\"\n size=\"md\"\n onClick={handleAddConditionClick}\n >\n Add Condition\n </Button>\n {hasFiltersWithValues ? (\n <Flex flexDirection=\"column\" gap=\"$12\" css={{ marginTop: \"$40\" }}>\n <Heading size=\"h5\">Pass Variable to Survey</Heading>\n <Flex gap=\"$2\" flexDirection=\"column\">\n <FormLabel size=\"xs\" css={{ fontWeight: \"$5\" }}>\n Choose Fields\n </FormLabel>\n <Select\n placeholder=\"\"\n size=\"lg\"\n isMulti\n closeMenuOnSelect={false}\n isClearable={false}\n value={triggerDetails?.variables}\n onChange={handleVariablesChange}\n css={{\n p: {\n fontFamily: \"'Roboto Mono', monospace !important\",\n },\n \" .twigs-select__indicators\": {\n height: \"40px\",\n },\n \"& .twigs-select__control\": {\n overflow: \"auto\",\n maxHeight: 488,\n height: \"100%\",\n },\n \".twigs-select__value-container--is-multi\": {\n gap: \"$2\",\n },\n }}\n components={{\n MultiValue: CustomMultiValue,\n }}\n options={variableOptions}\n />\n </Flex>\n {contactUniqueConstraint?.hasUniqueConstraint ? (\n <Flex gap=\"$2\" flexDirection=\"column\">\n <FormLabel size=\"xs\" css={{ fontWeight: \"$5\" }}>\n {`Contact Uniqueness Field for \"${contactUniqueConstraint.label}\"`}\n </FormLabel>\n <Select\n placeholder=\"\"\n size=\"lg\"\n isClearable={false}\n value={selectedContactUniqueOption}\n onChange={handleContactUniqueFieldChange}\n css={{\n p: {\n fontFamily: \"'Roboto Mono', monospace !important\",\n },\n \" .twigs-select__indicators\": {\n height: \"40px\",\n },\n \"& .twigs-select__control\": {\n overflow: \"auto\",\n maxHeight: 488,\n height: \"100%\",\n },\n }}\n options={variableOptions}\n />\n </Flex>\n ) : null}\n </Flex>\n ) : null}\n {hasFiltersWithValues ? (\n <Flex flexDirection=\"column\" gap=\"$12\" css={{ marginBlock: \"$40\" }}>\n <Heading size=\"h5\">Send Survey</Heading>\n <Flex flexDirection=\"column\" gap=\"$8\">\n <Flex gap=\"$2\" flexDirection=\"column\">\n <FormLabel size=\"xs\" css={{ fontWeight: \"$5\" }}>\n Choose Share Type\n </FormLabel>\n <Select\n placeholder=\"\"\n size=\"lg\"\n components={{\n Option: CustomShareOption,\n SingleValue: CustomSingleValue,\n }}\n styles={{\n singleValue: (provided, state) => ({\n ...provided,\n display: \"flex\",\n alignItems: \"center\",\n }),\n }}\n value={triggerDetails?.shareType}\n onChange={handleShareTypeChange}\n options={[\n {\n id: 1,\n label: \"Email\",\n value: \"EMAIL\",\n },\n {\n id: 2,\n label: \"SMS\",\n value: \"SMS\",\n },\n {\n id: 3,\n label: \"Whatsapp\",\n value: \"WHATSAPP\",\n },\n ]}\n />\n </Flex>\n {!isEmpty(triggerDetails?.shareType) && (\n <>\n <Flex gap=\"$2\" flexDirection=\"column\">\n <FormLabel size=\"xs\" css={{ fontWeight: \"$5\" }}>\n Choose Recipient\n </FormLabel>\n <Select\n placeholder=\"\"\n size=\"lg\"\n onChange={handleShareRecipientChange}\n isDisabled={!triggerDetails?.shareType?.value}\n value={triggerDetails?.shareRecipient}\n options={filteredShareRecipientOptions}\n />\n </Flex>\n <Flex gap=\"$2\" flexDirection=\"column\">\n <FormLabel size=\"xs\" css={{ fontWeight: \"$5\" }}>\n Choose Share Channel\n </FormLabel>\n <Select\n placeholder=\"\"\n size=\"lg\"\n components={{\n Option: CustomShareChannelOption,\n SingleValue: CustomShareChannelSingleValue,\n }}\n styles={{\n singleValue: (provided, state) => ({\n ...provided,\n display: \"flex\",\n alignItems: \"center\",\n }),\n }}\n isDisabled={!triggerDetails?.shareType?.value}\n value={triggerDetails?.shareChannel}\n onChange={handleShareChannelChange}\n options={filteredShareChannelOptions}\n />\n </Flex>\n </>\n )}\n </Flex>\n </Flex>\n ) : null}\n </Box>\n </Flex>\n );\n};\n\nexport default Trigger;"],"names":["_a","_b","React"],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"trigger.js","sources":["../../../../src/triggers/components/trigger.tsx"],"sourcesContent":["/* ----- Imports ----- */\n\nimport {\n Box,\n Button,\n DropdownMenu,\n DropdownMenuContent,\n DropdownMenuItem,\n DropdownMenuTrigger,\n Flex,\n FormLabel,\n Heading,\n Select,\n Text,\n} from \"@sparrowengg/twigs-react\";\nimport { ChevronDownIcon, PlusIcon } from \"@sparrowengg/twigs-react-icons\";\nimport React, { useCallback, useEffect, useMemo, useState } from \"react\";\nimport { topLevelCondition } from \"../constants\";\nimport { Filter } from \"./subcomponents\";\nimport {\n CustomShareOption,\n CustomSingleValue,\n CustomMultiValue,\n CustomShareChannelOption,\n CustomShareChannelSingleValue,\n} from \"./custom-share-components\";\nimport { useTriggerState, useFilterManagement, useChannelData } from \"../hooks\";\nimport { hasFiltersWithValues as checkFiltersHaveValues } from \"../utils\";\nimport { isEmpty } from \"../utils\";\nimport { ContactUniqueConstraint } from \"../types\";\n\n/* ----- Types / Interfaces ----- */\n\ntype TriggerProps = {\n fields: any;\n setFields: (fields: any) => void;\n token: string;\n apiURL: string;\n surveyDetails: any;\n hasNestedCondition: boolean;\n shareRecipientOptions: any[];\n shareChannelOptions: any[];\n triggerDetails: any;\n setTriggerDetails: (details: any) => void;\n fieldOptions: any[];\n variableOptions: any[];\n contactUniqueConstraint?: ContactUniqueConstraint;\n};\n\n/* ----- Main Component ----- */\n\n/**\n * Trigger component for setting up trigger conditions and actions\n *\n * @param {TriggerProps} props - Component props\n * @returns {JSX.Element} Rendered Trigger component\n */\nconst Trigger: React.FC<TriggerProps> = ({\n fields,\n setFields,\n token,\n apiURL,\n hasNestedCondition,\n surveyDetails,\n shareRecipientOptions,\n shareChannelOptions,\n triggerDetails,\n setTriggerDetails,\n fieldOptions,\n variableOptions,\n contactUniqueConstraint,\n}) => {\n /* ----- Hooks ----- */\n\n const { isEditing, setIsEditing } = useTriggerState();\n\n const {\n addFilterCondition,\n addNestedFilterCondition,\n setCurrentField,\n removeCurrentFilter,\n removeNestedField,\n setNestedFieldCondition,\n } = useFilterManagement({\n setFields,\n setIsEditing,\n });\n\n const { channels } = useChannelData({\n token,\n apiURL,\n surveyId: surveyDetails?.surveyId,\n shareChannelOptions,\n });\n\n const hasFiltersWithValues = useMemo(\n () => checkFiltersHaveValues(fields),\n [fields]\n );\n\n const [passAndSendSectionsUnlocked, setPassAndSendSectionsUnlocked] =\n useState(false);\n\n useEffect(() => {\n if (hasFiltersWithValues) {\n setPassAndSendSectionsUnlocked(true);\n }\n }, [hasFiltersWithValues]);\n\n useEffect(() => {\n if (!fields?.filters?.length) {\n setPassAndSendSectionsUnlocked(false);\n }\n }, [fields?.filters?.length]);\n\n const showPassAndSendSections =\n passAndSendSectionsUnlocked || hasFiltersWithValues;\n\n /* ----- Constants ----- */\n\n const selectedCondition = useMemo(\n () =>\n topLevelCondition.find(\n (condition) => condition.value === fields.condition\n )?.label,\n [fields.condition]\n );\n\n const filteredShareRecipientOptions = useMemo(\n () =>\n shareRecipientOptions?.filter(\n (option: any) => option?.type === triggerDetails.shareType?.value\n ),\n [shareRecipientOptions, triggerDetails.shareType?.value]\n );\n\n const filteredShareChannelOptions = useMemo(() => {\n const filtered = channels.filter(\n (channel: any) => channel?.type === triggerDetails?.shareType?.value\n );\n if (filtered.length) {\n return filtered;\n }\n if (\n triggerDetails?.shareType?.value !== \"WHATSAPP\" &&\n triggerDetails?.shareType?.value !== \"SMS\"\n ) {\n return [\n {\n label: \"New Share \",\n value: \"NEW_SHARE\",\n },\n ];\n }\n return [];\n }, [channels, triggerDetails?.shareType?.value]);\n\n /* ----- Event Handlers ----- */\n\n const setTriggerFields = useCallback(\n (property: string, value: any) => {\n setTriggerDetails((prev: any) => ({\n ...prev,\n [property]: value,\n }));\n },\n [setTriggerDetails]\n );\n\n const handleConditionChange = useCallback(\n (conditionValue: string) => {\n setFields((prev: any) => ({\n ...prev,\n condition: conditionValue,\n }));\n },\n [setFields]\n );\n\n const handleAddConditionClick = useCallback(() => {\n setIsEditing(true);\n addFilterCondition();\n }, [setIsEditing, addFilterCondition]);\n\n const handleVariablesChange = useCallback(\n (field: any) => {\n setTriggerFields(\"variables\", field);\n },\n [setTriggerFields]\n );\n\n const handleShareTypeChange = useCallback(\n (field: any) => {\n setTriggerFields(\"shareType\", field);\n setTriggerFields(\"shareRecipient\", null);\n setTriggerFields(\"shareChannel\", null);\n },\n [setTriggerFields]\n );\n\n const handleShareRecipientChange = useCallback(\n (field: any) => {\n setTriggerFields(\"shareRecipient\", field);\n },\n [setTriggerFields]\n );\n\n const handleShareChannelChange = useCallback(\n (field: any) => {\n setTriggerFields(\"shareChannel\", field);\n },\n [setTriggerFields]\n );\n\n const handleContactUniqueFieldChange = useCallback(\n (field: any) => {\n const constraintKey = contactUniqueConstraint?.value;\n if (!constraintKey) return;\n setTriggerFields(\n \"contactUniqueField\",\n field?.value ? { [constraintKey]: field.value } : null\n );\n },\n [setTriggerFields, contactUniqueConstraint?.value]\n );\n\n const selectedContactUniqueOption = useMemo(() => {\n const constraintKey = contactUniqueConstraint?.value;\n const stored = triggerDetails?.contactUniqueField;\n if (!constraintKey || !stored) return null;\n const variableValue = stored[constraintKey];\n if (!variableValue) return null;\n return (\n variableOptions?.find((option: any) => option?.value === variableValue) ??\n null\n );\n }, [\n contactUniqueConstraint?.value,\n triggerDetails?.contactUniqueField,\n variableOptions,\n ]);\n\n const resetEditing = useCallback(() => {\n setIsEditing(false);\n }, [setIsEditing]);\n\n /* ----- Render ----- */\n return (\n <Flex\n justifyContent=\"center\"\n alignItems=\"center\"\n css={{ marginTop: \"$40\" }}\n >\n <Box css={{ maxWidth: 488, width: \"100%\" }}>\n <Heading size=\"h5\">Set Condition</Heading>\n <Flex alignItems=\"center\" css={{ marginTop: \"$12\" }}>\n <Text\n size=\"md\"\n css={{ color: \"$neutral700\", display: \"inline-flex\" }}\n >\n which meets{\" \"}\n </Text>\n <DropdownMenu>\n <DropdownMenuTrigger asChild>\n <Flex\n alignItems=\"center\"\n css={{\n margin: \"0 $2\",\n }}\n >\n <Text\n size=\"md\"\n weight=\"medium\"\n css={{ color: \"$neutral900\", lineHeight: \"$sm\" }}\n >\n {selectedCondition}\n </Text>\n <ChevronDownIcon size={16} color=\"#6A6A6A\" />\n </Flex>\n </DropdownMenuTrigger>\n <DropdownMenuContent\n align=\"end\"\n sideOffset={5}\n css={{\n padding: \"$4 0\",\n minWidth: \"$15\",\n }}\n >\n {topLevelCondition.map((condition) => (\n <DropdownMenuItem\n key={condition.value}\n onClick={() => handleConditionChange(condition.value)}\n css={{\n ...(condition.value === fields.condition && {\n background: \"$primary100\",\n color: \"$neutral900\",\n \"&:hover\": {\n background: \"$primary100\",\n color: \"$neutral900\",\n },\n }),\n }}\n >\n {condition.label}\n </DropdownMenuItem>\n ))}\n </DropdownMenuContent>\n </DropdownMenu>\n <Text\n size=\"md\"\n css={{ color: \"$neutral700\", display: \"inline-flex\" }}\n >\n of these conditions\n </Text>\n </Flex>\n <Flex\n flexDirection=\"column\"\n gap=\"$12\"\n css={{ marginTop: fields?.filters?.length ? \"$12\" : 0 }}\n >\n {fields?.filters?.map((filters: any, index: number) => (\n <Filter\n key={filters.id}\n filters={filters}\n fields={fields}\n hasNestedCondition={hasNestedCondition}\n index={index}\n isEditing={isEditing}\n setIsEditing={setIsEditing}\n setCurrentField={setCurrentField}\n resetEditing={resetEditing}\n addNestedFilterCondition={addNestedFilterCondition}\n setNestedFieldCondition={setNestedFieldCondition}\n removeCurrentFilter={removeCurrentFilter}\n removeNestedField={removeNestedField}\n fieldOptions={fieldOptions}\n />\n ))}\n </Flex>\n <Button\n css={{ marginTop: \"$8\", marginLeft: \"-$2\" }}\n leftIcon={<PlusIcon />}\n variant=\"ghost\"\n size=\"md\"\n onClick={handleAddConditionClick}\n >\n Add Condition\n </Button>\n {showPassAndSendSections ? (\n <Flex flexDirection=\"column\" gap=\"$12\" css={{ marginTop: \"$40\" }}>\n <Heading size=\"h5\">Pass Variable to Survey</Heading>\n <Flex gap=\"$2\" flexDirection=\"column\">\n <FormLabel size=\"xs\" css={{ fontWeight: \"$5\" }}>\n Choose Fields\n </FormLabel>\n <Select\n placeholder=\"\"\n size=\"lg\"\n isMulti\n closeMenuOnSelect={false}\n isClearable={false}\n value={triggerDetails?.variables}\n onChange={handleVariablesChange}\n css={{\n p: {\n fontFamily: \"'Roboto Mono', monospace !important\",\n },\n \" .twigs-select__indicators\": {\n height: \"40px\",\n },\n \"& .twigs-select__control\": {\n overflow: \"auto\",\n maxHeight: 488,\n height: \"100%\",\n },\n \".twigs-select__value-container--is-multi\": {\n gap: \"$2\",\n },\n }}\n components={{\n MultiValue: CustomMultiValue,\n }}\n options={variableOptions}\n />\n </Flex>\n {contactUniqueConstraint?.hasUniqueConstraint ? (\n <Flex gap=\"$2\" flexDirection=\"column\">\n <FormLabel size=\"xs\" css={{ fontWeight: \"$5\" }}>\n {`Contact Uniqueness Field for \"${contactUniqueConstraint.label}\"`}\n </FormLabel>\n <Select\n placeholder=\"\"\n size=\"lg\"\n isClearable={false}\n value={selectedContactUniqueOption}\n onChange={handleContactUniqueFieldChange}\n css={{\n p: {\n fontFamily: \"'Roboto Mono', monospace !important\",\n },\n \" .twigs-select__indicators\": {\n height: \"40px\",\n },\n \"& .twigs-select__control\": {\n overflow: \"auto\",\n maxHeight: 488,\n height: \"100%\",\n },\n }}\n options={variableOptions}\n />\n </Flex>\n ) : null}\n </Flex>\n ) : null}\n {showPassAndSendSections ? (\n <Flex flexDirection=\"column\" gap=\"$12\" css={{ marginBlock: \"$40\" }}>\n <Heading size=\"h5\">Send Survey</Heading>\n <Flex flexDirection=\"column\" gap=\"$8\">\n <Flex gap=\"$2\" flexDirection=\"column\">\n <FormLabel size=\"xs\" css={{ fontWeight: \"$5\" }}>\n Choose Share Type\n </FormLabel>\n <Select\n placeholder=\"\"\n size=\"lg\"\n components={{\n Option: CustomShareOption,\n SingleValue: CustomSingleValue,\n }}\n styles={{\n singleValue: (provided, state) => ({\n ...provided,\n display: \"flex\",\n alignItems: \"center\",\n }),\n }}\n value={triggerDetails?.shareType}\n onChange={handleShareTypeChange}\n options={[\n {\n id: 1,\n label: \"Email\",\n value: \"EMAIL\",\n },\n {\n id: 2,\n label: \"SMS\",\n value: \"SMS\",\n },\n {\n id: 3,\n label: \"Whatsapp\",\n value: \"WHATSAPP\",\n },\n ]}\n />\n </Flex>\n {!isEmpty(triggerDetails?.shareType) && (\n <>\n <Flex gap=\"$2\" flexDirection=\"column\">\n <FormLabel size=\"xs\" css={{ fontWeight: \"$5\" }}>\n Choose Recipient\n </FormLabel>\n <Select\n placeholder=\"\"\n size=\"lg\"\n onChange={handleShareRecipientChange}\n isDisabled={!triggerDetails?.shareType?.value}\n value={triggerDetails?.shareRecipient}\n options={filteredShareRecipientOptions}\n />\n </Flex>\n <Flex gap=\"$2\" flexDirection=\"column\">\n <FormLabel size=\"xs\" css={{ fontWeight: \"$5\" }}>\n Choose Share Channel\n </FormLabel>\n <Select\n placeholder=\"\"\n size=\"lg\"\n components={{\n Option: CustomShareChannelOption,\n SingleValue: CustomShareChannelSingleValue,\n }}\n styles={{\n singleValue: (provided, state) => ({\n ...provided,\n display: \"flex\",\n alignItems: \"center\",\n }),\n }}\n isDisabled={!triggerDetails?.shareType?.value}\n value={triggerDetails?.shareChannel}\n onChange={handleShareChannelChange}\n options={filteredShareChannelOptions}\n />\n </Flex>\n </>\n )}\n </Flex>\n </Flex>\n ) : null}\n </Box>\n </Flex>\n );\n};\n\nexport default Trigger;"],"names":["hasFiltersWithValues","checkFiltersHaveValues","_a","_b","React"],"mappings":"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"}
|
|
@@ -11,6 +11,15 @@ const isTriggerDetailsValid = (triggerDetails, contactUniqueConstraint) => {
|
|
|
11
11
|
}
|
|
12
12
|
return true;
|
|
13
13
|
};
|
|
14
|
+
const hasFiltersWithValues = (fields) => {
|
|
15
|
+
var _a;
|
|
16
|
+
return (_a = fields == null ? void 0 : fields.filters) == null ? void 0 : _a.some(
|
|
17
|
+
(filter) => {
|
|
18
|
+
var _a2;
|
|
19
|
+
return (_a2 = filter == null ? void 0 : filter.filter) == null ? void 0 : _a2.some((currentFilter) => !!(currentFilter == null ? void 0 : currentFilter.value));
|
|
20
|
+
}
|
|
21
|
+
);
|
|
22
|
+
};
|
|
14
23
|
const isEventSetupDisabled = (actions, objects, eventFields) => {
|
|
15
24
|
return (!actions.value || !objects.value) && (!objects.options.find((object) => object.value === (eventFields == null ? void 0 : eventFields.object)) || !actions.options.find(
|
|
16
25
|
(action) => {
|
|
@@ -36,5 +45,5 @@ const isSaveDisabled = (fields, triggerDetails, contactUniqueConstraint) => {
|
|
|
36
45
|
return !areAllFiltersComplete(fields) || !isTriggerDetailsValid(triggerDetails, contactUniqueConstraint);
|
|
37
46
|
};
|
|
38
47
|
|
|
39
|
-
export { areAllFiltersComplete, isEmpty, isEventSetupDisabled, isSaveDisabled, isTriggerDetailsValid };
|
|
48
|
+
export { areAllFiltersComplete, hasFiltersWithValues, isEmpty, isEventSetupDisabled, isSaveDisabled, isTriggerDetailsValid };
|
|
40
49
|
//# sourceMappingURL=validation.utils.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"validation.utils.js","sources":["../../../../src/triggers/utils/validation.utils.ts"],"sourcesContent":["/**\n * Validation utilities for Triggers module\n */\n\n/**\n * Checks if an object is empty\n * @param object - Object to check\n * @returns boolean indicating if object is empty\n */\nexport const isEmpty = (object: any): boolean => {\n return Object.entries(object ?? {})?.length === 0;\n};\n\n/**\n * Checks if trigger details are valid\n * @param triggerDetails - Trigger details object\n * @param contactUniqueConstraint - Optional unique constraint metadata\n * @returns boolean indicating if details are valid\n */\nexport const isTriggerDetailsValid = (\n triggerDetails: any,\n contactUniqueConstraint?: { hasUniqueConstraint?: boolean } | null\n): boolean => {\n const baseValid =\n !isEmpty(triggerDetails.shareChannel) &&\n !isEmpty(triggerDetails.shareRecipient) &&\n !isEmpty(triggerDetails.shareType);\n\n if (!baseValid) return false;\n\n if (contactUniqueConstraint?.hasUniqueConstraint) {\n return !isEmpty(triggerDetails.contactUniqueField);\n }\n\n return true;\n};\n\n/**\n * Checks if any filter has a value\n * @param fields - Fields object with filters\n * @returns boolean indicating if any filter has value\n */\nexport const hasFiltersWithValues = (fields: any): boolean => {\n return fields?.filters?.some((filter: any) =>\n filter?.filter?.some((currentFilter: any) => !!currentFilter?.value)\n );\n};\n\n/**\n * Checks if event setup is disabled\n * @param actions - Actions configuration\n * @param objects - Objects configuration\n * @param eventFields - Event fields\n * @returns boolean indicating if setup is disabled\n */\nexport const isEventSetupDisabled = (\n actions: any,\n objects: any,\n eventFields?: any\n): boolean => {\n return (\n (!actions.value || !objects.value) &&\n (!objects.options.find((object: any) => object.value === eventFields?.object) ||\n !actions.options.find((action: any) =>\n eventFields?.action?.includes(action?.value)\n ))\n );\n};\n\n/**\n * Checks if all filter conditions are completely filled out,\n * including nested conditions (field, comparator, and value).\n * @param fields - Fields object with filters\n * @returns boolean indicating if all filters are complete\n */\nexport const areAllFiltersComplete = (fields: any): boolean => {\n if (!fields?.filters?.length) return false;\n\n return fields.filters.every((filterGroup: any) =>\n filterGroup?.filter?.length > 0 &&\n filterGroup.filter.every(\n (currentFilter: any) =>\n !!currentFilter?.field && !!currentFilter?.comparator && !!currentFilter?.value\n )\n );\n};\n\n/**\n * Checks if save button should be disabled\n * @param fields - Fields with filters\n * @param triggerDetails - Trigger details\n * @param contactUniqueConstraint - Optional unique constraint metadata\n * @returns boolean indicating if save should be disabled\n */\nexport const isSaveDisabled = (\n fields: any,\n triggerDetails: any,\n contactUniqueConstraint?: { hasUniqueConstraint?: boolean } | null\n): boolean => {\n return (\n !areAllFiltersComplete(fields) ||\n !isTriggerDetailsValid(triggerDetails, contactUniqueConstraint)\n );\n};\n\n"],"names":["_a"],"mappings":"AASO,MAAM,OAAA,GAAU,CAAC,MAAA,KAAyB;AATjD,EAAA,IAAA,EAAA;AAUE,EAAA,OAAA,CAAA,CAAO,YAAO,OAAA,CAAQ,MAAA,IAAA,IAAA,GAAA,MAAA,GAAU,EAAE,CAAA,KAA3B,mBAA8B,MAAA,MAAW,CAAA;AAClD;AAQO,MAAM,qBAAA,GAAwB,CACnC,cAAA,EACA,uBAAA,KACY;AACZ,EAAA,MAAM,SAAA,GACJ,CAAC,OAAA,CAAQ,cAAA,CAAe,YAAY,CAAA,IACpC,CAAC,OAAA,CAAQ,cAAA,CAAe,cAAc,CAAA,IACtC,CAAC,OAAA,CAAQ,eAAe,SAAS,CAAA;AAEnC,EAAA,IAAI,CAAC,SAAA;AAAW,IAAA,OAAO,KAAA;AAEvB,EAAA,IAAI,mEAAyB,mBAAA,EAAqB;AAChD,IAAA,OAAO,CAAC,OAAA,CAAQ,cAAA,CAAe,kBAAkB,CAAA;AAAA,EACnD;AAEA,EAAA,OAAO,IAAA;AACT;
|
|
1
|
+
{"version":3,"file":"validation.utils.js","sources":["../../../../src/triggers/utils/validation.utils.ts"],"sourcesContent":["/**\n * Validation utilities for Triggers module\n */\n\n/**\n * Checks if an object is empty\n * @param object - Object to check\n * @returns boolean indicating if object is empty\n */\nexport const isEmpty = (object: any): boolean => {\n return Object.entries(object ?? {})?.length === 0;\n};\n\n/**\n * Checks if trigger details are valid\n * @param triggerDetails - Trigger details object\n * @param contactUniqueConstraint - Optional unique constraint metadata\n * @returns boolean indicating if details are valid\n */\nexport const isTriggerDetailsValid = (\n triggerDetails: any,\n contactUniqueConstraint?: { hasUniqueConstraint?: boolean } | null\n): boolean => {\n const baseValid =\n !isEmpty(triggerDetails.shareChannel) &&\n !isEmpty(triggerDetails.shareRecipient) &&\n !isEmpty(triggerDetails.shareType);\n\n if (!baseValid) return false;\n\n if (contactUniqueConstraint?.hasUniqueConstraint) {\n return !isEmpty(triggerDetails.contactUniqueField);\n }\n\n return true;\n};\n\n/**\n * Checks if any filter has a value\n * @param fields - Fields object with filters\n * @returns boolean indicating if any filter has value\n */\nexport const hasFiltersWithValues = (fields: any): boolean => {\n return fields?.filters?.some((filter: any) =>\n filter?.filter?.some((currentFilter: any) => !!currentFilter?.value)\n );\n};\n\n/**\n * Checks if event setup is disabled\n * @param actions - Actions configuration\n * @param objects - Objects configuration\n * @param eventFields - Event fields\n * @returns boolean indicating if setup is disabled\n */\nexport const isEventSetupDisabled = (\n actions: any,\n objects: any,\n eventFields?: any\n): boolean => {\n return (\n (!actions.value || !objects.value) &&\n (!objects.options.find((object: any) => object.value === eventFields?.object) ||\n !actions.options.find((action: any) =>\n eventFields?.action?.includes(action?.value)\n ))\n );\n};\n\n/**\n * Checks if all filter conditions are completely filled out,\n * including nested conditions (field, comparator, and value).\n * @param fields - Fields object with filters\n * @returns boolean indicating if all filters are complete\n */\nexport const areAllFiltersComplete = (fields: any): boolean => {\n if (!fields?.filters?.length) return false;\n\n return fields.filters.every((filterGroup: any) =>\n filterGroup?.filter?.length > 0 &&\n filterGroup.filter.every(\n (currentFilter: any) =>\n !!currentFilter?.field && !!currentFilter?.comparator && !!currentFilter?.value\n )\n );\n};\n\n/**\n * Checks if save button should be disabled\n * @param fields - Fields with filters\n * @param triggerDetails - Trigger details\n * @param contactUniqueConstraint - Optional unique constraint metadata\n * @returns boolean indicating if save should be disabled\n */\nexport const isSaveDisabled = (\n fields: any,\n triggerDetails: any,\n contactUniqueConstraint?: { hasUniqueConstraint?: boolean } | null\n): boolean => {\n return (\n !areAllFiltersComplete(fields) ||\n !isTriggerDetailsValid(triggerDetails, contactUniqueConstraint)\n );\n};\n\n"],"names":["_a"],"mappings":"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"}
|