{"version":3,"file":"static/chunks/app/layout-7c7a8e2c3e2f77ab.js","mappings":"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","sources":["webpack://_N_E/?a38a","webpack://_N_E/./src/app/HOC/NotificationContainer.tsx","webpack://_N_E/./src/app/components/KeyboardShortcut.tsx","webpack://_N_E/./src/app/components/icons/CloseIcon.tsx","webpack://_N_E/./src/app/components/Tag.tsx","webpack://_N_E/./src/app/components/CommandMenu/CommandMenuItem.tsx","webpack://_N_E/./src/app/components/CommandMenu/NoResultsItem.tsx","webpack://_N_E/./src/app/components/Spinner.tsx","webpack://_N_E/./src/app/components/CommandMenu/utils.ts","webpack://_N_E/./src/app/hooks/useSearch.ts","webpack://_N_E/./src/app/components/icons/InsertThreadLinkIcon.tsx","webpack://_N_E/./src/app/components/CommandMenu/CommandMenuV2.tsx","webpack://_N_E/./src/app/services/tags.ts","webpack://_N_E/./src/app/services/auth.ts","webpack://_N_E/./src/app/utils/getSession.ts","webpack://_N_E/./src/app/components/SideBar/OrgSwitcher.tsx","webpack://_N_E/./src/app/components/SideBar/OrgInfo/ReadOnlyDialog.tsx","webpack://_N_E/./src/app/hooks/useFileUpload.ts","webpack://_N_E/./src/app/components/profile/ProfilePicture/ProfilePicturePreview.tsx","webpack://_N_E/./src/app/components/SideBar/OrgInfo/EditableDialog.tsx","webpack://_N_E/./src/app/components/SideBar/OrgInfo/index.tsx","webpack://_N_E/./src/app/utils/tracking.ts","webpack://_N_E/./src/app/components/SideBar/RealtimeIndicator.tsx","webpack://_N_E/./src/app/components/SideBar/Header.tsx","webpack://_N_E/./src/app/components/icons/FeedStackIcon.tsx","webpack://_N_E/./src/app/components/SideBar/VideoTutorialButton.tsx","webpack://_N_E/./src/app/components/profile/AvatarSelector/AvatarVariantSelector.tsx","webpack://_N_E/./src/app/components/profile/AvatarSelector/AvatarSelector.tsx","webpack://_N_E/./src/app/components/profile/ProfilePicture/ProfilePicture.tsx","webpack://_N_E/./src/app/components/profile/ProfilePage/GuestProfile.tsx","webpack://_N_E/./src/app/components/profile/ProfilePage/ProfleDetails.tsx","webpack://_N_E/./src/app/components/profile/ProfilePage/ProfileDetailsDialog.tsx","webpack://_N_E/./src/app/components/SideBar/UserBlock.tsx","webpack://_N_E/./src/app/components/CreateFeedDialog/NameEmojiStep.tsx","webpack://_N_E/./src/app/components/CreateFeedDialog/RefineFilterBlock.tsx","webpack://_N_E/./src/app/components/CreateFeedDialog/RefineFiltersStep.tsx","webpack://_N_E/./src/app/components/CreateFeedDialog/CreateEditFeedDialog.tsx","webpack://_N_E/./src/app/components/CreateFeedDialog/CreateFeedDialog.tsx","webpack://_N_E/./src/app/components/SideBar/MobileHeader.tsx","webpack://_N_E/./src/app/components/SideBar/ResyncButton.tsx","webpack://_N_E/./src/app/components/SideBar/NotificationToggle.tsx","webpack://_N_E/./src/app/components/SideBar/Sidebar.tsx","webpack://_N_E/./src/app/hooks/usePresence.ts","webpack://_N_E/./src/app/hooks/useServerSentEvents.ts","webpack://_N_E/./src/app/HOC/LayoutContainer.tsx","webpack://_N_E/./src/app/HOC/MobileViewContainer.tsx","webpack://_N_E/./src/app/components/illustrations/PenIllustration.tsx","webpack://_N_E/./src/app/services/image.ts","webpack://_N_E/./src/app/hooks/useFiles.ts","webpack://_N_E/./src/app/hooks/useOrganisation.ts","webpack://_N_E/./src/app/providers/ThemeProvider.tsx","webpack://_N_E/./src/app/services/misc.ts","webpack://_N_E/./src/app/services/organisation.ts","webpack://_N_E/./src/app/services/users.ts","webpack://_N_E/./src/app/components/SideBar/SideBar.custom.scss","webpack://_N_E/./src/app/styles/_mixings.scss","webpack://_N_E/./src/app/styles/_normalize.scss","webpack://_N_E/./src/app/styles/base.scss","webpack://_N_E/./src/app/components/CommandMenu/CommandMenu.module.scss","webpack://_N_E/./src/app/components/CommandMenu/CommandMenuItem.module.scss","webpack://_N_E/./src/app/components/CreateFeedDialog/CreateFeed.module.scss","webpack://_N_E/./src/app/components/KeyboardShortcut.module.scss","webpack://_N_E/./src/app/components/SideBar/OrgSwitcher.module.scss","webpack://_N_E/./src/app/components/SideBar/RealtimeIndicator.module.scss","webpack://_N_E/./src/app/components/SideBar/SideBar.module.scss","webpack://_N_E/./src/app/components/SideBar/UserBlock.module.scss","webpack://_N_E/./src/app/components/Spinner.module.scss","webpack://_N_E/./src/app/components/Tag.module.scss","webpack://_N_E/./src/app/components/profile/ProfilePage/ProfileDetails.module.scss","webpack://_N_E/./src/app/components/profile/ProfilePicture/ProfilePicture.module.scss","webpack://_N_E/./src/app/styles/emoji.module.scss","webpack://_N_E/"],"sourcesContent":["import(/* webpackMode: \"eager\" */ \"/app/node_modules/@radix-ui/themes/dist/esm/components/accessible-icon.js\");\nimport(/* webpackMode: \"eager\" */ \"/app/node_modules/@radix-ui/themes/dist/esm/components/alert-dialog.js\");\nimport(/* webpackMode: \"eager\" */ \"/app/node_modules/@radix-ui/themes/dist/esm/components/aspect-ratio.js\");\nimport(/* webpackMode: \"eager\" */ \"/app/node_modules/@radix-ui/themes/dist/esm/components/avatar.js\");\nimport(/* webpackMode: \"eager\" */ \"/app/node_modules/@radix-ui/themes/dist/esm/components/callout.js\");\nimport(/* webpackMode: \"eager\" */ \"/app/node_modules/@radix-ui/themes/dist/esm/components/checkbox.js\");\nimport(/* webpackMode: \"eager\" */ \"/app/node_modules/@radix-ui/themes/dist/esm/components/context-menu.js\");\nimport(/* webpackMode: \"eager\" */ \"/app/node_modules/@radix-ui/themes/dist/esm/components/dialog.js\");\nimport(/* webpackMode: \"eager\" */ \"/app/node_modules/@radix-ui/themes/dist/esm/components/dropdown-menu.js\");\nimport(/* webpackMode: \"eager\" */ \"/app/node_modules/@radix-ui/themes/dist/esm/components/hover-card.js\");\nimport(/* webpackMode: \"eager\" */ \"/app/node_modules/@radix-ui/themes/dist/esm/components/popover.js\");\nimport(/* webpackMode: \"eager\" */ \"/app/node_modules/@radix-ui/themes/dist/esm/components/portal.js\");\nimport(/* webpackMode: \"eager\" */ \"/app/node_modules/@radix-ui/themes/dist/esm/components/radio-group.js\");\nimport(/* webpackMode: \"eager\" */ \"/app/node_modules/@radix-ui/themes/dist/esm/components/scroll-area.js\");\nimport(/* webpackMode: \"eager\" */ \"/app/node_modules/@radix-ui/themes/dist/esm/components/select.js\");\nimport(/* webpackMode: \"eager\" */ \"/app/node_modules/@radix-ui/themes/dist/esm/components/separator.js\");\nimport(/* webpackMode: \"eager\" */ \"/app/node_modules/@radix-ui/themes/dist/esm/components/slider.js\");\nimport(/* webpackMode: \"eager\" */ \"/app/node_modules/@radix-ui/themes/dist/esm/components/switch.js\");\nimport(/* webpackMode: \"eager\" */ \"/app/node_modules/@radix-ui/themes/dist/esm/components/tabs.js\");\nimport(/* webpackMode: \"eager\" */ \"/app/node_modules/@radix-ui/themes/dist/esm/components/text-field.js\");\nimport(/* webpackMode: \"eager\" */ \"/app/node_modules/@radix-ui/themes/dist/esm/components/tooltip.js\");\nimport(/* webpackMode: \"eager\" */ \"/app/node_modules/@radix-ui/themes/dist/esm/components/visually-hidden.js\");\nimport(/* webpackMode: \"eager\" */ \"/app/node_modules/@radix-ui/themes/dist/esm/theme-panel.js\");\nimport(/* webpackMode: \"eager\" */ \"/app/node_modules/@radix-ui/themes/dist/esm/theme.js\");\nimport(/* webpackMode: \"eager\" */ \"/app/node_modules/@radix-ui/themes/styles.css\");\nimport(/* webpackMode: \"eager\" */ \"/app/node_modules/antd/lib/notification/index.js\");\nimport(/* webpackMode: \"eager\" */ \"/app/node_modules/next/font/google/target.css?{\\\"path\\\":\\\"src/app/layout.tsx\\\",\\\"import\\\":\\\"Inter\\\",\\\"arguments\\\":[{\\\"subsets\\\":[\\\"latin\\\"],\\\"display\\\":\\\"swap\\\",\\\"variable\\\":\\\"--font-inter\\\"}],\\\"variableName\\\":\\\"inter\\\"}\");\nimport(/* webpackMode: \"eager\" */ \"/app/src/app/HOC/LayoutContainer.tsx\");\nimport(/* webpackMode: \"eager\" */ \"/app/src/app/HOC/MobileViewContainer.tsx\");\nimport(/* webpackMode: \"eager\" */ \"/app/src/app/providers/ThemeProvider.tsx\");\nimport(/* webpackMode: \"eager\" */ \"/app/src/app/styles/_mixings.scss\");\nimport(/* webpackMode: \"eager\" */ \"/app/src/app/styles/base.scss\");\nimport(/* webpackMode: \"eager\" */ \"/app/src/app/styles/_normalize.scss\")","\"use client\";\nimport React, { useEffect, useRef, ReactNode } from \"react\";\nimport { useApp } from \"@/app/hooks/useApp\";\nimport useShallowNavigation from \"@/app/hooks/useShallowNavigation\";\nimport throttle from \"lodash/throttle\";\nimport { useAppStore } from \"../store\";\nimport { getLocalStorageState } from \"../utils/localStorage\";\nimport events from \"../utils/events\";\nimport { TRIGGER_NOTIFICATION } from \"../eventConstants\";\n\nconst NOTIFICATION_AUDIO_URL =\n // \"https://f004.backblazeb2.com/file/struct-pub00/struct-notification.mp3\";\n \"https://f004.backblazeb2.com/file/struct-pub00/struct-notification2.wav\";\n\nexport const NOTIFICATION_RATE_LIMIT = 15 * 1000; // 60 seconds\n\ninterface NotificationProps {\n children: ReactNode;\n}\n\nconst NotificationContainer: React.FC = ({ children }) => {\n const audioRef = useRef(null);\n const { featureToggles } = useApp();\n const { getCurrentPath, navigateToPath } = useShallowNavigation();\n const isAuthenticatedWithCorrectOrg = useAppStore(\n (state) => state.isAuthenticatedWithCorrectOrg,\n );\n\n const isNotificationSupported =\n typeof window !== \"undefined\" && \"Notification\" in window;\n\n useEffect(() => {\n const isNotificationEnabled =\n isAuthenticatedWithCorrectOrg &&\n featureToggles.isChatEnabled &&\n isNotificationSupported;\n\n if (!isNotificationEnabled) {\n return;\n }\n\n Notification.requestPermission();\n }, [\n isNotificationSupported,\n featureToggles.isChatEnabled,\n isAuthenticatedWithCorrectOrg,\n ]);\n\n const playAudio = () => {\n audioRef.current?.play();\n };\n\n const throttledPlayAudio = throttle(playAudio, NOTIFICATION_RATE_LIMIT, {\n leading: true,\n trailing: false,\n });\n\n const triggerNotification = async ({\n title,\n options,\n threadId,\n isMentioned,\n }: {\n title: string;\n options: NotificationOptions;\n threadId: string;\n isMentioned: boolean;\n }) => {\n console.log(\"notify\", {\n title,\n options,\n threadId,\n isMentioned,\n });\n const { isNotificationEnabled = true } = getLocalStorageState();\n if (!isNotificationEnabled) return;\n\n const currentlyOpenThreadId = await getCurrentPath();\n const isAppHidden = window?.document.hidden;\n const isAppFocused = window?.document.hasFocus();\n const isIncomingThreadOpen = currentlyOpenThreadId\n ? threadId === currentlyOpenThreadId\n : true;\n const isNotificationPermissionGranted =\n Notification.permission === \"granted\";\n\n const shouldShowNotification =\n isNotificationPermissionGranted &&\n isNotificationSupported &&\n (!isAppFocused || isAppHidden || isMentioned || !isIncomingThreadOpen);\n\n if (!shouldShowNotification) {\n return;\n }\n\n const notification = new Notification(`[Struct] ${title}`, options);\n throttledPlayAudio();\n\n if (!notification) return;\n\n notification.addEventListener(\"click\", () => {\n navigateToPath(threadId);\n window.focus();\n });\n };\n\n useEffect(() => {\n events.on(TRIGGER_NOTIFICATION, triggerNotification);\n return () => {\n events.off(TRIGGER_NOTIFICATION, triggerNotification);\n };\n }, []);\n\n return (\n \n \n );\n};\n\nexport default NotificationContainer;\n","import React from \"react\";\nimport styles from \"./KeyboardShortcut.module.scss\";\nimport { Text } from \"@radix-ui/themes\";\n\ninterface KeyboardShortcutProps {\n label: string;\n className?: string;\n startIcon?: React.ElementType;\n size?: \"small\" | \"medium\";\n}\n\nconst KeyboardShortcut = ({\n label,\n className,\n startIcon,\n size = \"medium\",\n}: KeyboardShortcutProps) => {\n const StartIcon = startIcon;\n\n return (\n \n {StartIcon && }\n \n {label}\n \n \n );\n};\n\nexport default KeyboardShortcut;\n","const CloseIcon = ({ className }: { className?: string }) => (\n \n \n \n);\n\nexport default CloseIcon;\n","import styles from \"./Tag.module.scss\";\nimport { Text } from \"@radix-ui/themes\";\nimport CloseIcon from \"./icons/CloseIcon\";\n\ninterface TagProps {\n label: string | number;\n onRemove?: () => void;\n className?: string;\n style?: React.CSSProperties;\n onClick?: () => void;\n endIcon?: React.ElementType;\n startIcon?: React.ElementType;\n size?: \"small\" | \"medium\";\n}\n\nconst Tag = ({\n label,\n className,\n style,\n onRemove,\n onClick,\n endIcon,\n startIcon,\n size = \"medium\",\n}: TagProps) => {\n const EndIcon = endIcon;\n const StartIcon = startIcon;\n\n const handleRemove = (event: React.MouseEvent) => {\n event.stopPropagation();\n\n if (!onRemove) {\n return;\n }\n\n onRemove();\n };\n\n const labelSize = size === \"small\" ? \"1\" : \"2\";\n\n return (\n \n {StartIcon && }\n \n {label}\n \n\n {EndIcon && }\n {onRemove && (\n
\n \n
\n )}\n \n );\n};\n\nexport default Tag;\n","import React from \"react\";\nimport { Command } from \"cmdk\";\nimport styles from \"./CommandMenuItem.module.scss\";\nimport KeyboardShortcut from \"@/app/components/KeyboardShortcut\";\nimport Tag from \"@/app/components/Tag\";\n\ninterface CommandMenuItemProps {\n value: string;\n onSelect: () => void;\n icon?: React.ElementType;\n shortcut?: Array;\n isChecked?: boolean;\n hasCheckbox?: boolean;\n tagValue?: number | string;\n}\n\nconst CommandMenuItem = ({\n value,\n onSelect,\n icon,\n shortcut,\n isChecked,\n hasCheckbox = false,\n tagValue,\n}: CommandMenuItemProps) => {\n const Icon = icon;\n return (\n \n {hasCheckbox && (\n {}}\n type=\"checkbox\"\n />\n )}\n {Icon && }\n {value}\n {tagValue !== undefined && (\n \n )}\n {shortcut?.length && (\n
\n {shortcut?.map((shortcut) => (\n \n ))}\n
\n )}\n \n );\n};\n\nexport default CommandMenuItem;\n","import { useCommandState } from \"cmdk\";\nimport { MagnifyingGlassIcon } from \"@radix-ui/react-icons\";\nimport CommandMenuItem from \"@/app/components/CommandMenu/CommandMenuItem\";\n\nconst NoResultsItem = ({\n onSelect,\n}: {\n onSelect: (search: string) => void;\n}) => {\n const { search } = useCommandState((state) => state);\n\n if (!search) {\n return null;\n }\n\n return (\n onSelect(search)}\n icon={MagnifyingGlassIcon}\n />\n );\n};\n\nexport default NoResultsItem;\n","import styles from \"./Spinner.module.scss\";\n\nconst Spinner = ({\n className = styles.default,\n style,\n}: {\n className?: string;\n style?: React.CSSProperties;\n}) => (\n \n);\nexport default Spinner;\n","import { toHTML } from \"@/app/modules/slack-markdown\";\nimport { SearchDocument } from \"@/app/types/Search.type\";\n\nexport const getConvertedSearchResults = (\n searchResults: SearchDocument[],\n): SearchDocument[] =>\n searchResults.map((hit) => {\n const subjectHtml = toHTML(hit.subject);\n\n const summaryHtml = toHTML(hit.summary);\n\n return { ...hit, subjectHtml, summaryHtml };\n });\n","import { useRef, useState } from \"react\";\nimport { debounce } from \"lodash\";\nimport { getSearchResultsAPI } from \"../services/search\";\nimport { getConvertedSearchResults } from \"../components/CommandMenu/utils\";\nimport { globalStore } from \"../store\";\nimport { SearchDocument } from \"./../types/Search.type\";\n\nconst useSearch = () => {\n const [isSearching, setIsSearching] = useState(false);\n const [results, setResults] = useState([]);\n const [searchQuery, setSearchQuery] = useState(\"\");\n\n const debouncedSearch = useRef(\n debounce(async (query, sorting) => {\n try {\n if (!query) return;\n setIsSearching(true);\n setResults([]);\n const feedTimeRange = globalStore.getState().feedTimeRange;\n const { hits, formattedText } = await getSearchResultsAPI({\n q: query,\n sortBy: sorting,\n from: feedTimeRange ? Date.now() - feedTimeRange : undefined,\n to: feedTimeRange ? Date.now() : undefined,\n });\n\n setSearchQuery(formattedText);\n\n if (!hits || hits.length <= 0) {\n setResults([]);\n setIsSearching(false);\n return;\n }\n\n const convertedSearchResults = getConvertedSearchResults(hits);\n setResults(convertedSearchResults);\n } catch (error) {\n console.error(error);\n }\n\n setIsSearching(false);\n }, 600),\n ).current;\n\n return {\n isSearching,\n debouncedSearch,\n results,\n setResults,\n searchQuery,\n };\n};\n\nexport default useSearch;\n","import { IconType } from \"@/app/components/icons/icon.type\";\n\nconst InsertThreadLinkIcon = ({ style, className }: IconType) => (\n \n \n \n \n \n \n \n \n \n \n \n);\nexport default InsertThreadLinkIcon;\n","\"use client\";\nimport { ReactNode, useEffect, useRef, useState } from \"react\";\nimport { Flex, Text, Theme } from \"@radix-ui/themes\";\nimport { Command } from \"cmdk\";\n\nimport CommandMenuItem from \"@/app/components/CommandMenu/CommandMenuItem\";\nimport NoResultsItem from \"@/app/components/CommandMenu/NoResultsItem\";\nimport KeyboardShortcut from \"@/app/components/KeyboardShortcut\";\nimport Spinner from \"@/app/components/Spinner\";\nimport useShallowNavigation from \"@/app/hooks/useShallowNavigation\";\nimport { useAppStore } from \"@/app/store\";\nimport { HomeIcon } from \"@radix-ui/react-icons\";\nimport styles from \"./CommandMenu.module.scss\";\n\nimport SortingFilter from \"./SortingFilter\";\n\nimport BasicEditor from \"../ChatBox/BasicEditor\";\nimport { processSearchQuery } from \"@/app/utils/stringUtils\";\nimport { SortingOption } from \"@/app/types/Sorting.type\";\nimport { useAllFilters } from \"@/app/hooks/useAllFilters\";\nimport FeedItemFooter from \"../FeedItem/FeedItemFooter\";\nimport { formatTimeAgo } from \"@/app/utils/timeUtils\";\nimport { DateTime } from \"luxon\";\nimport useSearch from \"@/app/hooks/useSearch\";\nimport events from \"@/app/utils/events\";\nimport { EMBED_THREAD_FROM_CMDK } from \"@/app/eventConstants\";\nimport InsertThreadLinkIcon from \"../icons/InsertThreadLinkIcon\";\n\nconst SELECT_EVENT = `cmdk-item-select`;\nconst ITEM_SELECTOR = `[cmdk-item=\"\"]`;\nexport const SEPARATOR = \"-|-|-\";\n\nconst CommandMenu = () => {\n const filters = useAppStore((state) => state.filters);\n const setSearchQuery = useAppStore((state) => state.setSearchQuery);\n const searchQuery = useAppStore((state) => state.searchQuery);\n\n const setFiltersByType = useAppStore((state) => state.setFiltersByType);\n const sorting = useAppStore((state) => state.sorting);\n const setSorting = useAppStore((state) => state.setSorting);\n\n const stateRef = useRef({\n filters,\n searchQuery,\n sorting,\n userInput: searchQuery || \"\",\n isLoaded: false,\n });\n\n const isCommandMenuVisible = useAppStore(\n (state) => state.isCommandMenuVisible,\n );\n const isCommandMenuVisibleViaMentionPanel = useAppStore(\n (state) => state.isCommandMenuVisibleViaMentionPanel,\n );\n const setIsCommandMenuVisible = useAppStore(\n (state) => state.setIsCommandMenuVisible,\n );\n\n const chatBoxCommands = useAppStore((state) => state.chatBoxCommands);\n\n const { navigateToPath } = useShallowNavigation();\n\n const { areFiltersApplied } = useAllFilters();\n\n const {\n debouncedSearch,\n isSearching,\n results: searchResults,\n setResults: setSearchResults,\n searchQuery: formattedSearchQuery,\n } = useSearch();\n\n const ref = useRef(null);\n\n useEffect(() => {\n const down = (e: KeyboardEvent) => {\n if (e.key === \"k\" && (e.metaKey || e.ctrlKey)) {\n e.preventDefault();\n setIsCommandMenuVisible(!isCommandMenuVisible);\n }\n };\n\n document.addEventListener(\"keydown\", down);\n return () => {\n document.removeEventListener(\"keydown\", down);\n };\n }, []);\n\n const handleSearch = (input: string) => {\n debouncedSearch.cancel();\n\n const [channels, users, tags, inputSearchQuery] = processSearchQuery(input);\n stateRef.current = {\n filters: { channels, users, tags },\n searchQuery: inputSearchQuery,\n sorting: stateRef.current.sorting,\n userInput: input,\n isLoaded: true,\n };\n\n debouncedSearch(input, stateRef.current.sorting);\n };\n\n const handleChangeSort = (sorting: SortingOption) => {\n stateRef.current.sorting = sorting;\n handleSearch(stateRef.current.userInput);\n };\n\n useEffect(() => {\n const handleKeyDown = (event: KeyboardEvent) => {\n const isInputOrTextarea = [\"INPUT\", \"TEXTAREA\", \"DIV\"].includes(\n (event.target as HTMLElement).tagName,\n );\n\n if (isInputOrTextarea) {\n return;\n }\n\n if (event.key === \"/\") {\n event.stopPropagation();\n event.preventDefault();\n setIsCommandMenuVisible(true);\n }\n };\n\n document.addEventListener(\"keydown\", handleKeyDown);\n\n return () => {\n document.removeEventListener(\"keydown\", handleKeyDown);\n };\n }, [setIsCommandMenuVisible]);\n\n useEffect(() => {\n if (!areFiltersApplied) {\n stateRef.current.isLoaded = false;\n stateRef.current.userInput = \"\";\n resetSearchResults();\n }\n }, [areFiltersApplied]);\n\n useEffect(() => {\n if (isCommandMenuVisibleViaMentionPanel) {\n stateRef.current.isLoaded = false;\n stateRef.current.userInput = \"\";\n setSearchResults([...[]]);\n }\n }, [isCommandMenuVisibleViaMentionPanel]);\n\n const handleCloseDialog = () => {\n resetSearchResults();\n stateRef.current.isLoaded = false;\n stateRef.current.userInput = \"\";\n if (isCommandMenuVisibleViaMentionPanel) {\n chatBoxCommands?.focus();\n }\n setIsCommandMenuVisible(false);\n };\n\n const handleOpenThread = (threadId: string) => {\n if (isCommandMenuVisibleViaMentionPanel) {\n handleThreadEmbed(threadId.toLowerCase());\n return;\n }\n navigateToPath(threadId);\n handleCloseDialog();\n };\n\n const handleThreadEmbed = (threadId: string) => {\n const { id, subject } = searchResults.find(\n (item) => item.id.toLowerCase() === threadId,\n ) ?? { id: \"\", subject: \"\" };\n\n if (!id || !subject) return;\n\n events.emit(EMBED_THREAD_FROM_CMDK, { id, label: subject });\n setIsCommandMenuVisible(false);\n resetSearchResults();\n };\n\n const handleDialogKeyUp = (e: React.KeyboardEvent) => {\n if (e.key === \"Enter\") {\n const selectedItem = ref?.current?.querySelector(\n `${ITEM_SELECTOR}[aria-selected=\"true\"]`,\n );\n if (selectedItem) {\n if (isCommandMenuVisibleViaMentionPanel) {\n const [threadId] =\n (selectedItem as HTMLElement).dataset?.value?.split(SEPARATOR) ??\n [];\n\n if (!threadId) return;\n\n handleThreadEmbed(threadId);\n\n return;\n }\n const event = new Event(SELECT_EVENT);\n selectedItem.dispatchEvent(event);\n }\n }\n if (e.key === \"Escape\") {\n e.stopPropagation();\n e.preventDefault();\n\n if (isCommandMenuVisibleViaMentionPanel) {\n chatBoxCommands?.focus();\n }\n setIsCommandMenuVisible(false);\n resetSearchResults();\n stateRef.current.isLoaded = false;\n stateRef.current.userInput = \"\";\n }\n };\n\n const resetSearchResults = () => {\n if (areFiltersApplied) return;\n setSearchResults([...[]]);\n };\n\n const handleSelectSetSearchQueryToPage = () => {\n setFiltersByType(\"channels\", stateRef.current?.filters.channels);\n setFiltersByType(\"users\", stateRef.current?.filters?.users);\n setFiltersByType(\"tags\", stateRef.current?.filters?.tags);\n setSorting(stateRef.current.sorting);\n setSearchQuery(`${stateRef.current.userInput}`);\n setIsCommandMenuVisible(false);\n // setSearchResults([]);\n stateRef.current.isLoaded = false;\n stateRef.current.userInput = \"\";\n navigateToPath(null);\n\n if (typeof window !== \"undefined\") {\n document.body.scrollTop = document.documentElement.scrollTop = 0;\n }\n };\n\n const isThreadListEmpty = searchResults.length === 0;\n\n const inputPlaceholder = \"Search threads...\";\n\n useEffect(() => {\n const body = document.querySelector(\"body\");\n if (!body || isCommandMenuVisibleViaMentionPanel) {\n return;\n }\n stateRef.current.userInput = searchQuery;\n return () => {\n body.style.pointerEvents = \"\";\n };\n }, [isCommandMenuVisible, searchQuery]);\n\n return (\n \n \n \n \n \n\n
\n {\" \"}\n \n to close\n \n
\n {isSearching && }\n
\n \n <>\n {!stateRef.current.isLoaded && searchResults.length === 0 && (\n Fetching threads…\n )}\n\n {searchResults.length !== 0 &&\n !isCommandMenuVisibleViaMentionPanel && (\n \n \n {/* \n \n */}\n \n )}\n\n {searchResults.map(\n ({\n id,\n subject,\n subjectHtml,\n summaryHtml,\n reactions,\n num_chats: messageCount,\n created_at: createdAt,\n updated_at: updatedAt,\n }) => (\n handleOpenThread(id)}\n style={{ cursor: \"pointer\" }}\n >\n \n

\n \n \n ),\n )}\n \n \n {stateRef.current.isLoaded &&\n !isSearching &&\n searchResults.length === 0 && (\n <>\n \n No results found\n \n \n \n )}\n
\n \n \n );\n};\n\nconst Container = ({\n children,\n isOpenViaMentionPanel,\n}: {\n children: ReactNode;\n isOpenViaMentionPanel: boolean;\n}) => {\n if (!isOpenViaMentionPanel) return children;\n return (\n \n \n \n \n {\" \"}\n Insert a thread link\n \n \n \n {children}\n \n \n );\n};\n\nexport default CommandMenu;\n","import { structAPIFetchClient } from \"@/app/services/client\";\nimport { STRUCT_API_VERSION } from \"@/app/constants\";\nimport { StructTag } from \"@/app/types/Tag.type\";\n\nconst CHANNELS_ENDPOINT = `/${STRUCT_API_VERSION}/tags`;\n\nexport const getAllTags = () => {\n return structAPIFetchClient(CHANNELS_ENDPOINT, {\n method: \"GET\",\n })\n .then((response) => {\n if (!response.ok) {\n throw new Error(\"Network response was not ok\");\n }\n return response.json();\n })\n .then(({ data }) => data as StructTag[]);\n};\n","import { StructOrganisation } from \"@/app/types/Organisation.type\";\nimport { StructUser } from \"@/app/types/Thread.type\";\nimport { STRUCT_API_VERSION } from \"@/app/constants\";\nimport { structAPIFetchClient } from \"@/app/services/client\";\nimport { SessionResponse } from \"@/app/types/session\";\n\nconst WHOAMI_ENDPOINT = `/${STRUCT_API_VERSION}/whoami`;\n\ntype WhoamiResponseType = {\n email: string;\n org_id: string;\n user: StructUser;\n orgs: Partial[];\n};\n\nexport const whoamiAPI = async (): Promise => {\n let response = await structAPIFetchClient(WHOAMI_ENDPOINT, {\n method: \"GET\",\n });\n\n if (response.status === 401) {\n return null;\n } else if (!response.ok) {\n throw new Error(\"Network response was not ok\");\n }\n\n // @ts-ignore\n let data: any = await response.json();\n return data as SessionResponse;\n};\n","import { whoamiAPI } from \"@/app/services/auth\";\nimport { Session } from \"@/app/types/session\";\nimport isEmpty from \"lodash.isempty\";\n\nconst getSession = async (): Promise => {\n let data;\n\n try {\n data = await whoamiAPI();\n } catch (error) {\n console.error(\"Error in whoamiAPI:\", error);\n throw new Error(\"Error in whoamiAPI\");\n }\n\n const user = data?.user as Session[\"user\"];\n\n if (!data || (isEmpty(user) && isEmpty(data.orgs))) {\n return null;\n }\n\n // @ts-ignore\n return {\n ...data,\n isModerator: Boolean(user?.bits?.user_moderator),\n isAdmin: Boolean(user?.bits?.user_admin),\n isOwner: Boolean(user?.bits?.user_owner),\n };\n};\n\nexport default getSession;\n","import isEmpty from \"lodash.isempty\";\nimport { useAppStore } from \"@/app/store\";\nimport { Text, Flex, Avatar } from \"@radix-ui/themes\";\nimport { StructOrganisation } from \"@/app/types/Organisation.type\";\nimport { getAvatarImageURL } from \"@/app/utils/imageUtils\";\nimport styles from \"./OrgSwitcher.module.scss\";\nimport { ArrowRightIcon } from \"@radix-ui/react-icons\";\nimport useOrganisation from \"@/app/hooks/useOrganisation\";\n\nconst OrgSwitcher = () => {\n const session = useAppStore((state) => state.session);\n const { handleSwitchOrganisation } = useOrganisation();\n\n // Don't show org switcher if user isn't part of multiple\n // organizations or is part of only one.\n if (isEmpty(session?.orgs) || session?.orgs.length === 1) {\n return null;\n }\n\n const handleSwitchOrganization = async (\n organization: StructOrganisation,\n ): Promise => {\n await handleSwitchOrganisation(organization);\n };\n\n const currentOrganisationId = session?.user?.org_id;\n\n return (\n
\n \n Switch Organizations\n \n \n {session?.orgs\n .filter((org) => org.id !== currentOrganisationId)\n .map((org) => (\n handleSwitchOrganization(org)}\n className={styles.orgItem}\n >\n \n \n \n {org.name}\n \n \n \n
\n ))}\n \n \n );\n};\n\nexport default OrgSwitcher;\n","import { useAppStore } from \"@/app/store\";\nimport { getAvatarImageURL } from \"@/app/utils/imageUtils\";\nimport { ChatBubbleIcon, Link1Icon } from \"@radix-ui/react-icons\";\nimport { Avatar, Button, Flex, Text, Dialog } from \"@radix-ui/themes\";\nimport React from \"react\";\nimport PenIllustration from \"../../illustrations/PenIllustration\";\nimport { DateTime } from \"luxon\";\n\ninterface OrgInfoDialogProps {\n onClose: () => void;\n}\n\nconst formatDate = (date: Date): string => {\n return DateTime.fromJSDate(date).toLocaleString(DateTime.DATE_FULL);\n};\n\nconst ReadOnlyDialog = ({ onClose }: OrgInfoDialogProps) => {\n const organisation = useAppStore((state) => state.organisation);\n\n return (\n \n \n \n \n \n {organisation?.name}\n \n \n {formatDate(new Date(organisation?.created_at * 1000))}\n \n\n \n \n \n {organisation.num_threads} threads\n \n \n\n \n \n \n \n {organisation?.hostname}\n \n \n \n \n\n \n \n\n \n {organisation?.description}\n \n \n\n \n \n \n \n \n \n \n );\n};\n\nexport default ReadOnlyDialog;\n","import { useState } from \"react\";\nimport { SelectedFile } from \"../components/ChatBox/FilePreview\";\nimport useFiles from \"./useFiles\";\n\ninterface UseFileUploadProps {\n isSingleSelect?: boolean;\n}\n\nexport const useFileUpload = (props: UseFileUploadProps) => {\n const { isSingleSelect } = props;\n const [selectedFiles, setSelectedFiles] = useState>([]);\n const [fileUrls, setFileUrls] = useState([]);\n\n const { uploadFile } = useFiles();\n\n const handleFiles = async (files: File[]) => {\n const previewImages = files.map((file) => {\n const reader = new FileReader();\n const readerPromise = new Promise<{ file: File; url: string }>(\n (resolve) => {\n reader.readAsDataURL(file);\n reader.onload = () => {\n resolve({ file, url: reader.result as string });\n };\n },\n );\n return readerPromise;\n });\n\n const loadedPreviews = await Promise.all(previewImages);\n\n if (isSingleSelect) {\n setSelectedFiles([\n ...loadedPreviews.map((preview) => ({ ...preview, isLoading: true })),\n ]);\n } else {\n setSelectedFiles((prevFiles) => [\n ...prevFiles,\n ...loadedPreviews.map((preview) => ({ ...preview, isLoading: true })),\n ]);\n }\n\n const uploadPromises = files.map((file) =>\n uploadFile(file)\n .then((uploadedFile) => uploadedFile?.handle)\n .catch((error) => {\n console.error(\"Error uploading file:\", error);\n return null;\n }),\n );\n\n const fileUrls = (await Promise.all(uploadPromises)).filter(\n Boolean,\n ) as string[];\n\n setFileUrls(fileUrls);\n\n if (isSingleSelect) {\n setSelectedFiles([\n ...loadedPreviews.map((preview) => ({ ...preview, isLoading: false })),\n ]);\n } else {\n setSelectedFiles((prevFiles) =>\n prevFiles.map((file) => {\n if (files.includes(file.file)) {\n return { ...file, isLoading: false };\n }\n return file;\n }),\n );\n }\n };\n\n const handleFileSelect = async (e: React.ChangeEvent) => {\n if (e.target.files && e.target.files.length > 0) {\n const files = Array.from(e.target.files);\n await handleFiles(files);\n }\n };\n\n return {\n selectedFiles,\n fileUrls,\n handleFileSelect,\n };\n};\n","import React from \"react\";\nimport { Flex } from \"@radix-ui/themes\";\nimport { FileUploadAnimation } from \"@/app/components/ChatBox/FileUploadAnimation\";\nimport styles from \"./ProfilePicture.module.scss\";\n\nexport interface SelectedFile {\n file: File;\n url: string;\n isLoading: boolean;\n}\n\ninterface ProfilePicturePreviewProps {\n img: SelectedFile;\n}\n\nconst ProfilePicturePreview = ({ img }: ProfilePicturePreviewProps) => (\n
\n \n \"Preview\"\n \n\n {img.isLoading && (\n \n )}\n
\n);\n\nexport default ProfilePicturePreview;\n","import { useAppStore } from \"@/app/store\";\nimport { getAvatarImageURL } from \"@/app/utils/imageUtils\";\nimport { CameraIcon, CopyIcon, SymbolIcon } from \"@radix-ui/react-icons\";\nimport {\n AlertDialog,\n Avatar,\n Button,\n Dialog,\n Flex,\n Grid,\n Link,\n Text,\n TextArea,\n TextField,\n} from \"@radix-ui/themes\";\nimport React, { RefObject, createRef, useEffect, useState } from \"react\";\nimport { useFileUpload } from \"@/app/hooks/useFileUpload\";\nimport ProfilePicturePreview from \"../../profile/ProfilePicture/ProfilePicturePreview\";\nimport {\n updateInviteSecretAPI,\n updateOrgDetails,\n} from \"@/app/services/organisation\";\nimport { isEqual, omitBy } from \"lodash\";\nimport { StructOrganisation } from \"@/app/types/Organisation.type\";\nimport { DateTime } from \"luxon\";\n\ninterface OrgInfoDialogProps {\n onClose: () => void;\n}\n\nconst formatDate = (date: Date): string => {\n return DateTime.fromJSDate(date).toLocaleString(DateTime.DATE_FULL);\n};\n\nconst EditableDialog = ({ onClose }: OrgInfoDialogProps) => {\n const organisation = useAppStore((state) => state.organisation);\n const setOrganisation = useAppStore((state) => state.setOrganisation);\n const [data, setData] = useState({ ...organisation });\n const [isSecretDialogVisible, setIsSecretDialogVisible] = useState(false);\n const joinSecret = organisation.join_secret;\n const location = window.location;\n const baseUrl = `${location.protocol}//${location.host}/`;\n const inviteLink = `${baseUrl}join/${joinSecret}`;\n\n const save = async () => {\n const difference = omitBy(\n data,\n (valueB: any, key: keyof StructOrganisation) =>\n isEqual(organisation[key], valueB),\n );\n\n await updateOrgDetails(difference);\n };\n\n const handleUpdateSecret = async () => {\n const updatedOrganisation = await updateInviteSecretAPI();\n setOrganisation(updatedOrganisation);\n setIsSecretDialogVisible(false);\n };\n\n return (\n \n \n \n \n \n \n {organisation.name} Settings\n \n\n \n Created on{\" \"}\n {formatDate(new Date(organisation?.created_at * 1000))}\n \n \n\n setData({ ...data, name: ev.target.value })}\n />\n\n setData({ ...data, hostname: ev.target.value })}\n />\n\n \n \n About us\n \n \n \n setData({ ...data, description: ev.target.value })\n }\n />\n \n \n \n\n {\n setData({ ...data, avatar_id });\n }}\n />\n \n\n \n \n Invite new members\n \n \n Send this url containing your organization's secret phrase to\n people you want to invite. Once they click on it, they're in.\n \n\n \n \n \n \n {inviteLink}\n \n\n \n navigator.clipboard.writeText(inviteLink)}\n >\n \n Copy\n \n\n setIsSecretDialogVisible(true)}\n >\n \n Regenerate\n \n \n \n \n \n \n\n \n \n \n \n \n setData({ ...organisation })}\n variant=\"soft\"\n mr=\"2\"\n disabled={isEqual(organisation, data)}\n >\n Reset\n \n \n \n Save\n \n \n \n \n\n {isSecretDialogVisible && (\n \n \n Update Secret Phrase\n \n Are you sure? This will invalidate the current invite URL.\n \n\n \n \n setIsSecretDialogVisible(false)}\n >\n Cancel\n \n \n \n \n Update\n \n \n \n \n \n )}\n \n \n );\n};\n\nexport default EditableDialog;\n\ninterface ProfilePictureProps {\n src: string;\n fallbackSrc: string;\n onSaveClick: (src: string) => void;\n}\n\nconst ProfilePicture = ({\n fallbackSrc,\n onSaveClick,\n src,\n}: ProfilePictureProps) => {\n const [profilePicSrc, setProfilePicSrc] = useState(src);\n const { handleFileSelect, selectedFiles, fileUrls } = useFileUpload({\n isSingleSelect: true,\n });\n\n const fileInputRef: RefObject = createRef();\n\n useEffect(() => {\n if (\n selectedFiles[0] &&\n !selectedFiles[0].isLoading &&\n profilePicSrc !== fileUrls[0]\n ) {\n setProfilePicSrc(fileUrls[0]);\n onSaveClick(fileUrls[0]);\n }\n }, [selectedFiles[0]?.isLoading]);\n\n useEffect(() => {\n setProfilePicSrc(src);\n }, [src]);\n\n const triggerFileSelect = () => {\n if (fileInputRef.current) {\n fileInputRef.current.click();\n }\n };\n\n return (\n <>\n \n \n {selectedFiles[0] && selectedFiles[0].isLoading ? (\n \n ) : (\n \n )}\n \n \n \n Upload picture\n \n \n \n \n );\n};\n","import { useAppStore } from \"@/app/store\";\nimport React from \"react\";\nimport ReadOnlyDialog from \"./ReadOnlyDialog\";\nimport EditableDialog from \"./EditableDialog\";\n\ninterface OrgInfoDialogProps {\n onClose: () => void;\n}\n\nconst OrgInfoDialog = ({ onClose }: OrgInfoDialogProps) => {\n const session = useAppStore((state) => state.session);\n\n if (session?.isOwner || session?.isAdmin) {\n return ;\n }\n\n return ;\n};\n\nexport default OrgInfoDialog;\n","import posthog from \"posthog-js\";\nimport { Userpilot } from \"userpilot\";\n\nimport { isProduction, EXCLUDE_TRACKING_ORG_IDS } from \"../constants\";\n\nconst initPostHog = (\n userId?: string,\n email?: string,\n userName?: string,\n orgId?: string,\n) => {\n if (EXCLUDE_TRACKING_ORG_IDS.includes(orgId || \"\")) return;\n if (!userId) {\n userId = \"anon@anon.who\";\n }\n posthog.init(\"phc_lVqMO1scP0j1yB8eCM0VsGJzoxCjyG8Jj3KvGRba6yd\", {\n api_host: \"https://app.posthog.com\",\n });\n posthog.identify(userId, {\n email_id: email,\n user_id: userId,\n name: userName,\n org_id: orgId,\n });\n};\n\nconst initUserpilot = (\n userId?: string,\n userName?: string,\n email?: string,\n orgId?: string,\n) => {\n if (!userId || !userName || !email || !orgId) return;\n Userpilot.initialize(\"NX-4cd86f9b\");\n return Userpilot.identify(userId, {\n name: userName,\n email: email,\n org_id: orgId,\n });\n};\n\nexport const reloadUserPilot = () => {\n if (!isProduction) return;\n Userpilot.reload();\n};\n\nexport const initTracking = (\n userId?: string,\n userName?: string,\n email?: string,\n orgId?: string,\n) => {\n if (!isProduction) return;\n initPostHog(userId, email, userName, orgId);\n initUserpilot(userId, userName, email, orgId);\n};\n\nexport const trackEvent = (event: string, properties?: any) => {\n console.info(\"event :\", event, properties);\n if (!isProduction) return;\n posthog.capture(event, properties);\n};\n","import React, { useRef, useEffect } from \"react\";\nimport styles from \"./RealtimeIndicator.module.scss\";\nimport { Flex, Text } from \"@radix-ui/themes\";\nimport events from \"@/app/utils/events\";\nimport { WS_PING_RECEIVED } from \"@/app/eventConstants\";\nimport { deviceId } from \"@/app/utils/sessionStorage\";\nimport { trackEvent } from \"@/app/utils/tracking\";\nimport { useAppStore } from \"@/app/store\";\nimport { APP_VERSION, DESKTOP_APP_VERSION } from \"@/app/constants\";\n\nconst REFRESH_ICON_INTERVAL = 1000 * 60 * 5; // 5 minutes\n\nconst RealtimeIndicator = () => {\n const dotRef = useRef(null);\n const labelRef = useRef(null);\n const setShouldResync = useAppStore((state) => state.setShouldResync);\n\n const timeoutRef = useRef(null);\n\n const handlePing = () => {\n resetTimer();\n dotRef.current?.classList.remove(styles.wsStatusDot);\n dotRef.current?.scrollBy(0, 0);\n dotRef.current?.classList.add(styles.wsStatusDot);\n\n labelRef.current?.classList.remove(styles.wsStatusLabel);\n labelRef.current?.scrollBy(0, 0);\n labelRef.current?.classList.add(styles.wsStatusLabel);\n };\n\n const resetTimer = () => {\n if (timeoutRef.current) clearTimeout(timeoutRef.current);\n\n timeoutRef.current = setTimeout(() => {\n setShouldResync(true);\n trackEvent(\"ws_disconnected\", { deviceId });\n }, REFRESH_ICON_INTERVAL);\n };\n useEffect(() => {\n resetTimer();\n events.on(WS_PING_RECEIVED, handlePing);\n return () => {\n events.off(WS_PING_RECEIVED, handlePing);\n };\n }, []);\n\n const title = deviceId + \" | v\" + APP_VERSION + \" | dv\" + DESKTOP_APP_VERSION;\n\n return (\n \n
\n \n \n );\n};\n\nexport default RealtimeIndicator;\n","import { Flex, Popover, Button, Avatar, Text } from \"@radix-ui/themes\";\nimport React, { useState } from \"react\";\nimport OrgSwitcher from \"./OrgSwitcher\";\nimport { getAvatarImageURL } from \"@/app/utils/imageUtils\";\nimport { useAppStore } from \"@/app/store\";\n\nimport {\n DotsVerticalIcon,\n InfoCircledIcon,\n MixerHorizontalIcon,\n} from \"@radix-ui/react-icons\";\nimport OrgInfoDialog from \"./OrgInfo\";\nimport styles from \"./OrgSwitcher.module.scss\";\nimport RealtimeIndicator from \"./RealtimeIndicator\";\nimport { isApp } from \"@/app/constants\";\n\nconst OrgHeader = () => {\n const organisation = useAppStore((state) => state.organisation);\n const isAuthenticatedWithCorrectOrg = useAppStore(\n (state) => state.isAuthenticatedWithCorrectOrg,\n );\n\n return (\n \n \n \n \n {organisation?.name}\n \n {isAuthenticatedWithCorrectOrg && }\n \n \n );\n};\n\nconst Header = () => {\n const session = useAppStore((state) => state.session);\n const organisation = useAppStore((state) => state.organisation);\n const [orgInfoDialogOpen, setOrgInfoDialogOpen] = useState(false);\n const hasAccessToMultipleOrganisations = (session?.orgs?.length ?? 0) > 1;\n\n return (\n <>\n \n \n \n \n \n \n \n \n \n\n \n \n \n setOrgInfoDialogOpen(true)}\n className={styles.orgItem}\n style={{ flex: 1 }}\n >\n \n {session?.isOwner || session?.isAdmin ? (\n \n ) : (\n \n )}\n \n \n \n {session?.isOwner || session?.isAdmin\n ? `Edit ${organisation.name} Settings`\n : `About ${organisation.name}`}\n \n \n \n \n\n {hasAccessToMultipleOrganisations && isApp && }\n \n \n \n\n {orgInfoDialogOpen && (\n setOrgInfoDialogOpen(false)} />\n )}\n \n );\n};\n\nexport default Header;\n","import React from \"react\";\nimport { IconType } from \"@/app/components/icons/icon.type\";\n\nconst FeedStackIcon = ({ style, className }: IconType) => (\n \n \n \n \n \n \n);\n\nexport default FeedStackIcon;\n","import { Flex, Text } from \"@radix-ui/themes\";\nimport { PlayIcon } from \"@radix-ui/react-icons\";\n\nconst VIDEO_TUTORIAL_URL = \"https://struct.ai/demo-video\";\n\nconst VideoTutorialButton = () => (\n \n \n \n \n \n \n \n Watch demo\n \n \n New to Struct? Start here.\n \n \n \n \n);\n\nexport default VideoTutorialButton;\n","import React from \"react\";\nimport { Avatar, Button, Dialog, Flex, Text } from \"@radix-ui/themes\";\nimport { ArrowLeftIcon } from \"@radix-ui/react-icons\";\n\nimport { getAvatarImageURL } from \"@/app/utils/imageUtils\";\n\ninterface AvatarVariantSelectorProps {\n isOpen: boolean;\n onClose: () => void;\n avatarVariantList: string[];\n onAvatarSelect: (avatarName: string) => void;\n}\n\nexport const AvatarVariantSelector = ({\n isOpen,\n onClose,\n avatarVariantList,\n onAvatarSelect,\n}: AvatarVariantSelectorProps) => {\n if (avatarVariantList.length === 0) {\n return null;\n }\n\n const selectedAvatarPrefix = avatarVariantList[0].split(\"-\")[0];\n\n return (\n \n \n \n Good pick! Which is your favorite {selectedAvatarPrefix}?\n \n\n \n\n \n {avatarVariantList.map((avatar) => (\n \n \n onAvatarSelect(avatar)}\n />\n \n \n ))}\n \n\n \n \n \n \n \n \n \n );\n};\n","import React, { useEffect, useState } from \"react\";\nimport {\n Avatar,\n Button,\n Dialog,\n Flex,\n IconButton,\n Text,\n TextField,\n} from \"@radix-ui/themes\";\nimport { Cross1Icon, MagnifyingGlassIcon } from \"@radix-ui/react-icons\";\n\nimport { getAvatarListAPI } from \"@/app/services/users\";\nimport { getAvatarImageURL } from \"@/app/utils/imageUtils\";\nimport { capitalize } from \"@/app/utils/stringUtils\";\nimport { AvatarVariantSelector } from \"./AvatarVariantSelector\";\nimport { AnimatePresence, motion } from \"framer-motion\";\n\ninterface AvatarSelectorProps {\n isOpen: boolean;\n onClose: () => void;\n onAvatarSelect: (avatarName: string) => void;\n}\n\nexport const AvatarSelector = ({\n isOpen,\n onClose,\n onAvatarSelect,\n}: AvatarSelectorProps) => {\n const [avatarList, setAvatarList] = useState<{ [key: string]: string[] }>({});\n const [selectedAvatar, setSelectedAvatar] = useState();\n const [searchQuery, setSearchQuery] = useState(\"\");\n\n const getAvatarList = async () => {\n try {\n const avatarListResponse = await getAvatarListAPI();\n setAvatarList(avatarListResponse.data);\n } catch (e) {\n console.log(e);\n }\n };\n\n useEffect(() => {\n getAvatarList();\n return () => {\n setSelectedAvatar(undefined);\n };\n }, []);\n\n return (\n <>\n {selectedAvatar && (\n setSelectedAvatar(undefined)}\n avatarVariantList={avatarList[selectedAvatar]}\n onAvatarSelect={onAvatarSelect}\n />\n )}\n \n \n \n Select an Avatar\n \n \n \n \n\n \n Our avatars are inspired by famous people from history.\n \n\n \n \n Looking for someone?\n \n \n \n \n \n ) => {\n setSearchQuery(event.target.value);\n }}\n />\n \n \n\n \n \n {Object.keys(avatarList)\n .filter((avatar) => avatar.includes(searchQuery))\n .map((avatar) => {\n const avatarFirstName = capitalize(avatar.split(\"-\")[0]);\n return (\n \n \n \n setSelectedAvatar(avatar)}\n />\n \n {avatarFirstName}\n \n \n \n \n );\n })}\n \n \n \n \n \n );\n};\n","import { createRef, RefObject, useEffect, useState } from \"react\";\nimport { Avatar, Button, Flex, Text } from \"@radix-ui/themes\";\nimport { AvatarIcon, CameraIcon } from \"@radix-ui/react-icons\";\n\nimport { getAvatarImageURL } from \"@/app/utils/imageUtils\";\nimport { useFileUpload } from \"@/app/hooks/useFileUpload\";\nimport { AvatarSelector } from \"../AvatarSelector/AvatarSelector\";\nimport ProfilePicturePreview from \"./ProfilePicturePreview\";\n\ninterface ProfilePictureProps {\n src: string;\n fallbackSrc: string;\n onSaveClick: (src: string) => void;\n}\n\nexport const ProfilePicture = ({\n fallbackSrc,\n onSaveClick,\n src,\n}: ProfilePictureProps) => {\n const [isAvatarSelectorOpen, setIsAvatarSelectorOpen] =\n useState(false);\n const [profilePicSrc, setProfilePicSrc] = useState(src);\n\n const { handleFileSelect, selectedFiles, fileUrls } = useFileUpload({\n isSingleSelect: true,\n });\n\n const fileInputRef: RefObject = createRef();\n\n useEffect(() => {\n if (\n selectedFiles[0] &&\n !selectedFiles[0].isLoading &&\n profilePicSrc !== fileUrls[0]\n ) {\n setProfilePicSrc(fileUrls[0]);\n onSaveClick(fileUrls[0]);\n }\n }, [selectedFiles[0]?.isLoading]);\n\n useEffect(() => {\n setProfilePicSrc(src);\n }, [src]);\n\n const onAvatarSelect = (avatarName: string) => {\n setProfilePicSrc(`anon-${avatarName}`);\n onSaveClick(`anon-${avatarName}`);\n setIsAvatarSelectorOpen(false);\n };\n\n const triggerFileSelect = () => {\n if (fileInputRef.current) {\n fileInputRef.current.click();\n }\n };\n\n return (\n <>\n \n \n {selectedFiles[0] && selectedFiles[0].isLoading ? (\n \n ) : (\n \n )}\n \n \n \n Upload picture\n \n setIsAvatarSelectorOpen(true)}\n >\n \n Pick avatar\n \n \n \n {isAvatarSelectorOpen && (\n setIsAvatarSelectorOpen(false)}\n onAvatarSelect={onAvatarSelect}\n />\n )}\n \n );\n};\n","import React from \"react\";\nimport {\n ChatBubbleIcon,\n ClockIcon,\n DotFilledIcon,\n EnvelopeClosedIcon,\n FileIcon,\n} from \"@radix-ui/react-icons\";\nimport { Avatar, Button, Flex, Text } from \"@radix-ui/themes\";\nimport { useRouter } from \"next/navigation\";\n\nimport { getAvatarImageURL } from \"@/app/utils/imageUtils\";\nimport { StructUser } from \"@/app/types/Thread.type\";\nimport { useAppStore } from \"@/app/store\";\nimport styles from \"./ProfileDetails.module.scss\";\n\nconst getTime = (timeZone: string) => {\n const optionsTime = {\n timeZone,\n hour: \"numeric\",\n minute: \"numeric\",\n } as const;\n\n const optionsTimeZone = {\n timeZone,\n timeZoneName: \"short\",\n } as const;\n\n const current = new Date();\n const tz = current.toLocaleTimeString([], optionsTimeZone).split(\" \")[2];\n\n return `${current.toLocaleTimeString([], optionsTime)} local time, ${tz}`;\n};\n\nexport const GuestProfile = ({ user }: { user?: StructUser }) => {\n const onlineUserIds = useAppStore((state) => state.onlineUserIds);\n const setSearchQuery = useAppStore((state) => state.setSearchQuery);\n\n const router = useRouter();\n\n if (!user) {\n return null;\n }\n const isOnline = onlineUserIds.includes(user.id);\n\n const showThreads = () => {\n setSearchQuery(`<@${user.id}>`);\n router.push(\"/\");\n };\n\n return (\n \n \n \n {isOnline && (\n \n )}\n \n \n Details\n \n {isOnline && (\n \n \n Online\n \n )}\n \n \n {getTime(user[\"time_zone\"] || \"America/Los Angeles\")}\n \n \n \n {user[\"email_id\"]}\n \n \n \n \n {user[\"real_name\"]}\n \n @{user[\"display_name\"]}\n \n\n \n About\n \n {user[\"about_me\"]}\n \n \n \n Message {user[\"real_name\"]}\n \n \n \n See {user[\"real_name\"]}'s threads\n \n \n \n \n );\n};\n","import React from \"react\";\nimport { Pencil2Icon } from \"@radix-ui/react-icons\";\nimport {\n Flex,\n Grid,\n Select,\n Text,\n TextArea,\n TextField,\n} from \"@radix-ui/themes\";\n\nimport { useAppStore } from \"@/app/store\";\nimport { ProfilePicture } from \"../ProfilePicture/ProfilePicture\";\nimport { GuestProfile } from \"./GuestProfile\";\nimport {\n ProfileFormFieldsActive,\n ProfileFormValues,\n} from \"./ProfileDetailsDialog\";\nimport styles from \"./ProfileDetails.module.scss\";\nimport { timezones } from \"@/app/utils/timeUtils\";\nimport { StructUser } from \"@/app/types/Thread.type\";\n\nconst formatTz = (timeZone: string) => {\n // to fix a bug where timezone is returned as Calcutta from BE\n // but the browser supports Asia/Kolkata timezone\n if (timeZone.includes(\"Calcutta\")) {\n return timeZone.replace(\"Calcutta\", \"Kolkata\");\n }\n return timeZone;\n};\n\ninterface ProfileDetailsProps {\n user?: StructUser;\n isSelf: boolean;\n formValues: ProfileFormValues;\n handleFormValueChange: (param: string, value: string) => void;\n formActive: ProfileFormFieldsActive;\n setFormActive: (profileFromActiveData: ProfileFormFieldsActive) => void;\n}\n\nexport const ProfileDetails = ({\n user,\n isSelf,\n formValues,\n handleFormValueChange,\n formActive,\n setFormActive,\n}: ProfileDetailsProps): React.ReactElement => {\n if (!isSelf) {\n return ;\n }\n\n const handleFormActive = (param: string) => {\n setFormActive({\n ...formActive,\n [param]: true,\n });\n };\n\n return (\n \n \n \n handleFormValueChange(\"avatar_id\", avatarId)\n }\n />\n \n \n \n My Profile\n \n \n \n handleFormActive(\"real_name\")}\n onChange={(ev) =>\n handleFormValueChange(\"real_name\", ev.target.value)\n }\n />\n {!formActive.real_name && }\n \n\n \n handleFormActive(\"display_name\")}\n onChange={(ev) =>\n handleFormValueChange(\"display_name\", ev.target.value)\n }\n />\n {!formActive.display_name && }\n \n\n \n \n handleFormValueChange(\"email_id\", ev.target.value)\n }\n />\n \n\n \n\n \n \n About me\n \n \n handleFormActive(\"about_me\")}\n variant={!formActive.about_me ? \"soft\" : \"surface\"}\n size=\"3\"\n onChange={(ev) =>\n handleFormValueChange(\"about_me\", ev.target.value)\n }\n value={formValues.about_me}\n />\n {!formActive.about_me && }\n \n \n \n \n \n );\n};\n","import React, { useState } from \"react\";\nimport { Button, Dialog, Flex, Text } from \"@radix-ui/themes\";\nimport { ExitIcon } from \"@radix-ui/react-icons\";\n\nimport { useAppStore } from \"@/app/store\";\nimport { updateUserAPI } from \"@/app/services/users\";\nimport { useApp } from \"@/app/hooks/useApp\";\nimport { ProfileDetails } from \"./ProfleDetails\";\nimport { StructUser } from \"@/app/types/Thread.type\";\n\ninterface ProfileDetailsDialogProps {\n isOpen: boolean;\n onClose: () => void;\n user?: StructUser;\n}\n\nexport interface ProfileFormValues {\n real_name: string;\n display_name: string;\n time_zone: string;\n email_id: string;\n about_me: string;\n avatar_id: string;\n}\n\nexport interface ProfileFormFieldsActive {\n real_name: boolean;\n display_name: boolean;\n about_me: boolean;\n}\n\nexport const ProfileDetailsDialog = (\n props: ProfileDetailsDialogProps,\n): React.ReactElement => {\n const { isOpen, onClose, user } = props;\n const { logOut } = useApp();\n\n const loggedInUserId = useAppStore((state) => state.session?.user?.id);\n\n const isSelf = loggedInUserId === user?.id;\n\n const [formValues, setFormValues] = useState({\n real_name: user?.real_name ?? \"\",\n display_name: user?.display_name ?? \"\",\n time_zone: user?.time_zone ?? \"America/Los Angeles\",\n email_id: user?.email_id ?? \"\",\n about_me: user?.about_me ?? \"\",\n avatar_id: user?.avatar_id ?? \"\",\n });\n\n const [formActive, setFormActive] = useState({\n real_name: false,\n display_name: false,\n about_me: false,\n });\n\n const handleFormValueChange = async (param: string, value: string) => {\n setFormValues({\n ...formValues,\n [param]: value,\n });\n };\n\n const saveUserData = async () => {\n if (!user) {\n return;\n }\n\n try {\n await updateUserAPI({\n user: {\n id: user?.id,\n org_id: user?.org_id,\n ...formValues,\n },\n });\n setFormActive({\n real_name: false,\n display_name: false,\n about_me: false,\n });\n } catch (e) {\n console.log(e);\n } finally {\n onClose();\n }\n };\n\n return (\n \n \n \n\n {!isSelf ? (\n \n \n \n \n \n ) : (\n \n \n \n \n \n \n \n \n \n \n \n )}\n \n \n );\n};\n","import { useState } from \"react\";\nimport { Avatar, Flex, Text } from \"@radix-ui/themes\";\n\nimport { ProfileDetailsDialog } from \"../profile/ProfilePage/ProfileDetailsDialog\";\nimport styles from \"./UserBlock.module.scss\";\nimport { useAppStore } from \"@/app/store\";\n\ninterface UserBlockProps {\n avatarSrc: string;\n fallback: string;\n alt: string;\n email: string;\n}\n\nconst UserBlock = ({ avatarSrc, fallback, alt, email }: UserBlockProps) => {\n const [isProfileDialogOpen, setIsProfileDialogOpen] =\n useState(false);\n\n const user = useAppStore((state) => state.session?.user);\n\n return (\n <>\n setIsProfileDialogOpen(true)}\n >\n \n \n {email}\n \n \n {isProfileDialogOpen && (\n setIsProfileDialogOpen(false)}\n user={user}\n />\n )}\n \n );\n};\n\nexport default UserBlock;\n","import React, { useState, Dispatch, SetStateAction } from \"react\";\nimport { useTheme } from \"next-themes\";\nimport {\n Dialog,\n Button,\n Flex,\n TextField,\n Text,\n Popover,\n IconButton,\n} from \"@radix-ui/themes\";\nimport Picker from \"@emoji-mart/react\";\nimport { FaceIcon, Pencil2Icon, PlusIcon } from \"@radix-ui/react-icons\";\nimport styles from \"./CreateFeed.module.scss\";\nimport emojiStyles from \"@/app/styles/emoji.module.scss\";\n\ninterface NameEmojiStepProps {\n name?: string;\n emoji?: string;\n setFeedName: Dispatch>;\n setSelectedEmoji: Dispatch>;\n}\n\nconst NameEmojiStep = ({\n name: feedName,\n emoji: selectedEmoji,\n setFeedName,\n setSelectedEmoji,\n}: NameEmojiStepProps) => {\n const { theme } = useTheme();\n\n const [isEmojiPickerOpen, setIsEmojiPickerOpen] = useState(false);\n\n const handleEmojiSelect = ({ native }: { native: string }) => {\n setIsEmojiPickerOpen(false);\n setSelectedEmoji(native);\n };\n\n return (\n <>\n Custom feed\n \n Custom feeds let you add and edit search terms to tailor content to your\n preferences.\n \n \n \n Name\n \n setFeedName(ev?.target?.value)}\n required\n />\n \n \n \n \n \n \n setIsEmojiPickerOpen(true)}\n >\n {selectedEmoji ? (\n \n {selectedEmoji}\n \n ) : (\n \n )}\n \n \n \n setIsEmojiPickerOpen(true)}\n style={{\n position: \"absolute\",\n right: \"calc(var(--space-2) * -1)\",\n bottom: \"calc(var(--space-2) * -1)\",\n }}\n size=\"1\"\n >\n \n \n \n \n \n \n \n \n \n \n );\n};\n\nexport default NameEmojiStep;\n","import { Flex, Text, Separator, Badge, Select, Button } from \"@radix-ui/themes\";\nimport React, { ElementType, useMemo, useState } from \"react\";\n// todo: move away from antd/Select and create something internally\nimport { Select as AntSelect, Spin } from \"antd\";\nimport { PlusIcon } from \"@radix-ui/react-icons\";\nimport { CrossSmallIcon } from \"../icons/CrossSmallIcon\";\nimport { v4 as uuidv4 } from \"uuid\";\nimport { Kind, SelectedItems } from \"./types\";\nimport { debounce } from \"lodash\";\n\nconst filterTypes = [\n { label: \"Any of\", value: \"any_of\" },\n { label: \"All of\", value: \"all_of\" },\n];\n\nconst filterOption = (input: string, option: any) =>\n (option?.name ?? \"\").toLowerCase().includes(input.toLowerCase());\n\nconst ANY_OF = \"any_of\";\nconst ALL_OF = \"all_of\";\nconst NONE_OF = \"none_of\";\n\ninterface Props {\n Icon: ElementType;\n label: string;\n allItems: any[];\n selectedItems: SelectedItems;\n setSelectedItems: (value: SelectedItems) => void;\n placeholder: string;\n onSearch?: (value: string) => void;\n\n excludePlaceholder: string;\n}\n\nconst RefineFilterBlock = ({\n Icon,\n label,\n allItems,\n selectedItems,\n setSelectedItems,\n placeholder,\n excludePlaceholder,\n onSearch,\n}: Props) => {\n const [isFetching, setFetching] = useState(false);\n\n const noneOfIndex = selectedItems.findIndex((item) => item.kind === NONE_OF);\n const excludedItems = selectedItems[noneOfIndex]?.values ?? null;\n\n const updateSelectedItems = (index: number, items: string[]) => {\n selectedItems[index].values = items;\n setSelectedItems(selectedItems);\n };\n\n const updateType = (newKind: Kind, index: number) => {\n selectedItems[index].kind = newKind;\n setSelectedItems(selectedItems);\n };\n\n const removeItemsFromKind = (index: number) => {\n selectedItems?.splice(index, 1);\n setSelectedItems(selectedItems);\n };\n\n const addItemsToKind = (kind: Kind, items: string[]) => {\n selectedItems?.push({ kind, values: items });\n setSelectedItems(selectedItems);\n };\n\n const debounceSearch = useMemo(() => {\n const loadOptions = async (value: string) => {\n if (!onSearch) return;\n setFetching(true);\n await onSearch(value);\n setFetching(false);\n };\n\n return debounce(loadOptions, 600);\n }, [onSearch]);\n\n return (\n \n \n \n \n {label}\n \n \n {selectedItems.map(({ kind, values: items }, kindIndex) => {\n if (!filterTypes.map((filterType) => filterType.value).includes(kind))\n return null;\n\n const canRemove = kindIndex !== 0;\n return (\n \n updateType(newKind, kindIndex)}\n >\n \n \n \n {filterTypes.map((filterType) => (\n \n {filterType.label}\n \n ))}\n \n \n \n \n \n {\n updateSelectedItems(\n kindIndex,\n items.map((item) => item.value),\n );\n }}\n onSearch={debounceSearch}\n dropdownAlign={{\n overflow: { adjustX: false, adjustY: false },\n }}\n options={allItems}\n placeholder={placeholder}\n dropdownStyle={{ marginTop: \"-8px\" }}\n notFoundContent={isFetching ? : null}\n getPopupContainer={() =>\n document.getElementById(\"filter-block\") as HTMLElement\n }\n />\n {canRemove && (\n removeItemsFromKind(kindIndex)}\n >\n Remove\n \n \n )}\n \n \n );\n })}\n\n \n {\n addItemsToKind(ANY_OF, []);\n }}\n size=\"1\"\n >\n \n Add Condition\n \n {!excludedItems && (\n {\n addItemsToKind(NONE_OF, []);\n }}\n size=\"1\"\n >\n \n Add Exclusion\n \n )}\n \n\n {excludedItems && (\n \n Exclude\n \n \n {\n updateSelectedItems(\n noneOfIndex,\n items.map((item) => item.value),\n );\n }}\n options={allItems}\n placeholder={excludePlaceholder}\n getPopupContainer={() =>\n document.getElementById(\"filter-block\") as HTMLElement\n }\n />\n \n {\n removeItemsFromKind(noneOfIndex);\n }}\n >\n Remove\n \n \n \n )}\n \n );\n};\nexport default RefineFilterBlock;\n","import { Switch, Flex, Text, Callout, Badge } from \"@radix-ui/themes\";\nimport React, { useEffect, useState } from \"react\";\nimport ChannelGroupPeopleIcon from \"../icons/ChannelGroupPeopleIcon\";\nimport HashtagIcon from \"../icons/HashtagIcon\";\nimport { useAppStore } from \"@/app/store\";\nimport { InfoCircledIcon } from \"@radix-ui/react-icons\";\nimport RefineFilterBlock from \"./RefineFilterBlock\";\nimport { SelectedItems } from \"./types\";\nimport { set, uniqBy } from \"lodash\";\nimport { getMentions } from \"@/app/services/mentions\";\nimport { StructChannel } from \"@/app/types/Channel.type\";\nimport { StructUser } from \"@/app/types/Thread.type\";\nimport { StructFeed } from \"@/app/types/Feed.type\";\nimport { EntityIDMap } from \"@/app/constants\";\n\nconst toggles = [\n { label: \"Direct Messages\", selector: \"feed_dm\" },\n { label: \"Unread Messages\", selector: \"feed_unread\" },\n { label: \"Bookmarks\", selector: \"thread_bookmarked\" },\n];\n\nconst getChannelsAndUsersFromEntityMap = (\n entityMap: StructFeed[\"entity_map\"],\n) => {\n if (!entityMap) {\n return { channels: [], users: [] };\n }\n const entityIds = Object.keys(entityMap);\n const channels: StructChannel[] = [];\n const users: StructUser[] = [];\n\n for (let index = 0; index < entityIds.length; index++) {\n const entityId = entityIds[index];\n if (entityId.startsWith(EntityIDMap.Channel)) {\n channels.push(entityMap[entityId] as StructChannel);\n } else if (entityId.startsWith(EntityIDMap.User)) {\n users.push(entityMap[entityId] as StructUser);\n }\n }\n return { channels, users };\n};\n\ninterface Props {\n localFiltersState: any;\n updateLocalFiltersState: (newState: any) => void;\n entityMap: StructFeed[\"entity_map\"];\n}\n\nconst Row = ({ name, count }: { name: string; count: number }) => {\n return (\n \n {name}\n \n {count}\n \n \n );\n};\n\nconst RefineFiltersStep = ({\n localFiltersState,\n updateLocalFiltersState,\n entityMap,\n}: Props) => {\n const [channels, setChannels] = useState([]);\n const [users, setUsers] = useState([]);\n const tags = useAppStore((state) => state.tags);\n\n const fetchMentions = async (query: string, ids = []) => {\n const { channels = [], users = [] } = await getMentions(\n query,\n true,\n [],\n 10,\n );\n setChannels((prevChannels) => uniqBy([...prevChannels, ...channels], \"id\"));\n setUsers((prevUsers) => uniqBy([...prevUsers, ...users], \"id\"));\n };\n\n useEffect(() => {\n const { channels, users } = getChannelsAndUsersFromEntityMap(entityMap);\n setChannels((prevChannels) => uniqBy([...prevChannels, ...channels], \"id\"));\n setUsers((prevUsers) => uniqBy([...prevUsers, ...users], \"id\"));\n fetchMentions(\"\");\n }, []);\n\n const updateState = (entity: string, value: SelectedItems) => {\n localFiltersState[entity] = value;\n updateLocalFiltersState(localFiltersState);\n };\n\n const updateBits = (selector: string, checked: boolean) => {\n set(localFiltersState, `bits.${selector}`, checked);\n updateLocalFiltersState(localFiltersState);\n };\n\n return (\n \n \n Refine your feed\n \n \n \n {toggles.map(({ label, selector }) => (\n \n {\n updateBits(selector, checked);\n }}\n />\n {label}\n \n ))}\n \n ({\n value: channel.id,\n name: \"@\" + channel.name,\n label: (\n \n ),\n })),\n ...users.map((user) => ({\n value: user.id,\n name: \"@\" + user.display_name + \" | \" + user.real_name,\n label: (\n \n ),\n })),\n ]}\n selectedItems={localFiltersState?.ids}\n setSelectedItems={(items) => updateState(\"ids\", items)}\n placeholder=\"What channels or members should we include\"\n excludePlaceholder=\"What channels or members should we exclude\"\n onSearch={fetchMentions}\n />\n ({\n value: tag,\n name: \"#\" + tag,\n label: ,\n }))}\n selectedItems={localFiltersState?.tags}\n setSelectedItems={(items) => updateState(\"tags\", items)}\n placeholder=\"What tags should we include\"\n excludePlaceholder=\"What tags should we exclude\"\n />\n \n \n \n \n \n \n \n Select 'Any of' to display threads with any of the chosen\n items, or 'All of' for threads that must include all your\n selections.\n \n \n \n \n );\n};\n\nexport default React.memo(RefineFiltersStep);\n","import { useState, useEffect } from \"react\";\nimport { Button, Flex } from \"@radix-ui/themes\";\nimport NameEmojiStep from \"./NameEmojiStep\";\nimport RefineFiltersStep from \"./RefineFiltersStep\";\nimport { cloneDeep, isEqual, isEmpty } from \"lodash\";\nimport { FeedFilter } from \"@/app/types/FeedFitler.type\";\nimport { CreateFeedPayload, StructFeed } from \"@/app/types/Feed.type\";\nimport { StructChannel } from \"@/app/types/Channel.type\";\nimport { StructUser } from \"@/app/types/Thread.type\";\nimport { EntityIDMap } from \"@/app/constants\";\n\ntype Kind = \"any_of\" | \"all_of\" | \"none_of\";\n\ninterface FilterRow {\n kind: string;\n values: string[];\n}\n\ninterface LocalFiltersState {\n tags?: FilterRow[];\n ids?: FilterRow[];\n bits: CreateFeedPayload[\"bits\"];\n}\nconst INITIAL_LOCAL_FILTERS_STATE = {\n tags: [{ kind: \"any_of\", values: [] }],\n ids: [{ kind: \"any_of\", values: [] }],\n bits: { feed_dm: false, feed_unread: false, thread_bookmarked: false },\n};\n\ninterface CreateEditFeedDialogProps {\n handleClose: () => void;\n onSubmit: ({\n feedName,\n emoji,\n filters,\n bits,\n }: {\n feedName: string;\n emoji: string;\n filters: FeedFilter[];\n bits: CreateFeedPayload[\"bits\"];\n }) => void;\n localFilters: FeedFilter[];\n feedName?: string;\n emoji?: string;\n bits?: CreateFeedPayload[\"bits\"];\n entityMap: StructFeed[\"entity_map\"];\n}\n\nconst CreateEditFeedDialog = ({\n handleClose,\n onSubmit,\n localFilters,\n feedName,\n emoji,\n bits,\n entityMap,\n}: CreateEditFeedDialogProps) => {\n const [name, setFeedName] = useState(feedName ?? \"\");\n const [selectedEmoji, setSelectedEmoji] = useState(emoji ?? \"\");\n\n const [localFiltersState, setLocalFiltersState] = useState(\n cloneDeep(INITIAL_LOCAL_FILTERS_STATE),\n );\n\n const updateLocalFiltersState = (newState: any) =>\n setLocalFiltersState((state) => ({ ...state, ...newState }));\n\n useEffect(() => {\n if (isEmpty(localFilters)) {\n return;\n }\n const newFilters = { tags: [], ids: [], bits } as LocalFiltersState;\n\n for (let index = 0; index < localFilters.length; index++) {\n const filter = localFilters[index];\n if (!isEmpty(filter?.tags)) {\n newFilters?.tags?.push({\n kind: filter.kind,\n values: filter.tags as string[],\n });\n }\n\n if (!isEmpty(filter?.ids)) {\n newFilters?.ids?.push({\n kind: filter.kind,\n values: filter.ids as string[],\n });\n }\n }\n\n // Add default values if the filter is empty\n if (isEmpty(newFilters.tags)) {\n newFilters.tags = INITIAL_LOCAL_FILTERS_STATE.tags;\n }\n // Add default values if the filter is empty\n if (isEmpty(newFilters.ids)) {\n newFilters.ids = INITIAL_LOCAL_FILTERS_STATE.ids;\n }\n\n updateLocalFiltersState(newFilters);\n }, [localFilters]);\n\n const handleSave = () => {\n const filters = [] as FeedFilter[];\n const { tags, ids } = localFiltersState;\n if (tags) {\n for (let index = 0; index < tags.length; index++) {\n if (tags[index].values.length > 0) {\n const filter = {\n kind: tags[index].kind as Kind,\n tags: tags[index].values,\n ids: [],\n };\n filters.push(filter);\n }\n }\n }\n if (ids) {\n for (let index = 0; index < ids.length; index++) {\n if (ids[index].values.length > 0) {\n const filter = {\n kind: ids[index].kind as Kind,\n ids: ids[index].values,\n tags: [],\n };\n filters.push(filter);\n }\n }\n }\n\n onSubmit({\n feedName: name,\n emoji: selectedEmoji,\n filters,\n bits: localFiltersState.bits,\n });\n };\n\n return (\n \n \n\n \n \n \n\n \n \n Cancel\n \n \n Save\n \n \n \n );\n};\n\nexport default CreateEditFeedDialog;\n","\"use client\";\n\nimport { Dialog } from \"@radix-ui/themes\";\nimport { useEffect, useRef, useState } from \"react\";\n\nimport CreateEditFeedDialog from \"./CreateEditFeedDialog\";\nimport events from \"@/app/utils/events\";\nimport {\n FORCE_REFRESH_FEED,\n TRIGGER_FEED_FILTERS_MODAL,\n} from \"@/app/eventConstants\";\nimport { FeedFilter } from \"@/app/types/FeedFitler.type\";\nimport useFeeds from \"@/app/hooks/useFeeds\";\nimport { useAppStore } from \"@/app/store\";\nimport useShallowNavigation from \"@/app/hooks/useShallowNavigation\";\nimport { CreateFeedPayload, StructFeed } from \"@/app/types/Feed.type\";\n\ninterface LocalState {\n filters: FeedFilter[];\n feedId?: StructFeed[\"id\"];\n name?: StructFeed[\"name\"];\n emoji?: string;\n bits?: CreateFeedPayload[\"bits\"];\n entityMap: StructFeed[\"entity_map\"];\n}\n\nconst INITIAL_STATE = {\n feedId: \"\",\n filters: [],\n name: \"\",\n emoji: \"\",\n entityMap: {},\n};\n\nconst CreateFeedDialog = () => {\n const { createFeed, updateFeed } = useFeeds();\n\n const [isFeedFormOpen, setIsFeedFormOpen] = useState(false);\n\n const localState = useRef(INITIAL_STATE);\n const currentFeedId = useAppStore((state) => state.currentFeedId);\n const setCurrentFeedId = useAppStore((state) => state.setCurrentFeedId);\n const { currentPath: threadId } = useShallowNavigation();\n\n const openModal = ({\n filters = [],\n feedId = \"\",\n name = \"\",\n emoji = \"\",\n bits = {},\n entityMap = {},\n }: LocalState) => {\n if (filters) {\n localState.current = { feedId, filters, name, emoji, bits, entityMap };\n }\n setIsFeedFormOpen(true);\n };\n\n useEffect(() => {\n // todo: fix types below\n // @ts-ignore\n events.on(TRIGGER_FEED_FILTERS_MODAL, openModal);\n // @ts-ignore\n return () => events.off(TRIGGER_FEED_FILTERS_MODAL, openModal);\n }, []);\n\n const handleBack = () => {\n setIsFeedFormOpen(false);\n localState.current = INITIAL_STATE;\n };\n\n const handleSubmit = async ({\n feedName,\n emoji,\n filters,\n bits,\n }: {\n feedName: StructFeed[\"name\"];\n emoji: string;\n filters: FeedFilter[];\n bits: CreateFeedPayload[\"bits\"];\n }) => {\n const feedId = localState.current.feedId;\n const payload = {\n name: feedName,\n filters,\n emoji,\n bits,\n };\n\n if (feedId) {\n // update feed\n await updateFeed({ ...payload, id: feedId });\n\n if (!threadId && feedId === currentFeedId) {\n events.emit(FORCE_REFRESH_FEED, { currentFeedId });\n }\n setIsFeedFormOpen(false);\n return;\n }\n\n // create feed\n const response = await createFeed(payload);\n if (!threadId) {\n setCurrentFeedId(response.id);\n }\n\n localState.current = INITIAL_STATE;\n setIsFeedFormOpen(false);\n };\n\n return (\n \n \n \n \n \n );\n};\nexport default CreateFeedDialog;\n","import { Flex, IconButton, Text } from \"@radix-ui/themes\";\nimport React from \"react\";\nimport { ArrowLeftIcon, HamburgerMenuIcon } from \"@radix-ui/react-icons\";\nimport useDesktopMode from \"@/app/hooks/useDesktopMode\";\nimport useShallowNavigation from \"@/app/hooks/useShallowNavigation\";\n\nconst HEADER_HEIGHT = \"42px\";\n\ninterface Props {\n handleOpen: () => void;\n label?: string;\n}\n\nconst MobileHeader = ({ handleOpen, label }: Props) => {\n const { isDesktop } = useDesktopMode();\n const { currentPath, navigateToPath } = useShallowNavigation();\n if (isDesktop) return null;\n\n if (currentPath) {\n return (\n \n navigateToPath(null)}\n >\n \n \n \n {label}\n \n \n );\n }\n\n return (\n \n \n \n \n \n {label}\n \n \n );\n};\n\nexport default MobileHeader;\n","import React from \"react\";\nimport { Button, Flex, Text } from \"@radix-ui/themes\";\nimport { SymbolIcon } from \"@radix-ui/react-icons\";\nimport { useAppStore } from \"@/app/store\";\n\n/**\n * This button would be visible when:\n * 1. Websocket disconnection for more than 30 seconds. // The app is active\n * 2. There's a version change in the app.\n * 3. If client does not receive ping for more than 30 minutes. // The app is inactive, closed lid or something.\n */\n\nconst ResyncButton = () => {\n const shouldResync = useAppStore((state) => state.shouldResync);\n\n if (!shouldResync) return null;\n\n return (\n \n window.location.reload()}\n >\n \n \n Resync for latest\n \n \n \n );\n};\n\nexport default ResyncButton;\n","import React, { useState } from \"react\";\nimport Toggle from \"../Toggle\";\nimport { SpeakerLoudIcon, SpeakerOffIcon } from \"@radix-ui/react-icons\";\nimport { Flex } from \"@radix-ui/themes\";\nimport {\n getLocalStorageState,\n setLocalStorageState,\n} from \"@/app/utils/localStorage\";\n\nconst NotificationToggle = () => {\n const localState = getLocalStorageState();\n const { isNotificationEnabled = true } = localState;\n const [isEnabled, setIsEnabled] = useState(isNotificationEnabled);\n\n const handleChange = () => {\n setLocalStorageState({ isNotificationEnabled: !isNotificationEnabled });\n setIsEnabled((isEnabled) => !isEnabled);\n };\n\n return (\n \n \n \n ),\n },\n {\n description: \"Enable Notifications\",\n icon: (\n \n \n \n ),\n },\n ]}\n />\n );\n};\n\nexport default NotificationToggle;\n","import { useEffect, useState } from \"react\";\n\nimport \"./SideBar.custom.scss\";\n\nimport { useApp } from \"@/app/hooks/useApp\";\nimport { useAllFilters } from \"@/app/hooks/useAllFilters\";\nimport { useTheme } from \"next-themes\";\nimport useFeeds from \"@/app/hooks/useFeeds\";\nimport { usePathname, useRouter } from \"next/navigation\";\nimport {\n getLocalStorageState,\n setLocalStorageState,\n} from \"@/app/utils/localStorage\";\nimport { useAppStore } from \"@/app/store\";\nimport { DEFAULT_FEED_ID, DEFAULT_SEARCH_FEED_ID } from \"@/app/store/App.store\";\nimport useShallowNavigation from \"@/app/hooks/useShallowNavigation\";\nimport { StructFeed } from \"@/app/types/Feed.type\";\nimport {\n Badge,\n Button,\n Card,\n DropdownMenu,\n Flex,\n Box,\n IconButton,\n Text,\n ScrollArea,\n Tooltip,\n} from \"@radix-ui/themes\";\nimport {\n Cross1Icon,\n DotsVerticalIcon,\n EnterIcon,\n Cross2Icon,\n MagnifyingGlassIcon,\n MixerHorizontalIcon,\n MoonIcon,\n SunIcon,\n TrashIcon,\n PlusIcon,\n HomeIcon,\n DownloadIcon,\n} from \"@radix-ui/react-icons\";\nimport events from \"@/app/utils/events\";\nimport {\n FORCE_REFRESH_FEED,\n TRIGGER_FEED_FILTERS_MODAL,\n} from \"@/app/eventConstants\";\nimport Header from \"@/app/components/SideBar/Header\";\nimport Link from \"next/link\";\nimport styles from \"@/app/components/SideBar/SideBar.module.scss\";\nimport ChannelGroupPeopleIcon from \"@/app/components/icons/ChannelGroupPeopleIcon\";\nimport FeedPreviewSearchIcon from \"@/app/components/icons/FeedPreviewSearchIcon\";\nimport FeedStackIcon from \"@/app/components/icons/FeedStackIcon\";\nimport VideoTutorialButton from \"@/app/components/SideBar/VideoTutorialButton\";\nimport Toggle from \"@/app/components/Toggle\";\nimport UserBlock from \"@/app/components/SideBar/UserBlock\";\nimport { getAvatarImageURL } from \"@/app/utils/imageUtils\";\nimport CreateFeedDialog from \"@/app/components/CreateFeedDialog/CreateFeedDialog\";\nimport ConfirmationDialog from \"@/app/components/ConfirmationDialog\";\nimport emojiStyles from \"@/app/styles/emoji.module.scss\";\nimport MobileHeader from \"./MobileHeader\";\nimport ResyncButton from \"./ResyncButton\";\nimport { isDesktopPlatform } from \"@/app/constants\";\nimport NotificationToggle from \"./NotificationToggle\";\n\nconst Sidebar = () => {\n const { logIn, featureToggles } = useApp();\n const { areFiltersApplied, removeAllFilters } = useAllFilters();\n\n const { setTheme, theme } = useTheme();\n const { deleteFeed } = useFeeds();\n const pathname = usePathname();\n const localState = getLocalStorageState();\n const router = useRouter();\n\n const isAuthenticated = useAppStore((state) => state.isAuthenticated);\n const session = useAppStore((state) => state.session);\n const setIsCommandMenuVisible = useAppStore(\n (state) => state.setIsCommandMenuVisible,\n );\n const currentFeedId = useAppStore((state) => state.currentFeedId);\n const setCurrentFeedId = useAppStore((state) => state.setCurrentFeedId);\n\n const unreadThreadCountByFeedId = useAppStore(\n (state) => state.unreadThreadCountByFeedId,\n );\n\n const isAuthenticatedWithCorrectOrg = useAppStore(\n (state) => state.isAuthenticatedWithCorrectOrg,\n );\n\n const shouldUpgrade = useAppStore((state) => state.shouldUpgrade);\n\n const [isSidebarOpen, setSidebarOpen] = useState(false);\n\n let feeds = useAppStore((state) => state.feeds);\n\n if (\n isAuthenticatedWithCorrectOrg &&\n areFiltersApplied &&\n feeds?.[0]?.id !== DEFAULT_SEARCH_FEED_ID\n ) {\n feeds.unshift({\n ...feeds[0],\n id: DEFAULT_SEARCH_FEED_ID,\n name: \"Current Search\",\n });\n }\n\n if (\n isAuthenticatedWithCorrectOrg &&\n !areFiltersApplied &&\n feeds?.[0]?.id === DEFAULT_SEARCH_FEED_ID\n ) {\n feeds.shift();\n }\n\n const { currentPath, navigateToPath } = useShallowNavigation();\n const [feedToDelete, setFeedToDelete] = useState(null);\n\n useEffect(() => {\n if (localState?.theme) {\n setTheme(localState?.theme);\n }\n }, [localState.feedMode, localState.theme]);\n\n useEffect(() => {\n if (areFiltersApplied) {\n setCurrentFeedId(DEFAULT_SEARCH_FEED_ID);\n } else {\n setCurrentFeedId(DEFAULT_FEED_ID);\n }\n }, [areFiltersApplied]);\n\n const handleThemeChange = (theme: string) => {\n setTheme(theme);\n setLocalStorageState({ theme });\n };\n\n const handleSearchButtonClick = () => {\n setIsCommandMenuVisible(true);\n setSidebarOpen(false);\n };\n\n const handleEditFeed = (feedId: StructFeed[\"id\"]) => {\n if (!feedId) {\n return;\n }\n\n const feed = feeds.find(({ id }) => id === feedId);\n\n events.emit(TRIGGER_FEED_FILTERS_MODAL, {\n filters: feed?.filters,\n feedId,\n name: feed?.name,\n emoji: feed?.emoji,\n bits: feed?.bits,\n entityMap: feed?.entity_map,\n });\n };\n\n const handleSwitchFeed = (feedId: StructFeed[\"id\"]) => {\n navigateToPath(null);\n setCurrentFeedId(feedId);\n setSidebarOpen(false);\n\n if (pathname !== \"/\") {\n router.push(\"/\");\n }\n\n // In case user is at current feed, and not in the feed view, we perform force re-render of feed\n if (currentFeedId === feedId && !currentPath) {\n events.emit(FORCE_REFRESH_FEED, { currentFeedId });\n }\n };\n\n const handleDeleteFeed = async (feedId: StructFeed[\"id\"]) => {\n await deleteFeed({ id: feedId });\n setFeedToDelete(null);\n };\n\n const hasPageLinksVisible =\n featureToggles.isMembersPageEnabled || featureToggles.isChannelsPageEnabled;\n\n return (\n <>\n {!isSidebarOpen && (\n setSidebarOpen(true)}\n label={feeds.find((feed) => feed.id === currentFeedId)?.name}\n />\n )}\n\n \n \n
\n {isSidebarOpen && (\n \n \n \n )}\n \n \n \n {hasPageLinksVisible && (\n \n {featureToggles.isMembersPageEnabled && (\n setSidebarOpen(false)}\n href=\"/m\"\n className={styles.menuLink}\n shallow\n style={{\n background:\n pathname === \"/m\" ? \"var(--indigo-a4)\" : undefined,\n }}\n >\n \n Members\n \n )}\n {featureToggles.isChannelsPageEnabled && (\n setSidebarOpen(false)}\n href=\"/c\"\n className={styles.menuLink}\n shallow\n style={{\n background:\n pathname === \"/c\" ? \"var(--indigo-a4)\" : undefined,\n }}\n >\n \n Channels\n \n )}\n {!isDesktopPlatform && (\n \n \n Download app\n \n )}\n\n {isDesktopPlatform && shouldUpgrade && (\n \n \n Upgrade App\n \n )}\n \n )}\n \n \n \n \n \n {feeds &&\n feeds.map((feed) => {\n const isActive =\n currentFeedId === feed.id && pathname === \"/\";\n const unreadCount =\n unreadThreadCountByFeedId?.[feed?.id] ?? 0;\n const hasUnread = unreadCount > 0;\n\n return (\n \n \n handleSwitchFeed(feed.id)}\n style={{\n boxShadow: \"none\",\n flex: 1,\n ...(isActive && {\n background: \"var(--indigo-a4)\",\n }),\n justifyContent: \"flex-start\",\n paddingRight: \"var(--space-1)\",\n }}\n >\n \n {feed.emoji ? (\n \n {feed.emoji}\n \n ) : feed.id === DEFAULT_SEARCH_FEED_ID ? (\n \n ) : feed.id === DEFAULT_FEED_ID ? (\n \n ) : (\n \n )}\n \n \n {feed.name}\n \n\n {hasUnread && (\n \n {unreadCount}\n \n )}\n \n\n {feed.id === DEFAULT_SEARCH_FEED_ID && (\n \n \n \n )}\n\n {Boolean(feed.bits.feed_special) || (\n \n \n \n \n \n \n \n handleEditFeed(feed.id)}\n >\n Edit\n \n \n \n \n {\n setFeedToDelete(feed);\n }}\n >\n Delete\n \n \n \n \n \n \n )}\n \n \n );\n })}\n\n {feeds.length > 0 && (\n \n \n events.emit(TRIGGER_FEED_FILTERS_MODAL, {})\n }\n style={{\n boxShadow: \"none\",\n flex: 1,\n justifyContent: \"flex-start\",\n padding: \"0 var(--space-3)\",\n }}\n >\n \n \n \n Create a feed\n \n \n )}\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n handleThemeChange(theme === \"dark\" ? \"light\" : \"dark\")\n }\n items={[\n {\n description: \"Light Mode\",\n icon: (\n \n \n \n ),\n },\n {\n description: \"Dark Mode\",\n icon: (\n \n \n \n ),\n },\n ]}\n />\n \n {isAuthenticated && (\n \n )}\n {!isAuthenticated && (\n logIn()}\n >\n Log in\n \n )}\n \n \n {feedToDelete && (\n setFeedToDelete(null)}\n onConfirm={() => handleDeleteFeed(feedToDelete.id)}\n />\n )}\n \n \n );\n};\n\nexport default Sidebar;\n","import React, { useEffect, useRef } from \"react\";\nimport { sendPresenceAPI } from \"../services/misc\";\nimport { useAppStore } from \"../store\";\nconst PRESENCE_INTERVAL = 60 * 3 * 1000; // 3 minutes\n\nexport const usePresence = () => {\n const presenceIntervalRef = useRef(null);\n const isConnectionActive = useAppStore(\n (state) => state.isRealtimeConnectionActive,\n );\n\n useEffect(() => {\n return () => {\n if (presenceIntervalRef.current !== null) {\n clearInterval(presenceIntervalRef.current);\n }\n };\n }, []);\n\n useEffect(() => {\n if (presenceIntervalRef.current) {\n window.clearInterval(presenceIntervalRef.current);\n presenceIntervalRef.current = null;\n }\n\n const sendPresence = () => {\n if (!isConnectionActive) {\n return;\n }\n\n sendPresenceAPI();\n };\n\n sendPresence();\n\n presenceIntervalRef.current = window.setInterval(\n () => sendPresence(),\n PRESENCE_INTERVAL,\n );\n\n return () => {\n if (presenceIntervalRef.current) {\n window.clearInterval(presenceIntervalRef.current);\n presenceIntervalRef.current = null;\n }\n };\n }, [isConnectionActive]);\n};\n","import { useAppStore, globalStore } from \"@/app/store\";\nimport {\n Read,\n StructChat,\n StructChatResponse,\n StructThread,\n StructThreadResponse,\n StructUser,\n} from \"@/app/types/Thread.type\";\nimport { useCallback, useEffect, useRef } from \"react\";\n\nimport { DEFAULT_FEED_ID } from \"@/app/store/App.store\";\nimport { joinThreadData } from \"@/app/utils/dataUtils\";\nimport { getAvatarImageURL } from \"@/app/utils/imageUtils\";\nimport isArray from \"lodash/isArray\";\nimport merge from \"lodash/merge\";\nimport mergeWith from \"lodash/mergeWith\";\nimport { StructFeed } from \"../types/Feed.type\";\nimport { StructOrganisation } from \"@/app/types/Organisation.type\";\nimport events from \"../utils/events\";\nimport {\n REALTIME_RECONNECTION_TRIGGERED,\n REMOVE_FROM_FEED_KEEP_THREAD_OPEN,\n TRIGGER_NOTIFICATION,\n WS_PING_RECEIVED,\n} from \"../eventConstants\";\nimport {\n APP_VERSION,\n DESKTOP_APP_VERSION,\n STRUCT_API_URL,\n STRUCT_API_VERSION,\n} from \"../constants\";\nimport { deviceId } from \"../utils/sessionStorage\";\nimport useShallowNavigation from \"./useShallowNavigation\";\nimport { trackEvent } from \"../utils/tracking\";\nimport useDebounce from \"./useDebounce\";\n\nenum RealtimeMessagePath {\n TYPING = \"/typing\",\n SERVER_UPDATE = \"server/update\",\n PRESENCE = \"/presence\",\n FEED = \"/feed\",\n SERVER_FEED = \"server/feed\",\n PING = \"/ping\",\n PONG = \"/pong\",\n VERSION = \"/version\",\n}\n\nenum MessageType {\n CHAT = \"chats\",\n THREAD = \"threads\",\n REACTION = \"reactions\",\n READ = \"reads\",\n FEEDS = \"feeds\",\n CHANNELS = \"channels\",\n USERS = \"users\",\n ORGS = \"orgs\",\n}\n\nenum MessageAction {\n INSERT = \"insert\",\n UPDATE = \"update\",\n DELETE = \"delete\",\n MOVE_TO_TOP = \"move_to_top\",\n REMOVE_FROM_FEED = \"remove_from_feed\",\n NUM_UNREAD = \"num_unread\",\n}\n\nenum PresenceStatus {\n ACTIVE = \"active\",\n AWAY = \"away\",\n}\n\nconst RECONNECTION_DELAY = 10000;\nconst USER_TYPING_CLEAR_TIMEOUT = 6000;\nconst REFRESH_RECONNECTION_INTERVAL = 30 * 60 * 1000; // 30 minutes\n\nconst DEFAULT_NOTIFICATION_MESSAGE = \"New chat message in Struct\";\n\nconst useRealtimeEvents = () => {\n const updateChatMessage = useAppStore((state) => state.updateChatMessage);\n const setChatMessage = useAppStore((state) => state.setChatMessage);\n const setChatReaction = useAppStore((state) => state.setChatReaction);\n const deleteChatReaction = useAppStore((state) => state.deleteChatReaction);\n const deleteChatMessage = useAppStore((state) => state.deleteChatMessage);\n const setBulkReadUntilByThreadId = useAppStore(\n (state) => state.setBulkReadUntilByThreadId,\n );\n const removeThreadChatById = useAppStore(\n (state) => state.removeThreadChatById,\n );\n const updateThreadChatById = useAppStore(\n (state) => state.updateThreadChatById,\n );\n const addUserTyping = useAppStore((state) => state.addUserTyping);\n const removeUserTyping = useAppStore((state) => state.removeUserTyping);\n const setThreadById = useAppStore((state) => state.setThreadById);\n const deleteThreads = useAppStore((state) => state.deleteThreads);\n const insertThreadChatById = useAppStore(\n (state) => state.insertThreadChatById,\n );\n const updateThreadsById = useAppStore((state) => state.updateThreadsById);\n const addOnlineUserId = useAppStore((state) => state.addOnlineUserId);\n const removeOnlineUserId = useAppStore((state) => state.removeOnlineUserId);\n const getThreadsById = useAppStore((state) => state.getThreadsById);\n const moveThreadToTop = useAppStore((state) => state.moveThreadToTop);\n const setFeed = useAppStore((state) => state.setFeed);\n const updateFeed = useAppStore((state) => state.updateFeed);\n const session = useAppStore((state) => state.session);\n const organisation = useAppStore((state) => state.organisation);\n const updateOrganisation = useAppStore((state) => state.updateOrganisation);\n\n const deleteStoreFeed = useAppStore((state) => state.deleteStoreFeed);\n const setCurrentFeedId = useAppStore((state) => state.setCurrentFeedId);\n\n\n const setUnreadThreadCountByFeedId = useAppStore(\n (state) => state.setUnreadThreadCountByFeedId,\n );\n\n const updateSessionUser = useAppStore((state) => state.updateSessionUser);\n\n const setShouldResync = useAppStore((state) => state.setShouldResync);\n const setShouldUpgrade = useAppStore((state) => state.setShouldUpgrade);\n\n const setIsRealtimeConnectionActive = useAppStore(\n (state) => state.setIsRealtimeConnectionActive,\n );\n const setOpenThreadById = useAppStore((state) => state.setOpenThreadById);\n\n const { getCurrentPath } = useShallowNavigation();\n\n const hasPriorConnectionEstablished = useRef(false);\n\n const sseInstanceRef = useRef(null);\n const userTimeoutsRef = useRef>>({});\n const pingTimeoutRef = useRef(null);\n const lastPingTimestamp = useRef(null);\n const queueReadActionsRef = useRef<\n {\n action: MessageAction;\n data: StructChatResponse;\n threadId: StructThread[\"id\"];\n }[]\n >([]);\n\n useEffect(() => {\n const handleOffline = () => {\n if (!sseInstanceRef.current) {\n return;\n }\n\n sseInstanceRef.current?.close();\n sseInstanceRef.current = null;\n setIsRealtimeConnectionActive(false);\n };\n\n const handleOnline = () => {\n initializeServerSentEvents();\n };\n\n const handleVisibilityChange = () => {\n if (!sseInstanceRef.current) {\n initializeServerSentEvents();\n }\n };\n\n window.addEventListener(\"offline\", handleOffline);\n window.addEventListener(\"online\", handleOnline);\n document.addEventListener(\"visibilitychange\", handleVisibilityChange);\n\n return () => {\n window.removeEventListener(\"offline\", handleOffline);\n window.removeEventListener(\"online\", handleOnline);\n document.removeEventListener(\"visibilitychange\", handleVisibilityChange);\n // close realtime connection \n sseInstanceRef.current?.close();\n };\n }, []);\n\n const handleOpen = useCallback(() => {\n if (!sseInstanceRef.current) return;\n setIsRealtimeConnectionActive(true);\n notifyReconnectionToApp();\n console.info(\"Connected to the Realtime server \", deviceId);\n if (!hasPriorConnectionEstablished.current) {\n hasPriorConnectionEstablished.current = true;\n }\n }, []);\n\n const handleTypingMessage = (\n {\n user_id,\n user_name,\n }: { user_id: StructUser[\"id\"]; user_name: StructUser[\"real_name\"] },\n threadId: StructThread[\"id\"],\n ) => {\n if (!userTimeoutsRef.current[threadId]) {\n userTimeoutsRef.current[threadId] = {};\n }\n\n if (userTimeoutsRef.current[threadId][user_id]) {\n clearTimeout(userTimeoutsRef.current[threadId][user_id]);\n }\n\n userTimeoutsRef.current[threadId][user_id] = window.setTimeout(() => {\n removeUserTyping(threadId, user_id);\n delete userTimeoutsRef.current[threadId][user_id];\n if (Object.keys(userTimeoutsRef.current[threadId]).length === 0) {\n delete userTimeoutsRef.current[threadId];\n }\n }, USER_TYPING_CLEAR_TIMEOUT);\n\n addUserTyping(threadId, user_id, user_name);\n };\n\n const handleServerUpdateMessage = ({\n type,\n action,\n data,\n threadId,\n }: {\n type: MessageType;\n action: MessageAction;\n data: any;\n threadId: StructThread[\"id\"];\n }) => {\n if (type === MessageType.CHAT) {\n handleChatMessage({ action, data, threadId });\n return;\n }\n\n if (type === MessageType.THREAD) {\n handleThreadMessage({ action, data, threadId });\n return;\n }\n\n if (type === MessageType.REACTION) {\n handleReactionMessage({ action, data, threadId });\n return;\n }\n\n if (type === MessageType.READ) {\n queueReadActionsRef.current.push({ action, data, threadId });\n // @ts-expect-error\n debouncedHandleReadMessage();\n return;\n }\n if (type === MessageType.FEEDS) {\n handleFeedsMessage({ action, data });\n }\n\n if (type === MessageType.USERS) {\n handleUsersMessage({ action, data });\n }\n\n if (type === MessageType.ORGS) {\n handleOrgsMessage({ action, data });\n }\n };\n\n const handleServerFeedMessage = async ({\n data,\n action,\n threadId,\n }: {\n data: any;\n action: MessageAction;\n threadId: StructThread[\"id\"];\n }) => {\n if (action === MessageAction.MOVE_TO_TOP) {\n const threadsById = getThreadsById();\n const existingThread = threadsById[threadId];\n\n const thread = merge(existingThread, data as StructThreadResponse);\n const transformedThread: StructThread = joinThreadData({\n thread,\n organisation,\n });\n\n setThreadById(transformedThread);\n moveThreadToTop(threadId);\n return;\n }\n\n if (action === MessageAction.REMOVE_FROM_FEED) {\n const threadsById = getThreadsById();\n const existingThread = threadsById[threadId];\n if (!existingThread) {\n return;\n }\n\n const currentlyOpenThreadId = await getCurrentPath();\n if (threadId === currentlyOpenThreadId) {\n // The following will delete the thread from the feed but keep the thread open only when thread container is mounted.\n events.emit(REMOVE_FROM_FEED_KEEP_THREAD_OPEN, {\n thread: existingThread,\n });\n return;\n }\n\n deleteThreads([threadId]);\n return;\n }\n\n if (action === MessageAction.NUM_UNREAD) {\n const { feed_id, num_unread } = data;\n setUnreadThreadCountByFeedId(feed_id, num_unread);\n }\n };\n\n const handleReadMessage = () => {\n try {\n const threadUpdatesById = {} as Record;\n\n const chatUpdatesByThreadId = {} as Record;\n for (let index = 0; index < queueReadActionsRef.current.length; index++) {\n const { action, data, threadId } = queueReadActionsRef.current[index];\n\n if (action === MessageAction.UPDATE) {\n const { num_unread, chat_id, bits } = data as Partial;\n\n if (num_unread || num_unread === 0 || bits) {\n threadUpdatesById[threadId] = {\n read: {\n num_unread: num_unread,\n bits: bits,\n },\n };\n }\n\n if (threadId && chat_id) {\n chatUpdatesByThreadId[threadId] = chat_id;\n }\n }\n\n if (action === MessageAction.INSERT) {\n const { num_unread, chat_id, bits } = data as Partial;\n if (num_unread || num_unread === 0 || bits) {\n threadUpdatesById[threadId] = {\n read: {\n num_unread: num_unread,\n bits: bits,\n },\n };\n }\n\n if (threadId && chat_id) {\n chatUpdatesByThreadId[threadId] = chat_id;\n }\n\n if (chat_id) {\n threadUpdatesById[threadId] = {\n read: {\n chat_id,\n },\n };\n }\n }\n }\n\n // Do bulk updates\n\n updateThreadsById(threadUpdatesById);\n setBulkReadUntilByThreadId(chatUpdatesByThreadId);\n } catch (error) {\n console.error(\"error :\", error);\n }\n queueReadActionsRef.current = [];\n return;\n };\n const debouncedHandleReadMessage = useDebounce(handleReadMessage, 1000);\n\n const handleUsersMessage = ({\n action,\n data: user,\n }: {\n action: MessageAction;\n data: StructUser;\n }) => {\n if (session?.user?.id === user.id && action === MessageAction.UPDATE) {\n updateSessionUser(user);\n }\n };\n\n const handleOrgsMessage = ({\n action,\n data: organisation,\n }: {\n action: MessageAction;\n data: StructOrganisation;\n }) => {\n if (action === MessageAction.UPDATE) {\n updateOrganisation(organisation);\n }\n };\n\n const handleFeedsMessage = ({\n action,\n data,\n }: {\n action: MessageAction;\n data: StructFeed;\n }) => {\n if (action === MessageAction.INSERT) {\n setFeed(data);\n }\n if (action === MessageAction.UPDATE) {\n updateFeed(data);\n }\n if (action === MessageAction.DELETE) {\n deleteStoreFeed(data.id);\n if (globalStore.getState().currentFeedId === data.id) {\n setCurrentFeedId(DEFAULT_FEED_ID);\n }\n }\n };\n\n const handleShowBrowserNotification = (chatMessage: StructChatResponse) => {\n const isLoggedInUserAuthor = chatMessage.author_id === session?.user?.id;\n\n if (isLoggedInUserAuthor) {\n return;\n }\n\n const threadsById = getThreadsById();\n\n const thread = threadsById[chatMessage.thread_id];\n const notificationTitle = thread\n ? thread?.subject_plain ?? DEFAULT_NOTIFICATION_MESSAGE\n : DEFAULT_NOTIFICATION_MESSAGE;\n\n const notificationMessage = `${chatMessage.text_plain} - @${chatMessage.author.display_name}`;\n const isMentioned = session?.user?.id\n ? chatMessage.text.includes(session?.user?.id)\n : false;\n\n const avatarId = chatMessage.author.avatar_id;\n\n events.emit(TRIGGER_NOTIFICATION, {\n title: notificationTitle,\n options: { body: notificationMessage, icon: getAvatarImageURL(avatarId) },\n threadId: chatMessage.thread_id,\n isMentioned: isMentioned,\n });\n };\n\n const handleChatMessage = ({\n action,\n data,\n threadId,\n }: {\n action: MessageAction;\n data: StructChatResponse;\n threadId: StructThread[\"id\"];\n }) => {\n const chatMessage = data as StructChatResponse;\n const { author_id } = chatMessage;\n\n if (\n userTimeoutsRef.current[threadId] &&\n userTimeoutsRef.current[threadId][author_id]\n ) {\n clearTimeout(userTimeoutsRef.current[threadId][author_id]);\n delete userTimeoutsRef.current[threadId][author_id];\n if (Object.keys(userTimeoutsRef.current[threadId]).length === 0) {\n delete userTimeoutsRef.current[threadId];\n }\n removeUserTyping(threadId, author_id);\n }\n\n if (action === MessageAction.INSERT) {\n setChatMessage(threadId, chatMessage);\n insertThreadChatById(threadId, chatMessage);\n\n handleShowBrowserNotification(chatMessage);\n return;\n }\n\n if (action === MessageAction.DELETE) {\n removeThreadChatById(threadId, chatMessage.id);\n deleteChatMessage(threadId, chatMessage.id);\n return;\n }\n\n if (action === MessageAction.UPDATE) {\n updateThreadChatById(threadId, chatMessage.id, data);\n updateChatMessage(threadId, chatMessage);\n return;\n }\n };\n\n const handleThreadMessage = ({\n action,\n data,\n threadId,\n }: {\n action: MessageAction;\n data: StructThread;\n threadId: StructThread[\"id\"];\n }) => {\n if (action === MessageAction.DELETE) {\n // The following event ensures interim state is cleared when a thread is removed from the feed but the thread is still open.\n events.emit(REMOVE_FROM_FEED_KEEP_THREAD_OPEN, {\n thread: null,\n });\n deleteThreads([threadId]);\n return;\n }\n\n if (action === MessageAction.UPDATE) {\n const incomingThread = data as StructThreadResponse;\n if (incomingThread.bits?.deleted || incomingThread.bits?.hidden) {\n // The following event ensures interim state is cleared when a thread is removed from the feed but the thread is still open.\n events.emit(REMOVE_FROM_FEED_KEEP_THREAD_OPEN, {\n thread: null,\n });\n deleteThreads([threadId]);\n return;\n }\n\n const threadsById = getThreadsById();\n const existingThread = threadsById[threadId];\n const isOpenThread = globalStore.getState().openThreadsById[threadId];\n if (!existingThread && !isOpenThread) {\n return;\n }\n\n const customizer = (\n objValue: StructThreadResponse,\n srcValue: StructThreadResponse,\n ) => {\n if (isArray(objValue)) {\n return srcValue;\n }\n };\n\n const thread = mergeWith(\n {},\n existingThread || isOpenThread,\n incomingThread,\n customizer,\n );\n const transformedThread: StructThread = joinThreadData({\n thread,\n organisation,\n });\n if (existingThread) {\n setThreadById(transformedThread);\n } else if (isOpenThread) {\n setOpenThreadById(threadId, transformedThread);\n }\n }\n };\n\n const handleReactionMessage = ({\n action,\n data,\n threadId,\n }: {\n action: MessageAction;\n data: any;\n threadId: StructThread[\"id\"];\n }) => {\n const { chat_id }: { chat_id: StructChat[\"id\"] } = data;\n\n if (action === MessageAction.INSERT) {\n setChatReaction(threadId, chat_id, data);\n return;\n }\n\n if (action === MessageAction.DELETE) {\n deleteChatReaction(threadId, chat_id, data);\n return;\n }\n };\n\n const handlePresenceMessage = ({\n status,\n user_ids,\n }: {\n status: PresenceStatus;\n user_ids: StructUser[\"id\"][];\n }) => {\n if (status === PresenceStatus.ACTIVE) {\n user_ids.forEach((user_id: StructUser[\"id\"]) => {\n addOnlineUserId(user_id);\n });\n return;\n }\n\n if (status === PresenceStatus.AWAY) {\n user_ids.forEach((user_id: StructUser[\"id\"]) => {\n removeOnlineUserId(user_id);\n return;\n });\n }\n };\n\n const clearPingTimeout = () => {\n if (!pingTimeoutRef.current) {\n return;\n }\n\n clearTimeout(pingTimeoutRef.current);\n };\n\n const updateLastTimestamp = () => {\n const now = Date.now();\n if (\n lastPingTimestamp.current &&\n now - lastPingTimestamp.current > REFRESH_RECONNECTION_INTERVAL\n ) {\n setShouldResync(true);\n trackEvent(\"no_ping_received\", {\n deviceId,\n lastPingTimestamp: lastPingTimestamp.current,\n });\n }\n lastPingTimestamp.current = Date.now();\n };\n\n const handleVersionMismatch = (version: string) => {\n console.error(\n \"Received PONG with different version. Attempting to reconnect. \",\n deviceId,\n );\n setShouldResync(true);\n trackEvent(\"version_mismatch\", {\n deviceId,\n version,\n client_version: APP_VERSION,\n });\n };\n\n const handleDesktopVersionMismatch = (version: string) => {\n console.error(\"Received PONG with different desktop version \", deviceId);\n setShouldUpgrade(true);\n trackEvent(\"desktop_version_mismatch\", {\n deviceId,\n version,\n desktop_version: DESKTOP_APP_VERSION,\n client_version: APP_VERSION,\n });\n };\n\n const handlePingMessage = ({\n version,\n desktop_version,\n }: {\n version: string;\n desktop_version: string;\n }) => {\n events.emit(WS_PING_RECEIVED, {});\n\n if (globalStore.getState().shouldResync) {\n setShouldResync(false);\n }\n if (globalStore.getState().shouldUpgrade) {\n setShouldUpgrade(false);\n }\n\n if (version && APP_VERSION && version !== APP_VERSION) {\n handleVersionMismatch(version);\n return;\n }\n\n if (\n DESKTOP_APP_VERSION &&\n desktop_version &&\n DESKTOP_APP_VERSION !== desktop_version\n ) {\n handleDesktopVersionMismatch(desktop_version);\n return;\n }\n updateLastTimestamp();\n };\n\n const handleMessage = useCallback((event: MessageEvent) => {\n const {\n path,\n data,\n error,\n table,\n action,\n thread_id: threadId,\n } = JSON.parse(event.data);\n\n if (path === RealtimeMessagePath.PING) {\n handlePingMessage(data);\n return;\n }\n\n if (path === RealtimeMessagePath.SERVER_FEED) {\n handleServerFeedMessage({ data, action, threadId });\n return;\n }\n\n if (path === RealtimeMessagePath.PRESENCE) {\n handlePresenceMessage(data);\n return;\n }\n\n if (path === RealtimeMessagePath.TYPING) {\n handleTypingMessage(data, threadId);\n return;\n }\n\n if (path === RealtimeMessagePath.SERVER_UPDATE) {\n handleServerUpdateMessage({ type: table, action, data, threadId });\n return;\n }\n }, []);\n\n const handleError = (error: Event) => {\n console.error(\"Realtime Connection Error:\", error, \" \", deviceId);\n setTimeout(() => {\n initializeServerSentEvents();\n }, 5000);\n };\n\n const notifyReconnectionToApp = () => {\n if (!hasPriorConnectionEstablished.current) return;\n events.emit(REALTIME_RECONNECTION_TRIGGERED, {});\n };\n\n const initializeServerSentEvents = () => {\n const isOnline = typeof window !== undefined && window.navigator.onLine;\n if (!isOnline) {\n return;\n }\n\n if (sseInstanceRef.current) {\n console.log(\"Closing existing Realtime connection... \", deviceId);\n sseInstanceRef.current?.close();\n sseInstanceRef.current = null;\n setIsRealtimeConnectionActive(false);\n }\n\n console.log(\"Initializing Realtime connection... \", deviceId);\n\n const url = `${STRUCT_API_URL}/${STRUCT_API_VERSION}/events/${deviceId}`;\n\n try {\n const connection = new EventSource(url, { withCredentials: true });\n\n connection.onopen = handleOpen;\n connection.onmessage = handleMessage;\n connection.onerror = handleError;\n sseInstanceRef.current = connection;\n\n } catch (error) {\n console.error(error, deviceId);\n setIsRealtimeConnectionActive(false);\n }\n };\n\n return {\n initializeRealtimeConnection: initializeServerSentEvents,\n };\n};\n\nexport default useRealtimeEvents;\n","\"use client\";\n\nimport React, { useEffect, useState, useRef } from \"react\";\n\nimport { useAppStore } from \"../store\";\n\nimport NotificationContainer from \"./NotificationContainer\";\nimport CommandMenu from \"../components/CommandMenu/CommandMenuV2\";\nimport { getOrgDetails } from \"../services/organisation\";\nimport { getAllTags } from \"../services/tags\";\nimport { getFeedsAPI } from \"../services/feeds\";\n\nimport { StructFeed } from \"@/app/types/Feed.type\";\n\nimport getSession from \"../utils/getSession\";\n\nimport { getLocalStorageState } from \"@/app/utils/localStorage\";\nimport { Flex } from \"@radix-ui/themes\";\nimport { StructOrganisation } from \"../types/Organisation.type\";\nimport { useApp } from \"../hooks/useApp\";\nimport { FeedModes } from \"../store/App.store\";\nimport Sidebar from \"@/app/components/SideBar/Sidebar\";\nimport { isApp } from \"../constants\";\nimport useOrganisation from \"../hooks/useOrganisation\";\nimport { initTracking, reloadUserPilot } from \"../utils/tracking\";\nimport { usePathname } from \"next/navigation\";\nimport useShallowNavigation from \"../hooks/useShallowNavigation\";\nimport { usePresence } from \"../hooks/usePresence\";\nimport useRealtimeEvents from \"../hooks/useServerSentEvents\";\n\ninterface LayoutContainerProps {\n children: React.ReactNode;\n}\n\nconst LayoutContainer = ({ children }: LayoutContainerProps) => {\n const [isLoaded, setLoaded] = useState(false);\n const localState = getLocalStorageState();\n const { handleSwitchOrganisation } = useOrganisation();\n\n const { featureToggles } = useApp();\n\n const olderSessionOrgId = useRef(\"\");\n\n const organisation = useAppStore((state) => state.organisation);\n const setOrganisation = useAppStore((state) => state.setOrganisation);\n const setTags = useAppStore((state) => state.setTags);\n const setFeeds = useAppStore((state) => state.setFeeds);\n const setSession = useAppStore((state) => state.setSession);\n\n const currentSession = useAppStore((state) => state.session);\n\n const pathname = usePathname();\n const { currentPath } = useShallowNavigation();\n\n const setFeedMode = useAppStore((state) => state.setFeedMode);\n const isAuthenticatedWithCorrectOrg = useAppStore(\n (state) => state.isAuthenticatedWithCorrectOrg,\n );\n\n const organisationId = organisation.id;\n\n usePresence();\n\n const { initializeRealtimeConnection } = useRealtimeEvents();\n\n const init = async () => {\n // This logic helps prevent multiple calls to the API when org is set for the first time\n if (olderSessionOrgId.current === organisationId) return;\n setLoaded(false);\n const session = await getSession();\n const isAuthenticatedWithCorrectOrg = Boolean(session?.user?.id);\n\n // Auto switch organisation, if user is part of multiple organisations\n if (!session?.user && (session?.orgs?.length ?? 0) > 0 && isApp) {\n await handleSwitchOrganisation(session?.orgs[0] as StructOrganisation);\n return;\n }\n\n const [organisation, tags] = await Promise.all([\n getOrgDetails(),\n getAllTags(),\n ]);\n\n const feeds: StructFeed[] | null = isAuthenticatedWithCorrectOrg\n ? await getFeedsAPI()\n : null;\n\n if (organisation) {\n setOrganisation(organisation);\n olderSessionOrgId.current = organisation.id;\n }\n\n if (tags) {\n setTags([...tags]);\n }\n\n if (feeds) {\n setFeeds([...feeds]);\n }\n\n if (session) {\n setSession({ ...session });\n }\n\n setLoaded(true);\n };\n\n const initializeFeedLayout = () => {\n const localStateFeedMode = localState.feedMode;\n\n if (localStateFeedMode === undefined) {\n return;\n }\n if (featureToggles.isLiveViewEnabled) {\n setFeedMode(localStateFeedMode);\n return;\n }\n\n if (localStateFeedMode === FeedModes.LIVE) {\n setFeedMode(FeedModes.FORUM);\n return;\n }\n };\n\n useEffect(() => {\n init();\n }, [organisationId]);\n\n useEffect(() => {\n initializeFeedLayout();\n }, [featureToggles?.isLiveViewEnabled, organisationId]);\n\n useEffect(() => {\n if (!currentSession?.email || !organisationId) {\n return;\n }\n\n initTracking(\n currentSession?.user?.id,\n currentSession?.user?.display_name,\n currentSession?.email,\n organisationId,\n );\n }, [currentSession?.email, organisationId]);\n\n useEffect(() => {\n reloadUserPilot();\n }, [pathname, currentPath]);\n\n useEffect(() => {\n if (!isAuthenticatedWithCorrectOrg) return;\n initializeRealtimeConnection();\n }, [isAuthenticatedWithCorrectOrg]);\n\n if (!isLoaded) {\n return (\n \n

Loading...

\n
\n );\n }\n\n return (\n \n \n \n \n {children}\n
\n \n );\n};\n\nexport default LayoutContainer;\n","\"use client\";\nimport React, { ReactNode, useState } from \"react\";\nimport useDesktopMode from \"../hooks/useDesktopMode\";\n\nconst THRESHOLD = 5;\n\nconst MobileViewContainer = ({ children }: { children: ReactNode }) => {\n const [clickCounter, setClickCounter] = useState(0);\n const { isDesktop } = useDesktopMode();\n if (!isDesktop && clickCounter < THRESHOLD) {\n return (\n \n

