/
githubmr
/
facebook-react-native
Обзор
Документация
Войти
/
githubmr
/
facebook-react-native
Код
Запросы
0
Задачи
Вики
Пакеты
0
Релизы
0
Аналитика
main
packages/react-native/React/Fabric/RCTImageResponseObserverProxy.mm
52 строки
2 KB
Nizam
img events fixes for ios and android (#43945)
25 апр 2024, 02:25
25 апр 2024, 02:25
78ab5f4
Код
Авторство
О чём код?
/* * Copyright (c) Meta Platforms, Inc. and affiliates. * * This source code is licensed under the MIT license found in the * LICENSE file in the root directory of this source tree. */ #import "RCTImageResponseObserverProxy.h" #import <React/RCTUtils.h> #import <react/renderer/imagemanager/ImageResponse.h> #import <react/renderer/imagemanager/ImageResponseObserver.h> #import <react/utils/ManagedObjectWrapper.h> namespace facebook::react { RCTImageResponseObserverProxy::RCTImageResponseObserverProxy(id<RCTImageResponseDelegate> delegate) : delegate_(delegate) { } void RCTImageResponseObserverProxy::didReceiveImage(const ImageResponse &imageResponse) const { UIImage *image = (UIImage *)unwrapManagedObject(imageResponse.getImage()); id metadata = unwrapManagedObject(imageResponse.getMetadata()); id<RCTImageResponseDelegate> delegate = delegate_; auto this_ = this; RCTExecuteOnMainQueue(^{ [delegate didReceiveImage:image metadata:metadata fromObserver:this_]; }); } void RCTImageResponseObserverProxy::didReceiveProgress(float progress, int64_t loaded, int64_t total) const { auto this_ = this; id<RCTImageResponseDelegate> delegate = delegate_; RCTExecuteOnMainQueue(^{ [delegate didReceiveProgress:progress loaded:loaded total:total fromObserver:this_]; }); } void RCTImageResponseObserverProxy::didReceiveFailure(const ImageLoadError &errorResponse) const { auto this_ = this; NSError *error = (NSError *)unwrapManagedObject(errorResponse.getError()); id<RCTImageResponseDelegate> delegate = delegate_; RCTExecuteOnMainQueue(^{ [delegate didReceiveFailure:error fromObserver:this_]; }); } } // namespace facebook::react