{"version":3,"file":"static/chunks/1946.89eeaae0b8ae8a57.js","mappings":"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","sources":["webpack://_N_E/./src/components/Workspace/SharingModal/UserSearch.tsx"],"sourcesContent":["import client from \"@/api/client\"\nimport { SharingRole, User } from \"@/api/sdk\"\nimport { UserSquareIcon, XIcon } from \"@/components/shared/icons\"\nimport { useDebounce, useOutsideClick, useToast } from \"@/hooks\"\nimport { useAuth } from \"@/providers/authContext\"\nimport { googleAnalytics } from \"@/lib/gtag\"\nimport { ModalShareType } from \"@/lib/store\"\nimport { capitalize, isEmail } from \"@/utils\"\nimport { useQueryClient } from \"@tanstack/react-query\"\nimport { AnimatePresence, motion } from \"framer-motion\"\nimport { useCallback, useEffect, useMemo, useRef, useState } from \"react\"\nimport InfiniteScroll from \"react-infinite-scroller\"\nimport { twMerge } from \"tailwind-merge\"\nimport IconButton from \"../../IconButton\"\nimport Selector from \"../../Selector\"\nimport ShareUserItem from \"./ShareUserItem\"\nimport { UseSharing } from \"./useSharing\"\nimport Link from \"next/link\"\nimport { cn } from \"@/lib/utils\"\nimport { createAuthenticatedInfiniteQuery } from \"@/queries/createAuthenticatedQuery\"\nimport UserCreated from \"@/components/Explore/Gallery/UserCreated\"\n\nexport interface UserSearchItemProps {\n user: User\n onRemove?: () => void\n}\n\nconst UserSearchItem = ({ user, onRemove }: UserSearchItemProps) => {\n return (\n \n
\n \n

\n {!!user.name ? user.name : user.email}\n

\n \n
\n \n )\n}\n\ninterface UserSearchProps {\n shareId?: string\n accessibleUsers: {\n uid: string\n email: string\n }[]\n ownerEmails: string[]\n typeShare?: ModalShareType\n share: UseSharing[\"share\"]\n className?: string\n searchAll?: boolean\n canShare: boolean\n roleOptions: {\n label: string\n value: string\n }[]\n}\n\nexport const useSearchUserInfinityQuery = createAuthenticatedInfiniteQuery({\n primaryKey: \"users\",\n queryFn: ({ pageParam = 0, queryKey: [_primaryKey, variables] }) =>\n client.api\n .userControllerSearchUser({\n skip: pageParam * 12,\n take: 12,\n search: variables.search,\n })\n .then(res => res.data),\n getNextPageParam: (lastPage, pages) => (lastPage && lastPage.length < 12 ? undefined : pages.length),\n initialPageParam: 0,\n refetchOnWindowFocus: false,\n retry: false,\n flattenFn: data => data,\n})\n\nexport const useSearchAllUserInfinityQuery = createAuthenticatedInfiniteQuery({\n primaryKey: \"users-all\",\n queryFn: ({ pageParam = 0, queryKey: [_primaryKey, variables] }) =>\n client.api\n .userControllerSearchAllUsers({\n skip: pageParam * 12,\n take: 12,\n searchTerm: variables.search,\n })\n .then(res => res.data),\n getNextPageParam: (lastPage, pages) => (lastPage && lastPage.length < 12 ? undefined : pages.length),\n initialPageParam: 0,\n refetchOnWindowFocus: false,\n retry: false,\n flattenFn: data => data,\n})\n\nconst UserSearch = ({\n shareId,\n accessibleUsers,\n typeShare,\n share,\n className,\n searchAll,\n ownerEmails,\n canShare,\n roleOptions,\n}: UserSearchProps) => {\n const { user } = useAuth()\n const qc = useQueryClient()\n\n const [search, setSearch] = useState(\"\")\n const [isOpen, setIsOpen] = useState(false)\n const [isFocused, setIsFocused] = useState(false)\n const [isSharing, setSharing] = useState(false)\n const toast = useToast()\n const [index, setIndex] = useState(0)\n\n const scrollRef = useRef(null)\n const popupRef = useRef(null)\n const inputRef = useRef(null)\n const [selectedRole, setSelectedRole] = useState(roleOptions[1].value as SharingRole)\n const [selectedUsers, setSelectedUsers] = useState<(User & { role?: SharingRole })[]>([])\n\n const debouncedSearch = useDebounce(search, 300)\n\n const {\n flattenData: searchUsers = [],\n fetchNextPage: fetchNextPageUser,\n hasNextPage: hasNextPageUser,\n } = useSearchUserInfinityQuery({\n variables: { search: debouncedSearch },\n enabled: debouncedSearch !== \"\" && !searchAll,\n })\n\n const {\n flattenData: searchAllUsers = [],\n fetchNextPage: fetchNextPageAllUser,\n hasNextPage: hasNextPageAllUser,\n } = useSearchAllUserInfinityQuery({\n variables: { search: debouncedSearch },\n\n enabled: debouncedSearch !== \"\" && searchAll,\n })\n\n const { fetchNextPage, flattenData, hasNextPage } = useMemo(() => {\n if (searchAll) {\n return {\n flattenData: searchAllUsers,\n fetchNextPage: fetchNextPageAllUser,\n hasNextPage: hasNextPageAllUser,\n }\n }\n return {\n flattenData: searchUsers,\n fetchNextPage: fetchNextPageUser,\n hasNextPage: hasNextPageUser,\n }\n }, [\n searchAll,\n searchAllUsers,\n searchUsers,\n fetchNextPageAllUser,\n fetchNextPageUser,\n hasNextPageAllUser,\n hasNextPageUser,\n ])\n\n const mappedUser = useMemo(() => {\n const result = flattenData\n .filter(u => u.uid !== user?.uid)\n .filter(u => !accessibleUsers.map(i => i.uid).includes(u.uid))\n .filter(u => !selectedUsers.map(u => u.uid).includes(u.uid))\n\n if (result.length === 0) {\n const tempParamsUser = {\n uid: `guest-${new Date().getTime()}`,\n email: debouncedSearch.trim(),\n name: debouncedSearch.trim(),\n } as User\n\n return result.concat(tempParamsUser)\n }\n return result\n }, [flattenData, user?.uid, accessibleUsers, selectedUsers, debouncedSearch])\n\n useEffect(() => {\n if (mappedUser.length > 0 && isFocused) {\n setIsOpen(true)\n }\n }, [mappedUser.length, isFocused])\n\n useOutsideClick({\n enabled: isOpen,\n ref: popupRef,\n handler: () => {\n setIsOpen(false)\n },\n })\n\n const handleShare = useCallback(() => {\n const shareUsers = selectedUsers.map(u => {\n if (u.uid.startsWith(\"guest\")) {\n return {\n ...u,\n displayName: u.email,\n email: u.email,\n role: (selectedRole.toLowerCase() ?? SharingRole.Viewer) as SharingRole,\n }\n }\n return {\n displayName: u.name,\n email: u.email,\n photoURL: u.picture,\n userId: u.uid,\n role: (selectedRole.toLowerCase() ?? SharingRole.Viewer) as SharingRole,\n }\n })\n\n if (selectedUsers.some(i => i.uid.startsWith(\"guest\") && selectedRole.toLowerCase() === SharingRole.Editor)) {\n toast({\n status: \"error\",\n title: \"Invalid role\",\n message: [\n \"Guest user can only be viewer:\",\n `${selectedUsers\n .filter(i => i.uid.startsWith(\"guest\"))\n .map(i => i.email)\n .join(\", \")}`,\n ],\n })\n\n return\n }\n\n setSharing(true)\n share(shareUsers, {\n onSuccess: () => {\n setSharing(false)\n setSearch(\"\")\n setSelectedUsers([])\n setSelectedRole(SharingRole.Viewer)\n },\n })\n }, [share, selectedRole, selectedUsers, toast])\n\n const handleAddUser = useCallback(\n (user: User) => {\n if (user.uid.startsWith(\"guest\") && !isEmail(user.email)) {\n toast({\n title: \"Invalid email\",\n message: [\"Please enter a valid email\"],\n status: \"error\",\n })\n return\n }\n\n if (\n selectedUsers.map(i => i.email).includes(user.email) ||\n accessibleUsers.map(i => i.email).includes(user.email)\n ) {\n toast({\n title: \"Duplicate email\",\n message: [\"This email is already in the list\"],\n status: \"error\",\n })\n return\n }\n\n if (ownerEmails.includes(user.email)) {\n toast({\n title: \"Error\",\n message: [\"You can't share with the owner of the item\"],\n status: \"error\",\n })\n return\n }\n\n setSelectedUsers(prev => [...prev, user])\n inputRef.current?.focus()\n setSearch(\"\")\n },\n [ownerEmails, toast, accessibleUsers, selectedUsers],\n )\n\n return (\n
\n
\n
\n
\n \n {selectedUsers.map(user => (\n setSelectedUsers(prev => prev.filter(u => u.uid !== user.uid))}\n />\n ))}\n \n setSearch(e.target.value)}\n className=\"rounded-lg outline-none flex-1 p-1 bg-transparent placeholder:text-atherGray-400\"\n onFocus={() => setIsFocused(true)}\n placeholder=\"Enter name or email\"\n onBlur={() => setIsFocused(false)}\n ref={inputRef}\n onKeyDown={e => {\n if (e.key === \"ArrowDown\" && isFocused && index < mappedUser.length - 1) {\n e.preventDefault()\n setIndex(prev => prev + 1)\n }\n if (e.key === \"ArrowUp\" && isFocused && index > 0) {\n e.preventDefault()\n setIndex(prev => prev - 1)\n }\n if (e.key === \"Enter\" && isFocused && index >= 0) {\n e.preventDefault()\n\n handleAddUser(mappedUser[index])\n setIndex(0)\n }\n }}\n />\n
\n {selectedUsers.length > 0 && (\n
\n {\n googleAnalytics.event({\n action: \"click\",\n category: \"modal\",\n label: `selected_role_${v.id}_${typeShare}_${shareId}`,\n value: 1,\n })\n setSelectedRole(v.id as SharingRole)\n }}\n options={roleOptions.map(r => ({ id: capitalize(r.value), name: capitalize(r.label) }))}\n value={\n roleOptions\n .map(r => ({ id: capitalize(r.value), name: capitalize(r.label) }))\n .find(r => r.id === selectedRole)?.name ?? capitalize(roleOptions[1].label)\n }\n />\n
\n )}\n \n {isOpen && debouncedSearch && mappedUser.length > 0 && (\n \n
\n scrollRef.current}\n useWindow={false}\n loadMore={() => fetchNextPage()}\n hasMore={!!hasNextPage}\n style={{ display: \"flex\", flexDirection: \"column\" }}\n loader={\n
\n Loading...\n
\n }\n >\n
\n {mappedUser.map((user, idx) => (\n {\n handleAddUser(user)\n }}\n className={cn(\"hover:bg-atherGray-800 cursor-pointer p-2\", {\n \"bg-atherGray-800\": index === idx,\n })}\n />\n ))}\n
\n \n
\n \n )}\n
\n
\n\n {\n if (!canShare) return\n\n googleAnalytics.event({\n action: \"click\",\n category: \"modal\",\n label: `share_${typeShare}_${shareId}`,\n value: 1,\n })\n\n handleShare()\n }}\n >\n Add\n \n
\n {selectedUsers.length > 0 && (\n
\n setSelectedRole(v.id as SharingRole)}\n options={roleOptions.map(r => ({ id: r.value, name: capitalize(r.label) }))}\n value={\n roleOptions\n .map(r => ({ id: r.value, name: capitalize(r.label) }))\n .find(r => r.id === selectedRole.toLowerCase())?.name ?? capitalize(roleOptions[1].label)\n }\n />\n
\n )}\n {selectedUsers.find(u => u.uid.startsWith(\"guest\")) && (\n \n Some of these emails are not yet in your workspace. By granting them access to this item, we will\n automatically add them as guests and just can view only. If you want to add them as a workspace member, please\n visit{\" \"}\n \n Member Management page\n \n .\n \n )}\n
\n )\n}\n\nexport default UserSearch\n"],"names":["UserSearchItem","user","onRemove","param","react_jsx_runtime__WEBPACK_IMPORTED_MODULE_0__","jsx","motion","div","className","initial","opacity","scale","animate","exit","transition","duration","jsxs","UserCreated","picture","hiddenName","size","p","name","email","uid","button","type","onClick","XIcon","width","height","useSearchUserInfinityQuery","createAuthenticatedInfiniteQuery","primaryKey","queryFn","pageParam","queryKey","_primaryKey","variables","client","api","userControllerSearchUser","skip","take","search","then","res","data","getNextPageParam","lastPage","pages","length","undefined","initialPageParam","refetchOnWindowFocus","retry","flattenFn","useSearchAllUserInfinityQuery","userControllerSearchAllUsers","searchTerm","__webpack_exports__","ZP","roleOptions","shareId","accessibleUsers","typeShare","share","searchAll","ownerEmails","canShare","useAuth","useQueryClient","setSearch","useState","isOpen","setIsOpen","isFocused","setIsFocused","isSharing","setSharing","toast","useToast","index","setIndex","scrollRef","useRef","popupRef","inputRef","selectedRole","setSelectedRole","value","selectedUsers","setSelectedUsers","debouncedSearch","useDebounce","flattenData","searchUsers","fetchNextPage","fetchNextPageUser","hasNextPage","hasNextPageUser","enabled","searchAllUsers","fetchNextPageAllUser","hasNextPageAllUser","useMemo","mappedUser","result","filter","u","map","i","includes","tempParamsUser","concat","Date","getTime","trim","useEffect","useOutsideClick","ref","handler","handleShare","useCallback","shareUsers","startsWith","displayName","role","toLowerCase","SharingRole","Viewer","photoURL","userId","some","Editor","status","title","message","join","onSuccess","handleAddUser","isEmail","prev","current","focus","twMerge","AnimatePresence","input","onChange","e","target","onFocus","placeholder","onBlur","onKeyDown","key","preventDefault","Selector","listClassName","onSelect","v","googleAnalytics","event","action","category","label","id","options","r","capitalize","find","InfiniteScroll","pageStart","getScrollParent","useWindow","loadMore","hasMore","style","display","flexDirection","loader","idx","ShareUserItem","cn","IconButton","isLoading","disabled","Link","href"],"sourceRoot":""}