import { Button, Field, Icon } from '@rocket.chat/fuselage'; import { Random } from 'meteor/random'; import React from 'react'; import { useMethod } from '../../../../contexts/ServerContext'; import { useToastMessageDispatch } from '../../../../contexts/ToastMessagesContext'; import { useTranslation } from '../../../../contexts/TranslationContext'; import './AssetSettingInput.css'; export function AssetSettingInput({ _id, label, value = {}, asset, fileConstraints = {}, }) { const t = useTranslation(); const dispatchToastMessage = useToastMessageDispatch(); const setAsset = useMethod('setAsset'); const unsetAsset = useMethod('unsetAsset'); const handleUpload = (event) => { event = event.originalEvent || event; let { files } = event.target; if (!files || files.length === 0) { if (event.dataTransfer && event.dataTransfer.files) { files = event.dataTransfer.files; } else { files = []; } } Object.values(files).forEach((blob) => { dispatchToastMessage({ type: 'info', message: t('Uploading_file') }); const reader = new FileReader(); reader.readAsBinaryString(blob); reader.onloadend = async () => { try { await setAsset(reader.result, blob.type, asset); dispatchToastMessage({ type: 'success', message: t('File_uploaded') }); } catch (error) { dispatchToastMessage({ type: 'error', message: error }); } }; }); }; const handleDeleteButtonClick = async () => { try { await unsetAsset(asset); } catch (error) { dispatchToastMessage({ type: 'error', message: error }); } }; return <> {label}
{value.url ?
:
}
{value.url ? :
{t('Select_file')}
}
; }