diff --git a/apps/mobile/app/components/attachments/attachment-item.js b/apps/mobile/app/components/attachments/attachment-item.js
index 8a5a12de5..c32286f9f 100644
--- a/apps/mobile/app/components/attachments/attachment-item.js
+++ b/apps/mobile/app/components/attachments/attachment-item.js
@@ -36,7 +36,11 @@ function getFileExtension(filename) {
var ext = /^.+\.([^.]+)$/.exec(filename);
return ext == null ? "" : ext[1];
}
-
+/**
+ *
+ * @param {any} param0
+ * @returns
+ */
export const AttachmentItem = ({ attachment, encryption, setAttachments }) => {
const colors = useThemeStore((state) => state.colors);
const [currentProgress, setCurrentProgress] = useAttachmentProgress(
diff --git a/apps/mobile/app/hooks/use-attachment-progress.js b/apps/mobile/app/hooks/use-attachment-progress.ts
similarity index 54%
rename from apps/mobile/app/hooks/use-attachment-progress.js
rename to apps/mobile/app/hooks/use-attachment-progress.ts
index 39d807925..a47bbfad5 100644
--- a/apps/mobile/app/hooks/use-attachment-progress.js
+++ b/apps/mobile/app/hooks/use-attachment-progress.ts
@@ -17,35 +17,46 @@ You should have received a copy of the GNU General Public License
along with this program. If not, see .
*/
-import { useEffect, useState } from "react";
+import { useState } from "react";
import { useAttachmentStore } from "../stores/use-attachment-store";
-export const useAttachmentProgress = (attachment, encryption) => {
+type AttachmentProgress = {
+ type: string;
+ value?: number;
+ percent?: string;
+};
+
+export const useAttachmentProgress = (
+ attachment: any,
+ encryption?: boolean
+) => {
const progress = useAttachmentStore((state) => state.progress);
- const [currentProgress, setCurrentProgress] = useState(
+ const [currentProgress, setCurrentProgress] = useState<
+ AttachmentProgress | undefined
+ >(
encryption
? {
type: "encrypt"
}
- : null
+ : undefined
);
- useEffect(() => {
- let prog = progress[attachment.metadata.hash];
- if (prog) {
- let type = prog.type;
- let loaded = prog.type === "download" ? prog.recieved : prog.sent;
- prog = loaded / prog.total;
- prog = (prog * 100).toFixed(0);
- setCurrentProgress({
- value: prog,
- percent: prog + "%",
- type: type
- });
- } else {
- setCurrentProgress(null);
- }
- }, [attachment.metadata.hash, progress]);
+ const attachmentProgress = progress?.[attachment.metadata.hash];
+ if (attachmentProgress) {
+ const type = attachmentProgress.type;
+ const loaded =
+ attachmentProgress.type === "download"
+ ? attachmentProgress.recieved
+ : attachmentProgress.sent;
+ const value = loaded / attachmentProgress.total;
+ setCurrentProgress({
+ value: value * 100,
+ percent: (value * 100).toFixed(0) + "%",
+ type: type
+ });
+ } else {
+ setCurrentProgress(undefined);
+ }
return [currentProgress, setCurrentProgress];
};
diff --git a/apps/mobile/app/hooks/use-vault-status.js b/apps/mobile/app/hooks/use-vault-status.js
deleted file mode 100644
index 1a867c8e5..000000000
--- a/apps/mobile/app/hooks/use-vault-status.js
+++ /dev/null
@@ -1,61 +0,0 @@
-/*
-This file is part of the Notesnook project (https://notesnook.com/)
-
-Copyright (C) 2023 Streetwriters (Private) Limited
-
-This program is free software: you can redistribute it and/or modify
-it under the terms of the GNU General Public License as published by
-the Free Software Foundation, either version 3 of the License, or
-(at your option) any later version.
-
-This program is distributed in the hope that it will be useful,
-but WITHOUT ANY WARRANTY; without even the implied warranty of
-MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
-GNU General Public License for more details.
-
-You should have received a copy of the GNU General Public License
-along with this program. If not, see .
-*/
-
-import React, { useCallback, useEffect } from "react";
-import BiometicService from "../services/biometrics";
-import { eSubscribeEvent, eUnSubscribeEvent } from "../services/event-manager";
-import { db } from "../common/database";
-
-const VaultStatusCache = {
- exists: false,
- biometryEnrolled: false,
- isBiometryAvailable: false
-};
-
-export const useVaultStatus = () => {
- const [vaultStatus, setVaultStatus] = React.useState(VaultStatusCache);
-
- const checkVaultStatus = useCallback(() => {
- db.vault.exists().then(async (exists) => {
- let available = await BiometicService.isBiometryAvailable();
- let fingerprint = await BiometicService.hasInternetCredentials();
- if (
- VaultStatusCache.exists === exists &&
- VaultStatusCache.biometryEnrolled === fingerprint &&
- VaultStatusCache.isBiometryAvailable === available
- )
- return;
- setVaultStatus({
- exists: exists,
- biometryEnrolled: fingerprint,
- isBiometryAvailable: available ? true : false
- });
- });
- }, []);
-
- useEffect(() => {
- checkVaultStatus();
- eSubscribeEvent("vaultUpdated", () => checkVaultStatus());
- return () => {
- eUnSubscribeEvent("vaultUpdated", () => checkVaultStatus());
- };
- }, [checkVaultStatus]);
-
- return vaultStatus;
-};
diff --git a/apps/mobile/app/services/sync.js b/apps/mobile/app/services/sync.js
index a6baf0e4c..6ef5642f4 100644
--- a/apps/mobile/app/services/sync.js
+++ b/apps/mobile/app/services/sync.js
@@ -27,14 +27,6 @@ import { DatabaseLogger } from "../common/database/index";
import { ToastEvent } from "./event-manager";
import SettingsService from "./settings";
-NetInfo.configure({
- reachabilityUrl: "https://notesnook.com",
- reachabilityTest: (response) => {
- if (!response) return false;
- return response?.status >= 200 && response?.status < 300;
- }
-});
-
export const ignoredMessages = [
"Sync already running",
"Not allowed to start service intent",
diff --git a/apps/mobile/app/stores/use-message-store.ts b/apps/mobile/app/stores/use-message-store.ts
index 26043701c..3d3fa727f 100644
--- a/apps/mobile/app/stores/use-message-store.ts
+++ b/apps/mobile/app/stores/use-message-store.ts
@@ -24,7 +24,6 @@ import { db } from "../common/database";
import { MMKV } from "../common/database/mmkv";
import PremiumService from "../services/premium";
import { SUBSCRIPTION_STATUS } from "../utils/constants";
-import layoutmanager from "../utils/layout-manager";
export interface MessageStore extends State {
message: Message;
setMessage: (message: Message) => void;
@@ -96,13 +95,7 @@ export const useMessageStore = create((set, get) => ({
icon: "account-outline"
},
setMessage: (message) => {
- setTimeout(() => {
- if (get().message.visible || message.visible) {
- layoutmanager.withAnimation();
- }
-
- set({ message: { ...message } });
- }, 1);
+ set({ message: { ...message } });
},
announcements: [],
remove: async (id) => {
diff --git a/apps/mobile/app/utils/layout-manager.js b/apps/mobile/app/utils/layout-manager.js
deleted file mode 100644
index adb142615..000000000
--- a/apps/mobile/app/utils/layout-manager.js
+++ /dev/null
@@ -1,31 +0,0 @@
-/*
-This file is part of the Notesnook project (https://notesnook.com/)
-
-Copyright (C) 2023 Streetwriters (Private) Limited
-
-This program is free software: you can redistribute it and/or modify
-it under the terms of the GNU General Public License as published by
-the Free Software Foundation, either version 3 of the License, or
-(at your option) any later version.
-
-This program is distributed in the hope that it will be useful,
-but WITHOUT ANY WARRANTY; without even the implied warranty of
-MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
-GNU General Public License for more details.
-
-You should have received a copy of the GNU General Public License
-along with this program. If not, see .
-*/
-
-function withAnimation(_duration = 300) {
- return;
-}
-
-function withSpringAnimation(_duration = 300) {
- return;
-}
-
-export default {
- withAnimation,
- withSpringAnimation
-};
diff --git a/apps/mobile/app/utils/sanitizer/index.js b/apps/mobile/app/utils/sanitizer/index.ts
similarity index 83%
rename from apps/mobile/app/utils/sanitizer/index.js
rename to apps/mobile/app/utils/sanitizer/index.ts
index 02836238f..311540a1c 100644
--- a/apps/mobile/app/utils/sanitizer/index.js
+++ b/apps/mobile/app/utils/sanitizer/index.ts
@@ -46,18 +46,18 @@ along with this program. If not, see .
* @return {String} Sanitized filename
*/
-var illegalRe = /[/?<>\\:*|"]/g;
+const illegalRe = /[/?<>\\:*|"]/g;
//var controlRe = /[x00-x1f\x80-\x9f]/g;
-var reservedRe = /^\.+$/;
-var windowsReservedRe = /^(con|prn|aux|nul|com[0-9]|lpt[0-9])(\..*)?$/i;
-var windowsTrailingRe = /[. ]+$/;
-var whitespace = /\s+/g;
+const reservedRe = /^\.+$/;
+const windowsReservedRe = /^(con|prn|aux|nul|com[0-9]|lpt[0-9])(\..*)?$/i;
+const windowsTrailingRe = /[. ]+$/;
+const whitespace = /\s+/g;
-function sanitize(input, replacement) {
+function sanitize(input: string, replacement: string) {
if (typeof input !== "string") {
throw new Error("Input must be string");
}
- var sanitized = input
+ const sanitized = input
.replace(whitespace, replacement)
.replace(illegalRe, replacement)
.replace(reservedRe, replacement)
@@ -67,7 +67,10 @@ function sanitize(input, replacement) {
return sanitized.slice(0, 254).toLowerCase();
}
-export function sanitizeFilename(input, options) {
- var replacement = (options && options.replacement) || "";
+export function sanitizeFilename(
+ input: string,
+ options: { replacement: string }
+) {
+ const replacement = (options && options.replacement) || "";
return sanitize(input, replacement);
}