├── .commitlintrc ├── .babelrc ├── .huskyrc ├── .lintstagedrc ├── .eslintignore ├── .gitignore ├── .prettierignore ├── .editorconfig ├── .eslintrc ├── jsconfig.json ├── .prettierrc ├── bili.config.js ├── LICENSE ├── README.md ├── package.json ├── dist ├── geetest.esm.min.js.map ├── geetest.min.js.map ├── geetest.es.min.js.map ├── geetest.umd.min.js.map ├── geetest.esm.min.js ├── geetest.es.min.js ├── geetest.min.js └── geetest.umd.min.js └── src └── geetest.jsx /.commitlintrc: -------------------------------------------------------------------------------- 1 | { 2 | "extends": ["@commitlint/config-conventional"], 3 | "rules": {} 4 | } 5 | -------------------------------------------------------------------------------- /.babelrc: -------------------------------------------------------------------------------- 1 | { 2 | "presets": ["bili/babel"], 3 | "plugins": ["@babel/plugin-proposal-class-properties"] 4 | } 5 | -------------------------------------------------------------------------------- /.huskyrc: -------------------------------------------------------------------------------- 1 | { 2 | "hooks": { 3 | "commit-msg": "commitlint -E HUSKY_GIT_PARAMS", 4 | "pre-commit": "lint-staged" 5 | } 6 | } 7 | -------------------------------------------------------------------------------- /.lintstagedrc: -------------------------------------------------------------------------------- 1 | { 2 | "src/**/*.{js,jsx,ts,tsx,less,scss,css}": ["prettier --write"], 3 | "src/**/*.{js,jsx,ts,tsx}": "eslint --fix" 4 | } 5 | -------------------------------------------------------------------------------- /.eslintignore: -------------------------------------------------------------------------------- 1 | # dependencies 2 | /node_modules 3 | 4 | # production 5 | /dist 6 | 7 | # misc 8 | .DS_Store 9 | 10 | # IDE 11 | .idea 12 | .vscode 13 | -------------------------------------------------------------------------------- /.gitignore: -------------------------------------------------------------------------------- 1 | # See https://help.github.com/articles/ignoring-files/ for more about ignoring files. 2 | 3 | # dependencies 4 | /node_modules 5 | /npm-debug.log* 6 | /yarn-debug.log* 7 | /yarn-error.log* 8 | /yarn.lock 9 | /package-lock.json 10 | 11 | # misc 12 | .DS_Store 13 | -------------------------------------------------------------------------------- /.prettierignore: -------------------------------------------------------------------------------- 1 | **/*.md 2 | **/*.svg 3 | **/*.ejs 4 | **/*.html 5 | **/*.eot 6 | **/*.ttf 7 | **/*.woff 8 | 9 | # dependencies 10 | /node_modules 11 | /package.json 12 | 13 | # production 14 | /dist 15 | 16 | # misc 17 | .DS_Store 18 | 19 | # IDE 20 | .idea 21 | .vscode 22 | -------------------------------------------------------------------------------- /.editorconfig: -------------------------------------------------------------------------------- 1 | # http://editorconfig.org 2 | root = true 3 | 4 | [*] 5 | indent_style = space 6 | indent_size = 2 7 | end_of_line = lf 8 | charset = utf-8 9 | trim_trailing_whitespace = true 10 | insert_final_newline = true 11 | 12 | [*.md] 13 | trim_trailing_whitespace = false 14 | 15 | [Makefile] 16 | indent_style = tab 17 | -------------------------------------------------------------------------------- /.eslintrc: -------------------------------------------------------------------------------- 1 | { 2 | "env": { 3 | "browser": true, 4 | "node": true, 5 | "es6": true 6 | }, 7 | "extends": ["alloy", "alloy/react"], 8 | "globals": {}, 9 | "plugins": ["react-hooks", "prettier"], 10 | "root": true, 11 | "rules": { 12 | "prettier/prettier": "error", 13 | "react-hooks/exhaustive-deps": "warn", 14 | "react-hooks/rules-of-hooks": "error", 15 | "no-invalid-this": "off" 16 | } 17 | } 18 | -------------------------------------------------------------------------------- /jsconfig.json: -------------------------------------------------------------------------------- 1 | { 2 | "compilerOptions": { 3 | "noLib": false, 4 | // "target": "esnext", 5 | "checkJs": false, 6 | "experimentalDecorators": true, 7 | "allowSyntheticDefaultImports": true, 8 | "baseUrl": ".", 9 | "paths": { 10 | "@/*": ["src/*"] 11 | } 12 | }, 13 | "include": ["src/**/*"], 14 | "exclude": [ 15 | "node_modules", 16 | "**/node_modules/*", 17 | "dist", 18 | "bower_components", 19 | "tmp", 20 | "temp", 21 | "jspm_packages" 22 | ] 23 | } 24 | -------------------------------------------------------------------------------- /.prettierrc: -------------------------------------------------------------------------------- 1 | { 2 | "arrowParens": "avoid", 3 | "bracketSpacing": true, 4 | "embeddedLanguageFormatting": "auto", 5 | "endOfLine": "lf", 6 | "htmlWhitespaceSensitivity": "css", 7 | "insertPragma": false, 8 | "jsxBracketSameLine": false, 9 | "jsxSingleQuote": false, 10 | "printWidth": 120, 11 | "proseWrap": "preserve", 12 | "quoteProps": "consistent", 13 | "requirePragma": false, 14 | "semi": true, 15 | "singleQuote": true, 16 | "tabWidth": 2, 17 | "trailingComma": "es5", 18 | "useTabs": false, 19 | "vueIndentScriptAndStyle": false 20 | } 21 | -------------------------------------------------------------------------------- /bili.config.js: -------------------------------------------------------------------------------- 1 | module.exports = { 2 | babel: { 3 | // asyncToPromises: true, 4 | // babelrc: false, 5 | // configFile: false, 6 | jsx: 'react', 7 | // minimal: false, 8 | // objectAssign: 'myAssign', 9 | }, 10 | banner: false, 11 | bundleNodeModules: true, 12 | // env: {}, 13 | // extendConfig: () => {}, 14 | // extendRollupConfig: () => {}, 15 | // externals: [], 16 | globals: { 17 | react: 'React', 18 | }, 19 | input: 'src/geetest.jsx', 20 | output: { 21 | dir: 'dist', 22 | extractCSS: false, 23 | // fileName: '[name][suffix].js', 24 | format: ['cjs-min', 'es-min', 'umd-min'], 25 | minify: true, 26 | moduleName: 'Geetest', 27 | sourceMap: true, 28 | sourceMapExcludeSources: true, 29 | target: 'browser', 30 | }, 31 | // plugins: {}, 32 | // resolvePlugins: {}, 33 | }; 34 | -------------------------------------------------------------------------------- /LICENSE: -------------------------------------------------------------------------------- 1 | MIT License 2 | 3 | Copyright (c) 2021 xLsDg 4 | 5 | Permission is hereby granted, free of charge, to any person obtaining a copy 6 | of this software and associated documentation files (the "Software"), to deal 7 | in the Software without restriction, including without limitation the rights 8 | to use, copy, modify, merge, publish, distribute, sublicense, and/or sell 9 | copies of the Software, and to permit persons to whom the Software is 10 | furnished to do so, subject to the following conditions: 11 | 12 | The above copyright notice and this permission notice shall be included in all 13 | copies or substantial portions of the Software. 14 | 15 | THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR 16 | IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, 17 | FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE 18 | AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER 19 | LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, 20 | OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE 21 | SOFTWARE. 22 | -------------------------------------------------------------------------------- /README.md: -------------------------------------------------------------------------------- 1 | # react-geetest 2 | 3 | > A Geetest component for React 4 | 5 | ## Installation 6 | 7 | ```bash 8 | npm install react-geetest --save 9 | ``` 10 | 11 | ## Usage 12 | 13 | ``` react 14 | import Geetest from 'react-geetest'; 15 | 16 | export default () => { 17 | const onSuccess = isSuccess => console.log(isSuccess); 18 | 19 | return ( 20 | 25 | ); 26 | }; 27 | ``` 28 | 29 | ## Properties 30 | 31 | ``` javascript 32 | className: PropTypes.string, 33 | gt: PropTypes.string.isRequired, 34 | challenge: PropTypes.string.isRequired, 35 | offline: PropTypes.bool, 36 | newCaptcha: PropTypes.bool, 37 | product: PropTypes.string, 38 | width: PropTypes.string, 39 | lang: PropTypes.string, 40 | https: PropTypes.bool, 41 | timeout: PropTypes.number, 42 | remUnit: PropTypes.number, 43 | zoomEle: PropTypes.string, 44 | hideSuccess: PropTypes.bool, 45 | hideClose: PropTypes.bool, 46 | hideRefresh: PropTypes.bool, 47 | area: PropTypes.string, 48 | nextWidth: PropTypes.string, 49 | bgColor: PropTypes.string, 50 | onReady: PropTypes.func, 51 | onSuccess: PropTypes.func, 52 | onError: PropTypes.func, 53 | onClose: PropTypes.func, 54 | ``` 55 | 56 | [Read More](https://docs.geetest.com/sensebot/apirefer/api/web) 57 | 58 | ## License 59 | 60 | MIT 61 | -------------------------------------------------------------------------------- /package.json: -------------------------------------------------------------------------------- 1 | { 2 | "author": "xLsDg (https://xlsdg.org/)", 3 | "browser": "dist/geetest.umd.min.js", 4 | "bugs": { 5 | "url": "https://github.com/xlsdg/react-geetest/issues" 6 | }, 7 | "description": "A Geetest component for React", 8 | "devDependencies": { 9 | "@babel/plugin-proposal-class-properties": "^7.12.1", 10 | "@commitlint/cli": "^11.0.0", 11 | "@commitlint/config-conventional": "^11.0.0", 12 | "babel-eslint": "^10.1.0", 13 | "bili": "^5.0.5", 14 | "eslint": "^7.16.0", 15 | "eslint-config-alloy": "^3.9.0", 16 | "eslint-config-prettier": "^7.1.0", 17 | "eslint-plugin-prettier": "^3.3.0", 18 | "eslint-plugin-react": "^7.21.5", 19 | "eslint-plugin-react-hooks": "^4.2.0", 20 | "husky": "^4.3.6", 21 | "lint-staged": "^10.5.3", 22 | "prettier": "^2.2.1" 23 | }, 24 | "engines": { 25 | "node": ">=8", 26 | "npm": ">=5" 27 | }, 28 | "files": [ 29 | "dist", 30 | "src" 31 | ], 32 | "homepage": "https://github.com/xlsdg/react-geetest", 33 | "jsdelivr": "dist/geetest.min.js", 34 | "keywords": [ 35 | "react", 36 | "geetest", 37 | "react-geetest", 38 | "library" 39 | ], 40 | "license": "MIT", 41 | "main": "dist/geetest.min.js", 42 | "module": "dist/geetest.esm.min.js", 43 | "name": "react-geetest", 44 | "peerDependencies": { 45 | "react": "latest" 46 | }, 47 | "repository": { 48 | "type": "git", 49 | "url": "https://github.com/xlsdg/react-geetest.git" 50 | }, 51 | "scripts": { 52 | "build": "bili", 53 | "release:major": "npm version major && npm publish", 54 | "release:minor": "npm version minor && npm publish", 55 | "release:patch": "npm version patch && npm publish" 56 | }, 57 | "source": "src/geetest.jsx", 58 | "unpkg": "dist/geetest.min.js", 59 | "version": "5.0.1" 60 | } 61 | -------------------------------------------------------------------------------- /dist/geetest.esm.min.js.map: -------------------------------------------------------------------------------- 1 | {"version":3,"file":"geetest.esm.min.js","sources":["../src/geetest.jsx"],"sourcesContent":null,"names":["type","SCRIPT_ID","isFunction","object","Object","prototype","toString","call","Geetest","arguments","that","window","initGeetest","ready","script","document","getElementById","addEventListener","ds","createElement","id","async","charset","readyState","onreadystatechange","triggerEvent","onload","protocol","location","src","Date","getTime","s","getElementsByTagName","parentNode","insertBefore","event","props","gt","challenge","offline","newCaptcha","product","width","lang","https","timeout","area","nextWidth","bgColor","instance","attach","new_captcha","next_width","bg_color","onReady","onSuccess","onError","onClose","dom","current","appendTo","arg","getValidate","removeEventListener","destroy","dispatchEvent","CustomEvent","detail","bubbles","cancelable","params","createEvent","initCustomEvent","NewCustomEvent","React","createRef","PureComponent","this","create","prevProps","prevState","className","children","ref"],"mappings":"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"} -------------------------------------------------------------------------------- /dist/geetest.min.js.map: -------------------------------------------------------------------------------- 1 | {"version":3,"file":"geetest.min.js","sources":["../src/geetest.jsx"],"sourcesContent":null,"names":["type","isFunction","object","Object","prototype","toString","call","NewCustomEvent","params","bubbles","cancelable","detail","event","document","createEvent","initCustomEvent","Geetest","React","PureComponent","arguments","that","window","initGeetest","ready","script","getElementById","addEventListener","ds","createElement","id","async","charset","readyState","onreadystatechange","triggerEvent","onload","protocol","location","src","Date","getTime","s","getElementsByTagName","parentNode","insertBefore","props","gt","challenge","offline","newCaptcha","product","width","lang","https","timeout","remUnit","zoomEle","hideSuccess","hideClose","hideRefresh","area","nextWidth","bgColor","instance","attach","new_captcha","onReady","onSuccess","onError","onClose","dom","current","appendTo","arg","getValidate","removeEventListener","destroy","dispatchEvent","CustomEvent","createRef","this","create","prevProps","prevState","className","children","ref"],"mappings":"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"} -------------------------------------------------------------------------------- /dist/geetest.es.min.js.map: -------------------------------------------------------------------------------- 1 | {"version":3,"file":"geetest.es.min.js","sources":["../src/geetest.jsx"],"sourcesContent":null,"names":["type","isFunction","object","Object","prototype","toString","call","NewCustomEvent","params","bubbles","cancelable","detail","event","document","createEvent","initCustomEvent","Geetest","React","PureComponent","arguments","that","window","initGeetest","ready","script","getElementById","addEventListener","ds","createElement","id","async","charset","readyState","onreadystatechange","triggerEvent","onload","protocol","location","src","Date","getTime","s","getElementsByTagName","parentNode","insertBefore","props","gt","challenge","offline","newCaptcha","product","width","lang","https","timeout","remUnit","zoomEle","hideSuccess","hideClose","hideRefresh","area","nextWidth","bgColor","instance","attach","new_captcha","onReady","onSuccess","onError","onClose","dom","current","appendTo","arg","getValidate","removeEventListener","destroy","dispatchEvent","CustomEvent","createRef","this","create","prevProps","prevState","className","children","ref"],"mappings":"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"} -------------------------------------------------------------------------------- /dist/geetest.umd.min.js.map: -------------------------------------------------------------------------------- 1 | {"version":3,"file":"geetest.umd.min.js","sources":["../src/geetest.jsx"],"sourcesContent":null,"names":["type","isFunction","object","Object","prototype","toString","call","NewCustomEvent","params","bubbles","cancelable","detail","event","document","createEvent","initCustomEvent","Geetest","arguments","that","window","initGeetest","ready","script","getElementById","addEventListener","ds","createElement","id","async","charset","readyState","onreadystatechange","triggerEvent","onload","protocol","location","src","Date","getTime","s","getElementsByTagName","parentNode","insertBefore","props","gt","challenge","offline","newCaptcha","product","width","lang","https","timeout","remUnit","zoomEle","hideSuccess","hideClose","hideRefresh","area","nextWidth","bgColor","instance","attach","new_captcha","onReady","onSuccess","onError","onClose","dom","current","appendTo","arg","getValidate","removeEventListener","destroy","dispatchEvent","CustomEvent","React","createRef","this","create","prevProps","prevState","className","children","ref","PureComponent"],"mappings":"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"} -------------------------------------------------------------------------------- /dist/geetest.esm.min.js: -------------------------------------------------------------------------------- 1 | import t from"react";function e(t,e){for(var n=0;n1&&void 0!==arguments[1]?arguments[1]:{bubbles:!1,cancelable:!1,detail:null},n=document.createEvent("CustomEvent");return n.initCustomEvent(t,!!e.bubbles,!!e.cancelable,e.detail||{}),n}(t,{detail:null,bubbles:!1,cancelable:!1});n.script.dispatchEvent(r)}});var s=a(e);return s.dom=t.createRef(),s.instance=null,s.script=null,e}var s,d,p;return function(t,e){if("function"!=typeof e&&null!==e)throw new TypeError("Super expression must either be null or a function");t.prototype=Object.create(e&&e.prototype,{constructor:{value:t,writable:!0,configurable:!0}}),e&&o(t,e)}(l,t.PureComponent),s=l,(d=[{key:"componentDidMount",value:function(){this.create()}},{key:"componentDidUpdate",value:function(t,e){this.create()}},{key:"componentWillUnmount",value:function(){this.destroy()}},{key:"render",value:function(){var e=this.props,n=e.className,r=e.children;return t.createElement("div",{ref:this.dom,className:n},r||null)}}])&&e(s.prototype,d),p&&e(s,p),l}();n(l,"defaultProps",{className:"i-geetest",offline:!1,newCaptcha:!0,product:"popup",width:"300px",lang:"zh-cn",https:!1,timeout:3e4,nextWidth:"90%",bgColor:"black",onReady:function(){},onSuccess:function(){},onError:function(){},onClose:function(){}});export default l; 2 | //# sourceMappingURL=geetest.esm.min.js.map 3 | -------------------------------------------------------------------------------- /dist/geetest.es.min.js: -------------------------------------------------------------------------------- 1 | import e from"react";function t(e,t){if(!(e instanceof t))throw new TypeError("Cannot call a class as a function")}function n(e,t){for(var n=0;n1&&void 0!==arguments[1]?arguments[1]:{bubbles:!1,cancelable:!1,detail:null},n=document.createEvent("CustomEvent");return n.initCustomEvent(e,!!t.bubbles,!!t.cancelable,t.detail||{}),n}var d=function(o){!function(e,t){if("function"!=typeof t&&null!==t)throw new TypeError("Super expression must either be null or a function");e.prototype=Object.create(t&&t.prototype,{constructor:{value:e,writable:!0,configurable:!0}}),t&&c(e,t)}(h,e.PureComponent);var i,l,d,p=u(h);function h(){var n;t(this,h),r(a(n=p.apply(this,arguments)),"create",(function(){var e=a(n);if(window.initGeetest)return e.ready();var t=document.getElementById("react-geetest");if(t){if(e.script)return;return t.addEventListener("Im-ready",e.ready,!1),void(e.script=t)}var r=document.createElement("script");r.id="react-geetest",r.type="text/javascript",r.async=!0,r.charset="utf-8",r.readyState?r.onreadystatechange=function(){"loaded"!==r.readyState&&"complete"!==r.readyState||(r.onreadystatechange=null,e.triggerEvent("Im-ready"))}:r.onload=function(){r.onload=null,e.triggerEvent("Im-ready")};var o="http:"===window.location.protocol?"http:":"https:";r.src="".concat(o,"//static.geetest.com/static/tools/gt.js?_t=").concat((new Date).getTime());var c=document.getElementsByTagName("script")[0];c.parentNode.insertBefore(r,c),r.addEventListener("Im-ready",e.ready,!1),e.script=r})),r(a(n),"ready",(function(e){var t=a(n),r=t.props,o=r.gt,c=r.challenge,i=r.offline,u=r.newCaptcha,l=r.product,s=r.width,f=r.lang,d=r.https,p=r.timeout,h=r.remUnit,y=r.zoomEle,v=r.hideSuccess,m=r.hideClose,b=r.hideRefresh,g=r.area,w=r.nextWidth,E=r.bgColor;if(window.initGeetest)return t.instance?t.attach(t.instance):void window.initGeetest({gt:o,challenge:c,offline:i,new_captcha:u,product:l,width:s,lang:f,https:d,timeout:p,remUnit:h,zoomEle:y,hideSuccess:v,hideClose:m,hideRefresh:b,area:g,nextWidth:w,bgColor:E},(function(e){t.instance=e,t.attach(e)}))})),r(a(n),"attach",(function(e){var t=a(n),r=t.props,o=r.onReady,c=r.onSuccess,i=r.onError,u=r.onClose;t.dom&&t.dom.current&&(e.appendTo(t.dom.current),s(e.onReady)&&e.onReady((function(){for(var t=arguments.length,n=new Array(t),r=0;r1&&void 0!==arguments[1]?arguments[1]:{bubbles:!1,cancelable:!1,detail:null},n=document.createEvent("CustomEvent");return n.initCustomEvent(e,!!t.bubbles,!!t.cancelable,t.detail||{}),n}var p=function(e){!function(e,t){if("function"!=typeof t&&null!==t)throw new TypeError("Super expression must either be null or a function");e.prototype=Object.create(t&&t.prototype,{constructor:{value:e,writable:!0,configurable:!0}}),t&&a(e,t)}(h,t["default"].PureComponent);var c,u,s,p=l(h);function h(){var e;n(this,h),o(i(e=p.apply(this,arguments)),"create",(function(){var t=i(e);if(window.initGeetest)return t.ready();var n=document.getElementById("react-geetest");if(n){if(t.script)return;return n.addEventListener("Im-ready",t.ready,!1),void(t.script=n)}var r=document.createElement("script");r.id="react-geetest",r.type="text/javascript",r.async=!0,r.charset="utf-8",r.readyState?r.onreadystatechange=function(){"loaded"!==r.readyState&&"complete"!==r.readyState||(r.onreadystatechange=null,t.triggerEvent("Im-ready"))}:r.onload=function(){r.onload=null,t.triggerEvent("Im-ready")};var o="http:"===window.location.protocol?"http:":"https:";r.src="".concat(o,"//static.geetest.com/static/tools/gt.js?_t=").concat((new Date).getTime());var c=document.getElementsByTagName("script")[0];c.parentNode.insertBefore(r,c),r.addEventListener("Im-ready",t.ready,!1),t.script=r})),o(i(e),"ready",(function(t){var n=i(e),r=n.props,o=r.gt,c=r.challenge,a=r.offline,u=r.newCaptcha,l=r.product,s=r.width,f=r.lang,d=r.https,p=r.timeout,h=r.remUnit,y=r.zoomEle,v=r.hideSuccess,m=r.hideClose,b=r.hideRefresh,g=r.area,w=r.nextWidth,E=r.bgColor;if(window.initGeetest)return n.instance?n.attach(n.instance):void window.initGeetest({gt:o,challenge:c,offline:a,new_captcha:u,product:l,width:s,lang:f,https:d,timeout:p,remUnit:h,zoomEle:y,hideSuccess:v,hideClose:m,hideRefresh:b,area:g,nextWidth:w,bgColor:E},(function(e){n.instance=e,n.attach(e)}))})),o(i(e),"attach",(function(t){var n=i(e),r=n.props,o=r.onReady,c=r.onSuccess,a=r.onError,u=r.onClose;n.dom&&n.dom.current&&(t.appendTo(n.dom.current),f(t.onReady)&&t.onReady((function(){for(var e=arguments.length,n=new Array(e),r=0;r1&&void 0!==arguments[1]?arguments[1]:{bubbles:!1,cancelable:!1,detail:null},n=document.createEvent("CustomEvent");return n.initCustomEvent(e,!!t.bubbles,!!t.cancelable,t.detail||{}),n}var h=function(e){!function(e,t){if("function"!=typeof t&&null!==t)throw new TypeError("Super expression must either be null or a function");e.prototype=Object.create(t&&t.prototype,{constructor:{value:e,writable:!0,configurable:!0}}),t&&a(e,t)}(h,e);var t,i,l,f=s(h);function h(){var e;r(this,h),c(u(e=f.apply(this,arguments)),"create",(function(){var t=u(e);if(window.initGeetest)return t.ready();var n=document.getElementById("react-geetest");if(n){if(t.script)return;return n.addEventListener("Im-ready",t.ready,!1),void(t.script=n)}var r=document.createElement("script");r.id="react-geetest",r.type="text/javascript",r.async=!0,r.charset="utf-8",r.readyState?r.onreadystatechange=function(){"loaded"!==r.readyState&&"complete"!==r.readyState||(r.onreadystatechange=null,t.triggerEvent("Im-ready"))}:r.onload=function(){r.onload=null,t.triggerEvent("Im-ready")};var o="http:"===window.location.protocol?"http:":"https:";r.src="".concat(o,"//static.geetest.com/static/tools/gt.js?_t=").concat((new Date).getTime());var c=document.getElementsByTagName("script")[0];c.parentNode.insertBefore(r,c),r.addEventListener("Im-ready",t.ready,!1),t.script=r})),c(u(e),"ready",(function(t){var n=u(e),r=n.props,o=r.gt,c=r.challenge,i=r.offline,a=r.newCaptcha,l=r.product,s=r.width,f=r.lang,d=r.https,p=r.timeout,h=r.remUnit,y=r.zoomEle,v=r.hideSuccess,m=r.hideClose,b=r.hideRefresh,g=r.area,w=r.nextWidth,E=r.bgColor;if(window.initGeetest)return n.instance?n.attach(n.instance):void window.initGeetest({gt:o,challenge:c,offline:i,new_captcha:a,product:l,width:s,lang:f,https:d,timeout:p,remUnit:h,zoomEle:y,hideSuccess:v,hideClose:m,hideRefresh:b,area:g,nextWidth:w,bgColor:E},(function(e){n.instance=e,n.attach(e)}))})),c(u(e),"attach",(function(t){var n=u(e),r=n.props,o=r.onReady,c=r.onSuccess,i=r.onError,a=r.onClose;n.dom&&n.dom.current&&(t.appendTo(n.dom.current),d(t.onReady)&&t.onReady((function(){for(var e=arguments.length,n=new Array(e),r=0;r object => Object.prototype.toString.call(object) === `[object ${type}]`; 6 | 7 | // const isString = typeOf('String'); 8 | // const isObject = typeOf('Object'); 9 | const isFunction = typeOf('Function'); 10 | 11 | function NewCustomEvent(type, params = { bubbles: false, cancelable: false, detail: null }) { 12 | const event = document.createEvent('CustomEvent'); 13 | event.initCustomEvent(type, !!params.bubbles, !!params.cancelable, params.detail || {}); 14 | return event; 15 | } 16 | 17 | export default class Geetest extends React.PureComponent { 18 | static defaultProps = { 19 | className: 'i-geetest', 20 | // gt: '', 21 | // challenge: '', 22 | offline: false, 23 | newCaptcha: true, 24 | product: 'popup', 25 | width: '300px', 26 | lang: 'zh-cn', 27 | https: false, 28 | timeout: 30000, 29 | remUnit: 1, 30 | zoomEle: null, 31 | hideSuccess: false, 32 | hideClose: false, 33 | hideRefresh: false, 34 | area: null, 35 | nextWidth: null, 36 | bgColor: null, 37 | onReady: () => {}, 38 | onSuccess: () => {}, 39 | onError: () => {}, 40 | onClose: () => {}, 41 | }; 42 | 43 | constructor() { 44 | super(...arguments); 45 | 46 | const that = this; 47 | 48 | that.dom = React.createRef(); 49 | that.instance = null; 50 | that.script = null; 51 | 52 | // that.state = {}; 53 | } 54 | 55 | componentDidMount() { 56 | const that = this; 57 | // console.log('componentDidMount', that.props, that.state); 58 | // const { } = that.props; 59 | // const { } = that.state; 60 | that.create(); 61 | } 62 | 63 | // shouldComponentUpdate(nextProps, nextState) { 64 | // const that = this; 65 | // // console.log('shouldComponentUpdate', that.props, nextProps, that.state, nextState); 66 | // const { 67 | // className, 68 | // gt, 69 | // challenge, 70 | // offline, 71 | // newCaptcha, 72 | // product, 73 | // width, 74 | // lang, 75 | // https, 76 | // timeout, 77 | // remUnit, 78 | // zoomEle, 79 | // hideSuccess, 80 | // hideClose, 81 | // hideRefresh, 82 | // area, 83 | // nextWidth, 84 | // bgColor, 85 | // } = that.props; 86 | 87 | // const isUpdate = 88 | // className !== nextProps.className || 89 | // gt !== nextProps.gt || 90 | // challenge !== nextProps.challenge || 91 | // offline !== nextProps.offline || 92 | // newCaptcha !== nextProps.newCaptcha || 93 | // product !== nextProps.product || 94 | // width !== nextProps.width || 95 | // lang !== nextProps.lang || 96 | // https !== nextProps.https || 97 | // timeout !== nextProps.timeout || 98 | // remUnit !== nextProps.remUnit || 99 | // zoomEle !== nextProps.zoomEle || 100 | // hideSuccess !== nextProps.hideSuccess || 101 | // hideClose !== nextProps.hideClose || 102 | // hideRefresh !== nextProps.hideRefresh || 103 | // area !== nextProps.area || 104 | // nextWidth !== nextProps.nextWidth || 105 | // bgColor !== nextProps.bgColor; 106 | 107 | // return isUpdate; 108 | // } 109 | 110 | componentDidUpdate(prevProps, prevState) { 111 | const that = this; 112 | // console.log('componentDidUpdate', prevProps, that.props, prevState, that.state); 113 | // const { } = that.props; 114 | // const { } = that.state; 115 | that.create(); 116 | } 117 | 118 | componentWillUnmount() { 119 | const that = this; 120 | // console.log('componentWillUnmount', that.props, that.state); 121 | // const { } = that.props; 122 | // const { } = that.state; 123 | that.destroy(); 124 | } 125 | 126 | create = () => { 127 | const that = this; 128 | // console.log('create'); 129 | // const { } = that.props; 130 | // const { } = that.state; 131 | 132 | if (window.initGeetest) { 133 | return that.ready(); 134 | } 135 | 136 | const script = document.getElementById(SCRIPT_ID); 137 | if (script) { 138 | if (that.script) { 139 | return; 140 | } 141 | 142 | script.addEventListener('Im-ready', that.ready, false); 143 | that.script = script; 144 | return; 145 | } 146 | 147 | const ds = document.createElement('script'); 148 | ds.id = SCRIPT_ID; 149 | ds.type = 'text/javascript'; 150 | ds.async = true; 151 | ds.charset = 'utf-8'; 152 | 153 | if (ds.readyState) { 154 | ds.onreadystatechange = () => { 155 | if (ds.readyState === 'loaded' || ds.readyState === 'complete') { 156 | ds.onreadystatechange = null; 157 | that.triggerEvent('Im-ready'); 158 | } 159 | }; 160 | } else { 161 | ds.onload = () => { 162 | ds.onload = null; 163 | that.triggerEvent('Im-ready'); 164 | }; 165 | } 166 | 167 | const protocol = window.location.protocol === 'http:' ? 'http:' : 'https:'; 168 | ds.src = `${protocol}//static.geetest.com/static/tools/gt.js?_t=${new Date().getTime()}`; 169 | 170 | const s = document.getElementsByTagName('script')[0]; 171 | s.parentNode.insertBefore(ds, s); 172 | 173 | ds.addEventListener('Im-ready', that.ready, false); 174 | that.script = ds; 175 | }; 176 | 177 | ready = event => { 178 | const that = this; 179 | // console.log('ready'); 180 | const { 181 | gt, 182 | challenge, 183 | offline, 184 | newCaptcha, 185 | product, 186 | width, 187 | lang, 188 | https, 189 | timeout, 190 | remUnit, 191 | zoomEle, 192 | hideSuccess, 193 | hideClose, 194 | hideRefresh, 195 | area, 196 | nextWidth, 197 | bgColor, 198 | } = that.props; 199 | // const { } = that.state; 200 | 201 | if (!window.initGeetest) { 202 | return; 203 | } 204 | 205 | if (that.instance) { 206 | return that.attach(that.instance); 207 | } 208 | 209 | window.initGeetest( 210 | { 211 | gt, 212 | challenge, 213 | offline, 214 | new_captcha: newCaptcha, 215 | product, 216 | width, 217 | lang, 218 | https, 219 | timeout, 220 | remUnit, 221 | zoomEle, 222 | hideSuccess, 223 | hideClose, 224 | hideRefresh, 225 | area, 226 | nextWidth, 227 | bgColor, 228 | }, 229 | instance => { 230 | that.instance = instance; 231 | that.attach(instance); 232 | } 233 | ); 234 | }; 235 | 236 | attach = instance => { 237 | const that = this; 238 | // console.log('attach'); 239 | const { onReady, onSuccess, onError, onClose } = that.props; 240 | // const { } = that.state; 241 | 242 | if (!that.dom || !that.dom.current) { 243 | return; 244 | } 245 | 246 | instance.appendTo(that.dom.current); 247 | 248 | if (isFunction(instance.onReady)) { 249 | instance.onReady((...arg) => onReady(...arg, instance)); 250 | } 251 | 252 | instance.onSuccess(() => onSuccess(instance.getValidate(), instance)); 253 | 254 | if (isFunction(instance.onError)) { 255 | instance.onError((...arg) => onError(...arg, instance)); 256 | } 257 | 258 | if (isFunction(instance.onClose)) { 259 | instance.onClose((...arg) => onClose(...arg, instance)); 260 | } 261 | }; 262 | 263 | destroy = () => { 264 | const that = this; 265 | // console.log('destroy'); 266 | // const { } = that.props; 267 | // const { } = that.state; 268 | 269 | if (that.script && isFunction(that.script.removeEventListener)) { 270 | that.script.removeEventListener('Im-ready', that.ready, false); 271 | // that.script.parentNode.removeChild(that.script); 272 | that.script = null; 273 | } 274 | 275 | if (that.instance && isFunction(that.instance.destroy)) { 276 | that.instance.destroy(); 277 | that.instance = null; 278 | } 279 | }; 280 | 281 | triggerEvent = type => { 282 | const that = this; 283 | // console.log('triggerEvent'); 284 | // const { } = that.props; 285 | // const { } = that.state; 286 | 287 | if (!that.script || !isFunction(that.script.dispatchEvent)) { 288 | return; 289 | } 290 | 291 | const event = isFunction(window.CustomEvent) 292 | ? new window.CustomEvent(type, { 293 | detail: null, 294 | bubbles: false, 295 | cancelable: false, 296 | // composed: false, 297 | }) 298 | : NewCustomEvent(type, { 299 | detail: null, 300 | bubbles: false, 301 | cancelable: false, 302 | // composed: false, 303 | }); 304 | 305 | that.script.dispatchEvent(event); 306 | }; 307 | 308 | render() { 309 | const that = this; 310 | // console.log('render'); 311 | const { className, children } = that.props; 312 | // const { } = that.state; 313 | 314 | return ( 315 |
316 | {children || null} 317 |
318 | ); 319 | } 320 | } 321 | --------------------------------------------------------------------------------