From 905dd24d70835c45166f9607034b7498f3b8efaf Mon Sep 17 00:00:00 2001 From: Santhosh Vaiyapuri <3846977+santhoshvai@users.noreply.github.com> Date: Mon, 22 May 2023 15:01:21 +0200 Subject: [PATCH] fix: make useCameraRoll functions to be shallow equal (#492) --- src/useCameraRoll.ts | 43 ++++++++++++++++++++++--------------------- 1 file changed, 22 insertions(+), 21 deletions(-) diff --git a/src/useCameraRoll.ts b/src/useCameraRoll.ts index 8a9d621..4c1945b 100644 --- a/src/useCameraRoll.ts +++ b/src/useCameraRoll.ts @@ -1,4 +1,4 @@ -import {useState} from 'react'; +import {useRef, useState} from 'react'; import type { GetPhotosParams, PhotoIdentifiersPage, @@ -29,27 +29,28 @@ type UseCameraRollResult = [ export function useCameraRoll(): UseCameraRollResult { const [photos, setPhotos] = useState(initialState); - async function getPhotos( - config: GetPhotosParams = defaultConfig, - ): Promise { - try { - const result = await CameraRoll.getPhotos(config); - setPhotos(result); - } catch (error) { - if (__DEV__) console.log('[useCameraRoll] Error getting photos: ', error); - } - } + const getPhotos = useRef( + async (config: GetPhotosParams = defaultConfig): Promise => { + try { + const result = await CameraRoll.getPhotos(config); + setPhotos(result); + } catch (error) { + if (__DEV__) + console.log('[useCameraRoll] Error getting photos: ', error); + } + }, + ).current; - async function save( - ...args: Parameters - ): Promise { - try { - await CameraRoll.save(...args); - } catch (error) { - if (__DEV__) - console.log('[useCameraRoll] Error saving to camera roll: ', error); - } - } + const save = useRef( + async (...args: Parameters): Promise => { + try { + await CameraRoll.save(...args); + } catch (error) { + if (__DEV__) + console.log('[useCameraRoll] Error saving to camera roll: ', error); + } + }, + ).current; return [photos, getPhotos, save]; }