setClickCounter((ctr) => ctr + 1)}>\n Struct is only available on Desktop.\n

\n\n

Mobile view is coming soon

\n \n );\n }\n return children;\n};\n\nexport default MobileViewContainer;\n","import { IconType } from \"@/app/components/icons/icon.type\";\n\nconst PenIllustration = ({ style, className }: IconType) => (\n \n \n \n \n \n \n);\n\nexport default PenIllustration;\n","import { STRUCT_API_VERSION } from \"@/app/constants\";\nimport { structAPIFetchClient } from \"@/app/services/client\";\nimport { StructImage } from \"@/app/types/Image.type\";\n\nconst UPLOAD_ENDPOINT = `/${STRUCT_API_VERSION}/upload`;\n\nexport const uploadImageAPI = async (file: File): Promise => {\n const formData = new FormData();\n formData.append(\"file\", file);\n\n const response = await structAPIFetchClient(UPLOAD_ENDPOINT, {\n method: \"POST\",\n body: formData,\n });\n\n if (!response.ok) {\n throw new Error(\"Network response was not ok\");\n }\n\n const { data } = await response.json();\n return data;\n};\n","import { useCallback } from \"react\";\nimport { uploadImageAPI } from \"@/app/services/image\";\nimport { useAppStore } from \"../store\";\n\nconst useFiles = () => {\n const organisation = useAppStore((state) => state.organisation);\n\n const { id: organisationId } = organisation;\n\n const uploadFile = useCallback(\n (file: File) =>\n uploadImageAPI(file).catch((error) => {\n console.log(error);\n }),\n [organisationId],\n );\n\n return {\n uploadFile,\n };\n};\n\nexport default useFiles;\n","import { useCallback } from \"react\";\nimport { resetAllStores, useAppStore } from \"../store\";\nimport {\n switchOrganisation,\n updateInviteSecretAPI,\n} from \"@/app/services/organisation\";\nimport { StructOrganisation } from \"@/app/types/Organisation.type\";\nimport { removeAllEvents } from \"../utils/events\";\nimport { useRouter } from \"next/navigation\";\n\nconst useOrganisation = () => {\n const organisationId = useAppStore((state) => state.organisation.id);\n const setOrganisation = useAppStore((state) => state.setOrganisation);\n const router = useRouter();\n\n const updateInviteSecret =\n useCallback(async (): Promise => {\n try {\n const secret = await updateInviteSecretAPI();\n return secret;\n } catch (error) {\n console.log(error);\n throw error;\n }\n }, [organisationId]);\n\n const handleSwitchOrganisation = async (organisation: StructOrganisation) => {\n try {\n const response = await switchOrganisation({\n organisationId: organisation.id,\n });\n if (response.ok) {\n resetAllStores();\n removeAllEvents();\n setOrganisation(organisation);\n router.push(\"/\");\n }\n } catch (error) {\n console.log(error);\n throw error;\n }\n };\n\n return {\n updateInviteSecret,\n handleSwitchOrganisation,\n };\n};\n\nexport default useOrganisation;\n","\"use client\";\nimport React, { useEffect } from \"react\";\nimport { ThemeProvider as NextThemeProvider, useTheme } from \"next-themes\";\n\ninterface ThemeProviderProps {\n children: React.ReactNode;\n}\n\nconst ThemeProvider = ({ children }: ThemeProviderProps) => {\n const { theme, setTheme } = useTheme();\n\n useEffect(() => {\n const systemTheme = window.matchMedia(\"(prefers-color-scheme: dark)\");\n if ((systemTheme.matches && theme === \"system\") || theme === \"dark\") {\n setTheme(\"dark\");\n } else {\n setTheme(\"light\");\n }\n }, [setTheme, theme]);\n\n return {children};\n};\n\nexport default ThemeProvider;\n","import { structAPIFetchClient } from \"@/app/services/client\";\nimport { STRUCT_API_VERSION } from \"@/app/constants\";\nimport { StructTag } from \"@/app/types/Tag.type\";\n\nexport const sendTypingStatusAPI = (threadId: string) => {\n const ENDPOINT = `/${STRUCT_API_VERSION}/typing`;\n return structAPIFetchClient(ENDPOINT, {\n method: \"PUT\",\n body: JSON.stringify({\n thread_id: threadId,\n }),\n })\n .then((response) => {\n if (!response.ok) {\n throw new Error(\"Network response was not ok\");\n }\n return response.json();\n })\n .then(({ data }) => data as StructTag[]);\n};\n\nexport const sendPresenceAPI = () => {\n const ENDPOINT = `/${STRUCT_API_VERSION}/presence`;\n return structAPIFetchClient(ENDPOINT, {\n method: \"PUT\",\n body: JSON.stringify({}),\n })\n .then((response) => {\n if (!response.ok) {\n throw new Error(\"Network response was not ok\");\n }\n return response.json();\n })\n .then(({ data }) => data as StructTag[]);\n};\n","import { StructOrganisation } from \"@/app/types/Organisation.type\";\nimport { structAPIFetchClient } from \"./client\";\nimport { STRUCT_API_VERSION } from \"@/app/constants\";\n\nconst ORGANISATION_ENDPOINT = `/${STRUCT_API_VERSION}/org`;\nconst INVITE_SECRET_ENDPOINT = `/${STRUCT_API_VERSION}/join-secret`;\n\nexport const getOrgDetails = () => {\n return structAPIFetchClient(ORGANISATION_ENDPOINT, {\n method: \"GET\",\n })\n .then((response) => {\n if (!response.ok) {\n throw new Error(\"Network response was not ok\");\n }\n return response.json();\n })\n .then((data) => {\n return data as StructOrganisation;\n });\n};\n\ntype SwitchOrganisationResponse = {\n ok: boolean;\n};\n\nexport const switchOrganisation = ({\n organisationId,\n}: {\n organisationId?: StructOrganisation[\"id\"];\n}) => {\n return structAPIFetchClient(`/switch/${organisationId}`, {\n method: \"GET\",\n })\n .then((response) => {\n if (!response.ok) {\n throw new Error(\"Network response was not ok\");\n }\n return response.json();\n })\n .then((data) => {\n return data as SwitchOrganisationResponse;\n });\n};\n\nexport const updateOrgDetails = ({\n hostname = undefined,\n name = undefined,\n title = undefined,\n description = undefined,\n cta_url = undefined,\n ga_id = undefined,\n javascript = undefined,\n avatar_id = undefined,\n}: {\n hostname?: string;\n name?: string;\n title?: string;\n description?: string;\n cta_url?: string;\n ga_id?: string;\n javascript?: string;\n avatar_id?: string;\n}) => {\n return structAPIFetchClient(ORGANISATION_ENDPOINT, {\n method: \"PUT\",\n body: JSON.stringify({\n hostname,\n name,\n title,\n description,\n cta_url,\n ga_id,\n javascript,\n avatar_id,\n }),\n });\n};\n\nexport const updateInviteSecretAPI = () =>\n structAPIFetchClient(INVITE_SECRET_ENDPOINT, {\n method: \"PUT\",\n body: JSON.stringify({}),\n })\n .then((response) => {\n if (!response.ok) {\n throw new Error(\"Network response was not ok\");\n }\n return response.json();\n })\n .then(({ data }) => data as StructOrganisation);\n","import { StructUser } from \"@/app/types/Thread.type\";\nimport { STRUCT_API_VERSION } from \"@/app/constants\";\nimport { AvatarListResponse } from \"../types/Avatar.type\";\nimport { structAPIFetchClient } from \"./client\";\nimport { StructChannel } from \"../types/Channel.type\";\n\nconst USERS_ENDPOINT = `/${STRUCT_API_VERSION}/users`;\n\ninterface GetUserAPI {\n query?: string;\n channelId?: string;\n bits?: string;\n sortBy?: string;\n orderBy?: string;\n limit?: number;\n offset?: number;\n}\n\nexport const getAllUsersAPI = ({\n query,\n channelId,\n bits,\n sortBy,\n orderBy,\n limit,\n offset,\n}: GetUserAPI) => {\n const params = new URLSearchParams();\n if (query) params.append(\"q\", query);\n if (channelId) params.append(\"channel_id\", channelId);\n if (bits) params.append(\"bits\", bits.toString());\n if (sortBy) params.append(\"sort_by\", sortBy);\n if (orderBy) params.append(\"order_by\", orderBy);\n if (limit) params.append(\"limit\", limit.toString());\n if (offset) params.append(\"offset\", offset.toString());\n\n return structAPIFetchClient(`${USERS_ENDPOINT}?${params.toString()}`, {\n method: \"GET\",\n })\n .then((response) => {\n if (!response.ok) {\n throw new Error(\"Network response was not ok\");\n }\n return response.json();\n })\n .then(({ data }) => (data || []) as StructUser[]);\n};\n\nexport const getUserAPI = ({ userId }: { userId: string }) => {\n const endpoint = `${USERS_ENDPOINT}/${userId}`;\n return structAPIFetchClient(endpoint, {\n method: \"GET\",\n })\n .then((response) => {\n if (!response.ok) {\n throw new Error(\"Network response was not ok\");\n }\n return response.json();\n })\n .then((data) => data as StructUser);\n};\n\nexport const updateUserAPI = ({ user }: { user: Partial }) => {\n return structAPIFetchClient(USERS_ENDPOINT, {\n method: \"PUT\",\n // @ts-ignore\n headers: {\n \"Content-Type\": \"application/json\",\n },\n body: JSON.stringify(user),\n })\n .then((response) => {\n if (!response.ok) {\n throw new Error(\"Network response was not ok\");\n }\n return response.json();\n })\n .then(({ data }) => data as StructUser);\n};\n\ninterface UpdateUserChannelAPI {\n channel_id: StructChannel[\"id\"];\n user_ids: StructUser[\"id\"][];\n action: \"add\" | \"remove\";\n}\n\nexport const updateUsersChannelAPI = (payload: UpdateUserChannelAPI) => {\n return structAPIFetchClient(`${USERS_ENDPOINT}.channel`, {\n method: \"POST\",\n body: JSON.stringify(payload),\n })\n .then((response) => {\n if (!response.ok) {\n throw new Error(\"Network response was not ok\");\n }\n return response.json();\n })\n .then(({ channel }) => channel as StructChannel);\n};\n\nexport const getAvatarListAPI = () => {\n const endpoint = `/${STRUCT_API_VERSION}/anons`;\n return structAPIFetchClient(endpoint, {\n method: \"GET\",\n })\n .then((response) => {\n if (!response.ok) {\n throw new Error(\"Network response was not ok\");\n }\n return response.json();\n })\n .then((data) => data as AvatarListResponse);\n};\n","// extracted by mini-css-extract-plugin","// extracted by mini-css-extract-plugin","// extracted by mini-css-extract-plugin","// extracted by mini-css-extract-plugin","// extracted by mini-css-extract-plugin\nmodule.exports = {\"dialog\":\"CommandMenu_dialog__Z6C5T\",\"group\":\"CommandMenu_group__tQK0k\",\"input\":\"CommandMenu_input__ZA5Yl\",\"shortcutContainer\":\"CommandMenu_shortcutContainer__ZE_cF\",\"shortcut\":\"CommandMenu_shortcut__t_sdR\",\"label\":\"CommandMenu_label__s0WDy\",\"spinner\":\"CommandMenu_spinner__dKXhM\",\"list\":\"CommandMenu_list__8Qi6g\",\"emptyList\":\"CommandMenu_emptyList__ijYJ5\",\"tags\":\"CommandMenu_tags___60dk\",\"empty\":\"CommandMenu_empty__s3uew\",\"threadItem\":\"CommandMenu_threadItem__W6b_t\",\"title\":\"CommandMenu_title__v5X5k\",\"description\":\"CommandMenu_description__ODE3H\",\"mentionPanelThreadItem\":\"CommandMenu_mentionPanelThreadItem__UjlbY\"};","// extracted by mini-css-extract-plugin\nmodule.exports = {\"commandMenuItem\":\"CommandMenuItem_commandMenuItem__oODe1\",\"itemIcon\":\"CommandMenuItem_itemIcon__jC_07\",\"itemCheckbox\":\"CommandMenuItem_itemCheckbox__UBCV1\",\"count\":\"CommandMenuItem_count__ubIL8\",\"kbdContainer\":\"CommandMenuItem_kbdContainer___DCBH\",\"kbd\":\"CommandMenuItem_kbd__sBhxl\"};","// extracted by mini-css-extract-plugin\nmodule.exports = {\"createFeedBtnContainer\":\"CreateFeed_createFeedBtnContainer__ppHt4\",\"emojiBox\":\"CreateFeed_emojiBox__ZTTwX\"};","// extracted by mini-css-extract-plugin\nmodule.exports = {\"keyboardShortcut\":\"KeyboardShortcut_keyboardShortcut__P963K\",\"startIcon\":\"KeyboardShortcut_startIcon__i9wMV\"};","// extracted by mini-css-extract-plugin\nmodule.exports = {\"orgItem\":\"OrgSwitcher_orgItem__Ib_FN\",\"icon\":\"OrgSwitcher_icon__8aohK\"};","// extracted by mini-css-extract-plugin\nmodule.exports = {\"wsStatusDot\":\"RealtimeIndicator_wsStatusDot__PBj07\",\"animate-indicator\":\"RealtimeIndicator_animate-indicator__Fi4Aa\",\"wsStatusLabel\":\"RealtimeIndicator_wsStatusLabel__SEt59\",\"animate-text\":\"RealtimeIndicator_animate-text__bjKn_\"};","// extracted by mini-css-extract-plugin\nmodule.exports = {\"sidebar\":\"SideBar_sidebar__konMQ\",\"open\":\"SideBar_open__naMRP\",\"menuButtonContainer\":\"SideBar_menuButtonContainer__YQX3p\",\"menuButton\":\"SideBar_menuButton__HIWIM\",\"menuButtonPopoverTrigger\":\"SideBar_menuButtonPopoverTrigger__mZv_7\",\"menuLink\":\"SideBar_menuLink__GXORt\"};","// extracted by mini-css-extract-plugin\nmodule.exports = {\"userBlock\":\"UserBlock_userBlock__FlvpU\"};","// extracted by mini-css-extract-plugin\nmodule.exports = {\"loader\":\"Spinner_loader__PV6Bb\",\"rotation\":\"Spinner_rotation__yBUXy\",\"default\":\"Spinner_default__hA88M\"};","// extracted by mini-css-extract-plugin\nmodule.exports = {\"tag\":\"Tag_tag__hhxSu\",\"label\":\"Tag_label__36ZxV\",\"isInteractive\":\"Tag_isInteractive__b9B2m\",\"closeButtonContainer\":\"Tag_closeButtonContainer__r95Ix\",\"closeButton\":\"Tag_closeButton__nkHsu\",\"closeButtonIcon\":\"Tag_closeButtonIcon__bJSGF\",\"startIcon\":\"Tag_startIcon__fR4fm\",\"endIcon\":\"Tag_endIcon__4zHOb\"};","// extracted by mini-css-extract-plugin\nmodule.exports = {\"profilePageContainer\":\"ProfileDetails_profilePageContainer__VvB1F\",\"halfColumn\":\"ProfileDetails_halfColumn__ubOiN\",\"messageBtn\":\"ProfileDetails_messageBtn__RF4uT\",\"threadsBtn\":\"ProfileDetails_threadsBtn__4ZhI_\",\"profilePic\":\"ProfileDetails_profilePic__9_tHD\"};","// extracted by mini-css-extract-plugin\nmodule.exports = {\"profilePicturePreview\":\"ProfilePicture_profilePicturePreview__pDtmF\",\"imagePreview\":\"ProfilePicture_imagePreview__4Favb\",\"imagePreviewContent\":\"ProfilePicture_imagePreviewContent__tCTHJ\"};","// extracted by mini-css-extract-plugin\nmodule.exports = {\"notoEmoji\":\"emoji_notoEmoji__ydFXS\"};"],"names":["Promise","resolve","then","__webpack_require__","bind","t","RealtimeMessagePath","MessageType","MessageAction","PresenceStatus","HOC_NotificationContainer","children","param","audioRef","useRef","featureToggles","useApp","getCurrentPath","navigateToPath","useShallowNavigation","isAuthenticatedWithCorrectOrg","useAppStore","state","isNotificationSupported","window","useEffect","isNotificationEnabled","isChatEnabled","Notification","requestPermission","throttledPlayAudio","throttle","current","play","leading","trailing","triggerNotification","title","options","threadId","isMentioned","console","log","getLocalStorageState","currentlyOpenThreadId","isAppHidden","document","hidden","isAppFocused","hasFocus","isIncomingThreadOpen","isNotificationPermissionGranted","permission","shouldShowNotification","notification","concat","addEventListener","focus","events","on","TRIGGER_NOTIFICATION","off","jsx_runtime","jsxs","React","jsx","audio","ref","src","preload","components_KeyboardShortcut","label","className","startIcon","size","kbd","styles","join","StartIcon","Text","weight","style","color","icons_CloseIcon","svg","viewBox","xmlns","fill","path","d","stroke","strokeWidth","strokeLinecap","strokeLinejoin","components_Tag","onRemove","onClick","endIcon","div","EndIcon","button","event","stopPropagation","CloseIcon","CommandMenu_CommandMenuItem","value","onSelect","icon","shortcut","isChecked","hasCheckbox","tagValue","Command","Item","input","checked","onChange","type","Icon","undefined","Tag","length","map","KeyboardShortcut","CommandMenu_NoResultsItem","search","useCommandState","CommandMenuItem","MagnifyingGlassIcon","components_Spinner","span","getConvertedSearchResults","searchResults","subjectHtml","toHTML","hit","subject","summaryHtml","summary","hooks_useSearch","isSearching","setIsSearching","useState","results","setResults","searchQuery","setSearchQuery","debouncedSearch","debounce","query","sorting","feedTimeRange","globalStore","getState","hits","formattedText","getSearchResultsAPI","q","sortBy","from","Date","now","to","convertedSearchResults","error","icons_InsertThreadLinkIcon","width","height","rect","x","y","rx","fillRule","clipRule","strokeMiterlimit","SEPARATOR","Container","isOpenViaMentionPanel","Flex","direction","backgroundColor","borderRadius","boxShadow","p","gap","align","InsertThreadLinkIcon","CommandMenuV2","filters","setFiltersByType","setSorting","stateRef","userInput","isLoaded","isCommandMenuVisible","isCommandMenuVisibleViaMentionPanel","setIsCommandMenuVisible","chatBoxCommands","areFiltersApplied","useAllFilters","setSearchResults","formattedSearchQuery","useSearch","down","e","key","metaKey","ctrlKey","preventDefault","removeEventListener","handleKeyDown","isInputOrTextarea","includes","target","tagName","resetSearchResults","handleCloseDialog","handleOpenThread","handleThreadEmbed","toLowerCase","id","find","item","emit","EMBED_THREAD_FROM_CMDK","isThreadListEmpty","body","querySelector","pointerEvents","Dialog","open","onOpenChange","shouldFilter","onKeyUp","_selectedItem_dataset_value","_selectedItem_dataset","_selectedItem_dataset_value_split","selectedItem","dataset","split","Event","dispatchEvent","Theme","accentColor","grayColor","radius","panelBackground","position","BasicEditor","placeholder","cancel","channels","users","tags","inputSearchQuery","processSearchQuery","canCreateTags","Spinner","List","Fragment","Loading","justify","wrap","HomeIcon","scrollTop","documentElement","reactions","num_chats","messageCount","created_at","createdAt","updated_at","updatedAt","cursor","dangerouslySetInnerHTML","__html","FeedItemFooter","createdDate","DateTime","fromSeconds","toFormat","lastUpdated","formatTimeAgo","Empty","NoResultsItem","CHANNELS_ENDPOINT","STRUCT_API_VERSION","getAllTags","structAPIFetchClient","method","response","ok","json","data","WHOAMI_ENDPOINT","whoamiAPI","status","getSession","user","isEmpty","orgs","isModerator","Boolean","bits","user_moderator","isAdmin","user_admin","isOwner","user_owner","SideBar_OrgSwitcher","session","handleSwitchOrganisation","useOrganisation","handleSwitchOrganization","organization","currentOrganisationId","org_id","my","maxHeight","overflowY","filter","org","Avatar","getAvatarImageURL","avatar_id","fallback","name","alt","pr","ArrowRightIcon","formatDate","fromJSDate","date","toLocaleString","DATE_FULL","OrgInfo_ReadOnlyDialog","organisation","onClose","Root","defaultOpen","Content","maxWidth","mt","mb","ChatBubbleIcon","num_threads","px","py","Link1Icon","hostname","PenIllustration","description","Close","Button","variant","useFileUpload","isSingleSelect","props","selectedFiles","setSelectedFiles","fileUrls","setFileUrls","uploadFile","useFiles","handleFiles","files","previewImages","reader","FileReader","readerPromise","readAsDataURL","file","onload","url","result","loadedPreviews","all","preview","isLoading","prevFiles","uploadPromises","uploadedFile","handle","catch","handleFileSelect","Array","ProfilePicture_ProfilePicturePreview","img","opacity","FileUploadAnimation","OrgInfo_EditableDialog","setOrganisation","setData","isSecretDialogVisible","setIsSecretDialogVisible","joinSecret","join_secret","location","baseUrl","protocol","host","inviteLink","save","difference","omitBy","valueB","isEqual","updateOrgDetails","handleUpdateSecret","updatedOrganisation","updateInviteSecretAPI","grow","TextField","Input","autoComplete","ev","as","Grid","columns","TextArea","ProfilePicture","fallbackSrc","onSaveClick","pt","borderTop","paddingTop","marginTop","padding","border","Link","href","whiteSpace","overflow","textOverflow","navigator","clipboard","writeText","CopyIcon","SymbolIcon","mr","disabled","AlertDialog","Title","Description","Cancel","Action","profilePicSrc","setProfilePicSrc","fileInputRef","createRef","ProfilePicturePreview","click","CameraIcon","accept","display","OrgInfo","EditableDialog","ReadOnlyDialog","initPostHog","userId","email","userName","orgId","EXCLUDE_TRACKING_ORG_IDS","posthog","init","api_host","identify","email_id","user_id","initUserpilot","Userpilot","initialize","reloadUserPilot","isProduction","reload","initTracking","trackEvent","properties","info","capture","SideBar_RealtimeIndicator","dotRef","labelRef","setShouldResync","timeoutRef","handlePing","resetTimer","classList","remove","scrollBy","add","clearTimeout","setTimeout","deviceId","WS_PING_RECEIVED","APP_VERSION","DESKTOP_APP_VERSION","OrgHeader","paddingBottom","userSelect","ml","RealtimeIndicator","SideBar_Header","orgInfoDialogOpen","setOrgInfoDialogOpen","hasAccessToMultipleOrganisations","Popover","Trigger","justifyContent","DotsVerticalIcon","borderBottom","flex","background","MixerHorizontalIcon","InfoCircledIcon","isApp","OrgSwitcher","OrgInfoDialog","icons_FeedStackIcon","SideBar_VideoTutorialButton","a","textDecoration","PlayIcon","fontSize","AvatarVariantSelector","isOpen","avatarVariantList","onAvatarSelect","selectedAvatarPrefix","ArrowLeftIcon","avatar","AvatarSelector","avatarList","setAvatarList","selectedAvatar","setSelectedAvatar","getAvatarList","avatarListResponse","getAvatarListAPI","IconButton","Cross1Icon","Slot","AnimatePresence","mode","Object","keys","avatarFirstName","capitalize","motion","layout","initial","animate","exit","isAvatarSelectorOpen","setIsAvatarSelectorOpen","AvatarIcon","avatarName","getTime","tz","toLocaleTimeString","timeZone","timeZoneName","hour","minute","GuestProfile","onlineUserIds","router","useRouter","isOnline","bottom","right","DotFilledIcon","ClockIcon","EnvelopeClosedIcon","push","FileIcon","ProfileDetails","isSelf","formValues","handleFormValueChange","formActive","setFormActive","handleFormActive","display_name","avatarId","real_name","onFocus","Pencil2Icon","Select","time_zone","onValueChange","val","timezones","index","about_me","ProfileDetailsDialog","logOut","loggedInUserId","setFormValues","saveUserData","updateUserAPI","ExitIcon","SideBar_UserBlock","avatarSrc","isProfileDialogOpen","setIsProfileDialogOpen","marginRight","CreateFeedDialog_NameEmojiStep","feedName","emoji","selectedEmoji","setFeedName","setSelectedEmoji","theme","useTheme","isEmojiPickerOpen","setIsEmojiPickerOpen","required","emojiStyles","FaceIcon","PlusIcon","Picker","onEmojiSelect","native","filterTypes","filterOption","option","NONE_OF","CreateFeedDialog_RefineFilterBlock","selectedItems","allItems","setSelectedItems","excludePlaceholder","onSearch","isFetching","setFetching","noneOfIndex","findIndex","kind","excludedItems","values","updateSelectedItems","items","updateType","newKind","removeItemsFromKind","splice","addItemsToKind","debounceSearch","useMemo","loadOptions","kindIndex","filterType","canRemove","defaultValue","Group","Separator","AntSelect","placement","dropdownAlign","adjustX","adjustY","dropdownStyle","notFoundContent","Spin","getPopupContainer","getElementById","CrossSmallIcon","Badge","toggles","selector","getChannelsAndUsersFromEntityMap","entityMap","entityIds","entityId","startsWith","EntityIDMap","Channel","User","Row","count","CreateFeedDialog_RefineFiltersStep","localFiltersState","updateLocalFiltersState","setChannels","setUsers","fetchMentions","ids","getMentions","uniqBy","prevChannels","prevUsers","updateState","entity","updateBits","set","Switch","onCheckedChange","RefineFilterBlock","ChannelGroupPeopleIcon","channel","HashtagIcon","tag","Callout","highContrast","INITIAL_LOCAL_FILTERS_STATE","feed_dm","feed_unread","thread_bookmarked","CreateFeedDialog_CreateEditFeedDialog","handleClose","onSubmit","localFilters","setLocalFiltersState","cloneDeep","newState","newFilters","NameEmojiStep","RefineFiltersStep","INITIAL_STATE","feedId","CreateFeedDialog_CreateFeedDialog","createFeed","updateFeed","useFeeds","isFeedFormOpen","setIsFeedFormOpen","localState","currentFeedId","setCurrentFeedId","currentPath","openModal","TRIGGER_FEED_FILTERS_MODAL","handleSubmit","payload","FORCE_REFRESH_FEED","CreateEditFeedDialog","SideBar_MobileHeader","handleOpen","isDesktop","useDesktopMode","pl","zIndex","minHeight","top","xs","md","left","HamburgerMenuIcon","SideBar_ResyncButton","shouldResync","SideBar_NotificationToggle","isEnabled","setIsEnabled","Toggle","selectedIndex","setLocalStorageState","SpeakerOffIcon","SpeakerLoudIcon","SideBar_Sidebar","feeds","logIn","removeAllFilters","setTheme","deleteFeed","pathname","usePathname","isAuthenticated","unreadThreadCountByFeedId","shouldUpgrade","isSidebarOpen","setSidebarOpen","DEFAULT_SEARCH_FEED_ID","unshift","shift","feedToDelete","setFeedToDelete","feedMode","DEFAULT_FEED_ID","handleThemeChange","handleSearchButtonClick","handleEditFeed","feed","entity_map","handleSwitchFeed","handleDeleteFeed","hasPageLinksVisible","isMembersPageEnabled","isChannelsPageEnabled","MobileHeader","Header","sm","Cross2Icon","ResyncButton","shallow","isDesktopPlatform","DownloadIcon","alignItems","flexDirection","ScrollArea","scrollbars","Box","isActive","unreadCount","hasUnread","Tooltip","content","disableHoverableContent","side","delayDuration","paddingRight","FeedPreviewSearchIcon","FeedStackIcon","visibility","feed_special","DropdownMenu","TrashIcon","asChild","m","VideoTutorialButton","Card","NotificationToggle","SunIcon","MoonIcon","UserBlock","EnterIcon","CreateFeedDialog","ConfirmationDialog","onCancel","onConfirm","usePresence","presenceIntervalRef","isConnectionActive","isRealtimeConnectionActive","clearInterval","sendPresence","sendPresenceAPI","setInterval","useServerSentEvents","updateChatMessage","setChatMessage","setChatReaction","deleteChatReaction","deleteChatMessage","setBulkReadUntilByThreadId","removeThreadChatById","updateThreadChatById","addUserTyping","removeUserTyping","setThreadById","deleteThreads","insertThreadChatById","updateThreadsById","addOnlineUserId","removeOnlineUserId","getThreadsById","moveThreadToTop","setFeed","updateOrganisation","deleteStoreFeed","setUnreadThreadCountByFeedId","updateSessionUser","setShouldUpgrade","setIsRealtimeConnectionActive","setOpenThreadById","hasPriorConnectionEstablished","sseInstanceRef","userTimeoutsRef","lastPingTimestamp","queueReadActionsRef","handleOffline","close","handleOnline","initializeServerSentEvents","handleVisibilityChange","useCallback","notifyReconnectionToApp","handleTypingMessage","user_name","handleServerUpdateMessage","action","handleChatMessage","handleThreadMessage","handleReactionMessage","debouncedHandleReadMessage","handleFeedsMessage","handleUsersMessage","handleOrgsMessage","handleServerFeedMessage","threadsById","existingThread","thread","merge","transformedThread","joinThreadData","REMOVE_FROM_FEED_KEEP_THREAD_OPEN","feed_id","num_unread","useDebounce","threadUpdatesById","chatUpdatesByThreadId","chat_id","read","handleShowBrowserNotification","isLoggedInUserAuthor","chatMessage","author_id","thread_id","notificationTitle","subject_plain","notificationMessage","text_plain","author","text","incomingThread","deleted","isOpenThread","openThreadsById","mergeWith","objValue","srcValue","isArray","handlePresenceMessage","user_ids","forEach","updateLastTimestamp","handleVersionMismatch","version","client_version","handleDesktopVersionMismatch","desktop_version","handlePingMessage","handleMessage","table","JSON","parse","handleError","REALTIME_RECONNECTION_TRIGGERED","onLine","STRUCT_API_URL","connection","EventSource","withCredentials","onopen","onmessage","onerror","initializeRealtimeConnection","HOC_LayoutContainer","setLoaded","olderSessionOrgId","setTags","setFeeds","setSession","currentSession","setFeedMode","organisationId","useRealtimeEvents","getOrgDetails","getFeedsAPI","initializeFeedLayout","localStateFeedMode","isLiveViewEnabled","FeedModes","LIVE","FORUM","NotificationContainer","CommandMenu","Sidebar","h1","__webpack_exports__","clickCounter","setClickCounter","react_jsx_runtime__WEBPACK_IMPORTED_MODULE_0__","ctr","h3","Z","UPLOAD_ENDPOINT","uploadImageAPI","formData","FormData","append","hooks_useFiles","updateInviteSecret","secret","switchOrganisation","resetAllStores","removeAllEvents","systemTheme","matchMedia","matches","NextThemeProvider","attribute","sendTypingStatusAPI","ENDPOINT","stringify","ORGANISATION_ENDPOINT","INVITE_SECRET_ENDPOINT","cta_url","ga_id","javascript","USERS_ENDPOINT","getAllUsersAPI","channelId","orderBy","limit","offset","params","URLSearchParams","toString","headers","updateUsersChannelAPI","endpoint","module","exports"],"sourceRoot":""}