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;