mirror of
https://github.com/streetwriters/notesnook.git
synced 2025-12-23 06:59:31 +01:00
feat: add internet connectivity check
This commit is contained in:
@@ -1,4 +1,5 @@
|
|||||||
import { HOST, HEADERS } from "../utils/constants";
|
import { HOST, HEADERS } from "../utils/constants";
|
||||||
|
import noInternet from "no-internet";
|
||||||
|
|
||||||
export default class User {
|
export default class User {
|
||||||
/**
|
/**
|
||||||
@@ -14,6 +15,7 @@ export default class User {
|
|||||||
var user = await this.get();
|
var user = await this.get();
|
||||||
if (!user) return;
|
if (!user) return;
|
||||||
user = await authRequest.call(this, "users", undefined, true, true);
|
user = await authRequest.call(this, "users", undefined, true, true);
|
||||||
|
if (!user) return;
|
||||||
delete user.lastSynced;
|
delete user.lastSynced;
|
||||||
await this.set(user);
|
await this.set(user);
|
||||||
}
|
}
|
||||||
@@ -55,6 +57,7 @@ export default class User {
|
|||||||
password,
|
password,
|
||||||
grant_type: "password",
|
grant_type: "password",
|
||||||
});
|
});
|
||||||
|
if (!response) return;
|
||||||
const key = await this._context.deriveKey(password, response.payload.salt);
|
const key = await this._context.deriveKey(password, response.payload.salt);
|
||||||
let user = userFromResponse(response, key);
|
let user = userFromResponse(response, key);
|
||||||
await this._context.write("user", user);
|
await this._context.write("user", user);
|
||||||
@@ -73,6 +76,7 @@ export default class User {
|
|||||||
refresh_token: user.refreshToken,
|
refresh_token: user.refreshToken,
|
||||||
grant_type: "refresh_token",
|
grant_type: "refresh_token",
|
||||||
});
|
});
|
||||||
|
if (!response) return;
|
||||||
|
|
||||||
user = {
|
user = {
|
||||||
...user,
|
...user,
|
||||||
@@ -94,6 +98,7 @@ export default class User {
|
|||||||
password,
|
password,
|
||||||
email,
|
email,
|
||||||
});
|
});
|
||||||
|
if (!response) return;
|
||||||
const key = await this._context.deriveKey(password, response.payload.salt);
|
const key = await this._context.deriveKey(password, response.payload.salt);
|
||||||
let user = userFromResponse(response, key);
|
let user = userFromResponse(response, key);
|
||||||
await this._context.write("user", user);
|
await this._context.write("user", user);
|
||||||
@@ -113,6 +118,11 @@ function userFromResponse(response, key) {
|
|||||||
}
|
}
|
||||||
|
|
||||||
async function authRequest(endpoint, data, auth = false, get = false) {
|
async function authRequest(endpoint, data, auth = false, get = false) {
|
||||||
|
const offline = await noInternet({
|
||||||
|
url: HOST,
|
||||||
|
});
|
||||||
|
if (offline) return;
|
||||||
|
|
||||||
var headers = {};
|
var headers = {};
|
||||||
if (auth) {
|
if (auth) {
|
||||||
const token = await this.token();
|
const token = await this.token();
|
||||||
|
|||||||
@@ -22,6 +22,7 @@
|
|||||||
"dependencies": {
|
"dependencies": {
|
||||||
"fast-sort": "^2.0.1",
|
"fast-sort": "^2.0.1",
|
||||||
"fuzzysearch": "^1.0.3",
|
"fuzzysearch": "^1.0.3",
|
||||||
|
"no-internet": "^1.5.2",
|
||||||
"qclone": "^1.0.4",
|
"qclone": "^1.0.4",
|
||||||
"transfun": "^1.0.2"
|
"transfun": "^1.0.2"
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -3690,6 +3690,13 @@ nice-try@^1.0.4:
|
|||||||
resolved "https://registry.yarnpkg.com/nice-try/-/nice-try-1.0.5.tgz#a3378a7696ce7d223e88fc9b764bd7ef1089e366"
|
resolved "https://registry.yarnpkg.com/nice-try/-/nice-try-1.0.5.tgz#a3378a7696ce7d223e88fc9b764bd7ef1089e366"
|
||||||
integrity sha512-1nh45deeb5olNY7eX82BkPO7SSxR5SSYJiPTrTdFUVYwAl8CKMA5N9PjTYkHiRjisVcxcQ1HXdLhx2qxxJzLNQ==
|
integrity sha512-1nh45deeb5olNY7eX82BkPO7SSxR5SSYJiPTrTdFUVYwAl8CKMA5N9PjTYkHiRjisVcxcQ1HXdLhx2qxxJzLNQ==
|
||||||
|
|
||||||
|
no-internet@^1.5.2:
|
||||||
|
version "1.5.2"
|
||||||
|
resolved "https://registry.yarnpkg.com/no-internet/-/no-internet-1.5.2.tgz#a51e8c314fd4d005c8239eda7e6c4aad7c0cadfb"
|
||||||
|
integrity sha512-4GnJQsc/BCwcOG+8acwAsm9bYVdgh0V5ORQTAnB+7u9hoKdR4WqSqw6Bhjo3DO/tvhad4wbrw4l07/CG6C+wDg==
|
||||||
|
dependencies:
|
||||||
|
set-interval "^2.0.1"
|
||||||
|
|
||||||
node-fetch@2.6.0:
|
node-fetch@2.6.0:
|
||||||
version "2.6.0"
|
version "2.6.0"
|
||||||
resolved "https://registry.yarnpkg.com/node-fetch/-/node-fetch-2.6.0.tgz#e633456386d4aa55863f676a7ab0daa8fdecb0fd"
|
resolved "https://registry.yarnpkg.com/node-fetch/-/node-fetch-2.6.0.tgz#e633456386d4aa55863f676a7ab0daa8fdecb0fd"
|
||||||
@@ -4365,6 +4372,11 @@ set-blocking@^2.0.0:
|
|||||||
resolved "https://registry.yarnpkg.com/set-blocking/-/set-blocking-2.0.0.tgz#045f9782d011ae9a6803ddd382b24392b3d890f7"
|
resolved "https://registry.yarnpkg.com/set-blocking/-/set-blocking-2.0.0.tgz#045f9782d011ae9a6803ddd382b24392b3d890f7"
|
||||||
integrity sha1-BF+XgtARrppoA93TgrJDkrPYkPc=
|
integrity sha1-BF+XgtARrppoA93TgrJDkrPYkPc=
|
||||||
|
|
||||||
|
set-interval@^2.0.1:
|
||||||
|
version "2.0.4"
|
||||||
|
resolved "https://registry.yarnpkg.com/set-interval/-/set-interval-2.0.4.tgz#419266c0a2b05d5fd5bde6e7896b57a27d060a5a"
|
||||||
|
integrity sha512-Srlnjq2O84WQxv2DkTyf7S0nRebiNE+uD5nd2Iy4ISOtiZbxglSfup88vegIAYRpCn/ITS1rYmjCPuAhn/hdmg==
|
||||||
|
|
||||||
set-value@^2.0.0, set-value@^2.0.1:
|
set-value@^2.0.0, set-value@^2.0.1:
|
||||||
version "2.0.1"
|
version "2.0.1"
|
||||||
resolved "https://registry.yarnpkg.com/set-value/-/set-value-2.0.1.tgz#a18d40530e6f07de4228c7defe4227af8cad005b"
|
resolved "https://registry.yarnpkg.com/set-value/-/set-value-2.0.1.tgz#a18d40530e6f07de4228c7defe4227af8cad005b"
|
||||||
|
|||||||
Reference in New Issue
Block a user