From eb33c3fa812cc087db14a6b6ba743e982b26c462 Mon Sep 17 00:00:00 2001 From: Aryan Goharzad Date: Wed, 25 Jan 2023 18:25:34 -0500 Subject: Saves image on long press (#83) * Saves image on long press * Adds save on long press * Forking lightbox * move to wrapper only to the bottom sheet to reduce impact of this change * lint * lint * lint * Use official `share` API * Clean up cache after download * comment * comment * Reduce swipe close velocity * Updates per feedback * lint * bugfix * Adds delayed press-in for TouchableOpacity --- .../lightbox/ImageViewing/hooks/useRequestClose.ts | 24 ++++++++++++++++++++++ 1 file changed, 24 insertions(+) create mode 100644 src/view/com/lightbox/ImageViewing/hooks/useRequestClose.ts (limited to 'src/view/com/lightbox/ImageViewing/hooks/useRequestClose.ts') diff --git a/src/view/com/lightbox/ImageViewing/hooks/useRequestClose.ts b/src/view/com/lightbox/ImageViewing/hooks/useRequestClose.ts new file mode 100644 index 000000000..4cd03fe71 --- /dev/null +++ b/src/view/com/lightbox/ImageViewing/hooks/useRequestClose.ts @@ -0,0 +1,24 @@ +/** + * Copyright (c) JOB TODAY S.A. and its affiliates. + * + * This source code is licensed under the MIT license found in the + * LICENSE file in the root directory of this source tree. + * + */ + +import {useState} from 'react' + +const useRequestClose = (onRequestClose: () => void) => { + const [opacity, setOpacity] = useState(1) + + return [ + opacity, + () => { + setOpacity(0) + onRequestClose() + setTimeout(() => setOpacity(1), 0) + }, + ] as const +} + +export default useRequestClose -- cgit 1.4.1