Some checks failed
Build & Deploy / 🔍 Prepare (push) Successful in 20s
Build & Deploy / 🧪 QA (push) Failing after 34s
Build & Deploy / 🏗️ Build (push) Has started running
Build & Deploy / 🚀 Deploy (push) Has been cancelled
Build & Deploy / 🧪 Smoke Test (push) Has been cancelled
Build & Deploy / ⚡ Lighthouse (push) Has been cancelled
Build & Deploy / 🔔 Notify (push) Has been cancelled
1 line
12 KiB
Plaintext
1 line
12 KiB
Plaintext
{"version":3,"file":"index.js","names":["c","_c","useDroppable","getTranslation","React","DocumentIcon","ThreeDotsIcon","useConfig","useFolder","useTranslation","Popup","Thumbnail","ColoredFolderIcon","DraggableWithClick","baseClass","FolderFileCard","id","type","className","disabled","folderType","isDeleting","isFocused","isSelected","itemKey","onClick","onKeyDown","PopupActions","previewUrl","selectedCount","title","disableDrop","isOver","setNodeRef","data","ref","useRef","useEffect","copyOfRef","current","focus","blur","_jsxs","filter","Boolean","join","_jsx","fileSrc","length","AssignedCollections","button","horizontalAlign","size","verticalAlign","config","i18n","collectionsDisplayText","useMemo","reduce","acc","collection","collectionConfig","collections","find","slug","labels","plural","map","label","index","ContextFolderFileCard","t0","$","item","checkIfItemIsDisabled","focusedRowIndex","onItemClick","onItemKeyPress","selectedItemKeys","t1","has","isDisabled","t2","event","t3","event_0","value","url","_folderOrDocumentTitle"],"sources":["../../../../src/elements/FolderView/FolderFileCard/index.tsx"],"sourcesContent":["'use client'\n\nimport type { FolderOrDocument } from 'payload/shared'\n\nimport { useDroppable } from '@dnd-kit/core'\nimport { getTranslation } from '@payloadcms/translations'\nimport React from 'react'\n\nimport { DocumentIcon } from '../../../icons/Document/index.js'\nimport { ThreeDotsIcon } from '../../../icons/ThreeDots/index.js'\nimport { useConfig } from '../../../providers/Config/index.js'\nimport { useFolder } from '../../../providers/Folders/index.js'\nimport { useTranslation } from '../../../providers/Translation/index.js'\nimport { Popup } from '../../Popup/index.js'\nimport { Thumbnail } from '../../Thumbnail/index.js'\nimport { ColoredFolderIcon } from '../ColoredFolderIcon/index.js'\nimport { DraggableWithClick } from '../DraggableWithClick/index.js'\nimport './index.scss'\n\nconst baseClass = 'folder-file-card'\n\ntype Props = {\n readonly className?: string\n readonly disabled?: boolean\n readonly folderType?: string[]\n readonly id: number | string\n readonly isDeleting?: boolean\n readonly isFocused?: boolean\n readonly isSelected?: boolean\n readonly itemKey: string\n readonly onClick?: (e: React.MouseEvent) => void\n readonly onKeyDown?: (e: React.KeyboardEvent) => void\n readonly PopupActions?: React.ReactNode\n readonly previewUrl?: string\n readonly selectedCount?: number\n readonly title: string\n readonly type: 'file' | 'folder'\n}\nexport function FolderFileCard({\n id,\n type,\n className = '',\n disabled = false,\n folderType,\n isDeleting = false,\n isFocused = false,\n isSelected = false,\n itemKey,\n onClick,\n onKeyDown,\n PopupActions,\n previewUrl,\n selectedCount = 0,\n title,\n}: Props) {\n const disableDrop = !id || disabled || type !== 'folder'\n const { isOver, setNodeRef } = useDroppable({\n id: itemKey,\n data: {\n id,\n type,\n folderType,\n },\n disabled: disableDrop,\n })\n const ref = React.useRef(null)\n\n React.useEffect(() => {\n const copyOfRef = ref.current\n if (isFocused && ref.current) {\n ref.current.focus()\n } else if (!isFocused && ref.current) {\n ref.current.blur()\n }\n\n return () => {\n if (copyOfRef) {\n copyOfRef.blur()\n }\n }\n }, [isFocused])\n\n return (\n <DraggableWithClick\n className={[\n baseClass,\n className,\n isSelected && `${baseClass}--selected`,\n disabled && `${baseClass}--disabled`,\n isDeleting && `${baseClass}--deleting`,\n isFocused && `${baseClass}--focused`,\n isOver && `${baseClass}--over`,\n `${baseClass}--${type}`,\n ]\n .filter(Boolean)\n .join(' ')}\n disabled={disabled || (!onClick && !onKeyDown)}\n key={itemKey}\n onClick={onClick}\n onKeyDown={onKeyDown}\n ref={ref}\n >\n {!disableDrop ? <div className={`${baseClass}__drop-area`} ref={setNodeRef} /> : null}\n\n {type === 'file' ? (\n <div className={`${baseClass}__preview-area`}>\n {previewUrl ? <Thumbnail fileSrc={previewUrl} /> : <DocumentIcon />}\n </div>\n ) : null}\n\n <div className={`${baseClass}__titlebar-area`}>\n <div className={`${baseClass}__icon-wrap`}>\n {type === 'file' ? <DocumentIcon /> : <ColoredFolderIcon />}\n </div>\n <div className={`${baseClass}__titlebar-labels`}>\n <p className={`${baseClass}__name`} title={title}>\n <span>{title}</span>\n </p>\n {folderType && folderType.length > 0 ? (\n <AssignedCollections folderType={folderType} />\n ) : null}\n </div>\n {PopupActions ? (\n <Popup\n button={<ThreeDotsIcon />}\n disabled={selectedCount > 1 || (selectedCount === 1 && !isSelected)}\n horizontalAlign=\"right\"\n size=\"large\"\n verticalAlign=\"bottom\"\n >\n {PopupActions}\n </Popup>\n ) : null}\n </div>\n </DraggableWithClick>\n )\n}\n\nfunction AssignedCollections({ folderType }: { folderType: string[] }) {\n const { config } = useConfig()\n const { i18n } = useTranslation()\n\n const collectionsDisplayText = React.useMemo(() => {\n return folderType.reduce((acc, collection) => {\n const collectionConfig = config.collections?.find((c) => c.slug === collection)\n if (collectionConfig) {\n return [...acc, getTranslation(collectionConfig.labels.plural, i18n)]\n }\n return acc\n }, [])\n }, [folderType, config.collections, i18n])\n\n return (\n <p className={`${baseClass}__assigned-collections`}>\n {collectionsDisplayText.map((label, index) => (\n <span key={label}>\n {label}\n {index < folderType.length - 1 ? ', ' : ''}\n </span>\n ))}\n </p>\n )\n}\n\ntype ContextCardProps = {\n readonly className?: string\n readonly index: number // todo: possibly remove\n readonly item: FolderOrDocument\n readonly type: 'file' | 'folder'\n}\nexport function ContextFolderFileCard({ type, className, index, item }: ContextCardProps) {\n const { checkIfItemIsDisabled, focusedRowIndex, onItemClick, onItemKeyPress, selectedItemKeys } =\n useFolder()\n const isSelected = selectedItemKeys.has(item.itemKey)\n const isDisabled = checkIfItemIsDisabled(item)\n\n return (\n <FolderFileCard\n className={className}\n disabled={isDisabled}\n folderType={item.value.folderType || []}\n id={item.value.id}\n isFocused={focusedRowIndex === index}\n isSelected={isSelected}\n itemKey={item.itemKey}\n onClick={(event) => {\n void onItemClick({ event, index, item })\n }}\n onKeyDown={(event) => {\n void onItemKeyPress({ event, index, item })\n }}\n previewUrl={item.value.url}\n title={item.value._folderOrDocumentTitle}\n type={type}\n />\n )\n}\n"],"mappings":"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","ignoreList":[]} |