rc-slider-captcha
Advanced tools
Comparing version 1.1.0 to 1.1.1
@@ -106,2 +106,25 @@ 'use strict'; | ||
function useUnmountedRef() { | ||
var unmountedRef = React.useRef(false); | ||
React.useEffect(function () { | ||
unmountedRef.current = false; | ||
return function () { | ||
unmountedRef.current = true; | ||
}; | ||
}, []); | ||
return unmountedRef; | ||
} | ||
function useSafeState(initialState) { | ||
var _a = __read(React.useState(initialState), 2), state = _a[0], setState = _a[1]; | ||
var unmountedRef = useUnmountedRef(); | ||
var updateState = React.useCallback(function (v) { | ||
if (!unmountedRef.current) { | ||
setState(v); | ||
} | ||
// eslint-disable-next-line react-hooks/exhaustive-deps | ||
}, []); | ||
return [state, updateState]; | ||
} | ||
function useStateRef(state) { | ||
@@ -117,5 +140,6 @@ var statusRef = React.useRef(state); | ||
// eslint-disable-next-line @typescript-eslint/no-unused-vars | ||
var _a = __read(React.useState(0), 2); _a[0]; var setCount = _a[1]; | ||
var _a = __read(useSafeState(0), 2); _a[0]; var setCount = _a[1]; | ||
var update = React.useCallback(function () { | ||
setCount(function (x) { return x + 1; }); | ||
// eslint-disable-next-line react-hooks/exhaustive-deps | ||
}, []); | ||
@@ -335,4 +359,4 @@ return update; | ||
var _f = _a.mode, outMode = _f === void 0 ? 'embed' : _f, _g = _a.limitErrorCount, limitErrorCount = _g === void 0 ? 0 : _g, outTipText = _a.tipText, outTipIcon = _a.tipIcon, outBgSize = _a.bgSize, outPuzzleSize = _a.puzzleSize, request = _a.request, _h = _a.autoRequest, autoRequest = _h === void 0 ? true : _h, onVerify = _a.onVerify, _j = _a.autoRefreshOnError, autoRefreshOnError = _j === void 0 ? true : _j, actionRef = _a.actionRef, _k = _a.showRefreshIcon, showRefreshIcon = _k === void 0 ? true : _k, jigsawContent = _a.jigsawContent, _l = _a.errorHoldDuration, errorHoldDuration = _l === void 0 ? 500 : _l, _m = _a.placement, placement = _m === void 0 ? 'top' : _m, loadingBoxProps = _a.loadingBoxProps, sliderButtonProps = _a.sliderButtonProps, className = _a.className, style = _a.style; | ||
var _o = __read(React.useState(), 2), jigsawImgs = _o[0], setJigsawImgs = _o[1]; | ||
var _p = __read(React.useState(exports.Status.Default), 2), status = _p[0], setStatus = _p[1]; | ||
var _o = __read(useSafeState(), 2), jigsawImgs = _o[0], setJigsawImgs = _o[1]; | ||
var _p = __read(useSafeState(exports.Status.Default), 2), status = _p[0], setStatus = _p[1]; | ||
var statusRef = useStateRef(status); // 同步status值,提供给事件方法使用 | ||
@@ -339,0 +363,0 @@ var update = useUpdate(); // 触发组件渲染 |
import classnames from 'classnames'; | ||
import React, { useRef, useState, useCallback, useMemo, useEffect } from 'react'; | ||
import React, { useRef, useEffect, useState, useCallback, useMemo } from 'react'; | ||
@@ -97,2 +97,25 @@ /****************************************************************************** | ||
function useUnmountedRef() { | ||
var unmountedRef = useRef(false); | ||
useEffect(function () { | ||
unmountedRef.current = false; | ||
return function () { | ||
unmountedRef.current = true; | ||
}; | ||
}, []); | ||
return unmountedRef; | ||
} | ||
function useSafeState(initialState) { | ||
var _a = __read(useState(initialState), 2), state = _a[0], setState = _a[1]; | ||
var unmountedRef = useUnmountedRef(); | ||
var updateState = useCallback(function (v) { | ||
if (!unmountedRef.current) { | ||
setState(v); | ||
} | ||
// eslint-disable-next-line react-hooks/exhaustive-deps | ||
}, []); | ||
return [state, updateState]; | ||
} | ||
function useStateRef(state) { | ||
@@ -108,5 +131,6 @@ var statusRef = useRef(state); | ||
// eslint-disable-next-line @typescript-eslint/no-unused-vars | ||
var _a = __read(useState(0), 2); _a[0]; var setCount = _a[1]; | ||
var _a = __read(useSafeState(0), 2); _a[0]; var setCount = _a[1]; | ||
var update = useCallback(function () { | ||
setCount(function (x) { return x + 1; }); | ||
// eslint-disable-next-line react-hooks/exhaustive-deps | ||
}, []); | ||
@@ -326,4 +350,4 @@ return update; | ||
var _f = _a.mode, outMode = _f === void 0 ? 'embed' : _f, _g = _a.limitErrorCount, limitErrorCount = _g === void 0 ? 0 : _g, outTipText = _a.tipText, outTipIcon = _a.tipIcon, outBgSize = _a.bgSize, outPuzzleSize = _a.puzzleSize, request = _a.request, _h = _a.autoRequest, autoRequest = _h === void 0 ? true : _h, onVerify = _a.onVerify, _j = _a.autoRefreshOnError, autoRefreshOnError = _j === void 0 ? true : _j, actionRef = _a.actionRef, _k = _a.showRefreshIcon, showRefreshIcon = _k === void 0 ? true : _k, jigsawContent = _a.jigsawContent, _l = _a.errorHoldDuration, errorHoldDuration = _l === void 0 ? 500 : _l, _m = _a.placement, placement = _m === void 0 ? 'top' : _m, loadingBoxProps = _a.loadingBoxProps, sliderButtonProps = _a.sliderButtonProps, className = _a.className, style = _a.style; | ||
var _o = __read(useState(), 2), jigsawImgs = _o[0], setJigsawImgs = _o[1]; | ||
var _p = __read(useState(Status.Default), 2), status = _p[0], setStatus = _p[1]; | ||
var _o = __read(useSafeState(), 2), jigsawImgs = _o[0], setJigsawImgs = _o[1]; | ||
var _p = __read(useSafeState(Status.Default), 2), status = _p[0], setStatus = _p[1]; | ||
var statusRef = useStateRef(status); // 同步status值,提供给事件方法使用 | ||
@@ -330,0 +354,0 @@ var update = useUpdate(); // 触发组件渲染 |
{ | ||
"name": "rc-slider-captcha", | ||
"version": "1.1.0", | ||
"version": "1.1.1", | ||
"description": "React slider captcha component.", | ||
@@ -5,0 +5,0 @@ "keywords": [ |
@@ -87,3 +87,3 @@ # rc-slider-captcha | ||
trail: [number, number][]; // 移动轨迹 | ||
targetType: CurrentTargetType; // 操作dom目标 puzzle-拼图 button-滑块按钮 | ||
targetType: 'puzzle' | 'button'; // 操作dom目标 puzzle-拼图 button-滑块按钮 | ||
errorCount: number; // 连续错误次数 | ||
@@ -90,0 +90,0 @@ }; |
104505
21
1559