{"version":3,"file":"static/chunks/1317-052d51150816940e.js","mappings":"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","sources":["webpack://_N_E/./src/components/Workspace/FoldersV2/MultiImagesSelectBar.tsx","webpack://_N_E/./src/components/Workspace/FoldersV2/useMultiImagesSelect.ts","webpack://_N_E/./src/hooks/useDownloadImages.ts","webpack://_N_E/./src/providers/ImagesProvider.tsx"],"sourcesContent":["import client from \"@/api/client\"\nimport { ContentModerationRating, ImageSimpleDetail, ImageTag, PinnedItemType } from \"@/api/sdk\"\nimport IconButton from \"@/components/IconButton\"\nimport Toggle from \"@/components/Toggle\"\nimport Tooltip from \"@/components/Tooltip\"\nimport {\n DeleteIcon,\n DownloadIcon1,\n FolderMoveIcon,\n FolderTransferIcon,\n PinIcon,\n RefreshIcon,\n TickIcon,\n UnPinIcon,\n} from \"@/components/shared/icons\"\nimport { useToast } from \"@/hooks\"\nimport { useDownloadImages } from \"@/hooks/useDownloadImages\"\nimport { googleAnalytics } from \"@/lib/gtag\"\nimport { usePinMutation, usePublicImageMutation } from \"@/queries\"\nimport { useDeleteItemStore, useMoveItemV2Store, useRecoverItemStore } from \"@/stores\"\nimport classNames from \"classnames\"\nimport { AnimatePresence, motion } from \"framer-motion\"\nimport { Fragment, useCallback, useEffect, useMemo, useRef, useState } from \"react\"\nimport MultiModeActions from \"./TabFolder/MultiModeActions\"\nimport ContextMenuZone from \"./ContextMenuZone\"\n\ninterface MultiImagesSelectBarProps {\n selectedItems: ImageSimpleDetail[]\n offsetLeft?: number\n parentFolderId?: string\n clear: () => void\n selectionMode?: boolean\n className?: string\n isFullActions?: boolean\n recipeId?: string\n children?: React.ReactNode\n}\n\ninterface TagCount extends ImageTag {\n count: number\n}\n\n// const handleGetOnlySimilarTags = (tags: ImageTag[][]) => {\n// //concat all tags\n\n// if (!tags) return []\n\n// //get only similar tags count\n// const similarTagItems = tags.reduce((acc: TagCount[], tag) => {\n// tag?.forEach(t => {\n// const index = acc.findIndex(a => a.id === t.id)\n// if (index === -1) {\n// acc.push({ ...t, count: 1 })\n// } else {\n// acc[index].count = acc[index].count + 1 || 0\n// }\n// })\n// return acc\n// }, [])\n\n// const maxCountTag = similarTagItems.filter(tag => tag.count === tags.length)\n// return maxCountTag\n// }\n\n// const AddTagContainer = ({ selectedImages }: { selectedImages: ImageSimpleDetail[] }) => {\n// const [tags, setTags] = useState([])\n// const [isAdd, setIsAdd] = useState(false)\n\n// const onAddTagSuccess = (tempId: number, newTag: string) => {\n// setTags([\n// ...tags,\n// {\n// id: tempId,\n// name: newTag,\n// },\n// ])\n// }\n\n// const onAddTagError = (tempId: number, error: string) => {\n// setTags(tags.filter(tag => tag.id !== tempId))\n// }\n\n// const toast = useToast()\n\n// const { mutate: mutateUntag } = useMutation({\n// mutationFn: ({ imageIds, tagId }: { imageIds: string[]; tagId: number }) =>\n// client.api.tagsControllerUntagImage({\n// imageIds,\n// tagIds: [tagId],\n// }),\n// onSuccess: (_, { imageIds }) => {\n// toast({\n// status: \"success\",\n// title: \"Tag removed successfully\",\n// message: [`Removed tags for ${imageIds.length} selected images successfully!`],\n// })\n// },\n// onMutate: ({ tagId }) => {\n// setTags(tags.filter(tag => tag.id !== tagId))\n// },\n// onSettled: () => {\n// refetchImagesFolder()\n// },\n// })\n\n// const handleUnTag = (tagId: number) => {\n// mutateUntag({ imageIds: selectedImages.map(image => image.id), tagId })\n// }\n\n// useEffect(() => {\n// if (selectedImages.length === 0) return\n// const similarTagItems = handleGetOnlySimilarTags(selectedImages.map(image => image.tags))\n\n// setTags(\n// similarTagItems.map(tag => ({\n// id: tag.id,\n// name: tag.name,\n// })),\n// )\n// }, [selectedImages, isAdd])\n\n// return (\n// <>\n//
\n// setIsAdd(prev => !prev)}\n// className=\"w-8 h-8 p-0 hover:bg-atherGray-700 active:bg-atherGray-800 text-atherGray-300 hover:text-atherGray-0\"\n// colorScheme=\"transparent\"\n// >\n// \n// \n//
\n// {\n// setIsAdd(false)\n// }}\n// >\n//
\n//
\n//
\n// {tags?.map(tag => (\n// handleUnTag(tag.id)}\n// />\n// ))}\n// image.id)}\n// onAddTag={onAddTagSuccess}\n// onAddTagError={onAddTagError}\n// />\n//
\n//
\n//
\n// \n// \n// )\n// }\n\nconst MultiImagesSelectBar = ({\n parentFolderId,\n selectedItems,\n isFullActions = true,\n selectionMode,\n children,\n offsetLeft = 0,\n clear,\n recipeId,\n className,\n}: MultiImagesSelectBarProps) => {\n const setDeletingItem = useDeleteItemStore(s => s.setDeletingItem)\n const setMovingItem = useMoveItemV2Store(s => s.setMovingItem)\n const [isPublic, setIsPublic] = useState(false)\n const isFetched = useRef(false)\n const [isDownloadingImage, setIsDownloadingImage] = useState(false)\n const downloadImages = useDownloadImages()\n const toast = useToast()\n const setRecoverItem = useRecoverItemStore(state => state.setRecoverItem)\n\n const { mutate: mutatePin, isPending: isPendingPin } = usePinMutation({\n onSuccess: () => {\n toast({\n status: \"success\",\n title: `Images ${selectedItems[0].pinned ? \"unpinned\" : \"pinned\"}`,\n })\n clear()\n },\n })\n\n const { mutate: mutatePublicImage } = usePublicImageMutation({\n onSuccess: async () => {},\n })\n\n const handleMoveImage = useCallback(() => {\n googleAnalytics.handleCategoryEvent({\n action: \"click\",\n params: {\n action: \"Multi Image Move\",\n ...selectedItems.reduce((acc, item, index) => {\n acc[`image_id_${index}`] = item.id\n return acc\n }, {}),\n },\n })\n\n setMovingItem({\n type: \"image\",\n onClose: clear,\n parentFolderId: parentFolderId,\n images: selectedItems.map(item => ({\n id: item.id,\n name: item.name,\n parentFolderId: item.folder?.id ?? null,\n })),\n })\n }, [selectedItems, parentFolderId, clear, setMovingItem])\n\n const handleCopyImage = useCallback(() => {\n googleAnalytics.handleCategoryEvent({\n action: \"click\",\n params: {\n action: \"Multi Image Move\",\n ...selectedItems.reduce((acc, item, index) => {\n acc[`image_id_${index}`] = item.id\n return acc\n }, {}),\n },\n })\n\n setMovingItem({\n type: \"image\",\n action: \"copy\",\n onClose: clear,\n parentFolderId: parentFolderId,\n images: selectedItems.map(item => ({\n id: item.id,\n name: item.name,\n parentFolderId: item.folder?.id ?? null,\n })),\n })\n }, [parentFolderId, clear, setMovingItem, selectedItems])\n\n const handlePinImage = useCallback(() => {\n googleAnalytics.handleCategoryEvent({\n action: \"click\",\n params: {\n action: \"Multi Image Pin\",\n ...selectedItems.reduce((acc, item, index) => {\n acc[`image_id_${index}`] = item.id\n return acc\n }, {}),\n },\n })\n\n mutatePin({\n ids: selectedItems.map(item => item.id),\n isPinned: !selectedItems[0].pinned,\n type: PinnedItemType.IMAGE,\n folderId: parentFolderId,\n })\n }, [selectedItems, mutatePin, parentFolderId])\n\n const handleDownload = useCallback(async () => {\n googleAnalytics.handleCategoryEvent({\n action: \"click\",\n params: {\n action: \"Multi Image Download\",\n ...selectedItems.reduce((acc, item, index) => {\n acc[`image_id_${index}`] = item.id\n return acc\n }, {}),\n },\n })\n\n setIsDownloadingImage(true)\n await downloadImages(\n selectedItems.map(i => i.url ?? \"\"),\n selectedItems.map(i => i.id),\n `${\"download_ax\"}_images`,\n ).finally(async () => {\n try {\n await client.api.imageControllerDownloadImage({\n imageIds: selectedItems.map(image => image.id),\n })\n } catch (error) {}\n\n setIsDownloadingImage(false)\n })\n }, [selectedItems, downloadImages])\n\n const handleRecoverImage = useCallback(() => {\n googleAnalytics.handleCategoryEvent({\n action: \"click\",\n params: {\n action: \"Multi Image Recover\",\n ...selectedItems.reduce((acc, item, index) => {\n acc[`image_id_${index}`] = item.id\n return acc\n }, {}),\n },\n })\n\n setRecoverItem({\n ids: selectedItems.map(item => item.id),\n parentFolderId: parentFolderId,\n deletedAt: selectedItems.find(item => item.deletedAt)?.deletedAt ?? \"\",\n type: \"image\",\n onClose: clear,\n })\n }, [parentFolderId, selectedItems, clear, setRecoverItem])\n\n const handleDeleteImage = useCallback(() => {\n googleAnalytics.handleCategoryEvent({\n action: \"click\",\n params: {\n action: \"Multi Image Delete\",\n ...selectedItems.reduce((acc, item, index) => {\n acc[`image_id_${index}`] = item.id\n return acc\n }, {}),\n },\n })\n\n setDeletingItem({\n type: \"image\",\n folderId: parentFolderId,\n ids: selectedItems.map(item => item.id),\n id: selectedItems.find(item => item.id)?.id ?? \"\",\n recipeParams: {\n recipeId,\n },\n deletedAt: selectedItems.find(item => item.deletedAt)?.deletedAt ?? \"\",\n onClose: clear,\n })\n }, [parentFolderId, selectedItems, clear, setDeletingItem, recipeId])\n\n useEffect(() => {\n if (!isFetched.current) return\n\n const timer = setTimeout(() => {\n mutatePublicImage({\n ids: selectedItems.map(item => item.id),\n isDiscoverable: isPublic,\n folderId: parentFolderId,\n })\n }, 250)\n\n return () => clearTimeout(timer)\n }, [isPublic])\n\n useEffect(() => {\n isFetched.current = false\n setIsPublic(selectedItems.every(i => i.isDiscoverable) || false)\n }, [selectedItems])\n\n const renderImageActions = useMemo(() => {\n return (\n 0,\n visible: true,\n title: `Download`,\n }}\n onCopy={{\n fn: handleCopyImage,\n enabled: !selectedItems.some(item => !item.capabilities?.canUpdate) && selectedItems.length > 0,\n visible: !selectedItems.find(item => item.deletedAt)?.deletedAt,\n title: `Copy ${selectedItems.length > 1 ? \"images\" : \"image\"}`,\n }}\n onMove={{\n fn: handleMoveImage,\n enabled: !selectedItems.some(item => !item.capabilities?.canMove) && selectedItems.length > 0,\n visible: !selectedItems.find(item => item.deletedAt)?.deletedAt,\n title: `Move ${selectedItems.length > 1 ? \"images\" : \"image\"}`,\n }}\n onPin={{\n fn: handlePinImage,\n enabled: !selectedItems.some(item => !item.capabilities?.canView) && selectedItems.length > 0,\n visible: !selectedItems.find(item => item.deletedAt)?.deletedAt,\n title: `${selectedItems[0]?.pinned ? \"Unpin\" : \"Pin\"}`,\n icon: selectedItems[0]?.pinned ? : ,\n }}\n onRecover={{\n fn: handleRecoverImage,\n enabled: !selectedItems.some(item => !item.capabilities?.canRecover) && selectedItems.length > 0,\n visible: !!selectedItems.find(item => item.deletedAt)?.deletedAt,\n title: `Recover`,\n }}\n onDelete={{\n fn: handleDeleteImage,\n enabled: !selectedItems.some(item => !item.capabilities?.canDelete) && selectedItems.length > 0,\n visible: true,\n title: `Delete`,\n }}\n />\n )\n }, [\n selectedItems,\n handleCopyImage,\n handleDeleteImage,\n handleDownload,\n handleMoveImage,\n handlePinImage,\n handleRecoverImage,\n ])\n\n return (\n \n {\n setIsDownloadingImage(false)\n }}\n >\n {selectedItems.length > 0 && (\n \n
\n
\n {selectedItems.length} selected\n \n \n \n
\n
\n {/* */}\n\n {!selectedItems.find(item => item.deletedAt)?.deletedAt && isFullActions && (\n <>\n !i.capabilities?.canUpdate),\n })}\n >\n \n !i.capabilities?.canUpdate ||\n i.moderationRating === ContentModerationRating.HardcoreNsfw ||\n i.moderationRating === ContentModerationRating.SemiNsfw,\n )}\n labelClassName=\"text-atherGray-300 text-xs\"\n sizeToggle=\"sm\"\n name={\"Public\"}\n checked={isPublic}\n onChange={e => {\n e.stopPropagation()\n\n googleAnalytics.handleCategoryEvent({\n action: \"click\",\n params: {\n action: \"Multi Image Share Explore\",\n ...selectedItems.reduce((acc, item, index) => {\n acc[`image_id_${index}`] = item.id\n return acc\n }, {}),\n },\n })\n\n if (\n selectedItems.some(\n i =>\n !i.capabilities?.canUpdate ||\n i.moderationRating === ContentModerationRating.HardcoreNsfw ||\n i.moderationRating === ContentModerationRating.SemiNsfw,\n )\n )\n return\n\n isFetched.current = true\n setIsPublic(prev => !prev)\n }}\n />\n

