SliderState.h 2.5 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081
  1. /*
  2. * Copyright (c) Facebook, Inc. and its affiliates.
  3. *
  4. * This source code is licensed under the MIT license found in the
  5. * LICENSE file in the root directory of this source tree.
  6. */
  7. #pragma once
  8. #include <folly/dynamic.h>
  9. #include <react/imagemanager/ImageRequest.h>
  10. #include <react/imagemanager/primitives.h>
  11. namespace facebook {
  12. namespace react {
  13. /*
  14. * State for <Slider> component.
  15. */
  16. class SliderState final {
  17. public:
  18. SliderState(
  19. ImageSource const &trackImageSource,
  20. ImageRequest trackImageRequest,
  21. ImageSource const &minimumTrackImageSource,
  22. ImageRequest minimumTrackImageRequest,
  23. ImageSource const &maximumTrackImageSource,
  24. ImageRequest maximumTrackImageRequest,
  25. ImageSource const &thumbImageSource,
  26. ImageRequest thumbImageRequest)
  27. : trackImageSource_(trackImageSource),
  28. trackImageRequest_(
  29. std::make_shared<ImageRequest>(std::move(trackImageRequest))),
  30. minimumTrackImageSource_(minimumTrackImageSource),
  31. minimumTrackImageRequest_(std::make_shared<ImageRequest>(
  32. std::move(minimumTrackImageRequest))),
  33. maximumTrackImageSource_(maximumTrackImageSource),
  34. maximumTrackImageRequest_(std::make_shared<ImageRequest>(
  35. std::move(maximumTrackImageRequest))),
  36. thumbImageSource_(thumbImageSource),
  37. thumbImageRequest_(
  38. std::make_shared<ImageRequest>(std::move(thumbImageRequest))){};
  39. SliderState() = default;
  40. ImageSource getTrackImageSource() const;
  41. ImageRequest const &getTrackImageRequest() const;
  42. ImageSource getMinimumTrackImageSource() const;
  43. ImageRequest const &getMinimumTrackImageRequest() const;
  44. ImageSource getMaximumTrackImageSource() const;
  45. ImageRequest const &getMaximumTrackImageRequest() const;
  46. ImageSource getThumbImageSource() const;
  47. ImageRequest const &getThumbImageRequest() const;
  48. #ifdef ANDROID
  49. SliderState(SliderState const &previousState, folly::dynamic data){};
  50. /*
  51. * Empty implementation for Android because it doesn't use this class.
  52. */
  53. folly::dynamic getDynamic() const {
  54. return {};
  55. };
  56. #endif
  57. private:
  58. ImageSource trackImageSource_;
  59. std::shared_ptr<ImageRequest> trackImageRequest_;
  60. ImageSource minimumTrackImageSource_;
  61. std::shared_ptr<ImageRequest> minimumTrackImageRequest_;
  62. ImageSource maximumTrackImageSource_;
  63. std::shared_ptr<ImageRequest> maximumTrackImageRequest_;
  64. ImageSource thumbImageSource_;
  65. std::shared_ptr<ImageRequest> thumbImageRequest_;
  66. };
  67. } // namespace react
  68. } // namespace facebook