@knocklabs/react 0.2.7 → 0.2.9
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 +19 -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/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/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/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/NotificationFeedContainer/NotificationFeedContainer.js +1 -1
- package/dist/cjs/modules/feed/components/NotificationFeedContainer/NotificationFeedContainer.js.map +1 -1
- 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/NotificationIconButton/NotificationIconButton.js +1 -1
- package/dist/cjs/modules/feed/components/NotificationIconButton/NotificationIconButton.js.map +1 -1
- 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/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/SlackAuthButton/SlackAuthButton.js +1 -1
- package/dist/cjs/modules/slack/components/SlackAuthButton/SlackAuthButton.js.map +1 -1
- 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/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 +2 -0
- package/dist/cjs/modules/slack/components/SlackChannelCombobox/helpers.js.map +1 -0
- 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/SlackIcon/SlackIcon.js +1 -1
- package/dist/cjs/modules/slack/components/SlackIcon/SlackIcon.js.map +1 -1
- package/dist/cjs/theme.css.js +2 -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 +70 -158
- 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 +17 -0
- package/dist/esm/modules/slack/components/SlackChannelCombobox/helpers.mjs.map +1 -0
- 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/slack/components/SlackChannelCombobox/SlackChannelCombobox.d.ts.map +1 -1
- package/dist/types/modules/slack/components/SlackChannelCombobox/SlackChannelListBox.d.ts +2 -3
- package/dist/types/modules/slack/components/SlackChannelCombobox/SlackChannelListBox.d.ts.map +1 -1
- package/dist/types/modules/slack/components/SlackChannelCombobox/helpers.d.ts +2 -0
- package/dist/types/modules/slack/components/SlackChannelCombobox/helpers.d.ts.map +1 -0
- package/package.json +7 -10
@@ -1 +1 @@
|
|
1
|
-
{"version":3,"file":"SlackChannelCombobox.mjs","sources":["../../../../../../src/modules/slack/components/SlackChannelCombobox/SlackChannelCombobox.tsx"],"sourcesContent":["import { SlackChannelConnection } from \"@knocklabs/client\";\nimport {\n ContainerObject,\n SlackChannelQueryOptions,\n useConnectedSlackChannels,\n useKnockSlackClient,\n useSlackChannels,\n useTranslations,\n} from \"@knocklabs/react-core\";\nimport * as Popover from \"@radix-ui/react-popover\";\nimport * as VisuallyHidden from \"@radix-ui/react-visually-hidden\";\nimport { useEffect, useMemo, useRef, useState } from \"react\";\nimport { useFilter } from \"react-aria\";\n\nimport { Spinner, useOutsideClick } from \"../../../core\";\nimport \"../../theme.css\";\nimport SlackAddChannelInput from \"../SlackAddChannelInput/SlackAddChannelInput\";\n\nimport SlackChannelListBox from \"./SlackChannelListBox\";\nimport SlackConnectedChannelTagList from \"./SlackConnectedChannelTagList\";\nimport SlackConnectionError from \"./SlackConnectionError\";\nimport SearchIcon from \"./icons/SearchIcon\";\nimport \"./styles.css\";\n\nconst MAX_ALLOWED_CHANNELS = 1000;\n\ntype SlackChannelComboboxInputMessages = {\n disconnected: string;\n error: string;\n singleChannelConnected: string;\n multipleChannelsConnected: string;\n noChannelsConnected: string;\n noSlackChannelsFound: string;\n};\n\ntype Props = {\n slackChannelsRecipientObject: ContainerObject;\n queryOptions?: SlackChannelQueryOptions;\n inputProps?: React.InputHTMLAttributes<HTMLInputElement>;\n inputContainerProps?: React.HTMLAttributes<HTMLDivElement>;\n listBoxProps?: React.HTMLAttributes<HTMLDivElement>;\n channelOptionProps?: React.HtmlHTMLAttributes<HTMLButtonElement>;\n inputMessages?: SlackChannelComboboxInputMessages;\n showConnectedChannelTags?: boolean;\n};\n\nexport const SlackChannelCombobox = ({\n slackChannelsRecipientObject,\n queryOptions,\n inputProps,\n inputContainerProps,\n listBoxProps,\n channelOptionProps,\n inputMessages,\n showConnectedChannelTags = false,\n}: Props) => {\n const { t } = useTranslations();\n\n const [comboboxListOpen, setComboboxListOpen] = useState<boolean>(false);\n const [inputValue, setInputValue] = useState(\"\");\n\n // Used to close the combobox when clicking outside of it\n const comboboxRef = useRef(null);\n useOutsideClick({\n ref: comboboxRef,\n fn: () => {\n setInputValue(\"\");\n setComboboxListOpen(false);\n },\n });\n\n // Gather API data\n const { connectionStatus, errorLabel: connectionErrorLabel } =\n useKnockSlackClient();\n\n const { data: slackChannels, isLoading: slackChannelsLoading } =\n useSlackChannels({ queryOptions });\n\n const {\n data: connectedChannels,\n updateConnectedChannels,\n loading: connectedChannelsLoading,\n error: connectedChannelsError,\n updating: connectedChannelsUpdating,\n } = useConnectedSlackChannels({ slackChannelsRecipientObject });\n\n const [currentConnectedChannels, setCurrentConnectedChannels] = useState<\n SlackChannelConnection[] | null\n >(null);\n\n useEffect(() => {\n if (comboboxListOpen) {\n // Timeout to allow for the state to update and the component to re-render\n // when we change the `comboboxListOpen` state upon focus\n setTimeout(() => {\n document.getElementById(\"slack-channel-search\")?.focus();\n }, 0);\n }\n }, [comboboxListOpen]);\n\n useEffect(() => {\n // Used to make sure we're only showing currently available channels to select from.\n // There are cases where a channel is \"connected\" in Knock, but it wouldn't be\n // posting to it if the channel is private and the Slackbot doesn't belong to it,\n // so the channel won't show up here and it won't be posted to.\n const slackChannelsMap = new Map(\n slackChannels.map((channel) => [channel.id, channel]),\n );\n\n const channels =\n connectedChannels?.filter((connectedChannel) => {\n return slackChannelsMap.has(connectedChannel.channel_id || \"\");\n }) || [];\n\n setCurrentConnectedChannels(channels);\n }, [connectedChannels, slackChannels]);\n\n const inErrorState = useMemo(\n () =>\n connectionStatus === \"disconnected\" ||\n connectionStatus === \"error\" ||\n connectedChannelsError,\n [connectedChannelsError, connectionStatus],\n );\n\n const inLoadingState = useMemo(\n () =>\n connectionStatus === \"connecting\" ||\n connectionStatus === \"disconnecting\" ||\n slackChannelsLoading,\n\n [connectionStatus, slackChannelsLoading],\n );\n\n // Construct placeholder text\n const searchPlaceholder = useMemo(() => {\n const DEFAULT_INPUT_MESSAGES = {\n disconnected: t(\"slackSearchbarDisconnected\"),\n multipleChannelsConnected: t(\"slackSearchbarMultipleChannels\"),\n noChannelsConnected: t(\"slackSearchbarNoChannelsConnected\"),\n noSlackChannelsFound: t(\"slackSearchbarNoChannelsFound\"),\n channelsError: t(\"slackSearchbarChannelsError\"),\n };\n\n // Connection status message\n if (connectionStatus === \"disconnected\") {\n return inputMessages?.disconnected || DEFAULT_INPUT_MESSAGES.disconnected;\n }\n\n if (connectionStatus === \"error\") {\n return inputMessages?.error || connectionErrorLabel;\n }\n\n // Channels status messages\n if (!inLoadingState && slackChannels.length === 0) {\n return (\n inputMessages?.noSlackChannelsFound ||\n DEFAULT_INPUT_MESSAGES.noSlackChannelsFound\n );\n }\n\n if (connectedChannelsError) {\n return connectedChannelsError;\n }\n\n const numberConnectedChannels = currentConnectedChannels?.length || 0;\n\n if (currentConnectedChannels && numberConnectedChannels === 0) {\n return (\n inputMessages?.noChannelsConnected ||\n DEFAULT_INPUT_MESSAGES.noChannelsConnected\n );\n }\n\n if (currentConnectedChannels && numberConnectedChannels === 1) {\n const connectedChannel = slackChannels?.find(\n (slackChannel) =>\n slackChannel.id === currentConnectedChannels[0]?.channel_id,\n );\n\n return (\n inputMessages?.singleChannelConnected || `# ${connectedChannel?.name}`\n );\n }\n\n if (currentConnectedChannels && numberConnectedChannels > 1) {\n return (\n inputMessages?.multipleChannelsConnected ||\n `${numberConnectedChannels} channels connected`\n );\n }\n\n return \"\";\n }, [\n connectionStatus,\n inLoadingState,\n slackChannels,\n connectedChannelsError,\n currentConnectedChannels,\n inputMessages,\n connectionErrorLabel,\n t,\n ]);\n\n // Handle channel click\n const handleOptionClick = async (channelId: string) => {\n if (!currentConnectedChannels) {\n return;\n }\n\n const isChannelConnected = currentConnectedChannels.find(\n (channel) => channel.channel_id === channelId,\n );\n\n if (isChannelConnected) {\n const channelsToSendToKnock = currentConnectedChannels.filter(\n (connectedChannel) => connectedChannel.channel_id !== channelId,\n );\n\n setCurrentConnectedChannels(channelsToSendToKnock);\n updateConnectedChannels(channelsToSendToKnock);\n } else {\n const channelsToSendToKnock = [\n ...currentConnectedChannels,\n { channel_id: channelId } as SlackChannelConnection,\n ];\n\n setCurrentConnectedChannels(channelsToSendToKnock);\n updateConnectedChannels(channelsToSendToKnock);\n }\n };\n\n // Handle channel search\n const { contains } = useFilter({ sensitivity: \"base\" });\n const matchedChannels = slackChannels.filter((slackChannel) =>\n contains(slackChannel.name, inputValue),\n );\n\n if (slackChannels.length > MAX_ALLOWED_CHANNELS) {\n return (\n <SlackAddChannelInput\n inErrorState={!!inErrorState}\n connectedChannels={currentConnectedChannels || []}\n updateConnectedChannels={updateConnectedChannels}\n connectedChannelsError={connectedChannelsError}\n connectedChannelsUpdating={connectedChannelsUpdating}\n />\n );\n }\n\n return (\n <div ref={comboboxRef} className=\"rsk-combobox\">\n <Popover.Root\n open={connectionStatus !== \"disconnected\" ? comboboxListOpen : false}\n >\n <VisuallyHidden.Root>\n <label htmlFor=\"slack-channel-search\">\n {t(\"slackSearchChannels\")}\n </label>\n </VisuallyHidden.Root>\n <Popover.Trigger asChild>\n <div className=\"rsk-combobox__searchbar\">\n <div\n className={\"rsk-combobox__searchbar__input-container\"}\n {...inputContainerProps}\n >\n <div\n className={`rsk-combobox__searchbar__input-container__icon ${inErrorState && \"rsk-combobox__searchbar__input-container__icon--error\"}`}\n >\n {inLoadingState ? (\n <Spinner size=\"15px\" thickness={3} />\n ) : (\n <SearchIcon />\n )}\n </div>\n\n <input\n className={`rsk-combobox__searchbar__input-container__input ${inErrorState ? \"rsk-combobox__searchbar__input-container__input--error\" : \"\"}`}\n tabIndex={-1}\n id=\"slack-channel-search\"\n type=\"text\"\n onFocus={() =>\n slackChannels.length > 0 && setComboboxListOpen(true)\n }\n onChange={(e) => setInputValue(e.target.value)}\n value={inputValue}\n placeholder={searchPlaceholder || \"\"}\n disabled={!!inErrorState}\n {...inputProps}\n />\n </div>\n\n <SlackConnectionError />\n </div>\n </Popover.Trigger>\n\n <Popover.Content>\n <SlackChannelListBox\n isLoading={slackChannelsLoading || connectedChannelsLoading}\n isUpdating={connectedChannelsUpdating}\n connectedChannels={currentConnectedChannels}\n onClick={handleOptionClick}\n slackChannels={matchedChannels}\n listBoxProps={listBoxProps}\n channelOptionProps={channelOptionProps}\n />\n </Popover.Content>\n </Popover.Root>\n {showConnectedChannelTags && (\n <SlackConnectedChannelTagList\n connectedChannels={currentConnectedChannels}\n slackChannels={slackChannels}\n updateConnectedChannels={handleOptionClick}\n />\n )}\n </div>\n );\n};\n"],"names":["MAX_ALLOWED_CHANNELS","SlackChannelCombobox","slackChannelsRecipientObject","queryOptions","inputProps","inputContainerProps","listBoxProps","channelOptionProps","inputMessages","showConnectedChannelTags","t","useTranslations","comboboxListOpen","setComboboxListOpen","useState","inputValue","setInputValue","comboboxRef","useRef","useOutsideClick","connectionStatus","connectionErrorLabel","useKnockSlackClient","slackChannels","slackChannelsLoading","useSlackChannels","connectedChannels","updateConnectedChannels","connectedChannelsLoading","connectedChannelsError","connectedChannelsUpdating","useConnectedSlackChannels","currentConnectedChannels","setCurrentConnectedChannels","useEffect","_a","slackChannelsMap","channel","channels","connectedChannel","inErrorState","useMemo","inLoadingState","searchPlaceholder","DEFAULT_INPUT_MESSAGES","numberConnectedChannels","slackChannel","handleOptionClick","channelId","channelsToSendToKnock","contains","useFilter","matchedChannels","jsx","SlackAddChannelInput","jsxs","Popover","VisuallyHidden","Spinner","SearchIcon","e","SlackConnectionError","SlackChannelListBox","SlackConnectedChannelTagList"],"mappings":"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"}
|
1
|
+
{"version":3,"file":"SlackChannelCombobox.mjs","sources":["../../../../../../src/modules/slack/components/SlackChannelCombobox/SlackChannelCombobox.tsx"],"sourcesContent":["import { SlackChannelConnection } from \"@knocklabs/client\";\nimport {\n ContainerObject,\n SlackChannelQueryOptions,\n useConnectedSlackChannels,\n useKnockSlackClient,\n useSlackChannels,\n useTranslations,\n} from \"@knocklabs/react-core\";\nimport * as Popover from \"@radix-ui/react-popover\";\nimport * as VisuallyHidden from \"@radix-ui/react-visually-hidden\";\nimport { useEffect, useMemo, useRef, useState } from \"react\";\n\nimport { Spinner, useOutsideClick } from \"../../../core\";\nimport \"../../theme.css\";\nimport SlackAddChannelInput from \"../SlackAddChannelInput/SlackAddChannelInput\";\n\nimport SlackChannelListBox from \"./SlackChannelListBox\";\nimport SlackConnectedChannelTagList from \"./SlackConnectedChannelTagList\";\nimport SlackConnectionError from \"./SlackConnectionError\";\nimport { strContains } from \"./helpers\";\nimport SearchIcon from \"./icons/SearchIcon\";\nimport \"./styles.css\";\n\nconst MAX_ALLOWED_CHANNELS = 1000;\n\ntype SlackChannelComboboxInputMessages = {\n disconnected: string;\n error: string;\n singleChannelConnected: string;\n multipleChannelsConnected: string;\n noChannelsConnected: string;\n noSlackChannelsFound: string;\n};\n\ntype Props = {\n slackChannelsRecipientObject: ContainerObject;\n queryOptions?: SlackChannelQueryOptions;\n inputProps?: React.InputHTMLAttributes<HTMLInputElement>;\n inputContainerProps?: React.HTMLAttributes<HTMLDivElement>;\n listBoxProps?: React.HTMLAttributes<HTMLDivElement>;\n channelOptionProps?: React.HtmlHTMLAttributes<HTMLButtonElement>;\n inputMessages?: SlackChannelComboboxInputMessages;\n showConnectedChannelTags?: boolean;\n};\n\nexport const SlackChannelCombobox = ({\n slackChannelsRecipientObject,\n queryOptions,\n inputProps,\n inputContainerProps,\n listBoxProps,\n channelOptionProps,\n inputMessages,\n showConnectedChannelTags = false,\n}: Props) => {\n const { t } = useTranslations();\n\n const [comboboxListOpen, setComboboxListOpen] = useState<boolean>(false);\n const [inputValue, setInputValue] = useState(\"\");\n\n // Used to close the combobox when clicking outside of it\n const comboboxRef = useRef(null);\n useOutsideClick({\n ref: comboboxRef,\n fn: () => {\n setInputValue(\"\");\n setComboboxListOpen(false);\n },\n });\n\n // Gather API data\n const { connectionStatus, errorLabel: connectionErrorLabel } =\n useKnockSlackClient();\n\n const { data: slackChannels, isLoading: slackChannelsLoading } =\n useSlackChannels({ queryOptions });\n\n const {\n data: connectedChannels,\n updateConnectedChannels,\n loading: connectedChannelsLoading,\n error: connectedChannelsError,\n updating: connectedChannelsUpdating,\n } = useConnectedSlackChannels({ slackChannelsRecipientObject });\n\n const [currentConnectedChannels, setCurrentConnectedChannels] = useState<\n SlackChannelConnection[] | null\n >(null);\n\n useEffect(() => {\n if (comboboxListOpen) {\n // Timeout to allow for the state to update and the component to re-render\n // when we change the `comboboxListOpen` state upon focus\n setTimeout(() => {\n document.getElementById(\"slack-channel-search\")?.focus();\n }, 0);\n }\n }, [comboboxListOpen]);\n\n useEffect(() => {\n // Used to make sure we're only showing currently available channels to select from.\n // There are cases where a channel is \"connected\" in Knock, but it wouldn't be\n // posting to it if the channel is private and the Slackbot doesn't belong to it,\n // so the channel won't show up here and it won't be posted to.\n const slackChannelsMap = new Map(\n slackChannels.map((channel) => [channel.id, channel]),\n );\n\n const channels =\n connectedChannels?.filter((connectedChannel) => {\n return slackChannelsMap.has(connectedChannel.channel_id || \"\");\n }) || [];\n\n setCurrentConnectedChannels(channels);\n }, [connectedChannels, slackChannels]);\n\n const inErrorState = useMemo(\n () =>\n connectionStatus === \"disconnected\" ||\n connectionStatus === \"error\" ||\n connectedChannelsError,\n [connectedChannelsError, connectionStatus],\n );\n\n const inLoadingState = useMemo(\n () =>\n connectionStatus === \"connecting\" ||\n connectionStatus === \"disconnecting\" ||\n slackChannelsLoading,\n\n [connectionStatus, slackChannelsLoading],\n );\n\n // Construct placeholder text\n const searchPlaceholder = useMemo(() => {\n const DEFAULT_INPUT_MESSAGES = {\n disconnected: t(\"slackSearchbarDisconnected\"),\n multipleChannelsConnected: t(\"slackSearchbarMultipleChannels\"),\n noChannelsConnected: t(\"slackSearchbarNoChannelsConnected\"),\n noSlackChannelsFound: t(\"slackSearchbarNoChannelsFound\"),\n channelsError: t(\"slackSearchbarChannelsError\"),\n };\n\n // Connection status message\n if (connectionStatus === \"disconnected\") {\n return inputMessages?.disconnected || DEFAULT_INPUT_MESSAGES.disconnected;\n }\n\n if (connectionStatus === \"error\") {\n return inputMessages?.error || connectionErrorLabel;\n }\n\n // Channels status messages\n if (!inLoadingState && slackChannels.length === 0) {\n return (\n inputMessages?.noSlackChannelsFound ||\n DEFAULT_INPUT_MESSAGES.noSlackChannelsFound\n );\n }\n\n if (connectedChannelsError) {\n return connectedChannelsError;\n }\n\n const numberConnectedChannels = currentConnectedChannels?.length || 0;\n\n if (currentConnectedChannels && numberConnectedChannels === 0) {\n return (\n inputMessages?.noChannelsConnected ||\n DEFAULT_INPUT_MESSAGES.noChannelsConnected\n );\n }\n\n if (currentConnectedChannels && numberConnectedChannels === 1) {\n const connectedChannel = slackChannels?.find(\n (slackChannel) =>\n slackChannel.id === currentConnectedChannels[0]?.channel_id,\n );\n\n return (\n inputMessages?.singleChannelConnected || `# ${connectedChannel?.name}`\n );\n }\n\n if (currentConnectedChannels && numberConnectedChannels > 1) {\n return (\n inputMessages?.multipleChannelsConnected ||\n `${numberConnectedChannels} channels connected`\n );\n }\n\n return \"\";\n }, [\n connectionStatus,\n inLoadingState,\n slackChannels,\n connectedChannelsError,\n currentConnectedChannels,\n inputMessages,\n connectionErrorLabel,\n t,\n ]);\n\n // Handle channel click\n const handleOptionClick = async (channelId: string) => {\n if (!currentConnectedChannels) {\n return;\n }\n\n const isChannelConnected = currentConnectedChannels.find(\n (channel) => channel.channel_id === channelId,\n );\n\n if (isChannelConnected) {\n const channelsToSendToKnock = currentConnectedChannels.filter(\n (connectedChannel) => connectedChannel.channel_id !== channelId,\n );\n\n setCurrentConnectedChannels(channelsToSendToKnock);\n updateConnectedChannels(channelsToSendToKnock);\n } else {\n const channelsToSendToKnock = [\n ...currentConnectedChannels,\n { channel_id: channelId } as SlackChannelConnection,\n ];\n\n setCurrentConnectedChannels(channelsToSendToKnock);\n updateConnectedChannels(channelsToSendToKnock);\n }\n };\n\n // Handle channel search\n const matchedChannels = slackChannels.filter((slackChannel) =>\n strContains(slackChannel.name, inputValue),\n );\n\n if (slackChannels.length > MAX_ALLOWED_CHANNELS) {\n return (\n <SlackAddChannelInput\n inErrorState={!!inErrorState}\n connectedChannels={currentConnectedChannels || []}\n updateConnectedChannels={updateConnectedChannels}\n connectedChannelsError={connectedChannelsError}\n connectedChannelsUpdating={connectedChannelsUpdating}\n />\n );\n }\n\n return (\n <div ref={comboboxRef} className=\"rsk-combobox\">\n <Popover.Root\n open={connectionStatus !== \"disconnected\" ? comboboxListOpen : false}\n >\n <VisuallyHidden.Root>\n <label htmlFor=\"slack-channel-search\">\n {t(\"slackSearchChannels\")}\n </label>\n </VisuallyHidden.Root>\n <Popover.Trigger asChild>\n <div className=\"rsk-combobox__searchbar\">\n <div\n className={\"rsk-combobox__searchbar__input-container\"}\n {...inputContainerProps}\n >\n <div\n className={`rsk-combobox__searchbar__input-container__icon ${inErrorState && \"rsk-combobox__searchbar__input-container__icon--error\"}`}\n >\n {inLoadingState ? (\n <Spinner size=\"15px\" thickness={3} />\n ) : (\n <SearchIcon />\n )}\n </div>\n\n <input\n className={`rsk-combobox__searchbar__input-container__input ${inErrorState ? \"rsk-combobox__searchbar__input-container__input--error\" : \"\"}`}\n tabIndex={-1}\n id=\"slack-channel-search\"\n type=\"text\"\n onFocus={() =>\n slackChannels.length > 0 && setComboboxListOpen(true)\n }\n onChange={(e) => setInputValue(e.target.value)}\n value={inputValue}\n placeholder={searchPlaceholder || \"\"}\n disabled={!!inErrorState}\n {...inputProps}\n />\n </div>\n\n <SlackConnectionError />\n </div>\n </Popover.Trigger>\n\n <Popover.Content>\n <SlackChannelListBox\n isLoading={slackChannelsLoading || connectedChannelsLoading}\n isUpdating={connectedChannelsUpdating}\n connectedChannels={currentConnectedChannels}\n onClick={handleOptionClick}\n slackChannels={matchedChannels}\n listBoxProps={listBoxProps}\n channelOptionProps={channelOptionProps}\n />\n </Popover.Content>\n </Popover.Root>\n {showConnectedChannelTags && (\n <SlackConnectedChannelTagList\n connectedChannels={currentConnectedChannels}\n slackChannels={slackChannels}\n updateConnectedChannels={handleOptionClick}\n />\n )}\n </div>\n );\n};\n"],"names":["MAX_ALLOWED_CHANNELS","SlackChannelCombobox","slackChannelsRecipientObject","queryOptions","inputProps","inputContainerProps","listBoxProps","channelOptionProps","inputMessages","showConnectedChannelTags","t","useTranslations","comboboxListOpen","setComboboxListOpen","useState","inputValue","setInputValue","comboboxRef","useRef","useOutsideClick","ref","fn","connectionStatus","errorLabel","connectionErrorLabel","useKnockSlackClient","data","slackChannels","isLoading","slackChannelsLoading","useSlackChannels","connectedChannels","updateConnectedChannels","loading","connectedChannelsLoading","error","connectedChannelsError","updating","connectedChannelsUpdating","useConnectedSlackChannels","currentConnectedChannels","setCurrentConnectedChannels","useEffect","setTimeout","getElementById","focus","slackChannelsMap","Map","map","channel","id","channels","filter","connectedChannel","has","channel_id","inErrorState","useMemo","inLoadingState","searchPlaceholder","DEFAULT_INPUT_MESSAGES","disconnected","multipleChannelsConnected","noChannelsConnected","noSlackChannelsFound","channelsError","length","numberConnectedChannels","find","slackChannel","singleChannelConnected","name","handleOptionClick","channelId","channelsToSendToKnock","matchedChannels","strContains","React","SlackAddChannelInput","Popover","VisuallyHidden","Spinner","SearchIcon","e","target","value","SlackConnectionError","SlackChannelListBox","SlackConnectedChannelTagList"],"mappings":"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"}
|
@@ -1,31 +1,17 @@
|
|
1
|
-
import
|
2
|
-
import b from "./SlackChannelOption.mjs";
|
1
|
+
import i from "react";
|
3
2
|
|
3
|
+
import l from "./SlackChannelOption.mjs";
|
4
4
|
|
5
|
-
const
|
6
|
-
slackChannels:
|
7
|
-
isLoading:
|
8
|
-
connectedChannels:
|
9
|
-
onClick:
|
10
|
-
listBoxProps:
|
11
|
-
channelOptionProps:
|
5
|
+
const s = ({
|
6
|
+
slackChannels: m,
|
7
|
+
isLoading: o,
|
8
|
+
connectedChannels: t,
|
9
|
+
onClick: a,
|
10
|
+
listBoxProps: e,
|
11
|
+
channelOptionProps: p,
|
12
12
|
isUpdating: d
|
13
|
-
}) => /* @__PURE__ */
|
14
|
-
b,
|
15
|
-
{
|
16
|
-
tabIndex: 0,
|
17
|
-
channel: r,
|
18
|
-
isLoading: m,
|
19
|
-
isConnected: !!(i != null && i.find(
|
20
|
-
(s) => s.channel_id === r.id
|
21
|
-
)),
|
22
|
-
onClick: p,
|
23
|
-
channelOptionProps: a,
|
24
|
-
isUpdating: d
|
25
|
-
},
|
26
|
-
r.id
|
27
|
-
)) });
|
13
|
+
}) => /* @__PURE__ */ i.createElement("div", { className: "rsk-combobox__list-box", ...e }, m.map((r) => /* @__PURE__ */ i.createElement(l, { key: r.id, tabIndex: 0, channel: r, isLoading: o, isConnected: !!(t != null && t.find((f) => f.channel_id === r.id)), onClick: a, channelOptionProps: p, isUpdating: d })));
|
28
14
|
export {
|
29
|
-
|
15
|
+
s as default
|
30
16
|
};
|
31
17
|
//# sourceMappingURL=SlackChannelListBox.mjs.map
|
@@ -1 +1 @@
|
|
1
|
-
{"version":3,"file":"SlackChannelListBox.mjs","sources":["../../../../../../src/modules/slack/components/SlackChannelCombobox/SlackChannelListBox.tsx"],"sourcesContent":["import { SlackChannel, SlackChannelConnection } from \"@knocklabs/client\";\nimport
|
1
|
+
{"version":3,"file":"SlackChannelListBox.mjs","sources":["../../../../../../src/modules/slack/components/SlackChannelCombobox/SlackChannelListBox.tsx"],"sourcesContent":["import { SlackChannel, SlackChannelConnection } from \"@knocklabs/client\";\n\nimport \"../../theme.css\";\n\nimport SlackChannelOption from \"./SlackChannelOption\";\nimport \"./styles.css\";\n\ntype Props = {\n slackChannels: SlackChannel[];\n isLoading: boolean;\n connectedChannels: SlackChannelConnection[] | null;\n onClick: (channelId: string) => void;\n listBoxProps?: React.HTMLAttributes<HTMLDivElement>;\n channelOptionProps?: React.HtmlHTMLAttributes<HTMLButtonElement>;\n isUpdating: boolean;\n};\n\nconst SlackChannelListBox = ({\n slackChannels,\n isLoading,\n connectedChannels,\n onClick,\n listBoxProps,\n channelOptionProps,\n isUpdating,\n}: Props) => {\n return (\n <div className=\"rsk-combobox__list-box\" {...listBoxProps}>\n {slackChannels.map((channel) => {\n return (\n <SlackChannelOption\n key={channel.id}\n tabIndex={0}\n channel={channel}\n isLoading={isLoading}\n isConnected={\n !!connectedChannels?.find(\n (connectedChannel) =>\n connectedChannel.channel_id === channel.id,\n )\n }\n onClick={onClick}\n channelOptionProps={channelOptionProps}\n isUpdating={isUpdating}\n />\n );\n })}\n </div>\n );\n};\n\nexport default SlackChannelListBox;\n"],"names":["SlackChannelListBox","slackChannels","isLoading","connectedChannels","onClick","listBoxProps","channelOptionProps","isUpdating","React","map","channel","SlackChannelOption","id","find","connectedChannel","channel_id"],"mappings":";;;;AAiBA,MAAMA,IAAsBA,CAAC;AAAA,EAC3BC,eAAAA;AAAAA,EACAC,WAAAA;AAAAA,EACAC,mBAAAA;AAAAA,EACAC,SAAAA;AAAAA,EACAC,cAAAA;AAAAA,EACAC,oBAAAA;AAAAA,EACAC,YAAAA;AACK,MAEHC,gBAAAA,EAAA,cAAC,SAAI,WAAU,0BAA6BH,GAAAA,KACzCJ,EAAcQ,IAAKC,CAAYA,MAE5BF,gBAAAA,EAAA,cAACG,KACC,KAAKD,EAAQE,IACb,UAAU,GACV,SAAAF,GACA,WAAAR,GACA,aACE,CAAC,EAACC,KAAAA,QAAAA,EAAmBU,KAClBC,OACCA,EAAiBC,eAAeL,EAAQE,MAG9C,SAAAR,GACA,oBAAAE,GACA,YAAAC,EACA,CAAA,CAEL,CACH;"}
|
@@ -1,49 +1,31 @@
|
|
1
|
-
import {
|
2
|
-
import { useState as _, useEffect as f } from "react";
|
1
|
+
import e, { useState as a, useEffect as k } from "react";
|
3
2
|
import "@knocklabs/react-core";
|
4
|
-
import { Spinner as
|
3
|
+
import { Spinner as x } from "../../../core/components/Spinner/Spinner.mjs";
|
5
4
|
|
6
5
|
import "lodash.debounce";
|
7
6
|
|
8
|
-
import
|
9
|
-
import
|
10
|
-
import
|
7
|
+
import E from "./icons/CheckmarkIcon.mjs";
|
8
|
+
import d from "./icons/HashtagIcon.mjs";
|
9
|
+
import v from "./icons/LockIcon.mjs";
|
11
10
|
|
12
|
-
const
|
11
|
+
const j = ({
|
13
12
|
channel: t,
|
14
|
-
isLoading:
|
15
|
-
isConnected:
|
16
|
-
onClick:
|
13
|
+
isLoading: o,
|
14
|
+
isConnected: c,
|
15
|
+
onClick: s,
|
17
16
|
tabIndex: l,
|
18
|
-
channelOptionProps:
|
17
|
+
channelOptionProps: u,
|
19
18
|
isUpdating: r
|
20
19
|
}) => {
|
21
|
-
const [
|
22
|
-
|
20
|
+
const [p, m] = a(!1), [n, i] = a(null), b = () => n === t.id && (r || o) ? /* @__PURE__ */ e.createElement(x, { thickness: 3 }) : p || c ? /* @__PURE__ */ e.createElement(E, { isConnected: c }) : /* @__PURE__ */ e.createElement("div", { className: "rsk-combobox__option__text-container__empty-icon" }), f = (_) => {
|
21
|
+
i(_), s(_);
|
23
22
|
};
|
24
|
-
return
|
25
|
-
if (
|
26
|
-
return
|
27
|
-
}, [
|
28
|
-
"button",
|
29
|
-
{
|
30
|
-
className: "rsk-combobox__option__button",
|
31
|
-
onClick: () => !e && d(t.id),
|
32
|
-
disabled: e || r,
|
33
|
-
onMouseEnter: () => c(!0),
|
34
|
-
onMouseLeave: () => c(!1),
|
35
|
-
tabIndex: l,
|
36
|
-
...p,
|
37
|
-
children: /* @__PURE__ */ x("div", { className: "rsk-combobox__option__text-container", children: [
|
38
|
-
/* @__PURE__ */ o("div", { className: "rsk-combobox__option__text-container__connection-icon", children: u() }),
|
39
|
-
/* @__PURE__ */ o("div", { className: "rsk-combobox__option__text-container__channel-icon", children: t.is_private ? /* @__PURE__ */ o(N, {}) : /* @__PURE__ */ o(h, {}) }),
|
40
|
-
/* @__PURE__ */ o("div", { className: "rsk-combobox__option__text-container__text", children: t.name })
|
41
|
-
] })
|
42
|
-
},
|
43
|
-
t.id
|
44
|
-
);
|
23
|
+
return k(() => {
|
24
|
+
if (n && !r)
|
25
|
+
return i(null);
|
26
|
+
}, [o, r, n]), /* @__PURE__ */ e.createElement("button", { key: t.id, className: "rsk-combobox__option__button", onClick: () => !o && f(t.id), disabled: o || r, onMouseEnter: () => m(!0), onMouseLeave: () => m(!1), tabIndex: l, ...u }, /* @__PURE__ */ e.createElement("div", { className: "rsk-combobox__option__text-container" }, /* @__PURE__ */ e.createElement("div", { className: "rsk-combobox__option__text-container__connection-icon" }, b()), /* @__PURE__ */ e.createElement("div", { className: "rsk-combobox__option__text-container__channel-icon" }, t.is_private ? /* @__PURE__ */ e.createElement(v, null) : /* @__PURE__ */ e.createElement(d, null)), /* @__PURE__ */ e.createElement("div", { className: "rsk-combobox__option__text-container__text" }, t.name)));
|
45
27
|
};
|
46
28
|
export {
|
47
|
-
|
29
|
+
j as default
|
48
30
|
};
|
49
31
|
//# sourceMappingURL=SlackChannelOption.mjs.map
|
@@ -1 +1 @@
|
|
1
|
-
{"version":3,"file":"SlackChannelOption.mjs","sources":["../../../../../../src/modules/slack/components/SlackChannelCombobox/SlackChannelOption.tsx"],"sourcesContent":["import { SlackChannel } from \"@knocklabs/client\";\nimport { useEffect, useState } from \"react\";\n\nimport { Spinner } from \"../../../core\";\nimport \"../../theme.css\";\n\nimport CheckmarkIcon from \"./icons/CheckmarkIcon\";\nimport HashtagIcon from \"./icons/HashtagIcon\";\nimport LockIcon from \"./icons/LockIcon\";\nimport \"./styles.css\";\n\ntype Props = {\n channel: SlackChannel;\n isLoading: boolean;\n isConnected: boolean;\n onClick: (id: string) => void;\n tabIndex: number;\n channelOptionProps?: React.HtmlHTMLAttributes<HTMLButtonElement>;\n isUpdating: boolean;\n};\n\nconst SlackChannelOption = ({\n channel,\n isLoading,\n isConnected,\n onClick,\n tabIndex,\n channelOptionProps,\n isUpdating,\n}: Props) => {\n const [isHovered, setIsHovered] = useState(false);\n const [submittedId, setSubmittedId] = useState<string | null>(null);\n\n const icon = () => {\n if (submittedId === channel.id && (isUpdating || isLoading)) {\n return <Spinner thickness={3} />;\n }\n\n if (isHovered || isConnected) {\n return <CheckmarkIcon isConnected={isConnected} />;\n }\n\n return <div className=\"rsk-combobox__option__text-container__empty-icon\" />;\n };\n\n const handleOptionClick = (channelId: string) => {\n setSubmittedId(channelId);\n onClick(channelId);\n };\n\n useEffect(() => {\n if (submittedId && !isUpdating) {\n return setSubmittedId(null);\n }\n }, [isLoading, isUpdating, submittedId]);\n\n return (\n <button\n key={channel.id}\n className=\"rsk-combobox__option__button\"\n onClick={() => !isLoading && handleOptionClick(channel.id)}\n disabled={isLoading || isUpdating}\n onMouseEnter={() => setIsHovered(true)}\n onMouseLeave={() => setIsHovered(false)}\n tabIndex={tabIndex}\n {...channelOptionProps}\n >\n <div className=\"rsk-combobox__option__text-container\">\n <div className=\"rsk-combobox__option__text-container__connection-icon\">\n {icon()}\n </div>\n <div className=\"rsk-combobox__option__text-container__channel-icon\">\n {channel.is_private ? <LockIcon /> : <HashtagIcon />}\n </div>\n <div className=\"rsk-combobox__option__text-container__text\">{channel.name}</div>\n </div>\n </button>\n );\n};\n\nexport default SlackChannelOption;\n"],"names":["SlackChannelOption","channel","isLoading","isConnected","onClick","tabIndex","channelOptionProps","isUpdating","isHovered","setIsHovered","useState","submittedId","setSubmittedId","icon","
|
1
|
+
{"version":3,"file":"SlackChannelOption.mjs","sources":["../../../../../../src/modules/slack/components/SlackChannelCombobox/SlackChannelOption.tsx"],"sourcesContent":["import { SlackChannel } from \"@knocklabs/client\";\nimport { useEffect, useState } from \"react\";\n\nimport { Spinner } from \"../../../core\";\nimport \"../../theme.css\";\n\nimport CheckmarkIcon from \"./icons/CheckmarkIcon\";\nimport HashtagIcon from \"./icons/HashtagIcon\";\nimport LockIcon from \"./icons/LockIcon\";\nimport \"./styles.css\";\n\ntype Props = {\n channel: SlackChannel;\n isLoading: boolean;\n isConnected: boolean;\n onClick: (id: string) => void;\n tabIndex: number;\n channelOptionProps?: React.HtmlHTMLAttributes<HTMLButtonElement>;\n isUpdating: boolean;\n};\n\nconst SlackChannelOption = ({\n channel,\n isLoading,\n isConnected,\n onClick,\n tabIndex,\n channelOptionProps,\n isUpdating,\n}: Props) => {\n const [isHovered, setIsHovered] = useState(false);\n const [submittedId, setSubmittedId] = useState<string | null>(null);\n\n const icon = () => {\n if (submittedId === channel.id && (isUpdating || isLoading)) {\n return <Spinner thickness={3} />;\n }\n\n if (isHovered || isConnected) {\n return <CheckmarkIcon isConnected={isConnected} />;\n }\n\n return <div className=\"rsk-combobox__option__text-container__empty-icon\" />;\n };\n\n const handleOptionClick = (channelId: string) => {\n setSubmittedId(channelId);\n onClick(channelId);\n };\n\n useEffect(() => {\n if (submittedId && !isUpdating) {\n return setSubmittedId(null);\n }\n }, [isLoading, isUpdating, submittedId]);\n\n return (\n <button\n key={channel.id}\n className=\"rsk-combobox__option__button\"\n onClick={() => !isLoading && handleOptionClick(channel.id)}\n disabled={isLoading || isUpdating}\n onMouseEnter={() => setIsHovered(true)}\n onMouseLeave={() => setIsHovered(false)}\n tabIndex={tabIndex}\n {...channelOptionProps}\n >\n <div className=\"rsk-combobox__option__text-container\">\n <div className=\"rsk-combobox__option__text-container__connection-icon\">\n {icon()}\n </div>\n <div className=\"rsk-combobox__option__text-container__channel-icon\">\n {channel.is_private ? <LockIcon /> : <HashtagIcon />}\n </div>\n <div className=\"rsk-combobox__option__text-container__text\">{channel.name}</div>\n </div>\n </button>\n );\n};\n\nexport default SlackChannelOption;\n"],"names":["SlackChannelOption","channel","isLoading","isConnected","onClick","tabIndex","channelOptionProps","isUpdating","isHovered","setIsHovered","useState","submittedId","setSubmittedId","icon","id","React","Spinner","CheckmarkIcon","handleOptionClick","channelId","useEffect","is_private","LockIcon","HashtagIcon","name"],"mappings":";;;;;;;;;;AAqBA,MAAMA,IAAqBA,CAAC;AAAA,EAC1BC,SAAAA;AAAAA,EACAC,WAAAA;AAAAA,EACAC,aAAAA;AAAAA,EACAC,SAAAA;AAAAA,EACAC,UAAAA;AAAAA,EACAC,oBAAAA;AAAAA,EACAC,YAAAA;AACK,MAAM;AACX,QAAM,CAACC,GAAWC,CAAY,IAAIC,EAAS,EAAK,GAC1C,CAACC,GAAaC,CAAc,IAAIF,EAAwB,IAAI,GAE5DG,IAAOA,MACPF,MAAgBV,EAAQa,OAAOP,KAAcL,KACxCa,gBAAAA,EAAA,cAACC,GAAQ,EAAA,WAAW,EAAK,CAAA,IAG9BR,KAAaL,IACRY,gBAAAA,EAAA,cAACE,KAAc,aAAAd,EAA4B,CAAA,IAG7CY,gBAAAA,EAAA,cAAC,OAAI,EAAA,WAAU,mDAAqD,CAAA,GAGvEG,IAAoBA,CAACC,MAAsB;AAC/CP,IAAAA,EAAeO,CAAS,GACxBf,EAAQe,CAAS;AAAA,EAAA;AAGnBC,SAAAA,EAAU,MAAM;AACVT,QAAAA,KAAe,CAACJ;AAClB,aAAOK,EAAe,IAAI;AAAA,EAE3B,GAAA,CAACV,GAAWK,GAAYI,CAAW,CAAC,GAGpCI,gBAAAA,EAAA,cAAA,UAAA,EACC,KAAKd,EAAQa,IACb,WAAU,gCACV,SAAS,MAAM,CAACZ,KAAagB,EAAkBjB,EAAQa,EAAE,GACzD,UAAUZ,KAAaK,GACvB,cAAc,MAAME,EAAa,EAAI,GACrC,cAAc,MAAMA,EAAa,EAAK,GACtC,UAAAJ,GACA,GAAIC,EAAAA,GAEHS,gBAAAA,EAAA,cAAA,OAAA,EAAI,WAAU,uCAAA,GACZA,gBAAAA,EAAA,cAAA,OAAA,EAAI,WAAU,wDAAA,GACZF,EAAK,CACR,GACAE,gBAAAA,EAAA,cAAC,OAAI,EAAA,WAAU,qDACZd,GAAAA,EAAQoB,aAAaN,gBAAAA,EAAA,cAACO,GAAW,IAAA,IAAIP,gBAAAA,EAAA,cAAAQ,GAAA,IAAc,CACtD,GACCR,gBAAAA,EAAA,cAAA,OAAA,EAAI,WAAU,6CAAA,GAA8Cd,EAAQuB,IAAK,CAC5E,CACF;AAEJ;"}
|
@@ -1,24 +1,13 @@
|
|
1
|
-
import
|
2
|
-
import
|
3
|
-
import
|
1
|
+
import e from "react";
|
2
|
+
import o from "./icons/CloseIcon.mjs";
|
3
|
+
import c from "./icons/HashtagIcon.mjs";
|
4
4
|
import a from "./icons/LockIcon.mjs";
|
5
5
|
|
6
|
-
const
|
7
|
-
channel:
|
8
|
-
updateConnectedChannels:
|
9
|
-
}) => /* @__PURE__ */
|
10
|
-
/* @__PURE__ */ o("div", { className: "rsk-combobox__connected_channel_tag__channel_type_icon", children: e.is_private ? /* @__PURE__ */ o(a, {}) : /* @__PURE__ */ o(_, {}) }),
|
11
|
-
/* @__PURE__ */ o("div", { className: "rsk-combobox__connected_channel_tag__text", children: e.name }),
|
12
|
-
/* @__PURE__ */ o(
|
13
|
-
"button",
|
14
|
-
{
|
15
|
-
onClick: () => c(e.id),
|
16
|
-
className: "rsk-combobox__connected_channel_tag__delete_button",
|
17
|
-
children: /* @__PURE__ */ o(t, {})
|
18
|
-
}
|
19
|
-
)
|
20
|
-
] });
|
6
|
+
const i = ({
|
7
|
+
channel: t,
|
8
|
+
updateConnectedChannels: n
|
9
|
+
}) => /* @__PURE__ */ e.createElement("div", { className: "rsk-combobox__connected_channel_tag" }, /* @__PURE__ */ e.createElement("div", { className: "rsk-combobox__connected_channel_tag__channel_type_icon" }, t.is_private ? /* @__PURE__ */ e.createElement(a, null) : /* @__PURE__ */ e.createElement(c, null)), /* @__PURE__ */ e.createElement("div", { className: "rsk-combobox__connected_channel_tag__text" }, t.name), /* @__PURE__ */ e.createElement("button", { onClick: () => n(t.id), className: "rsk-combobox__connected_channel_tag__delete_button" }, /* @__PURE__ */ e.createElement(o, null)));
|
21
10
|
export {
|
22
|
-
|
11
|
+
i as default
|
23
12
|
};
|
24
13
|
//# sourceMappingURL=SlackConnectedChannelTag.mjs.map
|
package/dist/esm/modules/slack/components/SlackChannelCombobox/SlackConnectedChannelTag.mjs.map
CHANGED
@@ -1 +1 @@
|
|
1
|
-
{"version":3,"file":"SlackConnectedChannelTag.mjs","sources":["../../../../../../src/modules/slack/components/SlackChannelCombobox/SlackConnectedChannelTag.tsx"],"sourcesContent":["import { SlackChannel } from \"@knocklabs/client\";\n\nimport CloseIcon from \"./icons/CloseIcon\";\nimport HashtagIcon from \"./icons/HashtagIcon\";\nimport LockIcon from \"./icons/LockIcon\";\nimport \"./styles.css\";\n\ntype Props = {\n\tchannel: SlackChannel;\n\tupdateConnectedChannels: (channelId: string) => void;\n}\n\nconst SlackConnectedChannelTag = ({\n\tchannel,\n\tupdateConnectedChannels,\n}: Props) => {\n\treturn (\n\t\t<div className=\"rsk-combobox__connected_channel_tag\">\n\t\t\t<div className=\"rsk-combobox__connected_channel_tag__channel_type_icon\">\n\t\t\t\t{channel.is_private ? <LockIcon /> : <HashtagIcon />}\n\t\t\t</div>\n\t\t\t<div className=\"rsk-combobox__connected_channel_tag__text\">\n\t\t\t\t{channel.name}\n\t\t\t</div>\n\t\t\t<button\n\t\t\t\tonClick={() => updateConnectedChannels(channel.id)}\n\t\t\t\tclassName=\"rsk-combobox__connected_channel_tag__delete_button\"\n\t\t\t>\n\t\t\t\t<CloseIcon />\n\t\t\t</button>\n\t\t</div>\n\t);\n};\n\nexport default SlackConnectedChannelTag;\n"],"names":["SlackConnectedChannelTag","channel","updateConnectedChannels","
|
1
|
+
{"version":3,"file":"SlackConnectedChannelTag.mjs","sources":["../../../../../../src/modules/slack/components/SlackChannelCombobox/SlackConnectedChannelTag.tsx"],"sourcesContent":["import { SlackChannel } from \"@knocklabs/client\";\n\nimport CloseIcon from \"./icons/CloseIcon\";\nimport HashtagIcon from \"./icons/HashtagIcon\";\nimport LockIcon from \"./icons/LockIcon\";\nimport \"./styles.css\";\n\ntype Props = {\n\tchannel: SlackChannel;\n\tupdateConnectedChannels: (channelId: string) => void;\n}\n\nconst SlackConnectedChannelTag = ({\n\tchannel,\n\tupdateConnectedChannels,\n}: Props) => {\n\treturn (\n\t\t<div className=\"rsk-combobox__connected_channel_tag\">\n\t\t\t<div className=\"rsk-combobox__connected_channel_tag__channel_type_icon\">\n\t\t\t\t{channel.is_private ? <LockIcon /> : <HashtagIcon />}\n\t\t\t</div>\n\t\t\t<div className=\"rsk-combobox__connected_channel_tag__text\">\n\t\t\t\t{channel.name}\n\t\t\t</div>\n\t\t\t<button\n\t\t\t\tonClick={() => updateConnectedChannels(channel.id)}\n\t\t\t\tclassName=\"rsk-combobox__connected_channel_tag__delete_button\"\n\t\t\t>\n\t\t\t\t<CloseIcon />\n\t\t\t</button>\n\t\t</div>\n\t);\n};\n\nexport default SlackConnectedChannelTag;\n"],"names":["SlackConnectedChannelTag","channel","updateConnectedChannels","React","is_private","LockIcon","HashtagIcon","name","id","CloseIcon"],"mappings":";;;;;AAYA,MAAMA,IAA2BA,CAAC;AAAA,EACjCC,SAAAA;AAAAA,EACAC,yBAAAA;AACM,sCAEJ,OAAI,EAAA,WAAU,sCACd,GAAAC,gBAAAA,EAAA,cAAC,SAAI,WAAU,4DACbF,EAAQG,6CAAcC,GAAW,IAAA,IAAIF,gBAAAA,EAAA,cAAAG,GAAA,IAAc,CACrD,GACAH,gBAAAA,EAAA,cAAC,OAAI,EAAA,WAAU,+CACbF,EAAQM,IACV,GACAJ,gBAAAA,EAAA,cAAC,YACA,SAAS,MAAMD,EAAwBD,EAAQO,EAAE,GACjD,WAAU,wDAETL,gBAAAA,EAAA,cAAAM,GAAA,IAAS,CACX,CACD;"}
|
package/dist/esm/modules/slack/components/SlackChannelCombobox/SlackConnectedChannelTagList.mjs
CHANGED
@@ -1,17 +1,15 @@
|
|
1
|
-
import
|
2
|
-
import
|
1
|
+
import o from "react";
|
2
|
+
import p from "./SlackConnectedChannelTag.mjs";
|
3
3
|
|
4
|
-
const
|
5
|
-
connectedChannels:
|
6
|
-
slackChannels:
|
4
|
+
const f = ({
|
5
|
+
connectedChannels: e,
|
6
|
+
slackChannels: r,
|
7
7
|
updateConnectedChannels: m
|
8
8
|
}) => {
|
9
|
-
const
|
10
|
-
|
11
|
-
), a = (o == null ? void 0 : o.filter((t) => p.has(t.id || ""))) || [];
|
12
|
-
return /* @__PURE__ */ i("div", { className: "rsk-combobox__connected_channel_tag_list", children: a.map((t) => /* @__PURE__ */ i(d, { channel: t, updateConnectedChannels: m }, t.id)) });
|
9
|
+
const a = new Map(e == null ? void 0 : e.map((t) => [t.channel_id, t])), i = (r == null ? void 0 : r.filter((t) => a.has(t.id || ""))) || [];
|
10
|
+
return /* @__PURE__ */ o.createElement("div", { className: "rsk-combobox__connected_channel_tag_list" }, i.map((t) => /* @__PURE__ */ o.createElement(p, { key: t.id, channel: t, updateConnectedChannels: m })));
|
13
11
|
};
|
14
12
|
export {
|
15
|
-
|
13
|
+
f as default
|
16
14
|
};
|
17
15
|
//# sourceMappingURL=SlackConnectedChannelTagList.mjs.map
|
package/dist/esm/modules/slack/components/SlackChannelCombobox/SlackConnectedChannelTagList.mjs.map
CHANGED
@@ -1 +1 @@
|
|
1
|
-
{"version":3,"file":"SlackConnectedChannelTagList.mjs","sources":["../../../../../../src/modules/slack/components/SlackChannelCombobox/SlackConnectedChannelTagList.tsx"],"sourcesContent":["import { SlackChannel, SlackChannelConnection } from \"@knocklabs/client\";\n\nimport SlackConnectedChannelTag from \"./SlackConnectedChannelTag\";\nimport \"./styles.css\";\n\ntype Props = {\n\tconnectedChannels: SlackChannelConnection[] | null;\n\tslackChannels: SlackChannel[];\n\tupdateConnectedChannels: (channelId: string) => void;\n}\n\nconst SlackConnectedChannelTagList = ({\n\tconnectedChannels,\n\tslackChannels,\n\tupdateConnectedChannels,\n}: Props) => {\n\tconst connectedChannelsMap = new Map(\n\t\tconnectedChannels?.map((channel) => [channel.channel_id, channel]),\n\t);\n\n\tconst channels =\n\t\tslackChannels?.filter((slackChannel) => {\n\t\t\treturn connectedChannelsMap.has(slackChannel.id || \"\");\n\t\t}) || [];\n\n\treturn (\n\t\t<div className=\"rsk-combobox__connected_channel_tag_list\">\n\t\t\t{channels.map((channel) => (\n\t\t\t\t<SlackConnectedChannelTag key={channel.id} channel={channel} updateConnectedChannels={updateConnectedChannels} />\n\t\t\t))}\n\t\t</div>\n\t);\n};\n\nexport default SlackConnectedChannelTagList;\n"],"names":["SlackConnectedChannelTagList","connectedChannels","slackChannels","updateConnectedChannels","connectedChannelsMap","channel","channels","slackChannel","
|
1
|
+
{"version":3,"file":"SlackConnectedChannelTagList.mjs","sources":["../../../../../../src/modules/slack/components/SlackChannelCombobox/SlackConnectedChannelTagList.tsx"],"sourcesContent":["import { SlackChannel, SlackChannelConnection } from \"@knocklabs/client\";\n\nimport SlackConnectedChannelTag from \"./SlackConnectedChannelTag\";\nimport \"./styles.css\";\n\ntype Props = {\n\tconnectedChannels: SlackChannelConnection[] | null;\n\tslackChannels: SlackChannel[];\n\tupdateConnectedChannels: (channelId: string) => void;\n}\n\nconst SlackConnectedChannelTagList = ({\n\tconnectedChannels,\n\tslackChannels,\n\tupdateConnectedChannels,\n}: Props) => {\n\tconst connectedChannelsMap = new Map(\n\t\tconnectedChannels?.map((channel) => [channel.channel_id, channel]),\n\t);\n\n\tconst channels =\n\t\tslackChannels?.filter((slackChannel) => {\n\t\t\treturn connectedChannelsMap.has(slackChannel.id || \"\");\n\t\t}) || [];\n\n\treturn (\n\t\t<div className=\"rsk-combobox__connected_channel_tag_list\">\n\t\t\t{channels.map((channel) => (\n\t\t\t\t<SlackConnectedChannelTag key={channel.id} channel={channel} updateConnectedChannels={updateConnectedChannels} />\n\t\t\t))}\n\t\t</div>\n\t);\n};\n\nexport default SlackConnectedChannelTagList;\n"],"names":["SlackConnectedChannelTagList","connectedChannels","slackChannels","updateConnectedChannels","connectedChannelsMap","Map","map","channel","channel_id","channels","filter","slackChannel","has","id","React","SlackConnectedChannelTag"],"mappings":";;;AAWA,MAAMA,IAA+BA,CAAC;AAAA,EACrCC,mBAAAA;AAAAA,EACAC,eAAAA;AAAAA,EACAC,yBAAAA;AACM,MAAM;AACNC,QAAAA,IAAuB,IAAIC,IAChCJ,KAAAA,gBAAAA,EAAmBK,IAAKC,CAAYA,MAAA,CAACA,EAAQC,YAAYD,CAAO,EACjE,GAEME,KACLP,KAAAA,gBAAAA,EAAeQ,OAAQC,CAAiBA,MAChCP,EAAqBQ,IAAID,EAAaE,MAAM,EAAE,OAChD,CAAA;AAEP,SACEC,gBAAAA,EAAA,cAAA,OAAA,EAAI,WAAU,8CACbL,EAASH,IAAKC,CAAAA,MACbO,gBAAAA,EAAA,cAAAC,GAAA,EAAyB,KAAKR,EAAQM,IAAI,SAAAN,GAAkB,yBAAAJ,IAC7D,CACF;AAEF;"}
|
@@ -1,14 +1,15 @@
|
|
1
|
-
import
|
2
|
-
import { useTranslations as
|
3
|
-
import
|
4
|
-
const
|
5
|
-
const {
|
6
|
-
|
7
|
-
|
8
|
-
|
9
|
-
|
1
|
+
import e from "react";
|
2
|
+
import { useTranslations as o, useKnockSlackClient as t } from "@knocklabs/react-core";
|
3
|
+
import c from "./icons/InfoIcon.mjs";
|
4
|
+
const i = () => {
|
5
|
+
const {
|
6
|
+
t: n
|
7
|
+
} = o(), {
|
8
|
+
connectionStatus: r
|
9
|
+
} = t();
|
10
|
+
return r === "disconnected" || r === "error" ? /* @__PURE__ */ e.createElement("div", { className: "rsk-combobox__error" }, /* @__PURE__ */ e.createElement("span", null, /* @__PURE__ */ e.createElement(c, null)), /* @__PURE__ */ e.createElement("div", { className: "rsk-combobox__error__text" }, n(r === "disconnected" ? "slackConnectionErrorOccurred" : "slackConnectionErrorExists"))) : /* @__PURE__ */ e.createElement("div", null);
|
10
11
|
};
|
11
12
|
export {
|
12
|
-
|
13
|
+
i as default
|
13
14
|
};
|
14
15
|
//# sourceMappingURL=SlackConnectionError.mjs.map
|
@@ -1 +1 @@
|
|
1
|
-
{"version":3,"file":"SlackConnectionError.mjs","sources":["../../../../../../src/modules/slack/components/SlackChannelCombobox/SlackConnectionError.tsx"],"sourcesContent":["import { useKnockSlackClient, useTranslations } from \"@knocklabs/react-core\";\n\nimport InfoIcon from \"./icons/InfoIcon\";\n\nconst SlackConnectionError = () => {\n const { t } = useTranslations();\n const { connectionStatus } = useKnockSlackClient();\n\n if (connectionStatus === \"disconnected\" || connectionStatus === \"error\") {\n return (\n <div className=\"rsk-combobox__error\">\n <span>\n <InfoIcon />\n </span>\n\n <div className=\"rsk-combobox__error__text\">\n {connectionStatus === \"disconnected\"\n ? t(\"slackConnectionErrorOccurred\")\n : t(\"slackConnectionErrorExists\")}\n </div>\n </div>\n );\n }\n\n return <div />;\n};\n\nexport default SlackConnectionError;\n"],"names":["SlackConnectionError","t","useTranslations","connectionStatus","useKnockSlackClient","
|
1
|
+
{"version":3,"file":"SlackConnectionError.mjs","sources":["../../../../../../src/modules/slack/components/SlackChannelCombobox/SlackConnectionError.tsx"],"sourcesContent":["import { useKnockSlackClient, useTranslations } from \"@knocklabs/react-core\";\n\nimport InfoIcon from \"./icons/InfoIcon\";\n\nconst SlackConnectionError = () => {\n const { t } = useTranslations();\n const { connectionStatus } = useKnockSlackClient();\n\n if (connectionStatus === \"disconnected\" || connectionStatus === \"error\") {\n return (\n <div className=\"rsk-combobox__error\">\n <span>\n <InfoIcon />\n </span>\n\n <div className=\"rsk-combobox__error__text\">\n {connectionStatus === \"disconnected\"\n ? t(\"slackConnectionErrorOccurred\")\n : t(\"slackConnectionErrorExists\")}\n </div>\n </div>\n );\n }\n\n return <div />;\n};\n\nexport default SlackConnectionError;\n"],"names":["SlackConnectionError","t","useTranslations","connectionStatus","useKnockSlackClient","React","InfoIcon"],"mappings":";;;AAIA,MAAMA,IAAuBA,MAAM;AAC3B,QAAA;AAAA,IAAEC,GAAAA;AAAAA,MAAMC,EAAgB,GACxB;AAAA,IAAEC,kBAAAA;AAAAA,MAAqBC,EAAoB;AAE7CD,SAAAA,MAAqB,kBAAkBA,MAAqB,UAE5DE,gBAAAA,EAAA,cAAC,SAAI,WAAU,sBAAA,mCACZ,QACC,MAAAA,gBAAAA,EAAA,cAACC,GAAQ,IAAA,CACX,GAEAD,gBAAAA,EAAA,cAAC,SAAI,WAAU,4BAAA,GAETJ,EADHE,MAAqB,iBAChB,iCACA,4BAD8B,CAEtC,CACF,oCAII,OAAM,IAAA;AAChB;"}
|
@@ -0,0 +1,17 @@
|
|
1
|
+
const r = new Intl.Collator();
|
2
|
+
function a(l, e) {
|
3
|
+
if (e.length === 0)
|
4
|
+
return !0;
|
5
|
+
l = l.normalize("NFC"), e = e.normalize("NFC");
|
6
|
+
let n = 0, o = e.length;
|
7
|
+
for (; n + o <= l.length; n++) {
|
8
|
+
let t = l.slice(n, n + o);
|
9
|
+
if (r.compare(e, t) === 0)
|
10
|
+
return !0;
|
11
|
+
}
|
12
|
+
return !1;
|
13
|
+
}
|
14
|
+
export {
|
15
|
+
a as strContains
|
16
|
+
};
|
17
|
+
//# sourceMappingURL=helpers.mjs.map
|
@@ -0,0 +1 @@
|
|
1
|
+
{"version":3,"file":"helpers.mjs","sources":["../../../../../../src/modules/slack/components/SlackChannelCombobox/helpers.ts"],"sourcesContent":["// Taken from `react-aria` `useFilter` hook, which we didn't want to add in as a dependency\n// due to us only using this one function.\n// https://github.com/adobe/react-spectrum/blob/main/packages/%40react-aria/i18n/src/useFilter.ts#L58-L76\n\nconst collator = new Intl.Collator();\n\nexport function strContains(string: string, substr: string) {\n if (substr.length === 0) {\n return true;\n }\n\n string = string.normalize(\"NFC\");\n substr = substr.normalize(\"NFC\");\n\n let scan = 0;\n let sliceLen = substr.length;\n for (; scan + sliceLen <= string.length; scan++) {\n let slice = string.slice(scan, scan + sliceLen);\n if (collator.compare(substr, slice) === 0) {\n return true;\n }\n }\n\n return false;\n}\n"],"names":["collator","Intl","Collator","strContains","string","substr","length","normalize","scan","sliceLen","slice","compare"],"mappings":"AAIA,MAAMA,IAAW,IAAIC,KAAKC;AAEVC,SAAAA,EAAYC,GAAgBC,GAAgB;AACtDA,MAAAA,EAAOC,WAAW;AACb,WAAA;AAGAF,EAAAA,IAAAA,EAAOG,UAAU,KAAK,GACtBF,IAAAA,EAAOE,UAAU,KAAK;AAE/B,MAAIC,IAAO,GACPC,IAAWJ,EAAOC;AACtB,SAAOE,IAAOC,KAAYL,EAAOE,QAAQE,KAAQ;AAC/C,QAAIE,IAAQN,EAAOM,MAAMF,GAAMA,IAAOC,CAAQ;AAC9C,QAAIT,EAASW,QAAQN,GAAQK,CAAK,MAAM;AAC/B,aAAA;AAAA,EAEX;AAEO,SAAA;AACT;"}
|
@@ -1,31 +1,10 @@
|
|
1
|
-
import
|
2
|
-
const
|
3
|
-
isConnected:
|
4
|
-
size:
|
5
|
-
...
|
6
|
-
}) => /* @__PURE__ */ e(
|
7
|
-
"svg",
|
8
|
-
{
|
9
|
-
height: o,
|
10
|
-
width: o,
|
11
|
-
role: "img",
|
12
|
-
viewBox: "0 0 14 15",
|
13
|
-
fill: "none",
|
14
|
-
xmlns: "http://www.w3.org/2000/svg",
|
15
|
-
...t,
|
16
|
-
children: /* @__PURE__ */ e(
|
17
|
-
"path",
|
18
|
-
{
|
19
|
-
d: "M11.3751 3.9996L5.25006 10.9996L2.62506 8.3746",
|
20
|
-
stroke: r ? "#5469D4" : "#A5ACB8",
|
21
|
-
strokeWidth: "1.5",
|
22
|
-
strokeLinecap: "round",
|
23
|
-
strokeLinejoin: "round"
|
24
|
-
}
|
25
|
-
)
|
26
|
-
}
|
27
|
-
);
|
1
|
+
import t from "react";
|
2
|
+
const a = ({
|
3
|
+
isConnected: o,
|
4
|
+
size: e = "1rem",
|
5
|
+
...r
|
6
|
+
}) => /* @__PURE__ */ t.createElement("svg", { height: e, width: e, role: "img", viewBox: "0 0 14 15", fill: "none", xmlns: "http://www.w3.org/2000/svg", ...r }, /* @__PURE__ */ t.createElement("path", { d: "M11.3751 3.9996L5.25006 10.9996L2.62506 8.3746", stroke: o ? "#5469D4" : "#A5ACB8", strokeWidth: "1.5", strokeLinecap: "round", strokeLinejoin: "round" }));
|
28
7
|
export {
|
29
|
-
|
8
|
+
a as default
|
30
9
|
};
|
31
10
|
//# sourceMappingURL=CheckmarkIcon.mjs.map
|
@@ -1 +1 @@
|
|
1
|
-
{"version":3,"file":"CheckmarkIcon.mjs","sources":["../../../../../../../src/modules/slack/components/SlackChannelCombobox/icons/CheckmarkIcon.tsx"],"sourcesContent":["const CheckmarkIcon = ({\n isConnected,\n size = \"1rem\",\n ...props\n}: {\n isConnected: boolean;\n size?: string;\n}) => (\n <svg\n height={size}\n width={size}\n role=\"img\"\n viewBox=\"0 0 14 15\"\n fill=\"none\"\n xmlns=\"http://www.w3.org/2000/svg\"\n {...props}\n >\n <path\n d=\"M11.3751 3.9996L5.25006 10.9996L2.62506 8.3746\"\n stroke={isConnected ? \"#5469D4\" : \"#A5ACB8\"}\n strokeWidth=\"1.5\"\n strokeLinecap=\"round\"\n strokeLinejoin=\"round\"\n />\n </svg>\n);\n\nexport default CheckmarkIcon;\n"],"names":["CheckmarkIcon","isConnected","size","props","
|
1
|
+
{"version":3,"file":"CheckmarkIcon.mjs","sources":["../../../../../../../src/modules/slack/components/SlackChannelCombobox/icons/CheckmarkIcon.tsx"],"sourcesContent":["const CheckmarkIcon = ({\n isConnected,\n size = \"1rem\",\n ...props\n}: {\n isConnected: boolean;\n size?: string;\n}) => (\n <svg\n height={size}\n width={size}\n role=\"img\"\n viewBox=\"0 0 14 15\"\n fill=\"none\"\n xmlns=\"http://www.w3.org/2000/svg\"\n {...props}\n >\n <path\n d=\"M11.3751 3.9996L5.25006 10.9996L2.62506 8.3746\"\n stroke={isConnected ? \"#5469D4\" : \"#A5ACB8\"}\n strokeWidth=\"1.5\"\n strokeLinecap=\"round\"\n strokeLinejoin=\"round\"\n />\n </svg>\n);\n\nexport default CheckmarkIcon;\n"],"names":["CheckmarkIcon","isConnected","size","props","React"],"mappings":";AAAA,MAAMA,IAAgBA,CAAC;AAAA,EACrBC,aAAAA;AAAAA,EACAC,MAAAA,IAAO;AAAA,EACP,GAAGC;AAIL,MACGC,gBAAAA,EAAA,cAAA,OAAA,EACC,QAAQF,GACR,OAAOA,GACP,MAAK,OACL,SAAQ,aACR,MAAK,QACL,OAAM,8BACN,GAAIC,EAEJ,GAAAC,gBAAAA,EAAA,cAAC,QACC,EAAA,GAAE,kDACF,QAAQH,IAAc,YAAY,WAClC,aAAY,OACZ,eAAc,SACd,gBAAe,SAAO,CAE1B;"}
|
@@ -1,24 +1,6 @@
|
|
1
|
-
import
|
2
|
-
const
|
3
|
-
"svg",
|
4
|
-
{
|
5
|
-
width: "16",
|
6
|
-
height: "16",
|
7
|
-
viewBox: "0 0 16 16",
|
8
|
-
fill: "none",
|
9
|
-
xmlns: "http://www.w3.org/2000/svg",
|
10
|
-
children: /* @__PURE__ */ L(
|
11
|
-
"path",
|
12
|
-
{
|
13
|
-
d: "M8.53037 7.46917L7.99988 7.99967L8.53054 8.53L11.501 11.4986L11.5014 11.4995L11.501 11.5004L11.5001 11.5008L11.4992 11.5004L8.53041 8.53167L8.00008 8.00134L7.46975 8.53167L4.501 11.5004L4.50008 11.5008L4.49916 11.5004L4.49878 11.4995L4.49916 11.4986L7.46791 8.52983L7.99824 7.9995L7.46791 7.46917L4.49916 4.50042L4.49878 4.4995L4.49916 4.49858L4.50008 4.4982L4.501 4.49858L7.46975 7.46733L8.00008 7.99766L8.53041 7.46733L11.4987 4.49905L11.4991 4.49886L11.4996 4.49905L11.4998 4.4995L11.4996 4.49995L11.4991 4.50042L8.53037 7.46917Z",
|
14
|
-
fill: "#697386",
|
15
|
-
stroke: "#697386",
|
16
|
-
strokeWidth: "1.5"
|
17
|
-
}
|
18
|
-
)
|
19
|
-
}
|
20
|
-
);
|
1
|
+
import L from "react";
|
2
|
+
const t = () => /* @__PURE__ */ L.createElement("svg", { width: "16", height: "16", viewBox: "0 0 16 16", fill: "none", xmlns: "http://www.w3.org/2000/svg" }, /* @__PURE__ */ L.createElement("path", { d: "M8.53037 7.46917L7.99988 7.99967L8.53054 8.53L11.501 11.4986L11.5014 11.4995L11.501 11.5004L11.5001 11.5008L11.4992 11.5004L8.53041 8.53167L8.00008 8.00134L7.46975 8.53167L4.501 11.5004L4.50008 11.5008L4.49916 11.5004L4.49878 11.4995L4.49916 11.4986L7.46791 8.52983L7.99824 7.9995L7.46791 7.46917L4.49916 4.50042L4.49878 4.4995L4.49916 4.49858L4.50008 4.4982L4.501 4.49858L7.46975 7.46733L8.00008 7.99766L8.53041 7.46733L11.4987 4.49905L11.4991 4.49886L11.4996 4.49905L11.4998 4.4995L11.4996 4.49995L11.4991 4.50042L8.53037 7.46917Z", fill: "#697386", stroke: "#697386", strokeWidth: "1.5" }));
|
21
3
|
export {
|
22
|
-
|
4
|
+
t as default
|
23
5
|
};
|
24
6
|
//# sourceMappingURL=CloseIcon.mjs.map
|
@@ -1 +1 @@
|
|
1
|
-
{"version":3,"file":"CloseIcon.mjs","sources":["../../../../../../../src/modules/slack/components/SlackChannelCombobox/icons/CloseIcon.tsx"],"sourcesContent":["const CloseIcon = () => (\n\t<svg\n\t\twidth=\"16\"\n\t\theight=\"16\"\n\t\tviewBox=\"0 0 16 16\"\n\t\tfill=\"none\"\n\t\txmlns=\"http://www.w3.org/2000/svg\"\n\t>\n\t\t<path\n\t\t\td=\"M8.53037 7.46917L7.99988 7.99967L8.53054 8.53L11.501 11.4986L11.5014 11.4995L11.501 11.5004L11.5001 11.5008L11.4992 11.5004L8.53041 8.53167L8.00008 8.00134L7.46975 8.53167L4.501 11.5004L4.50008 11.5008L4.49916 11.5004L4.49878 11.4995L4.49916 11.4986L7.46791 8.52983L7.99824 7.9995L7.46791 7.46917L4.49916 4.50042L4.49878 4.4995L4.49916 4.49858L4.50008 4.4982L4.501 4.49858L7.46975 7.46733L8.00008 7.99766L8.53041 7.46733L11.4987 4.49905L11.4991 4.49886L11.4996 4.49905L11.4998 4.4995L11.4996 4.49995L11.4991 4.50042L8.53037 7.46917Z\"\n\t\t\tfill=\"#697386\"\n\t\t\tstroke=\"#697386\"\n\t\t\tstrokeWidth=\"1.5\"\n\t\t/>\n\t</svg>\n);\n\nexport default CloseIcon;\n"],"names":["CloseIcon","
|
1
|
+
{"version":3,"file":"CloseIcon.mjs","sources":["../../../../../../../src/modules/slack/components/SlackChannelCombobox/icons/CloseIcon.tsx"],"sourcesContent":["const CloseIcon = () => (\n\t<svg\n\t\twidth=\"16\"\n\t\theight=\"16\"\n\t\tviewBox=\"0 0 16 16\"\n\t\tfill=\"none\"\n\t\txmlns=\"http://www.w3.org/2000/svg\"\n\t>\n\t\t<path\n\t\t\td=\"M8.53037 7.46917L7.99988 7.99967L8.53054 8.53L11.501 11.4986L11.5014 11.4995L11.501 11.5004L11.5001 11.5008L11.4992 11.5004L8.53041 8.53167L8.00008 8.00134L7.46975 8.53167L4.501 11.5004L4.50008 11.5008L4.49916 11.5004L4.49878 11.4995L4.49916 11.4986L7.46791 8.52983L7.99824 7.9995L7.46791 7.46917L4.49916 4.50042L4.49878 4.4995L4.49916 4.49858L4.50008 4.4982L4.501 4.49858L7.46975 7.46733L8.00008 7.99766L8.53041 7.46733L11.4987 4.49905L11.4991 4.49886L11.4996 4.49905L11.4998 4.4995L11.4996 4.49995L11.4991 4.50042L8.53037 7.46917Z\"\n\t\t\tfill=\"#697386\"\n\t\t\tstroke=\"#697386\"\n\t\t\tstrokeWidth=\"1.5\"\n\t\t/>\n\t</svg>\n);\n\nexport default CloseIcon;\n"],"names":["CloseIcon","React"],"mappings":";AAAMA,MAAAA,IAAYA,MACjBC,gBAAAA,EAAA,cAAC,OACA,EAAA,OAAM,MACN,QAAO,MACP,SAAQ,aACR,MAAK,QACL,OAAM,6BAEN,GAAAA,gBAAAA,EAAA,cAAC,QACA,EAAA,GAAE,whBACF,MAAK,WACL,QAAO,WACP,aAAY,MAAA,CAAK,CAEnB;"}
|
@@ -1,24 +1,6 @@
|
|
1
|
-
import
|
2
|
-
const
|
3
|
-
"svg",
|
4
|
-
{
|
5
|
-
width: "12",
|
6
|
-
height: "13",
|
7
|
-
viewBox: "0 0 12 13",
|
8
|
-
fill: "none",
|
9
|
-
xmlns: "http://www.w3.org/2000/svg",
|
10
|
-
children: /* @__PURE__ */ C(
|
11
|
-
"path",
|
12
|
-
{
|
13
|
-
fillRule: "evenodd",
|
14
|
-
clipRule: "evenodd",
|
15
|
-
d: "M5.7904 2.22197C5.81364 2.06746 5.77568 1.90997 5.68461 1.78301C5.59353 1.65605 5.45652 1.56962 5.30271 1.54211C5.1489 1.5146 4.99043 1.54817 4.86099 1.6357C4.73155 1.72322 4.64136 1.85778 4.6096 2.01077L4.2688 3.91637H2.2C2.04087 3.91637 1.88826 3.97958 1.77574 4.0921C1.66321 4.20463 1.6 4.35724 1.6 4.51637C1.6 4.6755 1.66321 4.82811 1.77574 4.94063C1.88826 5.05315 2.04087 5.11637 2.2 5.11637H4.0546L3.5728 7.81637H1.6C1.44087 7.81637 1.28826 7.87958 1.17574 7.9921C1.06321 8.10463 1 8.25724 1 8.41637C1 8.5755 1.06321 8.72811 1.17574 8.84063C1.28826 8.95315 1.44087 9.01637 1.6 9.01637H3.358L3.1096 10.4108C3.08636 10.5653 3.12432 10.7228 3.21539 10.8497C3.30647 10.9767 3.44348 11.0631 3.59729 11.0906C3.7511 11.1181 3.90957 11.0846 4.03901 10.997C4.16845 10.9095 4.25864 10.775 4.2904 10.622L4.5772 9.01637H6.2086L5.9596 10.4108C5.9433 10.4893 5.9429 10.5703 5.95844 10.649C5.97397 10.7276 6.00511 10.8024 6.05003 10.8688C6.09495 10.9352 6.15273 10.992 6.21996 11.0357C6.28718 11.0794 6.36249 11.1092 6.44143 11.1234C6.52037 11.1375 6.60134 11.1356 6.67955 11.1179C6.75777 11.1002 6.83164 11.067 6.8968 11.0203C6.96196 10.9735 7.01709 10.9142 7.05893 10.8458C7.10077 10.7774 7.12847 10.7013 7.1404 10.622L7.4272 9.01637H9.4C9.55913 9.01637 9.71174 8.95315 9.82426 8.84063C9.93679 8.72811 10 8.5755 10 8.41637C10 8.25724 9.93679 8.10463 9.82426 7.9921C9.71174 7.87958 9.55913 7.81637 9.4 7.81637H7.642L8.1238 5.11637H10C10.1591 5.11637 10.3117 5.05315 10.4243 4.94063C10.5368 4.82811 10.6 4.6755 10.6 4.51637C10.6 4.35724 10.5368 4.20463 10.4243 4.0921C10.3117 3.97958 10.1591 3.91637 10 3.91637H8.338L8.6404 2.22197C8.6567 2.14345 8.6571 2.06246 8.64157 1.98379C8.62603 1.90511 8.59489 1.83035 8.54997 1.76392C8.50505 1.69749 8.44727 1.64073 8.38004 1.59701C8.31282 1.55329 8.23751 1.52349 8.15857 1.50937C8.07963 1.49525 7.99866 1.4971 7.92045 1.51481C7.84223 1.53252 7.76836 1.56572 7.7032 1.61246C7.63804 1.65921 7.58291 1.71854 7.54107 1.78695C7.49923 1.85536 7.47153 1.93147 7.4596 2.01077L7.1188 3.91637H5.488L5.7904 2.22197ZM6.4228 7.81637L6.904 5.11637H5.2738L4.7914 7.81637H6.4228Z",
|
16
|
-
fill: "#3C4257"
|
17
|
-
}
|
18
|
-
)
|
19
|
-
}
|
20
|
-
);
|
1
|
+
import C from "react";
|
2
|
+
const t = () => /* @__PURE__ */ C.createElement("svg", { width: "12", height: "13", viewBox: "0 0 12 13", fill: "none", xmlns: "http://www.w3.org/2000/svg" }, /* @__PURE__ */ C.createElement("path", { fillRule: "evenodd", clipRule: "evenodd", d: "M5.7904 2.22197C5.81364 2.06746 5.77568 1.90997 5.68461 1.78301C5.59353 1.65605 5.45652 1.56962 5.30271 1.54211C5.1489 1.5146 4.99043 1.54817 4.86099 1.6357C4.73155 1.72322 4.64136 1.85778 4.6096 2.01077L4.2688 3.91637H2.2C2.04087 3.91637 1.88826 3.97958 1.77574 4.0921C1.66321 4.20463 1.6 4.35724 1.6 4.51637C1.6 4.6755 1.66321 4.82811 1.77574 4.94063C1.88826 5.05315 2.04087 5.11637 2.2 5.11637H4.0546L3.5728 7.81637H1.6C1.44087 7.81637 1.28826 7.87958 1.17574 7.9921C1.06321 8.10463 1 8.25724 1 8.41637C1 8.5755 1.06321 8.72811 1.17574 8.84063C1.28826 8.95315 1.44087 9.01637 1.6 9.01637H3.358L3.1096 10.4108C3.08636 10.5653 3.12432 10.7228 3.21539 10.8497C3.30647 10.9767 3.44348 11.0631 3.59729 11.0906C3.7511 11.1181 3.90957 11.0846 4.03901 10.997C4.16845 10.9095 4.25864 10.775 4.2904 10.622L4.5772 9.01637H6.2086L5.9596 10.4108C5.9433 10.4893 5.9429 10.5703 5.95844 10.649C5.97397 10.7276 6.00511 10.8024 6.05003 10.8688C6.09495 10.9352 6.15273 10.992 6.21996 11.0357C6.28718 11.0794 6.36249 11.1092 6.44143 11.1234C6.52037 11.1375 6.60134 11.1356 6.67955 11.1179C6.75777 11.1002 6.83164 11.067 6.8968 11.0203C6.96196 10.9735 7.01709 10.9142 7.05893 10.8458C7.10077 10.7774 7.12847 10.7013 7.1404 10.622L7.4272 9.01637H9.4C9.55913 9.01637 9.71174 8.95315 9.82426 8.84063C9.93679 8.72811 10 8.5755 10 8.41637C10 8.25724 9.93679 8.10463 9.82426 7.9921C9.71174 7.87958 9.55913 7.81637 9.4 7.81637H7.642L8.1238 5.11637H10C10.1591 5.11637 10.3117 5.05315 10.4243 4.94063C10.5368 4.82811 10.6 4.6755 10.6 4.51637C10.6 4.35724 10.5368 4.20463 10.4243 4.0921C10.3117 3.97958 10.1591 3.91637 10 3.91637H8.338L8.6404 2.22197C8.6567 2.14345 8.6571 2.06246 8.64157 1.98379C8.62603 1.90511 8.59489 1.83035 8.54997 1.76392C8.50505 1.69749 8.44727 1.64073 8.38004 1.59701C8.31282 1.55329 8.23751 1.52349 8.15857 1.50937C8.07963 1.49525 7.99866 1.4971 7.92045 1.51481C7.84223 1.53252 7.76836 1.56572 7.7032 1.61246C7.63804 1.65921 7.58291 1.71854 7.54107 1.78695C7.49923 1.85536 7.47153 1.93147 7.4596 2.01077L7.1188 3.91637H5.488L5.7904 2.22197ZM6.4228 7.81637L6.904 5.11637H5.2738L4.7914 7.81637H6.4228Z", fill: "#3C4257" }));
|
21
3
|
export {
|
22
|
-
|
4
|
+
t as default
|
23
5
|
};
|
24
6
|
//# sourceMappingURL=HashtagIcon.mjs.map
|
@@ -1 +1 @@
|
|
1
|
-
{"version":3,"file":"HashtagIcon.mjs","sources":["../../../../../../../src/modules/slack/components/SlackChannelCombobox/icons/HashtagIcon.tsx"],"sourcesContent":["const HashtagIcon = () => (\n <svg\n width=\"12\"\n height=\"13\"\n viewBox=\"0 0 12 13\"\n fill=\"none\"\n xmlns=\"http://www.w3.org/2000/svg\"\n >\n <path\n fillRule=\"evenodd\"\n clipRule=\"evenodd\"\n d=\"M5.7904 2.22197C5.81364 2.06746 5.77568 1.90997 5.68461 1.78301C5.59353 1.65605 5.45652 1.56962 5.30271 1.54211C5.1489 1.5146 4.99043 1.54817 4.86099 1.6357C4.73155 1.72322 4.64136 1.85778 4.6096 2.01077L4.2688 3.91637H2.2C2.04087 3.91637 1.88826 3.97958 1.77574 4.0921C1.66321 4.20463 1.6 4.35724 1.6 4.51637C1.6 4.6755 1.66321 4.82811 1.77574 4.94063C1.88826 5.05315 2.04087 5.11637 2.2 5.11637H4.0546L3.5728 7.81637H1.6C1.44087 7.81637 1.28826 7.87958 1.17574 7.9921C1.06321 8.10463 1 8.25724 1 8.41637C1 8.5755 1.06321 8.72811 1.17574 8.84063C1.28826 8.95315 1.44087 9.01637 1.6 9.01637H3.358L3.1096 10.4108C3.08636 10.5653 3.12432 10.7228 3.21539 10.8497C3.30647 10.9767 3.44348 11.0631 3.59729 11.0906C3.7511 11.1181 3.90957 11.0846 4.03901 10.997C4.16845 10.9095 4.25864 10.775 4.2904 10.622L4.5772 9.01637H6.2086L5.9596 10.4108C5.9433 10.4893 5.9429 10.5703 5.95844 10.649C5.97397 10.7276 6.00511 10.8024 6.05003 10.8688C6.09495 10.9352 6.15273 10.992 6.21996 11.0357C6.28718 11.0794 6.36249 11.1092 6.44143 11.1234C6.52037 11.1375 6.60134 11.1356 6.67955 11.1179C6.75777 11.1002 6.83164 11.067 6.8968 11.0203C6.96196 10.9735 7.01709 10.9142 7.05893 10.8458C7.10077 10.7774 7.12847 10.7013 7.1404 10.622L7.4272 9.01637H9.4C9.55913 9.01637 9.71174 8.95315 9.82426 8.84063C9.93679 8.72811 10 8.5755 10 8.41637C10 8.25724 9.93679 8.10463 9.82426 7.9921C9.71174 7.87958 9.55913 7.81637 9.4 7.81637H7.642L8.1238 5.11637H10C10.1591 5.11637 10.3117 5.05315 10.4243 4.94063C10.5368 4.82811 10.6 4.6755 10.6 4.51637C10.6 4.35724 10.5368 4.20463 10.4243 4.0921C10.3117 3.97958 10.1591 3.91637 10 3.91637H8.338L8.6404 2.22197C8.6567 2.14345 8.6571 2.06246 8.64157 1.98379C8.62603 1.90511 8.59489 1.83035 8.54997 1.76392C8.50505 1.69749 8.44727 1.64073 8.38004 1.59701C8.31282 1.55329 8.23751 1.52349 8.15857 1.50937C8.07963 1.49525 7.99866 1.4971 7.92045 1.51481C7.84223 1.53252 7.76836 1.56572 7.7032 1.61246C7.63804 1.65921 7.58291 1.71854 7.54107 1.78695C7.49923 1.85536 7.47153 1.93147 7.4596 2.01077L7.1188 3.91637H5.488L5.7904 2.22197ZM6.4228 7.81637L6.904 5.11637H5.2738L4.7914 7.81637H6.4228Z\"\n fill=\"#3C4257\"\n />\n </svg>\n);\n\nexport default HashtagIcon;\n"],"names":["HashtagIcon","
|
1
|
+
{"version":3,"file":"HashtagIcon.mjs","sources":["../../../../../../../src/modules/slack/components/SlackChannelCombobox/icons/HashtagIcon.tsx"],"sourcesContent":["const HashtagIcon = () => (\n <svg\n width=\"12\"\n height=\"13\"\n viewBox=\"0 0 12 13\"\n fill=\"none\"\n xmlns=\"http://www.w3.org/2000/svg\"\n >\n <path\n fillRule=\"evenodd\"\n clipRule=\"evenodd\"\n d=\"M5.7904 2.22197C5.81364 2.06746 5.77568 1.90997 5.68461 1.78301C5.59353 1.65605 5.45652 1.56962 5.30271 1.54211C5.1489 1.5146 4.99043 1.54817 4.86099 1.6357C4.73155 1.72322 4.64136 1.85778 4.6096 2.01077L4.2688 3.91637H2.2C2.04087 3.91637 1.88826 3.97958 1.77574 4.0921C1.66321 4.20463 1.6 4.35724 1.6 4.51637C1.6 4.6755 1.66321 4.82811 1.77574 4.94063C1.88826 5.05315 2.04087 5.11637 2.2 5.11637H4.0546L3.5728 7.81637H1.6C1.44087 7.81637 1.28826 7.87958 1.17574 7.9921C1.06321 8.10463 1 8.25724 1 8.41637C1 8.5755 1.06321 8.72811 1.17574 8.84063C1.28826 8.95315 1.44087 9.01637 1.6 9.01637H3.358L3.1096 10.4108C3.08636 10.5653 3.12432 10.7228 3.21539 10.8497C3.30647 10.9767 3.44348 11.0631 3.59729 11.0906C3.7511 11.1181 3.90957 11.0846 4.03901 10.997C4.16845 10.9095 4.25864 10.775 4.2904 10.622L4.5772 9.01637H6.2086L5.9596 10.4108C5.9433 10.4893 5.9429 10.5703 5.95844 10.649C5.97397 10.7276 6.00511 10.8024 6.05003 10.8688C6.09495 10.9352 6.15273 10.992 6.21996 11.0357C6.28718 11.0794 6.36249 11.1092 6.44143 11.1234C6.52037 11.1375 6.60134 11.1356 6.67955 11.1179C6.75777 11.1002 6.83164 11.067 6.8968 11.0203C6.96196 10.9735 7.01709 10.9142 7.05893 10.8458C7.10077 10.7774 7.12847 10.7013 7.1404 10.622L7.4272 9.01637H9.4C9.55913 9.01637 9.71174 8.95315 9.82426 8.84063C9.93679 8.72811 10 8.5755 10 8.41637C10 8.25724 9.93679 8.10463 9.82426 7.9921C9.71174 7.87958 9.55913 7.81637 9.4 7.81637H7.642L8.1238 5.11637H10C10.1591 5.11637 10.3117 5.05315 10.4243 4.94063C10.5368 4.82811 10.6 4.6755 10.6 4.51637C10.6 4.35724 10.5368 4.20463 10.4243 4.0921C10.3117 3.97958 10.1591 3.91637 10 3.91637H8.338L8.6404 2.22197C8.6567 2.14345 8.6571 2.06246 8.64157 1.98379C8.62603 1.90511 8.59489 1.83035 8.54997 1.76392C8.50505 1.69749 8.44727 1.64073 8.38004 1.59701C8.31282 1.55329 8.23751 1.52349 8.15857 1.50937C8.07963 1.49525 7.99866 1.4971 7.92045 1.51481C7.84223 1.53252 7.76836 1.56572 7.7032 1.61246C7.63804 1.65921 7.58291 1.71854 7.54107 1.78695C7.49923 1.85536 7.47153 1.93147 7.4596 2.01077L7.1188 3.91637H5.488L5.7904 2.22197ZM6.4228 7.81637L6.904 5.11637H5.2738L4.7914 7.81637H6.4228Z\"\n fill=\"#3C4257\"\n />\n </svg>\n);\n\nexport default HashtagIcon;\n"],"names":["HashtagIcon","React"],"mappings":";AAAMA,MAAAA,IAAcA,MAClBC,gBAAAA,EAAA,cAAC,OACC,EAAA,OAAM,MACN,QAAO,MACP,SAAQ,aACR,MAAK,QACL,OAAM,6BAEN,GAAAA,gBAAAA,EAAA,cAAC,QACC,EAAA,UAAS,WACT,UAAS,WACT,GAAE,qjEACF,MAAK,UAAA,CAAS,CAElB;"}
|