diff --git a/src/Circle.tsx b/src/Circle.tsx index a4742d1..48a300c 100644 --- a/src/Circle.tsx +++ b/src/Circle.tsx @@ -62,22 +62,27 @@ const getCircleStyle = ( }; }; -const Circle: React.FC = ({ - id, - prefixCls, - steps, - strokeWidth, - trailWidth, - gapDegree = 0, - gapPosition, - trailColor, - strokeLinecap, - style, - className, - strokeColor, - percent, - ...restProps -}) => { +const Circle: React.FC = (props) => { + const { + id, + prefixCls, + steps, + strokeWidth, + trailWidth, + gapDegree = 0, + gapPosition, + trailColor, + strokeLinecap, + style, + className, + strokeColor, + percent, + ...restProps + } = { + ...defaultProps, + ...props, + }; + const mergedId = useId(id); const gradientId = `${mergedId}-gradient`; const radius = VIEW_BOX_SIZE / 2 - strokeWidth / 2; @@ -233,8 +238,8 @@ const Circle: React.FC = ({ ); }; -Circle.defaultProps = defaultProps; - -Circle.displayName = 'Circle'; +if (process.env.NODE_ENV !== 'production') { + Circle.displayName = 'Circle'; +} export default Circle; diff --git a/src/Line.tsx b/src/Line.tsx index 169fa62..d8c9a14 100644 --- a/src/Line.tsx +++ b/src/Line.tsx @@ -3,19 +3,24 @@ import classNames from 'classnames'; import { useTransitionDuration, defaultProps } from './common'; import type { ProgressProps } from './interface'; -const Line: React.FC = ({ - className, - percent, - prefixCls, - strokeColor, - strokeLinecap, - strokeWidth, - style, - trailColor, - trailWidth, - transition, - ...restProps -}) => { +const Line: React.FC = (props) => { + const { + className, + percent, + prefixCls, + strokeColor, + strokeLinecap, + strokeWidth, + style, + trailColor, + trailWidth, + transition, + ...restProps + } = { + ...defaultProps, + ...props, + }; + // eslint-disable-next-line no-param-reassign delete restProps.gapPosition; const percentList = Array.isArray(percent) ? percent : [percent]; @@ -92,8 +97,8 @@ const Line: React.FC = ({ ); }; -Line.defaultProps = defaultProps; - -Line.displayName = 'Line'; +if (process.env.NODE_ENV !== 'production') { + Line.displayName = 'Line'; +} export default Line; diff --git a/src/common.ts b/src/common.ts index 68ab787..5bd0a57 100644 --- a/src/common.ts +++ b/src/common.ts @@ -2,13 +2,11 @@ import { useRef, useEffect } from 'react'; import type { ProgressProps } from './interface'; export const defaultProps: Partial = { - className: '', percent: 0, prefixCls: 'rc-progress', strokeColor: '#2db7f5', strokeLinecap: 'round', strokeWidth: 1, - style: {}, trailColor: '#D9D9D9', trailWidth: 1, gapPosition: 'bottom',