import React, { useState, useCallback } from 'react'; import { Box, Button, Icon, TextInput, Margins, Avatar } from '@rocket.chat/fuselage'; import { useTranslation } from '../../../contexts/TranslationContext'; import { useFileInput } from '../../../hooks/useFileInput'; import UserAvatar from './UserAvatar'; function UserAvatarSuggestions({ suggestions, setAvatarObj, setNewAvatarSource, disabled, ...props }) { const handleClick = useCallback((suggestion) => () => { setAvatarObj(suggestion); setNewAvatarSource(suggestion.blob); }, [setAvatarObj, setNewAvatarSource]); return {Object.values(suggestions).map((suggestion) => )} ; } export function UserAvatarEditor({ username, setAvatarObj, suggestions, disabled, etag }) { const t = useTranslation(); const [avatarFromUrl, setAvatarFromUrl] = useState(''); const [newAvatarSource, setNewAvatarSource] = useState(); const setUploadedPreview = useCallback(async (file, avatarObj) => { setAvatarObj(avatarObj); setNewAvatarSource(URL.createObjectURL(file)); }, [setAvatarObj]); const [clickUpload] = useFileInput(setUploadedPreview); const clickUrl = () => { setNewAvatarSource(avatarFromUrl); setAvatarObj({ avatarUrl: avatarFromUrl }); }; const clickReset = () => { setNewAvatarSource(`/avatar/%40${ username }`); setAvatarObj('reset'); }; const url = newAvatarSource; const handleAvatarFromUrlChange = (event) => { setAvatarFromUrl(event.currentTarget.value); }; return {t('Profile_picture')} {suggestions && } {t('Use_url_for_avatar')} ; } export default UserAvatarEditor;