diff --git a/web/apps/photos/src/components/Upload/Uploader.tsx b/web/apps/photos/src/components/Upload/Uploader.tsx index ef91f0670..68c016201 100644 --- a/web/apps/photos/src/components/Upload/Uploader.tsx +++ b/web/apps/photos/src/components/Upload/Uploader.tsx @@ -1,15 +1,8 @@ -import { useContext, useEffect, useRef, useState } from "react"; - -import { t } from "i18next"; -import { Trans } from "react-i18next"; -import { getLatestCollections } from "services/collectionService"; - -import UploadProgress from "./UploadProgress"; - import ElectronAPIs from "@ente/shared/electron"; import { CustomError } from "@ente/shared/error"; import { addLogLine } from "@ente/shared/logging"; import { logError } from "@ente/shared/sentry"; +import { isPromise } from "@ente/shared/utils"; import DiscFullIcon from "@mui/icons-material/DiscFull"; import UserNameInputDialog from "components/UserNameInputDialog"; import { @@ -18,10 +11,14 @@ import { UPLOAD_STAGES, UPLOAD_STRATEGY, } from "constants/upload"; +import { t } from "i18next"; import isElectron from "is-electron"; import { AppContext } from "pages/_app"; import { GalleryContext } from "pages/gallery"; +import { useContext, useEffect, useRef, useState } from "react"; +import { Trans } from "react-i18next"; import billingService from "services/billingService"; +import { getLatestCollections } from "services/collectionService"; import ImportService from "services/importService"; import { getPublicCollectionUID, @@ -52,7 +49,7 @@ import { UploadFileNames, } from "types/upload/ui"; import { getOrCreateAlbum } from "utils/collection"; -import { downloadApp, waitAndRun } from "utils/common"; +import { downloadApp } from "utils/common"; import { PublicCollectionGalleryContext } from "utils/publicCollectionGallery"; import { getDownloadAppMessage, @@ -65,6 +62,7 @@ import { } from "utils/upload"; import { isCanvasBlocked } from "utils/upload/isCanvasBlocked"; import { SetCollectionNamerAttributes } from "../Collections/CollectionNamer"; +import UploadProgress from "./UploadProgress"; import UploadStrategyChoiceModal from "./UploadStrategyChoiceModal"; import UploadTypeSelector from "./UploadTypeSelector"; @@ -844,3 +842,13 @@ export default function Uploader(props: Props) { ); } + +async function waitAndRun( + waitPromise: Promise, + task: () => Promise, +) { + if (waitPromise && isPromise(waitPromise)) { + await waitPromise; + } + await task(); +} diff --git a/web/apps/photos/src/pages/gallery/index.tsx b/web/apps/photos/src/pages/gallery/index.tsx index f62376ea6..5930dd30b 100644 --- a/web/apps/photos/src/pages/gallery/index.tsx +++ b/web/apps/photos/src/pages/gallery/index.tsx @@ -49,7 +49,7 @@ import { syncMapEnabled, validateKey, } from "services/userService"; -import { mergeMaps, preloadImage } from "utils/common"; +import { preloadImage } from "utils/common"; import { FILE_OPS_TYPE, constructFileToCollectionMap, @@ -135,7 +135,6 @@ import { import { Search, SearchResultSummary, UpdateSearch } from "types/search"; import { FamilyData } from "types/user"; import ComlinkSearchWorker from "utils/comlink/ComlinkSearchWorker"; -import { checkConnectivity } from "utils/common"; import { isArchivedFile } from "utils/magicMetadata"; import { getSessionExpiredMessage } from "utils/ui"; import { getLocalFamilyData } from "utils/user/family"; @@ -680,13 +679,13 @@ export default function Gallery() { }; const syncWithRemote = async (force = false, silent = false) => { + if (!navigator.onLine) return; if (syncInProgress.current && !force) { resync.current = { force, silent }; return; } syncInProgress.current = true; try { - checkConnectivity(); const token = getToken(); if (!token) { return; @@ -719,8 +718,6 @@ export default function Gallery() { clearKeys(); router.push(PAGES.CREDENTIALS); break; - case CustomError.NO_INTERNET_CONNECTION: - break; default: logError(e, "syncWithRemote failed"); } @@ -1252,3 +1249,11 @@ function useEffectSingleThreaded( main(deps); }, deps); } + +const mergeMaps = (map1: Map, map2: Map) => { + const mergedMap = new Map(map1); + map2.forEach((value, key) => { + mergedMap.set(key, value); + }); + return mergedMap; +}; diff --git a/web/apps/photos/src/utils/common/index.ts b/web/apps/photos/src/utils/common/index.ts index 4fa21a352..ee0acf476 100644 --- a/web/apps/photos/src/utils/common/index.ts +++ b/web/apps/photos/src/utils/common/index.ts @@ -1,13 +1,4 @@ import { APP_DOWNLOAD_URL } from "@ente/shared/constants/urls"; -import { CustomError } from "@ente/shared/error"; -import { isPromise } from "@ente/shared/utils"; - -export function checkConnectivity() { - if (navigator.onLine) { - return true; - } - throw new Error(CustomError.NO_INTERNET_CONNECTION); -} export function downloadApp() { openLink(APP_DOWNLOAD_URL, true); @@ -38,16 +29,6 @@ export function openLink(href: string, newTab?: boolean) { a.click(); } -export async function waitAndRun( - waitPromise: Promise, - task: () => Promise, -) { - if (waitPromise && isPromise(waitPromise)) { - await waitPromise; - } - await task(); -} - export function isClipboardItemPresent() { return typeof ClipboardItem !== "undefined"; } @@ -59,11 +40,3 @@ export function batch(arr: T[], batchSize: number): T[][] { } return batches; } - -export const mergeMaps = (map1: Map, map2: Map) => { - const mergedMap = new Map(map1); - map2.forEach((value, key) => { - mergedMap.set(key, value); - }); - return mergedMap; -}; diff --git a/web/packages/shared/error/index.ts b/web/packages/shared/error/index.ts index 3d3309379..6ed4c7486 100644 --- a/web/packages/shared/error/index.ts +++ b/web/packages/shared/error/index.ts @@ -70,7 +70,6 @@ export const CustomError = { EXPORT_STOPPED: "export stopped", NO_EXPORT_FOLDER_SELECTED: "no export folder selected", EXPORT_FOLDER_DOES_NOT_EXIST: "export folder does not exist", - NO_INTERNET_CONNECTION: "no internet connection", AUTH_KEY_NOT_FOUND: "auth key not found", EXIF_DATA_NOT_FOUND: "exif data not found", SELECT_FOLDER_ABORTED: "select folder aborted",