import {Component} from 'react' import {brk} from '@befe/brick-utils' import { TypeItemEvent, TypeItemStatus, TypeLayoutItem, } from '../module-defs/ui-types' export type TypeItemProps = TypeLayoutItem & TypeItemStatus & TypeItemEvent & { value?: number }; interface TypeItemState { isHover: boolean isActive: boolean } /** */ export class UILayoutItem extends Component { state: TypeItemState = { isHover: false, isActive: false, } handleMouseEnter = () => { const props = this.props const {onMouseEnter} = props onMouseEnter && onMouseEnter(props.value) this.setState({ isHover: true, isActive: false, }) } handleMouseLeave = () => { const onmouseleave = this.props.onMouseLeave onmouseleave && onmouseleave() this.setState({isHover: false}) } handleMouseDown = () => { this.setState({isActive: true}) } handleMouseUp = () => { this.setState({isActive: false}) } handleClick = () => { const props = this.props if (props.outside) { if (!props.disabled) { props.onClickOutside && props.onClickOutside(props.value) } } else if (!props.disabled) { props.onClick && props.onClick(props.value) } } get actionStatus() { const state = this.state return state.isActive && state.isHover ? 'active' : state.isHover ? 'hover' : 'default' } render() { const props = this.props return (
{props.text} {/* {props.text} */}
) } }