UNPKG

zmp-react

Version:

Build full featured iOS & Android apps using ZMP & React

45 lines (42 loc) 1.45 kB
import _extends from "@babel/runtime/helpers/extends"; import React, { forwardRef, useRef, useImperativeHandle } from 'react'; import { classNames, getExtraAttrs } from '../shared/utils'; import { colorClasses } from '../shared/mixins'; import { zmp } from '../shared/zmp'; var Progressbar = /*#__PURE__*/forwardRef(function (props, ref) { var className = props.className, id = props.id, style = props.style, progress = props.progress, infinite = props.infinite; var extraAttrs = getExtraAttrs(props); var elRef = useRef(null); var set = function set(newProgress, speed) { if (!zmp) return; zmp.progressbar.set(elRef.current, newProgress, speed); }; useImperativeHandle(ref, function () { return { el: elRef.current, set: set }; }); var transformStyle = { transform: progress ? "translate3d(" + (-100 + progress) + "%, 0, 0)" : '', WebkitTransform: progress ? "translate3d(" + (-100 + progress) + "%, 0, 0)" : '' }; var classes = classNames(className, 'progressbar', { 'progressbar-infinite': infinite }, colorClasses(props)); return /*#__PURE__*/React.createElement("span", _extends({ ref: elRef, id: id, style: style, className: classes, "data-progress": progress }, extraAttrs), /*#__PURE__*/React.createElement("span", { style: transformStyle })); }); Progressbar.displayName = 'zmp-progressbar'; export default Progressbar;