Explore

\n
\n
\n \n )}\n\n
\n {!selectedItems.find(item => item.deletedAt)?.deletedAt && isFullActions && (\n <>\n !i.capabilities?.canMove)}\n className=\"w-8 h-8 p-0 hover:bg-atherGray-700 active:bg-atherGray-800 text-atherGray-300 hover:text-atherGray-0\"\n colorScheme=\"transparent\"\n onClick={() => {\n handleMoveImage()\n }}\n >\n \n \n }\n >\n Move {selectedItems.length > 1 ? \"images\" : \"image\"}\n \n !i.capabilities?.canUpdate)}\n className=\"w-8 h-8 p-0 hover:bg-atherGray-700 active:bg-atherGray-800 text-atherGray-300 hover:text-atherGray-0\"\n colorScheme=\"transparent\"\n onClick={() => {\n handleCopyImage()\n }}\n >\n \n \n }\n >\n Copy {selectedItems.length > 1 ? \"images\" : \"image\"}\n \n {selectedItems.some(i => i.pinned !== undefined) && (\n {\n handlePinImage()\n }}\n >\n {!selectedItems[0].pinned ? (\n \n ) : (\n \n )}\n \n }\n >\n {selectedItems[0].pinned ? \"Unpin\" : \"Pin\"}\n \n )}\n \n )}\n {\n handleDownload()\n }}\n >\n \n \n }\n >\n Download\n \n {selectedItems.find(item => item.deletedAt)?.deletedAt && (\n !i.capabilities?.canRecover)}\n className=\"w-8 h-8 p-0 bg-atherGray-850 hover:bg-atherGray-700 active:bg-atherGray-800 text-atherGray-300 hover:text-atherGray-0\"\n colorScheme=\"transparent\"\n onClick={() => {\n handleRecoverImage()\n }}\n >\n \n \n }\n >\n Recover\n \n )}\n {isFullActions && (\n !i.capabilities?.canDelete)}\n className=\"w-8 h-8 p-0 hover:bg-atherGray-700 active:bg-atherGray-800 text-red-500\"\n colorScheme=\"transparent\"\n onClick={() => {\n handleDeleteImage()\n }}\n >\n \n \n }\n >\n Delete\n \n )}\n
\n \n \n )}\n \n {children && (\n \n {children}\n \n )}\n
\n )\n}\n\nexport default MultiImagesSelectBar\n","import { ImageSimpleDetail } from \"@/api/sdk\"\nimport { useCallback, useReducer } from \"react\"\n\ntype MultiImagesSelectState = {\n selectionMode: boolean\n selectedItems: ImageSimpleDetail[]\n}\n\ntype TurnOnSelectionModeAction = {\n type: \"toggle\"\n}\n\ntype AddSelectionAction = {\n type: \"select\"\n item: ImageSimpleDetail\n}\n\ntype SelectAllAction = {\n type: \"selectAll\"\n items: ImageSimpleDetail[]\n}\n\ntype RemoveSelectionAction = {\n type: \"remove\"\n id: string\n}\ntype ClearSelectionAction = {\n type: \"clear\"\n}\n\ntype MultiItemsSelectAction =\n | TurnOnSelectionModeAction\n | AddSelectionAction\n | SelectAllAction\n | RemoveSelectionAction\n | ClearSelectionAction\n\nconst reducer = (state: MultiImagesSelectState, action: MultiItemsSelectAction) => {\n switch (action.type) {\n case \"toggle\":\n return {\n selectionMode: !state.selectionMode,\n selectedItems: [],\n }\n\n case \"select\":\n const selectedItems = state.selectedItems.some(item => item.id === action.item.id)\n ? state.selectedItems.filter(item => item.id !== action.item.id)\n : [...state.selectedItems, action.item]\n\n return {\n ...state,\n selectedItems,\n }\n\n case \"selectAll\":\n return {\n ...state,\n selectedItems: action.items,\n }\n case \"clear\": {\n return {\n ...state,\n selectedItems: [],\n }\n }\n\n default:\n return state\n }\n}\n\nexport const useMultiImagesSelect = () => {\n const [state, dispatch] = useReducer(reducer, { selectionMode: false, selectedItems: [] })\n\n const toggleSelectionMode = useCallback(() => dispatch({ type: \"toggle\" }), [dispatch])\n\n const addSelection = useCallback((item: ImageSimpleDetail) => dispatch({ type: \"select\", item }), [dispatch])\n\n const selectAll = useCallback((items: ImageSimpleDetail[]) => dispatch({ type: \"selectAll\", items }), [dispatch])\n\n const clear = useCallback(() => dispatch({ type: \"clear\" }), [dispatch])\n\n return {\n selectionMode: state.selectionMode,\n selectedItems: state.selectedItems,\n toggleSelectionMode,\n addSelection,\n selectAll,\n clear,\n }\n}\n","import { imageExtensionRegex } from \"@/constants\"\n\nconst downloadImages = async (imageUrls: string[], names: string[], zipName: string) => {\n if (imageUrls.length === 1) {\n try {\n const type = imageUrls[0].match(imageExtensionRegex)?.[0] ?? \"\"\n\n const response = await fetch(imageUrls[0])\n\n if (!response.ok) {\n throw new Error(\"Failed to download image\")\n }\n const blob = await response.blob()\n const url = URL.createObjectURL(blob)\n\n const link = document.createElement(\"a\")\n link.href = url\n link.download = `${names[0]}${type}` // Replace with the desired file name and extension\n link.style.display = \"none\"\n document.body.appendChild(link)\n link.click()\n document.body.removeChild(link)\n URL.revokeObjectURL(url)\n } catch (error) {\n console.error(\"Error downloading image:\", error)\n }\n\n return\n }\n\n const JSZip = (await import(\"jszip\")).default\n const zip = new JSZip()\n\n const type = imageUrls.map(imageUrl => imageUrl.match(imageExtensionRegex)?.[0] ?? \"\")\n\n // Fetch all images and add them to the zip\n const addImagesToZip = imageUrls.map(async (imageUrl, index) => {\n try {\n const response = await fetch(imageUrl)\n\n if (!response.ok) {\n throw new Error(\"Failed to download image\")\n }\n\n const blob = await response.blob()\n const name = `${names[index]}${type[index]}` // Replace with the desired file name and extension\n zip.file(name, blob, { binary: true })\n } catch (error) {\n console.error(\"Error downloading image:\", error)\n }\n })\n\n await Promise.all(addImagesToZip)\n\n // Generate and download the zip file\n try {\n const content = await zip.generateAsync({ type: \"blob\" })\n const url = URL.createObjectURL(content)\n\n const link = document.createElement(\"a\")\n link.href = url\n link.download = `${zipName}.zip`\n link.style.display = \"none\"\n document.body.appendChild(link)\n link.click()\n document.body.removeChild(link)\n URL.revokeObjectURL(url)\n } catch (error) {\n console.error(\"Error generating zip file:\", error)\n }\n}\n\nexport const useDownloadImages = () => {\n return downloadImages\n}\n","import { ExploreImageSimpleDetail, ImageSimpleDetail } from \"@/api/sdk\"\nimport { createContext, useContext } from \"react\"\n\nexport type ImagesContextState = {\n images?: ExploreImageSimpleDetail[] | ImageSimpleDetail[]\n}\n\nconst ImagesContext = createContext(null)\nexport const useImagesContext = () => {\n const context = useContext(ImagesContext)\n if (!context) throw new Error(\"missing ImagesContext\")\n return context\n}\n\nexport function ImagesProvider({\n children,\n ...state\n}: {\n children: React.ReactNode\n} & ImagesContextState) {\n const { images } = state\n\n return (\n \n {children}\n \n )\n}\n"],"names":["__webpack_exports__","Z","selectedItems","parentFolderId","isFullActions","selectionMode","children","offsetLeft","clear","recipeId","className","param","setDeletingItem","useDeleteItemStore","s","setMovingItem","useMoveItemV2Store","isPublic","setIsPublic","useState","isFetched","useRef","isDownloadingImage","setIsDownloadingImage","downloadImages","useDownloadImages","toast","useToast","setRecoverItem","useRecoverItemStore","state","mutate","mutatePin","isPending","isPendingPin","usePinMutation","onSuccess","status","title","concat","pinned","mutatePublicImage","usePublicImageMutation","handleMoveImage","useCallback","googleAnalytics","handleCategoryEvent","action","params","reduce","acc","item","index","id","type","onClose","images","map","name","folder","handleCopyImage","handlePinImage","ids","isPinned","PinnedItemType","IMAGE","folderId","handleDownload","i","url","finally","client","api","imageControllerDownloadImage","imageIds","image","error","handleRecoverImage","deletedAt","find","handleDeleteImage","recipeParams","useEffect","current","timer","setTimeout","isDiscoverable","clearTimeout","every","renderImageActions","useMemo","react_jsx_runtime__WEBPACK_IMPORTED_MODULE_0__","jsx","MultiModeActions","onDownload","fn","enabled","length","visible","onCopy","some","capabilities","canUpdate","onMove","canMove","onPin","canView","icon","UnPinIcon","width","height","PinIcon","onRecover","canRecover","onDelete","canDelete","jsxs","Fragment","AnimatePresence","onExitComplete","motion","div","initial","opacity","animate","exit","style","left","span","TickIcon","hr","classNames","Toggle","disabled","moderationRating","ContentModerationRating","HardcoreNsfw","SemiNsfw","labelClassName","sizeToggle","checked","onChange","e","stopPropagation","prev","p","Tooltip","trigger","IconButton","colorScheme","onClick","FolderMoveIcon","FolderTransferIcon","undefined","isLoading","DownloadIcon1","RefreshIcon","DeleteIcon","ContextMenuZone","isDisabled","contextMenu","reducer","filter","items","useMultiImagesSelect","dispatch","useReducer","toggleSelectionMode","addSelection","selectAll","imageUrls","names","zipName","match","imageExtensionRegex","response","fetch","ok","blob","URL","createObjectURL","link","document","createElement","href","download","display","body","appendChild","click","removeChild","revokeObjectURL","console","zip","__webpack_require__","then","t","bind","default","imageUrl","addImagesToZip","file","binary","Promise","all","content","generateAsync","ImagesContext","createContext","useImagesContext","context","useContext","ImagesProvider","Provider","value"],"sourceRoot":""}