@knocklabs/react 0.2.8 → 0.2.10
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/CHANGELOG.md +14 -0
- package/dist/cjs/index.css +1 -1
- package/dist/cjs/modules/core/components/Button/Button.js +1 -1
- package/dist/cjs/modules/core/components/Button/Button.js.map +1 -1
- package/dist/cjs/modules/core/components/Button/ButtonGroup.js +1 -1
- package/dist/cjs/modules/core/components/Button/ButtonGroup.js.map +1 -1
- package/dist/cjs/modules/core/components/Button/ButtonSpinner.js +1 -1
- package/dist/cjs/modules/core/components/Button/ButtonSpinner.js.map +1 -1
- package/dist/cjs/modules/core/components/Button/styles.css.js.map +1 -0
- package/dist/cjs/modules/core/components/Icons/Bell.js +1 -1
- package/dist/cjs/modules/core/components/Icons/Bell.js.map +1 -1
- package/dist/cjs/modules/core/components/Icons/CheckmarkCircle.js +1 -1
- package/dist/cjs/modules/core/components/Icons/CheckmarkCircle.js.map +1 -1
- package/dist/cjs/modules/core/components/Icons/ChevronDown.js +1 -1
- package/dist/cjs/modules/core/components/Icons/ChevronDown.js.map +1 -1
- package/dist/cjs/modules/core/components/Icons/CloseCircle.js +1 -1
- package/dist/cjs/modules/core/components/Icons/CloseCircle.js.map +1 -1
- package/dist/cjs/modules/core/components/Spinner/Spinner.js +2 -2
- package/dist/cjs/modules/core/components/Spinner/Spinner.js.map +1 -1
- package/dist/cjs/modules/core/hooks/useComponentVisible.js.map +1 -1
- package/dist/cjs/modules/core/hooks/useOnBottomScroll.js.map +1 -1
- package/dist/cjs/modules/core/hooks/useOutsideClick.js.map +1 -1
- package/dist/cjs/modules/feed/components/EmptyFeed/EmptyFeed.js +1 -1
- package/dist/cjs/modules/feed/components/EmptyFeed/EmptyFeed.js.map +1 -1
- package/dist/cjs/modules/feed/components/EmptyFeed/styles.css.js.map +1 -0
- package/dist/cjs/modules/feed/components/NotificationCell/ArchiveButton.js +1 -1
- package/dist/cjs/modules/feed/components/NotificationCell/ArchiveButton.js.map +1 -1
- package/dist/cjs/modules/feed/components/NotificationCell/Avatar.js +1 -1
- package/dist/cjs/modules/feed/components/NotificationCell/Avatar.js.map +1 -1
- package/dist/cjs/modules/feed/components/NotificationCell/NotificationCell.js +1 -1
- package/dist/cjs/modules/feed/components/NotificationCell/NotificationCell.js.map +1 -1
- package/dist/cjs/modules/feed/components/NotificationCell/styles.css.js.map +1 -0
- package/dist/cjs/modules/feed/components/NotificationFeed/Dropdown.js +1 -1
- package/dist/cjs/modules/feed/components/NotificationFeed/Dropdown.js.map +1 -1
- package/dist/cjs/modules/feed/components/NotificationFeed/MarkAsRead.js +1 -1
- package/dist/cjs/modules/feed/components/NotificationFeed/MarkAsRead.js.map +1 -1
- package/dist/cjs/modules/feed/components/NotificationFeed/NotificationFeed.js +1 -1
- package/dist/cjs/modules/feed/components/NotificationFeed/NotificationFeed.js.map +1 -1
- package/dist/cjs/modules/feed/components/NotificationFeed/NotificationFeedHeader.js +1 -1
- package/dist/cjs/modules/feed/components/NotificationFeed/NotificationFeedHeader.js.map +1 -1
- package/dist/cjs/modules/feed/components/NotificationFeed/styles.css.js.map +1 -0
- package/dist/cjs/modules/feed/components/NotificationFeedContainer/NotificationFeedContainer.js +1 -1
- package/dist/cjs/modules/feed/components/NotificationFeedContainer/NotificationFeedContainer.js.map +1 -1
- package/dist/cjs/modules/feed/components/NotificationFeedContainer/styles.css.js.map +1 -0
- package/dist/cjs/modules/feed/components/NotificationFeedPopover/NotificationFeedPopover.js +1 -1
- package/dist/cjs/modules/feed/components/NotificationFeedPopover/NotificationFeedPopover.js.map +1 -1
- package/dist/cjs/modules/feed/components/NotificationFeedPopover/styles.css.js.map +1 -0
- package/dist/cjs/modules/feed/components/NotificationIconButton/NotificationIconButton.js +1 -1
- package/dist/cjs/modules/feed/components/NotificationIconButton/NotificationIconButton.js.map +1 -1
- package/dist/cjs/modules/feed/components/NotificationIconButton/styles.css.js.map +1 -0
- package/dist/cjs/modules/feed/components/UnseenBadge/UnseenBadge.js +1 -1
- package/dist/cjs/modules/feed/components/UnseenBadge/UnseenBadge.js.map +1 -1
- package/dist/cjs/modules/feed/components/UnseenBadge/styles.css.js.map +1 -0
- package/dist/cjs/modules/slack/components/SlackAddChannelInput/SlackAddChannelInput.js +1 -1
- package/dist/cjs/modules/slack/components/SlackAddChannelInput/SlackAddChannelInput.js.map +1 -1
- package/dist/cjs/modules/slack/components/SlackAddChannelInput/styles.css.js.map +1 -0
- package/dist/cjs/modules/slack/components/SlackAuthButton/SlackAuthButton.js +1 -1
- package/dist/cjs/modules/slack/components/SlackAuthButton/SlackAuthButton.js.map +1 -1
- package/dist/cjs/modules/slack/components/SlackAuthButton/styles.css.js.map +1 -0
- package/dist/cjs/modules/slack/components/SlackAuthContainer/SlackAuthContainer.js +1 -1
- package/dist/cjs/modules/slack/components/SlackAuthContainer/SlackAuthContainer.js.map +1 -1
- package/dist/cjs/modules/slack/components/SlackAuthContainer/styles.css.js.map +1 -0
- package/dist/cjs/modules/slack/components/SlackChannelCombobox/SlackChannelCombobox.js +1 -1
- package/dist/cjs/modules/slack/components/SlackChannelCombobox/SlackChannelCombobox.js.map +1 -1
- package/dist/cjs/modules/slack/components/SlackChannelCombobox/SlackChannelListBox.js +1 -1
- package/dist/cjs/modules/slack/components/SlackChannelCombobox/SlackChannelListBox.js.map +1 -1
- package/dist/cjs/modules/slack/components/SlackChannelCombobox/SlackChannelOption.js +1 -1
- package/dist/cjs/modules/slack/components/SlackChannelCombobox/SlackChannelOption.js.map +1 -1
- package/dist/cjs/modules/slack/components/SlackChannelCombobox/SlackConnectedChannelTag.js +1 -1
- package/dist/cjs/modules/slack/components/SlackChannelCombobox/SlackConnectedChannelTag.js.map +1 -1
- package/dist/cjs/modules/slack/components/SlackChannelCombobox/SlackConnectedChannelTagList.js +1 -1
- package/dist/cjs/modules/slack/components/SlackChannelCombobox/SlackConnectedChannelTagList.js.map +1 -1
- package/dist/cjs/modules/slack/components/SlackChannelCombobox/SlackConnectionError.js +1 -1
- package/dist/cjs/modules/slack/components/SlackChannelCombobox/SlackConnectionError.js.map +1 -1
- package/dist/cjs/modules/slack/components/SlackChannelCombobox/helpers.js.map +1 -1
- package/dist/cjs/modules/slack/components/SlackChannelCombobox/icons/CheckmarkIcon.js +1 -1
- package/dist/cjs/modules/slack/components/SlackChannelCombobox/icons/CheckmarkIcon.js.map +1 -1
- package/dist/cjs/modules/slack/components/SlackChannelCombobox/icons/CloseIcon.js +1 -1
- package/dist/cjs/modules/slack/components/SlackChannelCombobox/icons/CloseIcon.js.map +1 -1
- package/dist/cjs/modules/slack/components/SlackChannelCombobox/icons/HashtagIcon.js +1 -1
- package/dist/cjs/modules/slack/components/SlackChannelCombobox/icons/HashtagIcon.js.map +1 -1
- package/dist/cjs/modules/slack/components/SlackChannelCombobox/icons/InfoIcon.js +1 -1
- package/dist/cjs/modules/slack/components/SlackChannelCombobox/icons/InfoIcon.js.map +1 -1
- package/dist/cjs/modules/slack/components/SlackChannelCombobox/icons/LockIcon.js +1 -1
- package/dist/cjs/modules/slack/components/SlackChannelCombobox/icons/LockIcon.js.map +1 -1
- package/dist/cjs/modules/slack/components/SlackChannelCombobox/icons/SearchIcon.js +1 -1
- package/dist/cjs/modules/slack/components/SlackChannelCombobox/icons/SearchIcon.js.map +1 -1
- package/dist/cjs/modules/slack/components/SlackChannelCombobox/styles.css.js.map +1 -0
- package/dist/cjs/modules/slack/components/SlackIcon/SlackIcon.js +1 -1
- package/dist/cjs/modules/slack/components/SlackIcon/SlackIcon.js.map +1 -1
- package/dist/cjs/modules/slack/theme.css.js.map +1 -0
- package/dist/cjs/theme.css.js.map +1 -0
- package/dist/esm/modules/core/components/Button/Button.mjs +14 -30
- package/dist/esm/modules/core/components/Button/Button.mjs.map +1 -1
- package/dist/esm/modules/core/components/Button/ButtonGroup.mjs +5 -3
- package/dist/esm/modules/core/components/Button/ButtonGroup.mjs.map +1 -1
- package/dist/esm/modules/core/components/Button/ButtonSpinner.mjs +6 -10
- package/dist/esm/modules/core/components/Button/ButtonSpinner.mjs.map +1 -1
- package/dist/esm/modules/core/components/Icons/Bell.mjs +7 -25
- package/dist/esm/modules/core/components/Icons/Bell.mjs.map +1 -1
- package/dist/esm/modules/core/components/Icons/CheckmarkCircle.mjs +3 -33
- package/dist/esm/modules/core/components/Icons/CheckmarkCircle.mjs.map +1 -1
- package/dist/esm/modules/core/components/Icons/ChevronDown.mjs +3 -22
- package/dist/esm/modules/core/components/Icons/ChevronDown.mjs.map +1 -1
- package/dist/esm/modules/core/components/Icons/CloseCircle.mjs +3 -19
- package/dist/esm/modules/core/components/Icons/CloseCircle.mjs.map +1 -1
- package/dist/esm/modules/core/components/Spinner/Spinner.mjs +13 -47
- package/dist/esm/modules/core/components/Spinner/Spinner.mjs.map +1 -1
- package/dist/esm/modules/core/hooks/useComponentVisible.mjs +3 -1
- package/dist/esm/modules/core/hooks/useComponentVisible.mjs.map +1 -1
- package/dist/esm/modules/core/hooks/useOnBottomScroll.mjs +1 -3
- package/dist/esm/modules/core/hooks/useOnBottomScroll.mjs.map +1 -1
- package/dist/esm/modules/core/hooks/useOutsideClick.mjs.map +1 -1
- package/dist/esm/modules/feed/components/EmptyFeed/EmptyFeed.mjs +10 -9
- package/dist/esm/modules/feed/components/EmptyFeed/EmptyFeed.mjs.map +1 -1
- package/dist/esm/modules/feed/components/NotificationCell/ArchiveButton.mjs +26 -36
- package/dist/esm/modules/feed/components/NotificationCell/ArchiveButton.mjs.map +1 -1
- package/dist/esm/modules/feed/components/NotificationCell/Avatar.mjs +10 -7
- package/dist/esm/modules/feed/components/NotificationCell/Avatar.mjs.map +1 -1
- package/dist/esm/modules/feed/components/NotificationCell/NotificationCell.mjs +39 -68
- package/dist/esm/modules/feed/components/NotificationCell/NotificationCell.mjs.map +1 -1
- package/dist/esm/modules/feed/components/NotificationFeed/Dropdown.mjs +12 -13
- package/dist/esm/modules/feed/components/NotificationFeed/Dropdown.mjs.map +1 -1
- package/dist/esm/modules/feed/components/NotificationFeed/MarkAsRead.mjs +17 -27
- package/dist/esm/modules/feed/components/NotificationFeed/MarkAsRead.mjs.map +1 -1
- package/dist/esm/modules/feed/components/NotificationFeed/NotificationFeed.mjs +48 -57
- package/dist/esm/modules/feed/components/NotificationFeed/NotificationFeed.mjs.map +1 -1
- package/dist/esm/modules/feed/components/NotificationFeed/NotificationFeedHeader.mjs +12 -27
- package/dist/esm/modules/feed/components/NotificationFeed/NotificationFeedHeader.mjs.map +1 -1
- package/dist/esm/modules/feed/components/NotificationFeedContainer/NotificationFeedContainer.mjs +5 -5
- package/dist/esm/modules/feed/components/NotificationFeedContainer/NotificationFeedContainer.mjs.map +1 -1
- package/dist/esm/modules/feed/components/NotificationFeedPopover/NotificationFeedPopover.mjs +45 -48
- package/dist/esm/modules/feed/components/NotificationFeedPopover/NotificationFeedPopover.mjs.map +1 -1
- package/dist/esm/modules/feed/components/NotificationIconButton/NotificationIconButton.mjs +13 -22
- package/dist/esm/modules/feed/components/NotificationIconButton/NotificationIconButton.mjs.map +1 -1
- package/dist/esm/modules/feed/components/UnseenBadge/UnseenBadge.mjs +9 -9
- package/dist/esm/modules/feed/components/UnseenBadge/UnseenBadge.mjs.map +1 -1
- package/dist/esm/modules/slack/components/SlackAddChannelInput/SlackAddChannelInput.mjs +21 -38
- package/dist/esm/modules/slack/components/SlackAddChannelInput/SlackAddChannelInput.mjs.map +1 -1
- package/dist/esm/modules/slack/components/SlackAuthButton/SlackAuthButton.mjs +26 -62
- package/dist/esm/modules/slack/components/SlackAuthButton/SlackAuthButton.mjs.map +1 -1
- package/dist/esm/modules/slack/components/SlackAuthContainer/SlackAuthContainer.mjs +9 -14
- package/dist/esm/modules/slack/components/SlackAuthContainer/SlackAuthContainer.mjs.map +1 -1
- package/dist/esm/modules/slack/components/SlackChannelCombobox/SlackChannelCombobox.mjs +75 -163
- package/dist/esm/modules/slack/components/SlackChannelCombobox/SlackChannelCombobox.mjs.map +1 -1
- package/dist/esm/modules/slack/components/SlackChannelCombobox/SlackChannelListBox.mjs +11 -25
- package/dist/esm/modules/slack/components/SlackChannelCombobox/SlackChannelListBox.mjs.map +1 -1
- package/dist/esm/modules/slack/components/SlackChannelCombobox/SlackChannelOption.mjs +17 -35
- package/dist/esm/modules/slack/components/SlackChannelCombobox/SlackChannelOption.mjs.map +1 -1
- package/dist/esm/modules/slack/components/SlackChannelCombobox/SlackConnectedChannelTag.mjs +8 -19
- package/dist/esm/modules/slack/components/SlackChannelCombobox/SlackConnectedChannelTag.mjs.map +1 -1
- package/dist/esm/modules/slack/components/SlackChannelCombobox/SlackConnectedChannelTagList.mjs +8 -10
- package/dist/esm/modules/slack/components/SlackChannelCombobox/SlackConnectedChannelTagList.mjs.map +1 -1
- package/dist/esm/modules/slack/components/SlackChannelCombobox/SlackConnectionError.mjs +11 -10
- package/dist/esm/modules/slack/components/SlackChannelCombobox/SlackConnectionError.mjs.map +1 -1
- package/dist/esm/modules/slack/components/SlackChannelCombobox/helpers.mjs.map +1 -1
- package/dist/esm/modules/slack/components/SlackChannelCombobox/icons/CheckmarkIcon.mjs +7 -28
- package/dist/esm/modules/slack/components/SlackChannelCombobox/icons/CheckmarkIcon.mjs.map +1 -1
- package/dist/esm/modules/slack/components/SlackChannelCombobox/icons/CloseIcon.mjs +3 -21
- package/dist/esm/modules/slack/components/SlackChannelCombobox/icons/CloseIcon.mjs.map +1 -1
- package/dist/esm/modules/slack/components/SlackChannelCombobox/icons/HashtagIcon.mjs +3 -21
- package/dist/esm/modules/slack/components/SlackChannelCombobox/icons/HashtagIcon.mjs.map +1 -1
- package/dist/esm/modules/slack/components/SlackChannelCombobox/icons/InfoIcon.mjs +2 -46
- package/dist/esm/modules/slack/components/SlackChannelCombobox/icons/InfoIcon.mjs.map +1 -1
- package/dist/esm/modules/slack/components/SlackChannelCombobox/icons/LockIcon.mjs +3 -30
- package/dist/esm/modules/slack/components/SlackChannelCombobox/icons/LockIcon.mjs.map +1 -1
- package/dist/esm/modules/slack/components/SlackChannelCombobox/icons/SearchIcon.mjs +3 -18
- package/dist/esm/modules/slack/components/SlackChannelCombobox/icons/SearchIcon.mjs.map +1 -1
- package/dist/esm/modules/slack/components/SlackIcon/SlackIcon.mjs +9 -43
- package/dist/esm/modules/slack/components/SlackIcon/SlackIcon.mjs.map +1 -1
- package/dist/index.css +1 -1
- package/dist/types/modules/feed/components/NotificationFeed/NotificationFeed.d.ts +2 -2
- package/dist/types/modules/feed/components/NotificationFeed/NotificationFeed.d.ts.map +1 -1
- package/package.json +3 -2
@@ -1,51 +1,34 @@
|
|
1
|
-
import {
|
2
|
-
import { useTranslations as
|
3
|
-
import {
|
4
|
-
import { Spinner as x } from "../../../core/components/Spinner/Spinner.mjs";
|
1
|
+
import e, { useState as s } from "react";
|
2
|
+
import { useTranslations as f } from "@knocklabs/react-core";
|
3
|
+
import { Spinner as C } from "../../../core/components/Spinner/Spinner.mjs";
|
5
4
|
|
6
5
|
import "lodash.debounce";
|
7
6
|
|
8
7
|
import _ from "../SlackChannelCombobox/SlackConnectionError.mjs";
|
9
|
-
import { SlackIcon as
|
8
|
+
import { SlackIcon as E } from "../SlackIcon/SlackIcon.mjs";
|
10
9
|
|
11
|
-
const
|
12
|
-
inErrorState:
|
13
|
-
connectedChannels:
|
14
|
-
updateConnectedChannels:
|
15
|
-
connectedChannelsError:
|
16
|
-
connectedChannelsUpdating:
|
10
|
+
const A = ({
|
11
|
+
inErrorState: i,
|
12
|
+
connectedChannels: c = [],
|
13
|
+
updateConnectedChannels: m,
|
14
|
+
connectedChannelsError: u,
|
15
|
+
connectedChannelsUpdating: p
|
17
16
|
}) => {
|
18
|
-
const {
|
17
|
+
const {
|
18
|
+
t
|
19
|
+
} = f(), [n, a] = s(null), [l, r] = s(null), d = () => {
|
19
20
|
if (!n)
|
20
21
|
return;
|
21
|
-
if (
|
22
|
-
(
|
23
|
-
|
24
|
-
|
25
|
-
|
26
|
-
|
22
|
+
if (l && r(null), c.find((k) => k.channel_id === n))
|
23
|
+
return a(""), r(t("slackChannelAlreadyConnected") || "");
|
24
|
+
const h = [...c, {
|
25
|
+
channel_id: n
|
26
|
+
}];
|
27
|
+
m(h), a("");
|
27
28
|
};
|
28
|
-
return /* @__PURE__ */
|
29
|
-
/* @__PURE__ */ e(
|
30
|
-
"input",
|
31
|
-
{
|
32
|
-
className: `rsk-connect-channel__input ${(h || !!r) && !n && "rsk-connect-channel__input--error"}`,
|
33
|
-
tabIndex: -1,
|
34
|
-
id: "slack-channel-search",
|
35
|
-
type: "text",
|
36
|
-
placeholder: r || d || t("slackChannelId"),
|
37
|
-
onChange: (l) => o(l.target.value),
|
38
|
-
value: n || ""
|
39
|
-
}
|
40
|
-
),
|
41
|
-
/* @__PURE__ */ s("button", { className: "rsk-connect-channel__button", onClick: u, children: [
|
42
|
-
m ? /* @__PURE__ */ e(x, { size: "15px", thickness: 3 }) : /* @__PURE__ */ e(S, { height: "16px", width: "16px" }),
|
43
|
-
t("slackConnectChannel")
|
44
|
-
] }),
|
45
|
-
/* @__PURE__ */ e(_, {})
|
46
|
-
] });
|
29
|
+
return /* @__PURE__ */ e.createElement("div", { className: "rsk-connect-channel" }, /* @__PURE__ */ e.createElement("input", { className: `rsk-connect-channel__input ${(i || !!l) && !n && "rsk-connect-channel__input--error"}`, tabIndex: -1, id: "slack-channel-search", type: "text", placeholder: l || u || t("slackChannelId"), onChange: (o) => a(o.target.value), value: n || "" }), /* @__PURE__ */ e.createElement("button", { className: "rsk-connect-channel__button", onClick: d }, p ? /* @__PURE__ */ e.createElement(C, { size: "15px", thickness: 3 }) : /* @__PURE__ */ e.createElement(E, { height: "16px", width: "16px" }), t("slackConnectChannel")), /* @__PURE__ */ e.createElement(_, null));
|
47
30
|
};
|
48
31
|
export {
|
49
|
-
|
32
|
+
A as default
|
50
33
|
};
|
51
34
|
//# sourceMappingURL=SlackAddChannelInput.mjs.map
|
@@ -1 +1 @@
|
|
1
|
-
{"version":3,"file":"SlackAddChannelInput.mjs","sources":["../../../../../../src/modules/slack/components/SlackAddChannelInput/SlackAddChannelInput.tsx"],"sourcesContent":["import { SlackChannelConnection } from \"@knocklabs/client\";\nimport { useTranslations } from \"@knocklabs/react-core\";\nimport { useState } from \"react\";\n\nimport { Spinner } from \"../../../core\";\nimport \"../../theme.css\";\nimport ConnectionErrorInfoBoxes from \"../SlackChannelCombobox/SlackConnectionError\";\nimport { SlackIcon } from \"../SlackIcon\";\n\nimport \"./styles.css\";\n\nconst SlackAddChannelInput = ({\n inErrorState,\n connectedChannels = [],\n updateConnectedChannels,\n connectedChannelsError,\n connectedChannelsUpdating,\n}: {\n inErrorState: boolean;\n connectedChannels: SlackChannelConnection[];\n updateConnectedChannels: (channels: SlackChannelConnection[]) => void;\n connectedChannelsError: string | null;\n connectedChannelsUpdating: boolean;\n}) => {\n const { t } = useTranslations();\n const [value, setValue] = useState<string | null>(null);\n const [localError, setLocalError] = useState<string | null>(null);\n\n const submitChannel = () => {\n if (!value) {\n return;\n }\n\n if (localError) {\n setLocalError(null);\n }\n\n const alreadyConnected = connectedChannels.find(\n (channel) => channel.channel_id === value,\n );\n\n if (alreadyConnected) {\n setValue(\"\");\n return setLocalError(t(\"slackChannelAlreadyConnected\") || \"\");\n }\n\n const channelsToSendToKnock = [...connectedChannels, { channel_id: value }];\n updateConnectedChannels(channelsToSendToKnock);\n setValue(\"\");\n };\n\n return (\n <div className=\"rsk-connect-channel\">\n <input\n className={`rsk-connect-channel__input ${(inErrorState || !!localError) && !value && \"rsk-connect-channel__input--error\"}`}\n tabIndex={-1}\n id=\"slack-channel-search\"\n type=\"text\"\n placeholder={\n localError || connectedChannelsError || t(\"slackChannelId\")\n }\n onChange={(e) => setValue(e.target.value)}\n value={value || \"\"}\n />\n <button className=\"rsk-connect-channel__button\" onClick={submitChannel}>\n {connectedChannelsUpdating ? (\n <Spinner size=\"15px\" thickness={3} />\n ) : (\n <SlackIcon height=\"16px\" width=\"16px\" />\n )}\n {t(\"slackConnectChannel\")}\n </button>\n <ConnectionErrorInfoBoxes />\n </div>\n );\n};\n\nexport default SlackAddChannelInput;\n"],"names":["SlackAddChannelInput","inErrorState","connectedChannels","updateConnectedChannels","connectedChannelsError","connectedChannelsUpdating","useTranslations","value","setValue","useState","localError","setLocalError","submitChannel","channel","
|
1
|
+
{"version":3,"file":"SlackAddChannelInput.mjs","sources":["../../../../../../src/modules/slack/components/SlackAddChannelInput/SlackAddChannelInput.tsx"],"sourcesContent":["import { SlackChannelConnection } from \"@knocklabs/client\";\nimport { useTranslations } from \"@knocklabs/react-core\";\nimport { useState } from \"react\";\n\nimport { Spinner } from \"../../../core\";\nimport \"../../theme.css\";\nimport ConnectionErrorInfoBoxes from \"../SlackChannelCombobox/SlackConnectionError\";\nimport { SlackIcon } from \"../SlackIcon\";\n\nimport \"./styles.css\";\n\nconst SlackAddChannelInput = ({\n inErrorState,\n connectedChannels = [],\n updateConnectedChannels,\n connectedChannelsError,\n connectedChannelsUpdating,\n}: {\n inErrorState: boolean;\n connectedChannels: SlackChannelConnection[];\n updateConnectedChannels: (channels: SlackChannelConnection[]) => void;\n connectedChannelsError: string | null;\n connectedChannelsUpdating: boolean;\n}) => {\n const { t } = useTranslations();\n const [value, setValue] = useState<string | null>(null);\n const [localError, setLocalError] = useState<string | null>(null);\n\n const submitChannel = () => {\n if (!value) {\n return;\n }\n\n if (localError) {\n setLocalError(null);\n }\n\n const alreadyConnected = connectedChannels.find(\n (channel) => channel.channel_id === value,\n );\n\n if (alreadyConnected) {\n setValue(\"\");\n return setLocalError(t(\"slackChannelAlreadyConnected\") || \"\");\n }\n\n const channelsToSendToKnock = [...connectedChannels, { channel_id: value }];\n updateConnectedChannels(channelsToSendToKnock);\n setValue(\"\");\n };\n\n return (\n <div className=\"rsk-connect-channel\">\n <input\n className={`rsk-connect-channel__input ${(inErrorState || !!localError) && !value && \"rsk-connect-channel__input--error\"}`}\n tabIndex={-1}\n id=\"slack-channel-search\"\n type=\"text\"\n placeholder={\n localError || connectedChannelsError || t(\"slackChannelId\")\n }\n onChange={(e) => setValue(e.target.value)}\n value={value || \"\"}\n />\n <button className=\"rsk-connect-channel__button\" onClick={submitChannel}>\n {connectedChannelsUpdating ? (\n <Spinner size=\"15px\" thickness={3} />\n ) : (\n <SlackIcon height=\"16px\" width=\"16px\" />\n )}\n {t(\"slackConnectChannel\")}\n </button>\n <ConnectionErrorInfoBoxes />\n </div>\n );\n};\n\nexport default SlackAddChannelInput;\n"],"names":["SlackAddChannelInput","inErrorState","connectedChannels","updateConnectedChannels","connectedChannelsError","connectedChannelsUpdating","t","useTranslations","value","setValue","useState","localError","setLocalError","submitChannel","find","channel","channel_id","channelsToSendToKnock","React","e","target","Spinner","SlackIcon","ConnectionErrorInfoBoxes"],"mappings":";;;;;;;;;AAWA,MAAMA,IAAuBA,CAAC;AAAA,EAC5BC,cAAAA;AAAAA,EACAC,mBAAAA,IAAoB,CAAE;AAAA,EACtBC,yBAAAA;AAAAA,EACAC,wBAAAA;AAAAA,EACAC,2BAAAA;AAOF,MAAM;AACE,QAAA;AAAA,IAAEC;AAAAA,MAAMC,EAAgB,GACxB,CAACC,GAAOC,CAAQ,IAAIC,EAAwB,IAAI,GAChD,CAACC,GAAYC,CAAa,IAAIF,EAAwB,IAAI,GAE1DG,IAAgBA,MAAM;AAC1B,QAAI,CAACL;AACH;AAWF,QARIG,KACFC,EAAc,IAAI,GAGKV,EAAkBY,KACxCC,CAAYA,MAAAA,EAAQC,eAAeR,CACtC;AAGEC,aAAAA,EAAS,EAAE,GACJG,EAAcN,EAAE,8BAA8B,KAAK,EAAE;AAGxDW,UAAAA,IAAwB,CAAC,GAAGf,GAAmB;AAAA,MAAEc,YAAYR;AAAAA,IAAAA,CAAO;AAC1EL,IAAAA,EAAwBc,CAAqB,GAC7CR,EAAS,EAAE;AAAA,EAAA;AAGb,SACGS,gBAAAA,EAAA,cAAA,OAAA,EAAI,WAAU,sBAAA,GACZA,gBAAAA,EAAA,cAAA,SAAA,EACC,WAAY,+BAA8BjB,KAAgB,CAAC,CAACU,MAAe,CAACH,KAAS,mCAAoC,IACzH,UAAU,IACV,IAAG,wBACH,MAAK,QACL,aACEG,KAAcP,KAA0BE,EAAE,gBAAgB,GAE5D,UAAWa,CAAAA,MAAMV,EAASU,EAAEC,OAAOZ,KAAK,GACxC,OAAOA,KAAS,IAAG,GAEpBU,gBAAAA,EAAA,cAAA,UAAA,EAAO,WAAU,+BAA8B,SAASL,EAAAA,GACtDR,IACCa,gBAAAA,EAAA,cAACG,KAAQ,MAAK,QAAO,WAAW,EAAK,CAAA,IAErCH,gBAAAA,EAAA,cAACI,GAAU,EAAA,QAAO,QAAO,OAAM,OAChC,CAAA,GACAhB,EAAE,qBAAqB,CAC1B,GACAY,gBAAAA,EAAA,cAACK,OAAwB,CAC3B;AAEJ;"}
|
@@ -1,29 +1,30 @@
|
|
1
|
-
import {
|
2
|
-
import { useTranslations as
|
3
|
-
import { useEffect as C } from "react";
|
1
|
+
import e, { useEffect as E } from "react";
|
2
|
+
import { useTranslations as b, useKnockClient as f, useKnockSlackClient as x, useSlackAuth as L } from "@knocklabs/react-core";
|
4
3
|
|
5
|
-
import { SlackIcon as
|
4
|
+
import { SlackIcon as a } from "../SlackIcon/SlackIcon.mjs";
|
6
5
|
|
7
|
-
const
|
8
|
-
const
|
9
|
-
window.open(
|
10
|
-
},
|
11
|
-
slackClientId:
|
12
|
-
redirectUrl:
|
6
|
+
const w = (l) => {
|
7
|
+
const t = window.screenLeft ?? window.screenX, r = window.screenTop ?? window.screenY, c = window.innerWidth ?? document.documentElement.clientWidth ?? screen.width, n = window.innerHeight ?? document.documentElement.clientHeight ?? screen.height, o = c / 2 - 600 / 2 + t, d = `width=600,height=800,top=${n / 2 - 800 / 2 + r},left=${o}`;
|
8
|
+
window.open(l, "Slack OAuth", d);
|
9
|
+
}, A = ({
|
10
|
+
slackClientId: l,
|
11
|
+
redirectUrl: h,
|
13
12
|
onAuthenticationComplete: s
|
14
13
|
}) => {
|
15
|
-
const {
|
14
|
+
const {
|
15
|
+
t
|
16
|
+
} = b(), r = f(), {
|
16
17
|
setConnectionStatus: c,
|
17
|
-
connectionStatus:
|
18
|
+
connectionStatus: n,
|
18
19
|
setActionLabel: o,
|
19
|
-
actionLabel:
|
20
|
-
errorLabel:
|
21
|
-
} =
|
22
|
-
|
23
|
-
|
24
|
-
);
|
25
|
-
|
26
|
-
const
|
20
|
+
actionLabel: u,
|
21
|
+
errorLabel: d
|
22
|
+
} = x(), {
|
23
|
+
buildSlackAuthUrl: m,
|
24
|
+
disconnectFromSlack: p
|
25
|
+
} = L(l, h);
|
26
|
+
E(() => {
|
27
|
+
const k = (i) => {
|
27
28
|
if (i.origin === r.host)
|
28
29
|
try {
|
29
30
|
i.data === "authComplete" && c("connected"), i.data === "authFailed" && c("error"), s && s(i.data);
|
@@ -31,51 +32,14 @@ const m = (d) => {
|
|
31
32
|
c("error");
|
32
33
|
}
|
33
34
|
};
|
34
|
-
return window.addEventListener("message",
|
35
|
-
window.removeEventListener("message",
|
35
|
+
return window.addEventListener("message", k, !1), () => {
|
36
|
+
window.removeEventListener("message", k);
|
36
37
|
};
|
37
38
|
}, [r.host, s, c]);
|
38
|
-
const
|
39
|
-
return
|
40
|
-
/* @__PURE__ */ t(l, { height: "16px", width: "16px" }),
|
41
|
-
/* @__PURE__ */ t("span", { children: n(e === "connecting" ? "slackConnecting" : "slackDisconnecting") })
|
42
|
-
] }) : e === "error" ? /* @__PURE__ */ a(
|
43
|
-
"button",
|
44
|
-
{
|
45
|
-
onClick: () => m(p()),
|
46
|
-
className: "rsk-connect__button rsk-connect__button--error",
|
47
|
-
onMouseEnter: () => o(b),
|
48
|
-
onMouseLeave: () => o(null),
|
49
|
-
children: [
|
50
|
-
/* @__PURE__ */ t(l, { height: "16px", width: "16px" }),
|
51
|
-
/* @__PURE__ */ t("span", { className: "rsk-connect__button__text--error", children: h || u || n("slackError") })
|
52
|
-
]
|
53
|
-
}
|
54
|
-
) : e === "disconnected" ? /* @__PURE__ */ a(
|
55
|
-
"button",
|
56
|
-
{
|
57
|
-
onClick: () => m(p()),
|
58
|
-
className: "rsk-connect__button rsk-connect__button--disconnected",
|
59
|
-
children: [
|
60
|
-
/* @__PURE__ */ t(l, { height: "16px", width: "16px" }),
|
61
|
-
/* @__PURE__ */ t("span", { children: n("slackConnect") })
|
62
|
-
]
|
63
|
-
}
|
64
|
-
) : /* @__PURE__ */ a(
|
65
|
-
"button",
|
66
|
-
{
|
67
|
-
onClick: _,
|
68
|
-
className: "rsk-connect__button rsk-connect__button--connected",
|
69
|
-
onMouseEnter: () => o(g),
|
70
|
-
onMouseLeave: () => o(null),
|
71
|
-
children: [
|
72
|
-
/* @__PURE__ */ t(l, { height: "16px", width: "16px" }),
|
73
|
-
/* @__PURE__ */ t("span", { className: "rsk-connect__button__text--connected", children: h || n("slackConnected") })
|
74
|
-
]
|
75
|
-
}
|
76
|
-
);
|
39
|
+
const _ = t("slackDisconnect") || null, g = t("slackReconnect") || null;
|
40
|
+
return n === "connecting" || n === "disconnecting" ? /* @__PURE__ */ e.createElement("div", { className: "rsk-connect__button rsk-connect__button--loading" }, /* @__PURE__ */ e.createElement(a, { height: "16px", width: "16px" }), /* @__PURE__ */ e.createElement("span", null, t(n === "connecting" ? "slackConnecting" : "slackDisconnecting"))) : n === "error" ? /* @__PURE__ */ e.createElement("button", { onClick: () => w(m()), className: "rsk-connect__button rsk-connect__button--error", onMouseEnter: () => o(g), onMouseLeave: () => o(null) }, /* @__PURE__ */ e.createElement(a, { height: "16px", width: "16px" }), /* @__PURE__ */ e.createElement("span", { className: "rsk-connect__button__text--error" }, u || d || t("slackError"))) : n === "disconnected" ? /* @__PURE__ */ e.createElement("button", { onClick: () => w(m()), className: "rsk-connect__button rsk-connect__button--disconnected" }, /* @__PURE__ */ e.createElement(a, { height: "16px", width: "16px" }), /* @__PURE__ */ e.createElement("span", null, t("slackConnect"))) : /* @__PURE__ */ e.createElement("button", { onClick: p, className: "rsk-connect__button rsk-connect__button--connected", onMouseEnter: () => o(_), onMouseLeave: () => o(null) }, /* @__PURE__ */ e.createElement(a, { height: "16px", width: "16px" }), /* @__PURE__ */ e.createElement("span", { className: "rsk-connect__button__text--connected" }, u || t("slackConnected")));
|
77
41
|
};
|
78
42
|
export {
|
79
|
-
|
43
|
+
A as SlackAuthButton
|
80
44
|
};
|
81
45
|
//# sourceMappingURL=SlackAuthButton.mjs.map
|
@@ -1 +1 @@
|
|
1
|
-
{"version":3,"file":"SlackAuthButton.mjs","sources":["../../../../../../src/modules/slack/components/SlackAuthButton/SlackAuthButton.tsx"],"sourcesContent":["import {\n useKnockClient,\n useKnockSlackClient,\n useSlackAuth,\n useTranslations,\n} from \"@knocklabs/react-core\";\nimport { useEffect } from \"react\";\n\nimport \"../../theme.css\";\nimport { SlackIcon } from \"../SlackIcon\";\n\nimport \"./styles.css\";\n\ntype Props = {\n slackClientId: string;\n redirectUrl?: string;\n onAuthenticationComplete?: (authenticationResp: string) => void;\n};\n\nconst openSlackOauthPopup = (url: string) => {\n const width = 600;\n const height = 800;\n // Calculate the position to center the window\n const screenLeft = window.screenLeft ?? window.screenX;\n const screenTop = window.screenTop ?? window.screenY;\n\n const innerWidth =\n window.innerWidth ?? document.documentElement.clientWidth ?? screen.width;\n const innerHeight =\n window.innerHeight ??\n document.documentElement.clientHeight ??\n screen.height;\n\n const left = innerWidth / 2 - width / 2 + screenLeft;\n const top = innerHeight / 2 - height / 2 + screenTop;\n\n // Window features\n const features = `width=${width},height=${height},top=${top},left=${left}`;\n\n window.open(url, \"Slack OAuth\", features);\n};\n\nexport const SlackAuthButton: React.FC<Props> = ({\n slackClientId,\n redirectUrl,\n onAuthenticationComplete,\n}) => {\n const { t } = useTranslations();\n const knock = useKnockClient();\n\n const {\n setConnectionStatus,\n connectionStatus,\n setActionLabel,\n actionLabel,\n errorLabel,\n } = useKnockSlackClient();\n\n const { buildSlackAuthUrl, disconnectFromSlack } = useSlackAuth(\n slackClientId,\n redirectUrl,\n );\n\n useEffect(() => {\n const receiveMessage = (event: MessageEvent) => {\n if (event.origin !== knock.host) {\n return;\n }\n\n try {\n if (event.data === \"authComplete\") {\n setConnectionStatus(\"connected\");\n }\n\n if (event.data === \"authFailed\") {\n setConnectionStatus(\"error\");\n }\n\n if (onAuthenticationComplete) {\n onAuthenticationComplete(event.data);\n }\n } catch (error) {\n setConnectionStatus(\"error\");\n }\n };\n\n window.addEventListener(\"message\", receiveMessage, false);\n\n // Cleanup the event listener when the component unmounts\n return () => {\n window.removeEventListener(\"message\", receiveMessage);\n };\n }, [knock.host, onAuthenticationComplete, setConnectionStatus]);\n\n const disconnectLabel = t(\"slackDisconnect\") || null;\n const reconnectLabel = t(\"slackReconnect\") || null;\n\n // Loading states\n if (\n connectionStatus === \"connecting\" ||\n connectionStatus === \"disconnecting\"\n ) {\n return (\n <div className=\"rsk-connect__button rsk-connect__button--loading\">\n <SlackIcon height=\"16px\" width=\"16px\" />\n <span>\n {connectionStatus === \"connecting\"\n ? t(\"slackConnecting\")\n : t(\"slackDisconnecting\")}\n </span>\n </div>\n );\n }\n\n // Error state\n if (connectionStatus === \"error\") {\n return (\n <button\n onClick={() => openSlackOauthPopup(buildSlackAuthUrl())}\n className=\"rsk-connect__button rsk-connect__button--error\"\n onMouseEnter={() => setActionLabel(reconnectLabel)}\n onMouseLeave={() => setActionLabel(null)}\n >\n <SlackIcon height=\"16px\" width=\"16px\" />\n <span className=\"rsk-connect__button__text--error\">\n {actionLabel || errorLabel || t(\"slackError\")}\n </span>\n </button>\n );\n }\n\n // Disconnected state\n if (connectionStatus === \"disconnected\") {\n return (\n <button\n onClick={() => openSlackOauthPopup(buildSlackAuthUrl())}\n className=\"rsk-connect__button rsk-connect__button--disconnected\"\n >\n <SlackIcon height=\"16px\" width=\"16px\" />\n <span>{t(\"slackConnect\")}</span>\n </button>\n );\n }\n\n // Connected state\n return (\n <button\n onClick={disconnectFromSlack}\n className=\"rsk-connect__button rsk-connect__button--connected\"\n onMouseEnter={() => setActionLabel(disconnectLabel)}\n onMouseLeave={() => setActionLabel(null)}\n >\n <SlackIcon height=\"16px\" width=\"16px\" />\n <span className=\"rsk-connect__button__text--connected\">\n {actionLabel || t(\"slackConnected\")}\n </span>\n </button>\n );\n};\n"],"names":["openSlackOauthPopup","url","screenLeft","screenTop","innerWidth","innerHeight","left","features","SlackAuthButton","slackClientId","redirectUrl","onAuthenticationComplete","t","useTranslations","knock","useKnockClient","setConnectionStatus","connectionStatus","setActionLabel","actionLabel","errorLabel","useKnockSlackClient","buildSlackAuthUrl","disconnectFromSlack","useSlackAuth","useEffect","receiveMessage","event","
|
1
|
+
{"version":3,"file":"SlackAuthButton.mjs","sources":["../../../../../../src/modules/slack/components/SlackAuthButton/SlackAuthButton.tsx"],"sourcesContent":["import {\n useKnockClient,\n useKnockSlackClient,\n useSlackAuth,\n useTranslations,\n} from \"@knocklabs/react-core\";\nimport { useEffect } from \"react\";\n\nimport \"../../theme.css\";\nimport { SlackIcon } from \"../SlackIcon\";\n\nimport \"./styles.css\";\n\ntype Props = {\n slackClientId: string;\n redirectUrl?: string;\n onAuthenticationComplete?: (authenticationResp: string) => void;\n};\n\nconst openSlackOauthPopup = (url: string) => {\n const width = 600;\n const height = 800;\n // Calculate the position to center the window\n const screenLeft = window.screenLeft ?? window.screenX;\n const screenTop = window.screenTop ?? window.screenY;\n\n const innerWidth =\n window.innerWidth ?? document.documentElement.clientWidth ?? screen.width;\n const innerHeight =\n window.innerHeight ??\n document.documentElement.clientHeight ??\n screen.height;\n\n const left = innerWidth / 2 - width / 2 + screenLeft;\n const top = innerHeight / 2 - height / 2 + screenTop;\n\n // Window features\n const features = `width=${width},height=${height},top=${top},left=${left}`;\n\n window.open(url, \"Slack OAuth\", features);\n};\n\nexport const SlackAuthButton: React.FC<Props> = ({\n slackClientId,\n redirectUrl,\n onAuthenticationComplete,\n}) => {\n const { t } = useTranslations();\n const knock = useKnockClient();\n\n const {\n setConnectionStatus,\n connectionStatus,\n setActionLabel,\n actionLabel,\n errorLabel,\n } = useKnockSlackClient();\n\n const { buildSlackAuthUrl, disconnectFromSlack } = useSlackAuth(\n slackClientId,\n redirectUrl,\n );\n\n useEffect(() => {\n const receiveMessage = (event: MessageEvent) => {\n if (event.origin !== knock.host) {\n return;\n }\n\n try {\n if (event.data === \"authComplete\") {\n setConnectionStatus(\"connected\");\n }\n\n if (event.data === \"authFailed\") {\n setConnectionStatus(\"error\");\n }\n\n if (onAuthenticationComplete) {\n onAuthenticationComplete(event.data);\n }\n } catch (error) {\n setConnectionStatus(\"error\");\n }\n };\n\n window.addEventListener(\"message\", receiveMessage, false);\n\n // Cleanup the event listener when the component unmounts\n return () => {\n window.removeEventListener(\"message\", receiveMessage);\n };\n }, [knock.host, onAuthenticationComplete, setConnectionStatus]);\n\n const disconnectLabel = t(\"slackDisconnect\") || null;\n const reconnectLabel = t(\"slackReconnect\") || null;\n\n // Loading states\n if (\n connectionStatus === \"connecting\" ||\n connectionStatus === \"disconnecting\"\n ) {\n return (\n <div className=\"rsk-connect__button rsk-connect__button--loading\">\n <SlackIcon height=\"16px\" width=\"16px\" />\n <span>\n {connectionStatus === \"connecting\"\n ? t(\"slackConnecting\")\n : t(\"slackDisconnecting\")}\n </span>\n </div>\n );\n }\n\n // Error state\n if (connectionStatus === \"error\") {\n return (\n <button\n onClick={() => openSlackOauthPopup(buildSlackAuthUrl())}\n className=\"rsk-connect__button rsk-connect__button--error\"\n onMouseEnter={() => setActionLabel(reconnectLabel)}\n onMouseLeave={() => setActionLabel(null)}\n >\n <SlackIcon height=\"16px\" width=\"16px\" />\n <span className=\"rsk-connect__button__text--error\">\n {actionLabel || errorLabel || t(\"slackError\")}\n </span>\n </button>\n );\n }\n\n // Disconnected state\n if (connectionStatus === \"disconnected\") {\n return (\n <button\n onClick={() => openSlackOauthPopup(buildSlackAuthUrl())}\n className=\"rsk-connect__button rsk-connect__button--disconnected\"\n >\n <SlackIcon height=\"16px\" width=\"16px\" />\n <span>{t(\"slackConnect\")}</span>\n </button>\n );\n }\n\n // Connected state\n return (\n <button\n onClick={disconnectFromSlack}\n className=\"rsk-connect__button rsk-connect__button--connected\"\n onMouseEnter={() => setActionLabel(disconnectLabel)}\n onMouseLeave={() => setActionLabel(null)}\n >\n <SlackIcon height=\"16px\" width=\"16px\" />\n <span className=\"rsk-connect__button__text--connected\">\n {actionLabel || t(\"slackConnected\")}\n </span>\n </button>\n );\n};\n"],"names":["openSlackOauthPopup","url","screenLeft","window","screenX","screenTop","screenY","innerWidth","document","documentElement","clientWidth","screen","width","innerHeight","clientHeight","height","left","features","open","SlackAuthButton","slackClientId","redirectUrl","onAuthenticationComplete","t","useTranslations","knock","useKnockClient","setConnectionStatus","connectionStatus","setActionLabel","actionLabel","errorLabel","useKnockSlackClient","buildSlackAuthUrl","disconnectFromSlack","useSlackAuth","useEffect","receiveMessage","event","origin","host","data","addEventListener","removeEventListener","disconnectLabel","reconnectLabel","React","SlackIcon"],"mappings":";;;;;AAmBA,MAAMA,IAAsBA,CAACC,MAAgB;AAIrCC,QAAAA,IAAaC,OAAOD,cAAcC,OAAOC,SACzCC,IAAYF,OAAOE,aAAaF,OAAOG,SAEvCC,IACJJ,OAAOI,cAAcC,SAASC,gBAAgBC,eAAeC,OAAOC,OAChEC,IACJV,OAAOU,eACPL,SAASC,gBAAgBK,gBACzBH,OAAOI,QAEHC,IAAOT,IAAa,IAAIK,MAAQ,IAAIV,GAIpCe,IAAY,4BAHNJ,IAAc,IAAIE,MAAS,IAAIV,CAGiB,SAAQW,CAAK;AAElEE,SAAAA,KAAKjB,GAAK,eAAegB,CAAQ;AAC1C,GAEaE,IAAmCA,CAAC;AAAA,EAC/CC,eAAAA;AAAAA,EACAC,aAAAA;AAAAA,EACAC,0BAAAA;AACF,MAAM;AACE,QAAA;AAAA,IAAEC;AAAAA,MAAMC,EAAgB,GACxBC,IAAQC,KAER;AAAA,IACJC,qBAAAA;AAAAA,IACAC,kBAAAA;AAAAA,IACAC,gBAAAA;AAAAA,IACAC,aAAAA;AAAAA,IACAC,YAAAA;AAAAA,MACEC,EAAoB,GAElB;AAAA,IAAEC,mBAAAA;AAAAA,IAAmBC,qBAAAA;AAAAA,EAAAA,IAAwBC,EACjDf,GACAC,CACF;AAEAe,EAAAA,EAAU,MAAM;AACRC,UAAAA,IAAiBA,CAACC,MAAwB;AAC1CA,UAAAA,EAAMC,WAAWd,EAAMe;AAIvB,YAAA;AACEF,UAAAA,EAAMG,SAAS,kBACjBd,EAAoB,WAAW,GAG7BW,EAAMG,SAAS,gBACjBd,EAAoB,OAAO,GAGzBL,KACFA,EAAyBgB,EAAMG,IAAI;AAAA,gBAEvB;AACdd,UAAAA,EAAoB,OAAO;AAAA,QAC7B;AAAA,IAAA;AAGKe,kBAAAA,iBAAiB,WAAWL,GAAgB,EAAK,GAGjD,MAAM;AACJM,aAAAA,oBAAoB,WAAWN,CAAc;AAAA,IAAA;AAAA,KAErD,CAACZ,EAAMe,MAAMlB,GAA0BK,CAAmB,CAAC;AAExDiB,QAAAA,IAAkBrB,EAAE,iBAAiB,KAAK,MAC1CsB,IAAiBtB,EAAE,gBAAgB,KAAK;AAI5CK,SAAAA,MAAqB,gBACrBA,MAAqB,kBAGnBkB,gBAAAA,EAAA,cAAC,SAAI,WAAU,mDAAA,mCACZC,GAAU,EAAA,QAAO,QAAO,OAAM,OAAM,CAAA,GACpCD,gBAAAA,EAAA,cAAA,QAAA,MAEKvB,EADHK,MAAqB,eAChB,oBACA,oBADiB,CAEzB,CACF,IAKAA,MAAqB,0CAEpB,UACC,EAAA,SAAS,MAAM5B,EAAoBiC,GAAmB,GACtD,WAAU,kDACV,cAAc,MAAMJ,EAAegB,CAAc,GACjD,cAAc,MAAMhB,EAAe,IAAI,EAAA,mCAEtCkB,GAAU,EAAA,QAAO,QAAO,OAAM,QAAM,GACrCD,gBAAAA,EAAA,cAAC,QAAK,EAAA,WAAU,sCACbhB,KAAeC,KAAcR,EAAE,YAAY,CAC9C,CACF,IAKAK,MAAqB,iBAErBkB,gBAAAA,EAAA,cAAC,YACC,SAAS,MAAM9C,EAAoBiC,EAAkB,CAAC,GACtD,WAAU,wDAEV,GAAAa,gBAAAA,EAAA,cAACC,KAAU,QAAO,QAAO,OAAM,OAAM,CAAA,mCACpC,QAAMxB,MAAAA,EAAE,cAAc,CAAE,CAC3B,IAMDuB,gBAAAA,EAAA,cAAA,UAAA,EACC,SAASZ,GACT,WAAU,sDACV,cAAc,MAAML,EAAee,CAAe,GAClD,cAAc,MAAMf,EAAe,IAAI,EAEvC,GAAAiB,gBAAAA,EAAA,cAACC,GAAU,EAAA,QAAO,QAAO,OAAM,QAAM,GACrCD,gBAAAA,EAAA,cAAC,QAAK,EAAA,WAAU,uCACbhB,GAAAA,KAAeP,EAAE,gBAAgB,CACpC,CACF;AAEJ;"}
|
@@ -1,22 +1,17 @@
|
|
1
|
-
import
|
2
|
-
import { useTranslations as
|
1
|
+
import e from "react";
|
2
|
+
import { useTranslations as r } from "@knocklabs/react-core";
|
3
3
|
|
4
|
-
import { SlackIcon as
|
4
|
+
import { SlackIcon as c } from "../SlackIcon/SlackIcon.mjs";
|
5
5
|
|
6
|
-
const
|
6
|
+
const o = ({
|
7
7
|
actionButton: t
|
8
8
|
}) => {
|
9
|
-
const {
|
10
|
-
|
11
|
-
|
12
|
-
|
13
|
-
/* @__PURE__ */ r("div", { children: t })
|
14
|
-
] }),
|
15
|
-
/* @__PURE__ */ r("div", { className: "rsk-auth__title", children: "Slack" }),
|
16
|
-
/* @__PURE__ */ r("div", { className: "rsk-auth__description", children: s("slackConnectContainerDescription") })
|
17
|
-
] });
|
9
|
+
const {
|
10
|
+
t: a
|
11
|
+
} = r();
|
12
|
+
return /* @__PURE__ */ e.createElement("div", { className: "rsk-auth" }, /* @__PURE__ */ e.createElement("div", { className: "rsk-auth__header" }, /* @__PURE__ */ e.createElement(c, { height: "32px", width: "32px" }), /* @__PURE__ */ e.createElement("div", null, t)), /* @__PURE__ */ e.createElement("div", { className: "rsk-auth__title" }, "Slack"), /* @__PURE__ */ e.createElement("div", { className: "rsk-auth__description" }, a("slackConnectContainerDescription")));
|
18
13
|
};
|
19
14
|
export {
|
20
|
-
|
15
|
+
o as SlackAuthContainer
|
21
16
|
};
|
22
17
|
//# sourceMappingURL=SlackAuthContainer.mjs.map
|
@@ -1 +1 @@
|
|
1
|
-
{"version":3,"file":"SlackAuthContainer.mjs","sources":["../../../../../../src/modules/slack/components/SlackAuthContainer/SlackAuthContainer.tsx"],"sourcesContent":["import { useTranslations } from \"@knocklabs/react-core\";\n\nimport \"../../theme.css\";\nimport { SlackIcon } from \"../SlackIcon\";\n\nimport \"./styles.css\";\n\nexport const SlackAuthContainer = ({\n actionButton,\n}: {\n actionButton: React.ReactElement;\n}) => {\n const { t } = useTranslations();\n\n return (\n <div className=\"rsk-auth\">\n <div className=\"rsk-auth__header\">\n <SlackIcon height=\"32px\" width=\"32px\" />\n <div>{actionButton}</div>\n </div>\n <div className=\"rsk-auth__title\">Slack</div>\n <div className=\"rsk-auth__description\">\n {t(\"slackConnectContainerDescription\")}\n </div>\n </div>\n );\n};\n"],"names":["SlackAuthContainer","actionButton","t","useTranslations","
|
1
|
+
{"version":3,"file":"SlackAuthContainer.mjs","sources":["../../../../../../src/modules/slack/components/SlackAuthContainer/SlackAuthContainer.tsx"],"sourcesContent":["import { useTranslations } from \"@knocklabs/react-core\";\n\nimport \"../../theme.css\";\nimport { SlackIcon } from \"../SlackIcon\";\n\nimport \"./styles.css\";\n\nexport const SlackAuthContainer = ({\n actionButton,\n}: {\n actionButton: React.ReactElement;\n}) => {\n const { t } = useTranslations();\n\n return (\n <div className=\"rsk-auth\">\n <div className=\"rsk-auth__header\">\n <SlackIcon height=\"32px\" width=\"32px\" />\n <div>{actionButton}</div>\n </div>\n <div className=\"rsk-auth__title\">Slack</div>\n <div className=\"rsk-auth__description\">\n {t(\"slackConnectContainerDescription\")}\n </div>\n </div>\n );\n};\n"],"names":["SlackAuthContainer","actionButton","t","useTranslations","React","SlackIcon"],"mappings":";;;;;AAOO,MAAMA,IAAqBA,CAAC;AAAA,EACjCC,cAAAA;AAGF,MAAM;AACE,QAAA;AAAA,IAAEC,GAAAA;AAAAA,MAAMC,EAAgB;AAE9B,SACGC,gBAAAA,EAAA,cAAA,OAAA,EAAI,WAAU,8CACZ,OAAI,EAAA,WAAU,mBACb,GAAAA,gBAAAA,EAAA,cAACC,GAAU,EAAA,QAAO,QAAO,OAAM,QAAM,GACrCD,gBAAAA,EAAA,cAAC,OAAKH,MAAAA,CAAa,CACrB,GACCG,gBAAAA,EAAA,cAAA,OAAA,EAAI,WAAU,kBAAkB,GAAA,OAAK,GACtCA,gBAAAA,EAAA,cAAC,SAAI,WAAU,wBAAA,GACZF,EAAE,kCAAkC,CACvC,CACF;AAEJ;"}
|
@@ -1,63 +1,66 @@
|
|
1
|
-
import {
|
2
|
-
import { useTranslations as
|
3
|
-
import * as
|
4
|
-
import * as
|
5
|
-
import {
|
6
|
-
import { Spinner as q } from "../../../core/components/Spinner/Spinner.mjs";
|
1
|
+
import c, { useState as u, useRef as H, useEffect as O, useMemo as E } from "react";
|
2
|
+
import { useTranslations as w, useKnockSlackClient as z, useSlackChannels as G, useConnectedSlackChannels as W } from "@knocklabs/react-core";
|
3
|
+
import * as S from "@radix-ui/react-popover";
|
4
|
+
import * as X from "@radix-ui/react-visually-hidden";
|
5
|
+
import { Spinner as j } from "../../../core/components/Spinner/Spinner.mjs";
|
7
6
|
|
8
7
|
import "lodash.debounce";
|
9
|
-
import
|
8
|
+
import q from "../../../core/hooks/useOutsideClick.mjs";
|
10
9
|
|
11
|
-
import
|
12
|
-
import
|
13
|
-
import
|
14
|
-
import
|
15
|
-
import { strContains as
|
16
|
-
import
|
10
|
+
import J from "../SlackAddChannelInput/SlackAddChannelInput.mjs";
|
11
|
+
import Q from "./SlackChannelListBox.mjs";
|
12
|
+
import Y from "./SlackConnectedChannelTagList.mjs";
|
13
|
+
import Z from "./SlackConnectionError.mjs";
|
14
|
+
import { strContains as g } from "./helpers.mjs";
|
15
|
+
import M from "./icons/SearchIcon.mjs";
|
17
16
|
|
18
|
-
const
|
19
|
-
slackChannelsRecipientObject:
|
20
|
-
queryOptions:
|
21
|
-
inputProps:
|
22
|
-
inputContainerProps:
|
23
|
-
listBoxProps:
|
24
|
-
channelOptionProps:
|
17
|
+
const nn = 1e3, bn = ({
|
18
|
+
slackChannelsRecipientObject: R,
|
19
|
+
queryOptions: y,
|
20
|
+
inputProps: I,
|
21
|
+
inputContainerProps: U,
|
22
|
+
listBoxProps: $,
|
23
|
+
channelOptionProps: D,
|
25
24
|
inputMessages: n,
|
26
|
-
showConnectedChannelTags:
|
25
|
+
showConnectedChannelTags: K = !1
|
27
26
|
}) => {
|
28
|
-
const {
|
29
|
-
|
30
|
-
|
27
|
+
const {
|
28
|
+
t: l
|
29
|
+
} = w(), [C, p] = u(!1), [x, L] = u(""), N = H(null);
|
30
|
+
q({
|
31
|
+
ref: N,
|
31
32
|
fn: () => {
|
32
|
-
|
33
|
+
L(""), p(!1);
|
33
34
|
}
|
34
35
|
});
|
35
|
-
const {
|
36
|
+
const {
|
37
|
+
connectionStatus: a,
|
38
|
+
errorLabel: T
|
39
|
+
} = z(), {
|
40
|
+
data: t,
|
41
|
+
isLoading: s
|
42
|
+
} = G({
|
43
|
+
queryOptions: y
|
44
|
+
}), {
|
36
45
|
data: h,
|
37
|
-
updateConnectedChannels:
|
38
|
-
loading:
|
46
|
+
updateConnectedChannels: f,
|
47
|
+
loading: P,
|
39
48
|
error: d,
|
40
|
-
updating:
|
41
|
-
} =
|
42
|
-
|
43
|
-
|
44
|
-
|
45
|
-
|
49
|
+
updating: v
|
50
|
+
} = W({
|
51
|
+
slackChannelsRecipientObject: R
|
52
|
+
}), [r, _] = u(null);
|
53
|
+
O(() => {
|
54
|
+
C && setTimeout(() => {
|
55
|
+
var e;
|
56
|
+
(e = document.getElementById("slack-channel-search")) == null || e.focus();
|
46
57
|
}, 0);
|
47
|
-
}, [
|
48
|
-
const
|
49
|
-
t.map((e) => [e.id, e])
|
50
|
-
), i = (h == null ? void 0 : h.filter((e) => o.has(e.channel_id || ""))) || [];
|
58
|
+
}, [C]), O(() => {
|
59
|
+
const e = new Map(t.map((o) => [o.id, o])), i = (h == null ? void 0 : h.filter((o) => e.has(o.channel_id || ""))) || [];
|
51
60
|
_(i);
|
52
61
|
}, [h, t]);
|
53
|
-
const s =
|
54
|
-
|
55
|
-
[d, a]
|
56
|
-
), k = x(
|
57
|
-
() => a === "connecting" || a === "disconnecting" || f,
|
58
|
-
[a, f]
|
59
|
-
), j = x(() => {
|
60
|
-
const o = {
|
62
|
+
const m = E(() => a === "disconnected" || a === "error" || d, [d, a]), b = E(() => a === "connecting" || a === "disconnecting" || s, [a, s]), V = E(() => {
|
63
|
+
const e = {
|
61
64
|
disconnected: l("slackSearchbarDisconnected"),
|
62
65
|
multipleChannelsConnected: l("slackSearchbarMultipleChannels"),
|
63
66
|
noChannelsConnected: l("slackSearchbarNoChannelsConnected"),
|
@@ -65,131 +68,40 @@ const on = 1e3, Sn = ({
|
|
65
68
|
channelsError: l("slackSearchbarChannelsError")
|
66
69
|
};
|
67
70
|
if (a === "disconnected")
|
68
|
-
return (n == null ? void 0 : n.disconnected) ||
|
71
|
+
return (n == null ? void 0 : n.disconnected) || e.disconnected;
|
69
72
|
if (a === "error")
|
70
|
-
return (n == null ? void 0 : n.error) ||
|
71
|
-
if (!
|
72
|
-
return (n == null ? void 0 : n.noSlackChannelsFound) ||
|
73
|
+
return (n == null ? void 0 : n.error) || T;
|
74
|
+
if (!b && t.length === 0)
|
75
|
+
return (n == null ? void 0 : n.noSlackChannelsFound) || e.noSlackChannelsFound;
|
73
76
|
if (d)
|
74
77
|
return d;
|
75
|
-
const i = (
|
76
|
-
if (
|
77
|
-
return (n == null ? void 0 : n.noChannelsConnected) ||
|
78
|
-
if (
|
79
|
-
const
|
80
|
-
|
81
|
-
|
82
|
-
|
83
|
-
|
84
|
-
);
|
85
|
-
return (n == null ? void 0 : n.singleChannelConnected) || `# ${e == null ? void 0 : e.name}`;
|
78
|
+
const i = (r == null ? void 0 : r.length) || 0;
|
79
|
+
if (r && i === 0)
|
80
|
+
return (n == null ? void 0 : n.noChannelsConnected) || e.noChannelsConnected;
|
81
|
+
if (r && i === 1) {
|
82
|
+
const o = t == null ? void 0 : t.find((k) => {
|
83
|
+
var A;
|
84
|
+
return k.id === ((A = r[0]) == null ? void 0 : A.channel_id);
|
85
|
+
});
|
86
|
+
return (n == null ? void 0 : n.singleChannelConnected) || `# ${o == null ? void 0 : o.name}`;
|
86
87
|
}
|
87
|
-
return
|
88
|
-
}, [
|
89
|
-
|
90
|
-
k,
|
91
|
-
t,
|
92
|
-
d,
|
93
|
-
c,
|
94
|
-
n,
|
95
|
-
v,
|
96
|
-
l
|
97
|
-
]), A = async (o) => {
|
98
|
-
if (!c)
|
88
|
+
return r && i > 1 ? (n == null ? void 0 : n.multipleChannelsConnected) || `${i} channels connected` : "";
|
89
|
+
}, [a, b, t, d, r, n, T, l]), F = async (e) => {
|
90
|
+
if (!r)
|
99
91
|
return;
|
100
|
-
if (
|
101
|
-
(
|
102
|
-
|
103
|
-
const e = c.filter(
|
104
|
-
(S) => S.channel_id !== o
|
105
|
-
);
|
106
|
-
_(e), b(e);
|
92
|
+
if (r.find((o) => o.channel_id === e)) {
|
93
|
+
const o = r.filter((k) => k.channel_id !== e);
|
94
|
+
_(o), f(o);
|
107
95
|
} else {
|
108
|
-
const
|
109
|
-
|
110
|
-
|
111
|
-
|
112
|
-
_(e), b(e);
|
96
|
+
const o = [...r, {
|
97
|
+
channel_id: e
|
98
|
+
}];
|
99
|
+
_(o), f(o);
|
113
100
|
}
|
114
|
-
}, B = t.filter(
|
115
|
-
|
116
|
-
);
|
117
|
-
return t.length > on ? /* @__PURE__ */ r(
|
118
|
-
Q,
|
119
|
-
{
|
120
|
-
inErrorState: !!s,
|
121
|
-
connectedChannels: c || [],
|
122
|
-
updateConnectedChannels: b,
|
123
|
-
connectedChannelsError: d,
|
124
|
-
connectedChannelsUpdating: F
|
125
|
-
}
|
126
|
-
) : /* @__PURE__ */ C("div", { ref: T, className: "rsk-combobox", children: [
|
127
|
-
/* @__PURE__ */ C(
|
128
|
-
u.Root,
|
129
|
-
{
|
130
|
-
open: a !== "disconnected" ? m : !1,
|
131
|
-
children: [
|
132
|
-
/* @__PURE__ */ r(W.Root, { children: /* @__PURE__ */ r("label", { htmlFor: "slack-channel-search", children: l("slackSearchChannels") }) }),
|
133
|
-
/* @__PURE__ */ r(u.Trigger, { asChild: !0, children: /* @__PURE__ */ C("div", { className: "rsk-combobox__searchbar", children: [
|
134
|
-
/* @__PURE__ */ C(
|
135
|
-
"div",
|
136
|
-
{
|
137
|
-
className: "rsk-combobox__searchbar__input-container",
|
138
|
-
...$,
|
139
|
-
children: [
|
140
|
-
/* @__PURE__ */ r(
|
141
|
-
"div",
|
142
|
-
{
|
143
|
-
className: `rsk-combobox__searchbar__input-container__icon ${s && "rsk-combobox__searchbar__input-container__icon--error"}`,
|
144
|
-
children: k ? /* @__PURE__ */ r(q, { size: "15px", thickness: 3 }) : /* @__PURE__ */ r(nn, {})
|
145
|
-
}
|
146
|
-
),
|
147
|
-
/* @__PURE__ */ r(
|
148
|
-
"input",
|
149
|
-
{
|
150
|
-
className: `rsk-combobox__searchbar__input-container__input ${s ? "rsk-combobox__searchbar__input-container__input--error" : ""}`,
|
151
|
-
tabIndex: -1,
|
152
|
-
id: "slack-channel-search",
|
153
|
-
type: "text",
|
154
|
-
onFocus: () => t.length > 0 && L(!0),
|
155
|
-
onChange: (o) => N(o.target.value),
|
156
|
-
value: E,
|
157
|
-
placeholder: j || "",
|
158
|
-
disabled: !!s,
|
159
|
-
...U
|
160
|
-
}
|
161
|
-
)
|
162
|
-
]
|
163
|
-
}
|
164
|
-
),
|
165
|
-
/* @__PURE__ */ r(g, {})
|
166
|
-
] }) }),
|
167
|
-
/* @__PURE__ */ r(u.Content, { children: /* @__PURE__ */ r(
|
168
|
-
Y,
|
169
|
-
{
|
170
|
-
isLoading: f || V,
|
171
|
-
isUpdating: F,
|
172
|
-
connectedChannels: c,
|
173
|
-
onClick: A,
|
174
|
-
slackChannels: B,
|
175
|
-
listBoxProps: D,
|
176
|
-
channelOptionProps: K
|
177
|
-
}
|
178
|
-
) })
|
179
|
-
]
|
180
|
-
}
|
181
|
-
),
|
182
|
-
P && /* @__PURE__ */ r(
|
183
|
-
Z,
|
184
|
-
{
|
185
|
-
connectedChannels: c,
|
186
|
-
slackChannels: t,
|
187
|
-
updateConnectedChannels: A
|
188
|
-
}
|
189
|
-
)
|
190
|
-
] });
|
101
|
+
}, B = t.filter((e) => g(e.name, x));
|
102
|
+
return t.length > nn ? /* @__PURE__ */ c.createElement(J, { inErrorState: !!m, connectedChannels: r || [], updateConnectedChannels: f, connectedChannelsError: d, connectedChannelsUpdating: v }) : /* @__PURE__ */ c.createElement("div", { ref: N, className: "rsk-combobox" }, /* @__PURE__ */ c.createElement(S.Root, { open: a !== "disconnected" ? C : !1 }, /* @__PURE__ */ c.createElement(X.Root, null, /* @__PURE__ */ c.createElement("label", { htmlFor: "slack-channel-search" }, l("slackSearchChannels"))), /* @__PURE__ */ c.createElement(S.Trigger, { asChild: !0 }, /* @__PURE__ */ c.createElement("div", { className: "rsk-combobox__searchbar" }, /* @__PURE__ */ c.createElement("div", { className: "rsk-combobox__searchbar__input-container", ...U }, /* @__PURE__ */ c.createElement("div", { className: `rsk-combobox__searchbar__input-container__icon ${m && "rsk-combobox__searchbar__input-container__icon--error"}` }, b ? /* @__PURE__ */ c.createElement(j, { size: "15px", thickness: 3 }) : /* @__PURE__ */ c.createElement(M, null)), /* @__PURE__ */ c.createElement("input", { className: `rsk-combobox__searchbar__input-container__input ${m ? "rsk-combobox__searchbar__input-container__input--error" : ""}`, tabIndex: -1, id: "slack-channel-search", type: "text", onFocus: () => t.length > 0 && p(!0), onChange: (e) => L(e.target.value), value: x, placeholder: V || "", disabled: !!m, ...I })), /* @__PURE__ */ c.createElement(Z, null))), /* @__PURE__ */ c.createElement(S.Content, null, /* @__PURE__ */ c.createElement(Q, { isLoading: s || P, isUpdating: v, connectedChannels: r, onClick: F, slackChannels: B, listBoxProps: $, channelOptionProps: D }))), K && /* @__PURE__ */ c.createElement(Y, { connectedChannels: r, slackChannels: t, updateConnectedChannels: F }));
|
191
103
|
};
|
192
104
|
export {
|
193
|
-
|
105
|
+
bn as SlackChannelCombobox
|
194
106
|
};
|
195
107
|
//# sourceMappingURL=SlackChannelCombobox.mjs.map
|