UNPKG

zmp-react

Version:

Build full featured iOS & Android apps using ZMP & React

66 lines (61 loc) 1.99 kB
import _extends from "@babel/runtime/helpers/extends"; import React, { forwardRef, useImperativeHandle, useRef } from 'react'; import { ICON_CHEVRON_LEFT } from '../../common/constants'; import NavLeft from '../components/nav-left'; import Link from '../components/link'; import { getExtraAttrs, emit } from '../shared/utils'; /* dts-props id?: string | number; className?: string; style?: React.CSSProperties; backLink? : boolean | string; backLinkUrl? : string; backLinkForce? : boolean; backLinkShowText? : boolean; sliding? : boolean; COLOR_PROPS onBackClick? : (event?: any) => void; onClickBack? : (event?: any) => void; ref?: React.MutableRefObject<{el: HTMLElement | null}>; CHILDREN_PROP */ var ZMPNavLeft = /*#__PURE__*/forwardRef(function (props, ref) { var id = props.id, style = props.style, children = props.children, backLink = props.backLink, backLinkUrl = props.backLinkUrl, backLinkForce = props.backLinkForce, backLinkShowText = props.backLinkShowText; var extraAttrs = getExtraAttrs(props); var elRef = useRef(null); useImperativeHandle(ref, function () { return elRef.current; }); var onBackClick = function onBackClick(event) { emit(props, 'backClick clickBack', event); }; var needBackLinkText = backLinkShowText; var linkEl; if (backLink) { var text = backLink !== true && needBackLinkText ? backLink : undefined; linkEl = /*#__PURE__*/React.createElement(Link, { href: backLinkUrl || '#', back: true, noLinkClass: true, iconZMP: ICON_CHEVRON_LEFT, force: backLinkForce || undefined, className: !text ? 'icon-only no-ripple' : undefined, text: text, onClick: onBackClick }); } return /*#__PURE__*/React.createElement(NavLeft, _extends({ id: id, style: style, backLink: false, ref: elRef }, extraAttrs), linkEl, children); }); ZMPNavLeft.displayName = 'zmp-nav-left'; export default ZMPNavLeft;