Updated FileInput component to have hovering effect with image upload icon
• Updated: - FileInput component to have hovering effect with image upload icon
This commit is contained in:
parent
575d62f695
commit
1e55e2e920
@ -25,6 +25,7 @@ export default class FileInput extends PureComponent {
|
|||||||
|
|
||||||
state = {
|
state = {
|
||||||
file: this.props.file,
|
file: this.props.file,
|
||||||
|
hovering: false,
|
||||||
}
|
}
|
||||||
|
|
||||||
handleOnChange = (e) => {
|
handleOnChange = (e) => {
|
||||||
@ -34,6 +35,14 @@ export default class FileInput extends PureComponent {
|
|||||||
})
|
})
|
||||||
}
|
}
|
||||||
|
|
||||||
|
handleMouseLeave = () => {
|
||||||
|
this.setState({ hovering: false })
|
||||||
|
}
|
||||||
|
|
||||||
|
handleMouseEnter = () => {
|
||||||
|
this.setState({ hovering: true })
|
||||||
|
}
|
||||||
|
|
||||||
render() {
|
render() {
|
||||||
const {
|
const {
|
||||||
id,
|
id,
|
||||||
@ -45,7 +54,7 @@ export default class FileInput extends PureComponent {
|
|||||||
className,
|
className,
|
||||||
isBordered,
|
isBordered,
|
||||||
} = this.props
|
} = this.props
|
||||||
const { file } = this.state
|
const { file, hovering } = this.state
|
||||||
|
|
||||||
const containerClasses = CX(className, {
|
const containerClasses = CX(className, {
|
||||||
default: 1,
|
default: 1,
|
||||||
@ -61,8 +70,16 @@ export default class FileInput extends PureComponent {
|
|||||||
borderDashed: isBordered,
|
borderDashed: isBordered,
|
||||||
})
|
})
|
||||||
|
|
||||||
|
const iconClasses = CX({
|
||||||
|
fillSecondary: !hovering,
|
||||||
|
fillWhite: hovering,
|
||||||
|
})
|
||||||
|
|
||||||
return (
|
return (
|
||||||
<div>
|
<div
|
||||||
|
onMouseEnter={this.handleMouseEnter}
|
||||||
|
onMouseLeave={this.handleMouseLeave}
|
||||||
|
>
|
||||||
{
|
{
|
||||||
!!title &&
|
!!title &&
|
||||||
<div className={[_s.default, _s.mb10, _s.pl15].join(' ')}>
|
<div className={[_s.default, _s.mb10, _s.pl15].join(' ')}>
|
||||||
@ -82,13 +99,13 @@ export default class FileInput extends PureComponent {
|
|||||||
>
|
>
|
||||||
<Image
|
<Image
|
||||||
alt={title || id}
|
alt={title || id}
|
||||||
className={[_s.height100PC, _s.width100PC, _s.radiusSmall].join(' ')}
|
className={[_s.height100PC, _s.width100PC].join(' ')}
|
||||||
src={fileType === 'image' ? file : null}
|
src={fileType === 'image' ? file : null}
|
||||||
/>
|
/>
|
||||||
{
|
{
|
||||||
!file &&
|
(!file || hovering) &&
|
||||||
<div className={[_s.posAbs, _s.cursorPointer].join(' ')}>
|
<div className={[_s.default, _s.posAbs, _s.cursorPointer, _s.top0, _s.bottom0, _s.left0, _s.right0, _s.alignItemsCenter, _s.justifyContentCenter, _s.bgBlackOpaquest_onHover].join(' ')}>
|
||||||
<Icon id='add-image' size='32px' className={_s.fillSecondary} />
|
<Icon id='add-image' size='32px' className={iconClasses} />
|
||||||
</div>
|
</div>
|
||||||
}
|
}
|
||||||
</label>
|
</label>
|
||||||
|
Loading…
x
Reference in New Issue
Block a user