{"version":3,"file":"index-DneIueJZ.js","sources":["../../../node_modules/@mui/icons-material/esm/Check.js","../../../node_modules/@mui/icons-material/esm/CloudUpload.js","../../../node_modules/@mui/icons-material/esm/Error.js","../../../node_modules/@mui/icons-material/esm/HourglassBottom.js","../../../frontend/src/Components/Posts/Shared/VirusScanStatusIcon/VirusScanStatusIcon.tsx","../../../frontend/src/Hooks/useVirusScanStatus.ts","../../../frontend/src/Components/Posts/Forms/Common/Attachments/ListItem.tsx","../../../frontend/src/Components/Posts/Forms/Common/Attachments/PreviewFiles.tsx","../../../frontend/src/Components/Posts/Forms/Common/Attachments/PreviewImages.tsx","../../../frontend/src/Components/Posts/Forms/Common/Attachments/Input.tsx","../../../frontend/src/Components/Posts/Forms/Common/Attachments/index.tsx"],"sourcesContent":["\"use client\";\n\nimport createSvgIcon from \"./utils/createSvgIcon.js\";\nimport { jsx as _jsx } from \"react/jsx-runtime\";\nexport default createSvgIcon(/*#__PURE__*/_jsx(\"path\", {\n d: \"M9 16.17 4.83 12l-1.42 1.41L9 19 21 7l-1.41-1.41z\"\n}), 'Check');","\"use client\";\n\nimport createSvgIcon from \"./utils/createSvgIcon.js\";\nimport { jsx as _jsx } from \"react/jsx-runtime\";\nexport default createSvgIcon(/*#__PURE__*/_jsx(\"path\", {\n d: \"M19.35 10.04C18.67 6.59 15.64 4 12 4 9.11 4 6.6 5.64 5.35 8.04 2.34 8.36 0 10.91 0 14c0 3.31 2.69 6 6 6h13c2.76 0 5-2.24 5-5 0-2.64-2.05-4.78-4.65-4.96M14 13v4h-4v-4H7l5-5 5 5z\"\n}), 'CloudUpload');","\"use client\";\n\nimport createSvgIcon from \"./utils/createSvgIcon.js\";\nimport { jsx as _jsx } from \"react/jsx-runtime\";\nexport default createSvgIcon(/*#__PURE__*/_jsx(\"path\", {\n d: \"M12 2C6.48 2 2 6.48 2 12s4.48 10 10 10 10-4.48 10-10S17.52 2 12 2m1 15h-2v-2h2zm0-4h-2V7h2z\"\n}), 'Error');","\"use client\";\n\nimport createSvgIcon from \"./utils/createSvgIcon.js\";\nimport { jsx as _jsx } from \"react/jsx-runtime\";\nexport default createSvgIcon(/*#__PURE__*/_jsx(\"path\", {\n d: \"m18 22-.01-6L14 12l3.99-4.01L18 2H6v6l4 4-4 3.99V22zM8 7.5V4h8v3.5l-4 4z\"\n}), 'HourglassBottom');","import { Check, Error, HourglassBottom } from '@mui/icons-material';\nimport { Box, Typography } from '@mui/material';\nimport React from 'react';\nimport { FormattedMessage } from 'react-intl';\n\nfunction VirusScanStatusIcon({ status }: any) {\n switch (status) {\n case 'clean':\n return (\n \n \n \n \n \n \n );\n case 'infected':\n return (\n \n \n \n \n \n \n );\n default:\n return (\n \n \n \n \n \n \n );\n }\n}\n\nexport default VirusScanStatusIcon;\n","import { useEffect, useState } from 'react';\nimport { useQuery } from 'react-query';\n\nimport { virusScanStatus } from '../Services/Api';\n\ninterface VirusScanPayload {\n status: string;\n}\n\nexport default ({ blobKey, name = 'attachments', onSuccess, setDisabledForm }: any) => {\n const [stop, setStop] = useState(false);\n\n const { isLoading, data } = useQuery(\n ['virusScanStatus', name, blobKey],\n () => virusScanStatus(blobKey),\n {\n onSuccess: ({ data: payload }: { data: VirusScanPayload }) => {\n if (payload.status !== 'no_scan') {\n setStop(true);\n onSuccess(payload.status);\n setDisabledForm(false);\n } else {\n setDisabledForm(true);\n }\n },\n onError: () => {\n setStop(true);\n },\n enabled: !!blobKey,\n refetchInterval: stop ? false : 2000,\n refetchIntervalInBackground: true,\n refetchOnWindowFocus: false,\n },\n );\n\n useEffect(() => {\n if (isLoading) {\n setDisabledForm(true);\n }\n }, [isLoading]);\n\n return { status: data?.data?.status, isLoading, scanned: stop };\n};\n","import React, { useEffect, useState } from 'react';\nimport { DirectUpload } from 'activestorage';\nimport { filesize } from 'filesize';\nimport {\n Card,\n CardActions,\n CardContent,\n CardMedia,\n CircularProgress,\n IconButton,\n ListItem as ListItemMui,\n ListItemSecondaryAction,\n ListItemText,\n Typography,\n} from '@mui/material';\nimport { FormattedMessage } from 'react-intl';\nimport Delete from '@mui/icons-material/Delete';\n\nimport appsignal from '../../../../../Services/ErrorReportingService';\nimport VirusScanStatusIcon from '../../../Shared/VirusScanStatusIcon';\nimport useVirusScanStatus from '../../../../../Hooks/useVirusScanStatus';\nimport { cloudinaryImageUrl } from '../../../../../Services/Cloudinary';\n\ninterface ListItemProps {\n name?: string;\n file: File | any;\n onUpload: (file: File) => void;\n onCancel: (fileId: string) => void;\n setDisabledForm: (isDisabled: boolean) => void;\n layout?: 'list' | 'image';\n}\n\nfunction ListItem({\n name,\n file,\n onUpload,\n onCancel,\n setDisabledForm,\n layout = 'list',\n}: ListItemProps) {\n const [uploaded, setUploaded] = useState(false);\n const [errored, setErrored] = useState(false);\n const [uploading, setUploading] = useState(false);\n const { status } = useVirusScanStatus({\n setDisabledForm,\n name,\n blobKey: file?.blob_key,\n onSuccess: (newstatus: any) => {\n onUpload({ ...file, virus_scan_status: newstatus });\n },\n });\n\n const uploadFile = (rawFile: any) => {\n // ignore already uploaded files\n if (rawFile.url) return;\n\n setUploading(true);\n setDisabledForm(true);\n\n // Use active storage direct upload lib to get a presigned blob id and attach it to form data\n const upload = new DirectUpload(rawFile, '/api/direct_uploads');\n\n upload.create((error: any, blob: any) => {\n if (error) {\n setErrored(true);\n setUploading(false);\n setDisabledForm(false);\n appsignal.sendError(error);\n } else {\n setUploaded(true);\n setUploading(false);\n setDisabledForm(false);\n setErrored(false);\n onUpload(blob);\n }\n });\n };\n\n useEffect(() => {\n if (!uploading && !uploaded && !errored) {\n uploadFile(file);\n }\n }, [uploading, uploaded, uploadFile]);\n\n const text = (\n \n \n {errored && }\n {file.name || file.title}\n \n \n );\n const fileSize = (\n \n {filesize(file.size)}\n \n );\n\n const statusBlock = (status ||\n (file.virus_scan_status && file.virus_scan_status !== 'no_scan')) && (\n \n \n \n );\n\n if (layout === 'list') {\n return (\n \n \n {text}\n {' — '}\n\n {fileSize}\n {' — '}\n\n {statusBlock}\n \n }\n />\n \n {uploading && }\n\n {(!uploading || errored) && (\n onCancel(file)} size=\"large\">\n \n \n )}\n \n \n );\n }\n\n return (\n \n \n \n
{fileSize}
\n
{statusBlock}
\n
\n \n {uploading && }\n\n {(!uploading || errored) && (\n onCancel(file)} size=\"large\">\n \n \n )}\n \n
\n );\n}\n\nexport default ListItem;\n","import React, { Fragment } from 'react';\nimport { Divider, FormLabel, List } from '@mui/material';\nimport { FormattedMessage } from 'react-intl';\n\nimport ListItem from './ListItem';\n\nfunction PreviewFiles({\n files,\n name,\n setDisabledForm,\n required = false,\n onUpload,\n handleDelete,\n}: any) {\n if (!files.length) {\n return null;\n }\n\n return (\n <>\n \n (pdf, doc, xls, mp3, mp4, ppt,…)\n \n\n \n {files.map((file: any, index: any) => (\n \n handleDelete(fileOrBlobId, file)}\n onUpload={onUpload}\n />\n \n ))}\n \n \n );\n}\n\nexport default PreviewFiles;\n","import React from 'react';\nimport { FormLabel, Stack } from '@mui/material';\nimport { FormattedMessage } from 'react-intl';\n\nimport ListItem from './ListItem';\n\nfunction PreviewImages({\n files,\n name,\n setDisabledForm,\n required = false,\n onUpload,\n handleDelete,\n}: any) {\n if (!files.length) {\n return null;\n }\n\n return (\n <>\n \n (jpg, png, gif,…)\n \n\n \n {files.map((file: any) => (\n handleDelete(fileOrBlobId, file)}\n onUpload={onUpload}\n />\n ))}\n \n \n );\n}\n\nexport default PreviewImages;\n","import React, { useState, useEffect } from 'react';\nimport { FormLabel, Typography } from '@mui/material';\nimport Upload from '@mui/icons-material/CloudUpload';\nimport { FormattedMessage, useIntl } from 'react-intl';\nimport { get, has } from 'lodash';\n\nimport withOptional from '../../../../../Utils/Posts/Form/withOptional';\nimport EmptyState from '../../../../DesignSystem/EmptyState';\nimport PreviewFiles from './PreviewFiles';\nimport PreviewImages from './PreviewImages';\n\nfunction Input({\n name,\n value: attachments,\n onChange,\n errors,\n setError,\n setDisabledForm,\n required = false,\n noTitle = false,\n inputProps = {},\n}: any) {\n const intl = useIntl();\n // We need to store the attachments in a temporary state via `values` because `onChange`\n // does not provide the updated value which is causing race conditions when we upload several files.\n const [values, setValues] = useState(attachments);\n const [initialized, setInitialized] = useState(false);\n\n useEffect(() => {\n if (attachments.some((attachment: any) => attachment.virus_scan_status === 'infected')) {\n setError(name, {\n message: intl.formatMessage({ id: 'VIRUS_SCAN.INFECTED_ATTACHMENTS_ERROR' }),\n });\n }\n }, [attachments]);\n\n useEffect(() => {\n // To update `values` with the attachments returned from the API after a save\n if (\n (!initialized && values.length !== attachments.length) ||\n values.some((item: any, index: number) => item.id !== attachments[index]?.id)\n ) {\n setInitialized(true);\n setValues(attachments);\n }\n }, [attachments]);\n\n useEffect(() => {\n // We need to call the `onChange` prop to update the form value.\n // A cleaner way would be to call it inside `setValues` in the `onUpload` function\n // but it's not possible to call a hook in a hook\n onChange(values);\n }, [values]);\n\n const onUpload = (blob: any) => {\n // we need the `currentValues` to avoid race conditions\n setValues((currentValues: any) => {\n const newValues = currentValues.map((currentValue: any) =>\n currentValue instanceof File && currentValue.name === blob.title ? blob : currentValue,\n );\n\n return newValues;\n });\n };\n\n const handleDrop = (event: any) => {\n event.preventDefault();\n const droppedFiles = event.dataTransfer.files;\n\n if (droppedFiles.length > 0) {\n setUniqueValues(droppedFiles);\n }\n };\n\n const setUniqueValues = (newFiles: any) => {\n setValues((currentValues: any) => {\n const uniqueNewFiles = Array.from(newFiles).filter(\n (file: any) => !currentValues.some((value: any) => value.title === file.name),\n );\n\n return [...currentValues, ...uniqueNewFiles];\n });\n };\n\n const handleDelete = (file: any) => {\n const updatedValue = values.map((value: any) => {\n if (value.blob_id === file.blob_id) {\n return { ...value, _destroy: true };\n }\n\n return value;\n });\n\n setValues(updatedValue);\n onChange(updatedValue);\n };\n\n // hide files that have the prop `_destroy: true`\n const filesToShow = values.filter((file: any) => !file._destroy);\n const imagesFiles = filesToShow.filter(({ type }: any) => type.includes('image'));\n const otherFiles = filesToShow.filter((file: any) => !imagesFiles.includes(file));\n\n return (\n <>\n {!noTitle && (\n \n {withOptional(intl.formatMessage({ id: 'POST_FORM.ATTACHMENTS.TITLE' }), required)}\n \n )}\n\n {has(errors, name) && (\n \n {get(errors, name)?.message}\n \n )}\n\n event.preventDefault()}\n icon={}\n content={\n <>\n {inputProps.title || }\n {\n setUniqueValues(e.target.files);\n }}\n multiple\n style={{ display: 'none' }}\n id={`${name}-attachment-button`}\n {...inputProps}\n />\n \n }\n />\n\n \n\n \n \n );\n}\n\nexport default Input;\n","import React, { useEffect } from 'react';\nimport { useIntl } from 'react-intl';\nimport { Controller, useWatch, useController } from 'react-hook-form';\nimport { Box } from '@mui/material';\n\nimport Input from './Input';\nimport AttachmentLinksList from '../../../Shared/AttachmentLinksList';\nimport { useNotifications } from '@toolpad/core/useNotifications';\nimport { notify } from '../../../../../Utils/NotificationUtils';\n\nfunction Attachments({\n name = 'attachments',\n control,\n errors,\n setError,\n setDisabledForm,\n required = false,\n noTitle = false,\n disabled,\n inputProps = {},\n}: any) {\n const intl = useIntl();\n const notifications = useNotifications();\n\n // NOTE: This is a work around, because react-hook-form does not render the value that we get from the api\n // when we useWatch() the value is there\n // but the value from Controller is empty\n const attachmentsState = useWatch({\n control,\n name,\n });\n const { field } = useController({\n control,\n name,\n });\n\n useEffect(() => {\n if (attachmentsState?.length && !field.value?.length) {\n field.onChange(attachmentsState);\n }\n }, [attachmentsState, field]);\n\n return (\n {\n if (!value) {\n return true;\n }\n const infected = value?.some((item: any) => item.virus_scan_status === 'infected');\n if (infected) {\n notify(\n notifications,\n intl.formatMessage({ id: 'VIRUS_SCAN.INFECTED_ATTACHMENTS_ERROR' }),\n 'error',\n );\n }\n\n return !infected;\n },\n }}\n render={({ field: { onChange, value = [] } }: any) => {\n if (disabled && value.length > 0) {\n return (\n \n \n \n );\n }\n\n return (\n \n );\n }}\n />\n );\n}\n\nexport default Attachments;\n"],"names":["Check","createSvgIcon","_jsx","CloudUpload","Error","HourglassBottom","VirusScanStatusIcon","_ref","status","React","createElement","Box","sx","display","color","fontSize","Typography","variant","FormattedMessage","id","useVirusScanStatus","_data$data","blobKey","_ref$name","name","onSuccess","setDisabledForm","_useState","useState","_useState2","_slicedToArray","stop","setStop","_useQuery","useQuery","virusScanStatus","_ref2","payload","data","onError","enabled","refetchInterval","refetchIntervalInBackground","refetchOnWindowFocus","isLoading","useEffect","scanned","ListItem","file","onUpload","onCancel","_ref$layout","layout","uploaded","setUploaded","_useState3","_useState4","errored","setErrored","_useState5","_useState6","uploading","setUploading","_useVirusScanStatus","blob_key","newstatus","_objectSpread","virus_scan_status","uploadFile","rawFile","url","upload","DirectUpload","create","error","blob","appsignal","sendError","text","component","title","fileSize","filesize","size","statusBlock","position","top","ListItemMui","ListItemText","primary","Fragment","ListItemSecondaryAction","CircularProgress","IconButton","edge","onClick","Delete","Card","key","width","CardMedia","height","image","cloudinaryImageUrl","s3_key","CardContent","pb","CardActions","PreviewFiles","files","_ref$required","required","handleDelete","length","FormLabel","pt","List","map","index","concat","fileOrBlobId","Divider","hidden","PreviewImages","py","Stack","direction","useFlexGap","gap","flexWrap","Input","_get","attachments","value","onChange","errors","setError","_ref$noTitle","noTitle","_ref$inputProps","inputProps","intl","useIntl","values","setValues","initialized","setInitialized","some","attachment","message","formatMessage","item","_attachments$index","currentValues","newValues","currentValue","File","handleDrop","event","preventDefault","droppedFiles","dataTransfer","setUniqueValues","newFiles","uniqueNewFiles","Array","from","filter","_toConsumableArray","updatedValue","blob_id","_destroy","filesToShow","imagesFiles","type","includes","otherFiles","mb","withOptional","has","get","EmptyState","htmlFor","onDrop","onDragOver","icon","Upload","content","_extends","e","target","multiple","style","Attachments","control","disabled","notifications","useNotifications","attachmentsState","useWatch","_useController","useController","field","_field$value","Controller","rules","validate","infected","render","_ref2$field","_ref2$field$value","my","AttachmentLinksList"],"mappings":"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","x_google_ignoreList":[0,1,2,3]}