/* * 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. */ #pragma once #include #include #ifdef ANDROID #include #include #endif namespace facebook::react { /* * State for component. */ class ImageState final { public: ImageState( const ImageSource& imageSource, ImageRequest imageRequest, const Float blurRadius) : imageSource_(imageSource), imageRequest_(std::make_shared(std::move(imageRequest))), blurRadius_(blurRadius){}; /* * Returns stored ImageSource object. */ ImageSource getImageSource() const; /* * Exposes for reading stored `ImageRequest` object. * `ImageRequest` object cannot be copied or moved from `ImageLocalData`. */ const ImageRequest& getImageRequest() const; Float getBlurRadius() const; #ifdef ANDROID ImageState(const ImageState& previousState, folly::dynamic data) : blurRadius_{0} {}; /* * Empty implementation for Android because it doesn't use this class. */ folly::dynamic getDynamic() const { return {}; }; MapBuffer getMapBuffer() const { return MapBufferBuilder::EMPTY(); }; #endif private: ImageSource imageSource_; std::shared_ptr imageRequest_; const Float blurRadius_; }; } // namespace facebook::react