UNPKG

zmp-react

Version:

Build full featured iOS & Android apps using ZMP & React

52 lines (50 loc) 1.45 kB
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;