import React, { useState } from 'react'; import PropTypes from 'prop-types'; import './ImagePackProfile.scss'; import { openReusableContextMenu } from '../../../client/action/navigation'; import { getEventCords } from '../../../util/common'; import Text from '../../atoms/text/Text'; import Avatar from '../../atoms/avatar/Avatar'; import Button from '../../atoms/button/Button'; import IconButton from '../../atoms/button/IconButton'; import Input from '../../atoms/input/Input'; import ImageUpload from '../image-upload/ImageUpload'; import ImagePackUsageSelector from './ImagePackUsageSelector'; import ChevronBottomIC from '../../../../public/res/ic/outlined/chevron-bottom.svg'; import PencilIC from '../../../../public/res/ic/outlined/pencil.svg'; function ImagePackProfile({ avatarUrl, displayName, attribution, usage, onUsageChange, onAvatarChange, onEditProfile, }) { const [isEdit, setIsEdit] = useState(false); const handleSubmit = (e) => { e.preventDefault(); const { nameInput, attributionInput } = e.target; const name = nameInput.value.trim() || undefined; const att = attributionInput.value.trim() || undefined; onEditProfile(name, att); setIsEdit(false); }; const handleUsageSelect = (event) => { openReusableContextMenu( 'bottom', getEventCords(event, '.btn-surface'), (closeMenu) => ( { onUsageChange(newUsage); closeMenu(); }} /> ), ); }; return (
{ onAvatarChange ? ( onAvatarChange(undefined)} /> ) : }
{ isEdit ? (
) : ( <>
{displayName} {onEditProfile && setIsEdit(true)} src={PencilIC} tooltip="Edit" />}
{attribution && {attribution}} ) }
Pack usage
); } ImagePackProfile.defaultProps = { avatarUrl: null, attribution: null, onUsageChange: null, onAvatarChange: null, onEditProfile: null, }; ImagePackProfile.propTypes = { avatarUrl: PropTypes.string, displayName: PropTypes.string.isRequired, attribution: PropTypes.string, usage: PropTypes.oneOf(['emoticon', 'sticker', 'both']).isRequired, onUsageChange: PropTypes.func, onAvatarChange: PropTypes.func, onEditProfile: PropTypes.func, }; export default ImagePackProfile;