diff options
author | dan <dan.abramov@gmail.com> | 2023-10-05 23:28:56 +0100 |
---|---|---|
committer | GitHub <noreply@github.com> | 2023-10-05 15:28:56 -0700 |
commit | 260b03a05c22232373cbf8cb0d7dda41a3302343 (patch) | |
tree | f7ce8b72c80fbdc723245dc34d1db56288b7b176 /src/view/com/lightbox/ImageViewing/hooks/useImageDimensions.ts | |
parent | eb7306b16512e317f477c7a28e1e3b0ce5c65ff8 (diff) | |
download | voidsky-260b03a05c22232373cbf8cb0d7dda41a3302343.tar.zst |
Remove unused lightbox options (#1616)
* Inline lightbox helpers * Delete unused useImagePrefetch * Delete unused long press gesture * Always enable double tap * Always enable swipe to close * Remove unused onImageIndexChange * Inline custom Hooks into ImageViewing * Declare LightboxFooter outside Lightbox * Add more TODO comments * Inline useDoubleTapToZoom * Remove dead utils, move utils used only once
Diffstat (limited to 'src/view/com/lightbox/ImageViewing/hooks/useImageDimensions.ts')
-rw-r--r-- | src/view/com/lightbox/ImageViewing/hooks/useImageDimensions.ts | 22 |
1 files changed, 20 insertions, 2 deletions
diff --git a/src/view/com/lightbox/ImageViewing/hooks/useImageDimensions.ts b/src/view/com/lightbox/ImageViewing/hooks/useImageDimensions.ts index a5b0b6bd4..7f0851af3 100644 --- a/src/view/com/lightbox/ImageViewing/hooks/useImageDimensions.ts +++ b/src/view/com/lightbox/ImageViewing/hooks/useImageDimensions.ts @@ -8,11 +8,29 @@ import {useEffect, useState} from 'react' import {Image, ImageURISource} from 'react-native' - -import {createCache} from '../utils' import {Dimensions, ImageSource} from '../@types' const CACHE_SIZE = 50 + +type CacheStorageItem = {key: string; value: any} + +const createCache = (cacheSize: number) => ({ + _storage: [] as CacheStorageItem[], + get(key: string): any { + const {value} = + this._storage.find(({key: storageKey}) => storageKey === key) || {} + + return value + }, + set(key: string, value: any) { + if (this._storage.length >= cacheSize) { + this._storage.shift() + } + + this._storage.push({key, value}) + }, +}) + const imageDimensionsCache = createCache(CACHE_SIZE) const useImageDimensions = (image: ImageSource): Dimensions | null => { |