import React, { useCallback, useState } from 'react'; import { Box, Button, ButtonGroup, Margins, TextInput, Field, Icon } from '@rocket.chat/fuselage'; import { useTranslation } from '../../contexts/TranslationContext'; import { useFileInput } from '../../hooks/useFileInput'; import { useEndpointUpload } from '../../hooks/useEndpointUpload'; import VerticalBar from '../../components/basic/VerticalBar'; export function AddCustomEmoji({ close, onChange, ...props }) { const t = useTranslation(); const [name, setName] = useState(''); const [aliases, setAliases] = useState(''); const [emojiFile, setEmojiFile] = useState(); const [newEmojiPreview, setNewEmojiPreview] = useState(''); const setEmojiPreview = useCallback(async (file) => { setEmojiFile(file); setNewEmojiPreview(URL.createObjectURL(file)); }, [setEmojiFile]); const saveAction = useEndpointUpload('emoji-custom.create', {}, t('Custom_Emoji_Added_Successfully')); const handleSave = useCallback(async () => { const formData = new FormData(); formData.append('emoji', emojiFile); formData.append('name', name); formData.append('aliases', aliases); const result = await saveAction(formData); if (result.success) { onChange(); close(); } }, [emojiFile, name, aliases, saveAction, onChange, close]); const clickUpload = useFileInput(setEmojiPreview, 'emoji'); return {t('Name')} setName(e.currentTarget.value)} placeholder={t('Name')} /> {t('Aliases')} setAliases(e.currentTarget.value)} placeholder={t('Aliases')} /> {t('Custom_Emoji')} { newEmojiPreview && } ; }