diff --git a/src/pages/gallery/index.tsx b/src/pages/gallery/index.tsx index 84b40e2aa..c53834285 100644 --- a/src/pages/gallery/index.tsx +++ b/src/pages/gallery/index.tsx @@ -1,4 +1,10 @@ -import React, { createContext, useContext, useEffect, useRef, useState } from 'react'; +import React, { + createContext, + useContext, + useEffect, + useRef, + useState, +} from 'react'; import { useRouter } from 'next/router'; import { clearKeys, getKey, SESSION_KEYS } from 'utils/storage/sessionStorage'; import { @@ -98,19 +104,22 @@ export interface SearchStats { type GalleryContextType = { thumbs: Map; files: Map; -} +}; const defaultGalleryContext: GalleryContextType = { thumbs: new Map(), files: new Map(), }; -export const GalleryContext = createContext(defaultGalleryContext); +export const GalleryContext = createContext( + defaultGalleryContext, +); export default function Gallery() { const router = useRouter(); const [collections, setCollections] = useState([]); - const [collectionsAndTheirLatestFile, setCollectionsAndTheirLatestFile] = useState([]); + const [collectionsAndTheirLatestFile, setCollectionsAndTheirLatestFile] = + useState([]); const [files, setFiles] = useState(null); const [favItemIds, setFavItemIds] = useState>(); const [bannerMessage, setBannerMessage] = useState(null); @@ -121,9 +130,11 @@ export default function Gallery() { const [dialogView, setDialogView] = useState(false); const [planModalView, setPlanModalView] = useState(false); const [loading, setLoading] = useState(false); - const [collectionSelectorAttributes, setCollectionSelectorAttributes] = useState(null); + const [collectionSelectorAttributes, setCollectionSelectorAttributes] = + useState(null); const [collectionSelectorView, setCollectionSelectorView] = useState(false); - const [collectionNamerAttributes, setCollectionNamerAttributes] = useState(null); + const [collectionNamerAttributes, setCollectionNamerAttributes] = + useState(null); const [collectionNamerView, setCollectionNamerView] = useState(false); const [search, setSearch] = useState({ date: null, @@ -150,7 +161,8 @@ export default function Gallery() { const resync = useRef(false); const [deleted, setDeleted] = useState([]); const appContext = useContext(AppContext); - const [collectionFilesCount, setCollectionFilesCount] = useState>(); + const [collectionFilesCount, setCollectionFilesCount] = + useState>(); useEffect(() => { const key = getKey(SESSION_KEYS.ENCRYPTION_KEY); @@ -181,22 +193,19 @@ export default function Gallery() { }, []); useEffect(() => setDialogView(true), [dialogMessage]); - useEffect( - () => { - if (collectionSelectorAttributes) { - setCollectionSelectorView(true); - } - }, - [collectionSelectorAttributes], - ); + useEffect(() => { + if (collectionSelectorAttributes) { + setCollectionSelectorView(true); + } + }, [collectionSelectorAttributes]); useEffect(() => setCollectionNamerView(true), [collectionNamerAttributes]); - const syncWithRemote = async (force = false, silent=false) => { + const syncWithRemote = async (force = false, silent = false) => { if (syncInProgress.current && !force) { - resync.current= true; + resync.current = true; return; } - syncInProgress.current=true; + syncInProgress.current = true; try { checkConnectivity(); if (!(await isTokenValid())) { @@ -215,11 +224,13 @@ export default function Gallery() { title: constants.SESSION_EXPIRED, content: constants.SESSION_EXPIRED_MESSAGE, staticBackdrop: true, + nonClosable: true, proceed: { text: constants.LOGIN, action: logoutUser, variant: 'success', - } }); + }, + }); break; case CustomError.KEY_MISSING: clearKeys(); @@ -229,22 +240,17 @@ export default function Gallery() { } finally { !silent && loadingBar.current?.complete(); } - syncInProgress.current=false; + syncInProgress.current = false; if (resync.current) { - resync.current=false; + resync.current = false; syncWithRemote(); } }; const initDerivativeState = async (collections, files) => { - const nonEmptyCollections = getNonEmptyCollections( - collections, - files, - ); - const collectionsAndTheirLatestFile = await getCollectionsAndTheirLatestFile( - nonEmptyCollections, - files, - ); + const nonEmptyCollections = getNonEmptyCollections(collections, files); + const collectionsAndTheirLatestFile = + await getCollectionsAndTheirLatestFile(nonEmptyCollections, files); const collectionWiseFiles = sortFilesIntoCollections(files); const collectionFilesCount = new Map(); for (const [id, files] of collectionWiseFiles) { @@ -286,22 +292,20 @@ export default function Gallery() { ); }; - const showCreateCollectionModal = () => setCollectionNamerAttributes({ - title: constants.CREATE_COLLECTION, - buttonText: constants.CREATE, - autoFilledName: '', - callback: (collectionName) => addToCollectionHelper(collectionName, null), - }); + const showCreateCollectionModal = () => + setCollectionNamerAttributes({ + title: constants.CREATE_COLLECTION, + buttonText: constants.CREATE, + autoFilledName: '', + callback: (collectionName) => + addToCollectionHelper(collectionName, null), + }); const deleteFileHelper = async () => { loadingBar.current?.continuousStart(); try { const fileIds = getSelectedFileIds(selected); - await deleteFiles( - fileIds, - clearSelection, - syncWithRemote, - ); + await deleteFiles(fileIds, clearSelection, syncWithRemote); setDeleted([...deleted, ...fileIds]); } catch (e) { loadingBar.current.complete(); @@ -330,7 +334,6 @@ export default function Gallery() { setSearchStats(null); }; - const closeCollectionSelector = (closeBtnClick?: boolean) => { if (closeBtnClick === true) { appContext.resetSharedFiles(); @@ -343,8 +346,10 @@ export default function Gallery() { + showCollectionSelector={setCollectionSelectorView.bind( + null, + true, + )}> {loading && ( @@ -396,9 +401,14 @@ export default function Gallery() { attributes={collectionNamerAttributes} /> setPlanModalView(true)} /> - +