zmp-react
Version:
Build full featured iOS & Android apps using ZMP & React
52 lines (50 loc) • 1.45 kB
JavaScript
import React, { useRef, forwardRef, useImperativeHandle } from 'react';
import { classNames } from '../shared/utils';
import Link from './link';
/* dts-props
id?: string | number;
className?: string;
style?: React.CSSProperties;
children? : any;
label?: string
icon?: any
to?: string;
onClick? : (event?: any) => void;
key?: string
ref?: React.MutableRefObject<{el: HTMLElement | null}>;
disabled: boolean;
CHILDREN_PROP
*/
var GridItem = /*#__PURE__*/forwardRef(function (_ref, ref) {
var id = _ref.id,
className = _ref.className,
style = _ref.style,
children = _ref.children,
label = _ref.label,
icon = _ref.icon,
onClick = _ref.onClick,
to = _ref.to;
var elRef = useRef(null);
useImperativeHandle(ref, function () {
var _elRef$current;
return {
el: (_elRef$current = elRef.current) == null ? void 0 : _elRef$current.el
};
});
var classes = classNames('grid-item', 'no-ripple', className);
return /*#__PURE__*/React.createElement(Link, {
id: id,
onClick: onClick,
className: classes,
style: style,
ref: elRef,
noLinkClass: true,
href: to || '#'
}, icon && /*#__PURE__*/React.createElement("span", {
className: "grid-item-icon"
}, icon), children, label && /*#__PURE__*/React.createElement("span", {
className: "grid-item-label"
}, label));
});
GridItem.displayName = 'zmp-grid-item';
export default GridItem;