diff --git a/package.json b/package.json index 4f3cd53..a79ddbb 100644 --- a/package.json +++ b/package.json @@ -71,7 +71,7 @@ "prettier": "^2.6.2", "semver": "^7.3.7", "typescript": "^4.5.4", - "vite": "^2.9.5", + "vite": "^2.9.16", "vite-plugin-eslint": "^1.6.0", "vue-tsc": "^0.34.7" } diff --git a/src/directives/pattern.js b/src/directives/pattern.js index 30741f3..96c576b 100644 --- a/src/directives/pattern.js +++ b/src/directives/pattern.js @@ -1,6 +1,6 @@ const premadePatterns = { email: - /^([a-zA-Z0-9.!#$%&'*+/=?^_`{|}~-]+(@([a-zA-Z0-9-]+(\.([a-zA-Z0-9-]+)?)?)?)?)?$/, + /^([a-zA-Z0-9.!#$%&'*+/=?^_`{|}~-]+(@([a-zA-Z0-9-]+\.)*([a-zA-Z0-9-]+)?)?)?$/, }; export default { diff --git a/src/locales/lang/common.js b/src/locales/lang/common.js index 1aa26e7..b0eb3ec 100644 --- a/src/locales/lang/common.js +++ b/src/locales/lang/common.js @@ -980,11 +980,11 @@ const common = { basic: "Simple", advanced: "Advanced", lockedBalance: "Locked Balance", - countryNotFound: "Country not found", - countrySearch: "Start typing country name", + countryNotFound: "Country/region not found", + countrySearch: "Start typing country/region name", buysellDescription: "Light interface for quick buying and selling", exchangeDescription: "Professional interface for traders", - countryIncorrect: "We do not support users from this country.", + countryIncorrect: "We do not support users from this country/region.", chooseInterfaceSubtitle: "You can always change it back", chooseInterface: "Please Choose Interface", invalidValueString: "Use Latin characters", @@ -993,12 +993,12 @@ const common = { fieldMaxLength: "Max characters: ", requiredField: "Required field", bdayError: "You must be at least 18 years old", - chooseCountry: "Select country", + chooseCountry: "Select country/region", agree: "I have read and agree to the", newspaper: "Subscribe to our Newsletter", terms: "Terms and Conditions", privacy: "Privacy Policy", - country: "Country of residence", + country: "Country/Region of residence", password: "Password", birthday: "Date of birth", firstname: "First Name", @@ -1206,7 +1206,7 @@ const common = { modalactivcode: "Your Code confirmed!", modalactivcodeCancel: "Your Code cancelled!", payeeracc: "Payeer account", - qiwicountrycode: "your country code", + qiwicountrycode: "your country/region code", qiwiexample: "Example", amounttowww: "Receive amount", methods: "Methods", diff --git a/src/mixins/getRegularNumber.js b/src/mixins/getRegularNumber.js index e1d1c73..2fdd271 100644 --- a/src/mixins/getRegularNumber.js +++ b/src/mixins/getRegularNumber.js @@ -1,24 +1,27 @@ export default { methods: { - getRegularNumber(x) { - if (Math.abs(x) < 1.0) { - let e = parseInt(x?.toString().split("e-")[1]); - if (e) { - x *= Math.pow(10, e - 1); - x = - "0." + - new Array(e).join("0") + - x.toString().substring(x < 0 ? 3 : 2); - } - } else { - let e = parseInt(x?.toString().split("+")[1]); - if (e > 20) { - e -= 20; - x /= Math.pow(10, e); - x += new Array(e + 1).join("0"); - } + getRegularNumber(n) { + let sign = +n < 0 ? "-" : "", + toStr = n.toString(); + if (!/e/i.test(toStr)) { + return n; } - return x; + let [lead, decimal, pow] = n + .toString() + .replace(/^-/, "") + .replace(/^([0-9]+)(e.*)/, "$1.$2") + .split(/e|\./); + return +pow < 0 + ? sign + + "0." + + "0".repeat(Math.max(Math.abs(pow) - 1 || 0, 0)) + + lead + + decimal + : sign + + lead + + (+pow >= decimal.length + ? decimal + "0".repeat(Math.max(+pow - decimal.length || 0, 0)) + : decimal.slice(0, +pow) + "." + decimal.slice(+pow)); }, }, }; diff --git a/src/modules/account/pages/Register.vue b/src/modules/account/pages/Register.vue index df25d51..fcd9392 100644 --- a/src/modules/account/pages/Register.vue +++ b/src/modules/account/pages/Register.vue @@ -97,6 +97,7 @@ { error.response?.data?.code?.code === "token_not_valid" ) { const originalRequest = error.config; - await store.dispatch("core/refreshToken"); - originalRequest.headers["Authorization"] = - "Bearer " + localStorage.getItem("token"); - return app.config.globalProperties.$http(originalRequest); + try { + await store.dispatch("core/refreshToken"); + originalRequest.headers["Authorization"] = + "Bearer " + localStorage.getItem("token"); + return app.config.globalProperties.$http(originalRequest); + } catch (e) { + console.log(e); + } } const pathname = window.location.pathname; const matchNotAuthViews = noAuthRequireRoutes.find((route) => @@ -99,15 +103,15 @@ export default (app) => { ); if (pathname !== "/" && !matchNotAuthViews) { const lastPage = router.currentRoute.value.fullPath; - if (lastPage) { - if ( - error.response && - error.response?.data?.code?.code !== "token_not_valid" - ) { + if ( + error.response && + error.response?.data?.code?.code === "token_not_valid" + ) { + if (lastPage) { router.push({ name: "login", query: { redirectFrom: lastPage } }); + } else { + router.push({ name: "login" }); } - } else { - router.push({ name: "login" }); } } } diff --git a/src/static/public/img/Smile.svg b/src/static/public/img/Smile.svg deleted file mode 100644 index 46a439e..0000000 --- a/src/static/public/img/Smile.svg +++ /dev/null @@ -1,9 +0,0 @@ - - - - - - - - - \ No newline at end of file diff --git a/src/store/core/actions.js b/src/store/core/actions.js index 2f030bb..f999653 100644 --- a/src/store/core/actions.js +++ b/src/store/core/actions.js @@ -422,8 +422,9 @@ export default { localStorage.setItem("token", response.data.access); localStorage.setItem("refresh_token", response.data.refresh); }) - .catch(() => { + .catch((e) => { dispatch("logout"); + return Promise.reject(e); }) .finally(() => { refreshTokenPromise = null; diff --git a/yarn.lock b/yarn.lock index 8acea3b..8ed10c2 100644 --- a/yarn.lock +++ b/yarn.lock @@ -17,6 +17,13 @@ resolved "https://registry.yarnpkg.com/@esbuild/linux-loong64/-/linux-loong64-0.14.54.tgz#de2a4be678bd4d0d1ffbb86e6de779cde5999028" integrity sha512-bZBrLAIX1kpWelV0XemxBZllyRmM6vgFQQG2GdNb+r3Fkp0FOh1NJSvekXDs7jq70k4euu1cryLMfU+mTXlEpw== +"@eslint-community/eslint-utils@^4.3.0": + version "4.4.0" + resolved "https://registry.yarnpkg.com/@eslint-community/eslint-utils/-/eslint-utils-4.4.0.tgz#a23514e8fb9af1269d5f7788aa556798d61c6b59" + integrity sha512-1/sA4dwrzBAyeUoQ6oxahHKmrZvsnLCg4RfxW3ZFGGmQkSNQPFNLV9CUEFQP1x9EYXHTo5p6xdhZM1Ne9p/AfA== + dependencies: + eslint-visitor-keys "^3.3.0" + "@eslint/eslintrc@^1.3.1": version "1.3.1" resolved "https://registry.yarnpkg.com/@eslint/eslintrc/-/eslintrc-1.3.1.tgz#de0807bfeffc37b964a7d0400e0c348ce5a2543d" @@ -1454,17 +1461,17 @@ eslint-plugin-prettier@^4.0.0: dependencies: prettier-linter-helpers "^1.0.0" -eslint-plugin-vue@^9.1.0: - version "9.4.0" - resolved "https://registry.yarnpkg.com/eslint-plugin-vue/-/eslint-plugin-vue-9.4.0.tgz#31c2d9002b5bb437b351a5feffdf37c4397e5cb9" - integrity sha512-Nzz2QIJ8FG+rtJaqT/7/ru5ie2XgT9KCudkbN0y3uFYhQ41nuHEaboLAiqwMcK006hZPQv/rVMRhUIwEGhIvfQ== +eslint-plugin-vue@^9.14.1: + version "9.15.0" + resolved "https://registry.yarnpkg.com/eslint-plugin-vue/-/eslint-plugin-vue-9.15.0.tgz#2bffe2b8a628ee438f983672a73cd89df455c461" + integrity sha512-XYzpK6e2REli100+6iCeBA69v6Sm0D/yK2FZP+fCeNt0yH/m82qZQq+ztseyV0JsKdhFysuSEzeE1yCmSC92BA== dependencies: - eslint-utils "^3.0.0" + "@eslint-community/eslint-utils" "^4.3.0" natural-compare "^1.4.0" nth-check "^2.0.1" postcss-selector-parser "^6.0.9" semver "^7.3.5" - vue-eslint-parser "^9.0.1" + vue-eslint-parser "^9.3.0" xml-name-validator "^4.0.0" eslint-scope@^5.1.1: @@ -2155,9 +2162,9 @@ json-stable-stringify-without-jsonify@^1.0.1: integrity sha512-Bdboy+l7tA3OGW6FjyFHWkP5LuByj1Tk33Ljyq0axyzdk9//JSi2u3fP1QSmd1KNwq6VOKYGlAu87CisVir6Pw== json5@^1.0.1: - version "1.0.1" - resolved "https://registry.yarnpkg.com/json5/-/json5-1.0.1.tgz#779fb0018604fa854eacbf6252180d83543e3dbe" - integrity sha512-aKS4WQjPenRxiQsC93MNfjx+nbF4PAdYzmd/1JIj8HYzqfbu86beTuNgXDzPknWk0n0uARlyewZo4s++ES36Ow== + version "1.0.2" + resolved "https://registry.yarnpkg.com/json5/-/json5-1.0.2.tgz#63d98d60f21b313b77c4d6da18bfa69d80e1d593" + integrity sha512-g1MWMLBiz8FKi1e4w0UyVL3w+iJceWAFBAaBnnGKOpNa5f8TLktkbre1+s6oICydWAm+HRUGTmI+//xv2hvXYA== dependencies: minimist "^1.2.0" @@ -2185,9 +2192,9 @@ lilconfig@^2.0.5, lilconfig@^2.0.6: integrity sha512-9JROoBW7pobfsx+Sq2JsASvCo6Pfo6WWoUW79HuB1BCoBXD4PLWJPqDF6fNj67pqBYTbAHkE57M1kS/+L1neOg== loader-utils@^1.0.2, loader-utils@^1.1.0: - version "1.4.0" - resolved "https://registry.yarnpkg.com/loader-utils/-/loader-utils-1.4.0.tgz#c579b5e34cb34b1a74edc6c1fb36bfa371d5a613" - integrity sha512-qH0WSMBtn/oHuwjy/NucEgbx5dbxxnxup9s4PVXJUDHZBQY+s0NWA9rJf53RBnQZxfch7euUui7hpoAPvALZdA== + version "1.4.2" + resolved "https://registry.yarnpkg.com/loader-utils/-/loader-utils-1.4.2.tgz#29a957f3a63973883eb684f10ffd3d151fec01a3" + integrity sha512-I5d00Pd/jwMD2QCduo657+YM/6L3KZu++pmX9VFncxaxvHcru9jx1lBaFft+r4Mt2jK0Yhp41XlRAihzPxHNCg== dependencies: big.js "^5.2.2" emojis-list "^3.0.0" @@ -3395,10 +3402,10 @@ vite-plugin-eslint@^1.6.0: "@types/eslint" "^8.4.5" rollup "^2.77.2" -vite@^2.9.5: - version "2.9.15" - resolved "https://registry.yarnpkg.com/vite/-/vite-2.9.15.tgz#2858dd5b2be26aa394a283e62324281892546f0b" - integrity sha512-fzMt2jK4vQ3yK56te3Kqpkaeq9DkcZfBbzHwYpobasvgYmP2SoAr6Aic05CsB4CzCZbsDv4sujX3pkEGhLabVQ== +vite@^2.9.16: + version "2.9.16" + resolved "https://registry.yarnpkg.com/vite/-/vite-2.9.16.tgz#daf7ba50f5cc37a7bf51b118ba06bc36e97898e9" + integrity sha512-X+6q8KPyeuBvTQV8AVSnKDvXoBMnTx8zxh54sOwmmuOdxkjMmEJXH2UEchA+vTMps1xw9vL64uwJOWryULg7nA== dependencies: esbuild "^0.14.27" postcss "^8.4.13" @@ -3440,10 +3447,10 @@ vue-eslint-parser@^8.0.0: lodash "^4.17.21" semver "^7.3.5" -vue-eslint-parser@^9.0.1: - version "9.0.3" - resolved "https://registry.yarnpkg.com/vue-eslint-parser/-/vue-eslint-parser-9.0.3.tgz#0c17a89e0932cc94fa6a79f0726697e13bfe3c96" - integrity sha512-yL+ZDb+9T0ELG4VIFo/2anAOz8SvBdlqEnQnvJ3M7Scq56DvtjY0VY88bByRZB0D4J0u8olBcfrXTVONXsh4og== +vue-eslint-parser@^9.3.0: + version "9.3.1" + resolved "https://registry.yarnpkg.com/vue-eslint-parser/-/vue-eslint-parser-9.3.1.tgz#429955e041ae5371df5f9e37ebc29ba046496182" + integrity sha512-Clr85iD2XFZ3lJ52/ppmUDG/spxQu6+MAeHXjjyI4I1NUYZ9xmenQp4N0oaHJhrA8OOxltCVxMRfANGa70vU0g== dependencies: debug "^4.3.4" eslint-scope "^7.1.1"