text: /*
   * 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 <react/renderer/core/ConcreteComponentDescriptor.h>
  #include <react/renderer/core/LayoutConstraints.h>
  #include <react/utils/ContextContainer.h>
  
  namespace facebook {
  namespace react {
  
  /**
   * Class that manages slider measurements across platforms.
   * On iOS it is a noop, since the height is passed in from JS on iOS only.
   */
  class SliderMeasurementsManager {
   public:
    SliderMeasurementsManager(const ContextContainer::Shared &contextContainer)
        : contextContainer_(contextContainer) {}
  
    static inline bool shouldMeasureSlider() {
      return true;
    }
  
    Size measure(SurfaceId surfaceId, LayoutConstraints layoutConstraints) const;
  
   private:
    const ContextContainer::Shared contextContainer_;
    mutable std::mutex mutex_;
    mutable bool hasBeenMeasured_ = false;
    mutable Size cachedMeasurement_{};
  };
  
  } // namespace react
  } // namespace facebook
  