@onekeyfe/react-native-segment-slider 3.0.95 → 3.0.98

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -7,14 +7,15 @@
7
7
 
8
8
  #pragma once
9
9
 
10
- #include <optional>
11
- #include <NitroModules/NitroDefines.hpp>
12
- #include <NitroModules/NitroHash.hpp>
13
- #include <NitroModules/CachedProp.hpp>
14
- #include <react/renderer/core/ConcreteComponentDescriptor.h>
15
- #include <react/renderer/core/PropsParserContext.h>
10
+ #include <NitroModules/ReactProp.hpp>
11
+ #include <NitroModules/ViewComponentDescriptor.hpp>
12
+ #include <NitroModules/ViewPropsHolderState.hpp>
16
13
  #include <react/renderer/components/view/ConcreteViewShadowNode.h>
17
14
  #include <react/renderer/components/view/ViewProps.h>
15
+ #include <react/renderer/core/PropsParserContext.h>
16
+ #include <react/renderer/core/RawProps.h>
17
+
18
+ #include <string>
18
19
 
19
20
  #include <string>
20
21
  #include <functional>
@@ -42,28 +43,80 @@ namespace margelo::nitro::segmentslider::views {
42
43
  const react::RawProps& rawProps);
43
44
 
44
45
  public:
45
- CachedProp<double> defaultValue;
46
- CachedProp<double> min;
47
- CachedProp<double> max;
48
- CachedProp<double> segments;
49
- CachedProp<double> sliderHeight;
50
- CachedProp<bool> disabled;
51
- CachedProp<bool> showBubble;
52
- CachedProp<bool> centerOrigin;
53
- CachedProp<bool> snapTapToSegment;
54
- CachedProp<std::string> fillColor;
55
- CachedProp<std::string> trackColor;
56
- CachedProp<std::string> thumbColor;
57
- CachedProp<std::string> thumbBorderColor;
58
- CachedProp<std::string> markActiveColor;
59
- CachedProp<std::string> markInactiveColor;
60
- CachedProp<std::string> markBorderColor;
61
- CachedProp<std::string> bubbleColor;
62
- CachedProp<std::string> bubbleTextColor;
63
- CachedProp<std::optional<std::function<void(double /* value */)>>> onChange;
64
- CachedProp<std::optional<std::function<void()>>> onSlideStart;
65
- CachedProp<std::optional<std::function<void()>>> onSlideComplete;
66
- CachedProp<std::optional<std::function<void(const std::shared_ptr<HybridSegmentSliderSpec>& /* ref */)>>> hybridRef;
46
+ nitro::ReactProp<double> defaultValue;
47
+ nitro::ReactProp<double> min;
48
+ nitro::ReactProp<double> max;
49
+ nitro::ReactProp<double> segments;
50
+ nitro::ReactProp<double> sliderHeight;
51
+ nitro::ReactProp<bool> disabled;
52
+ nitro::ReactProp<bool> showBubble;
53
+ nitro::ReactProp<bool> centerOrigin;
54
+ nitro::ReactProp<bool> snapTapToSegment;
55
+ nitro::ReactProp<std::string> fillColor;
56
+ nitro::ReactProp<std::string> trackColor;
57
+ nitro::ReactProp<std::string> thumbColor;
58
+ nitro::ReactProp<std::string> thumbBorderColor;
59
+ nitro::ReactProp<std::string> markActiveColor;
60
+ nitro::ReactProp<std::string> markInactiveColor;
61
+ nitro::ReactProp<std::string> markBorderColor;
62
+ nitro::ReactProp<std::string> bubbleColor;
63
+ nitro::ReactProp<std::string> bubbleTextColor;
64
+ nitro::ReactProp<std::optional<std::function<void(double /* value */)>>> onChange;
65
+ nitro::ReactProp<std::optional<std::function<void()>>> onSlideStart;
66
+ nitro::ReactProp<std::optional<std::function<void()>>> onSlideComplete;
67
+ nitro::ReactProp<std::optional<std::function<void(const std::shared_ptr<HybridSegmentSliderSpec>& /* ref */)>>> hybridRef;
68
+
69
+ [[nodiscard]]
70
+ bool hasSameProps(const HybridSegmentSliderProps& other) const noexcept {
71
+ return defaultValue.hasSameValue(other.defaultValue) &&
72
+ min.hasSameValue(other.min) &&
73
+ max.hasSameValue(other.max) &&
74
+ segments.hasSameValue(other.segments) &&
75
+ sliderHeight.hasSameValue(other.sliderHeight) &&
76
+ disabled.hasSameValue(other.disabled) &&
77
+ showBubble.hasSameValue(other.showBubble) &&
78
+ centerOrigin.hasSameValue(other.centerOrigin) &&
79
+ snapTapToSegment.hasSameValue(other.snapTapToSegment) &&
80
+ fillColor.hasSameValue(other.fillColor) &&
81
+ trackColor.hasSameValue(other.trackColor) &&
82
+ thumbColor.hasSameValue(other.thumbColor) &&
83
+ thumbBorderColor.hasSameValue(other.thumbBorderColor) &&
84
+ markActiveColor.hasSameValue(other.markActiveColor) &&
85
+ markInactiveColor.hasSameValue(other.markInactiveColor) &&
86
+ markBorderColor.hasSameValue(other.markBorderColor) &&
87
+ bubbleColor.hasSameValue(other.bubbleColor) &&
88
+ bubbleTextColor.hasSameValue(other.bubbleTextColor) &&
89
+ onChange.hasSameValue(other.onChange) &&
90
+ onSlideStart.hasSameValue(other.onSlideStart) &&
91
+ onSlideComplete.hasSameValue(other.onSlideComplete) &&
92
+ hybridRef.hasSameValue(other.hybridRef);
93
+ }
94
+
95
+ [[nodiscard]]
96
+ bool hasAnyProvidedProps() const noexcept {
97
+ return defaultValue.isProvided() ||
98
+ min.isProvided() ||
99
+ max.isProvided() ||
100
+ segments.isProvided() ||
101
+ sliderHeight.isProvided() ||
102
+ disabled.isProvided() ||
103
+ showBubble.isProvided() ||
104
+ centerOrigin.isProvided() ||
105
+ snapTapToSegment.isProvided() ||
106
+ fillColor.isProvided() ||
107
+ trackColor.isProvided() ||
108
+ thumbColor.isProvided() ||
109
+ thumbBorderColor.isProvided() ||
110
+ markActiveColor.isProvided() ||
111
+ markInactiveColor.isProvided() ||
112
+ markBorderColor.isProvided() ||
113
+ bubbleColor.isProvided() ||
114
+ bubbleTextColor.isProvided() ||
115
+ onChange.isProvided() ||
116
+ onSlideStart.isProvided() ||
117
+ onSlideComplete.isProvided() ||
118
+ hybridRef.isProvided();
119
+ }
67
120
 
68
121
  private:
69
122
  static bool filterObjectKeys(const std::string& propName);
@@ -72,32 +125,7 @@ namespace margelo::nitro::segmentslider::views {
72
125
  /**
73
126
  * State for the "SegmentSlider" View.
74
127
  */
75
- class HybridSegmentSliderState final {
76
- public:
77
- HybridSegmentSliderState() = default;
78
- explicit HybridSegmentSliderState(const std::shared_ptr<HybridSegmentSliderProps>& props):
79
- _props(props) {}
80
-
81
- public:
82
- [[nodiscard]]
83
- const std::shared_ptr<HybridSegmentSliderProps>& getProps() const {
84
- return _props;
85
- }
86
-
87
- public:
88
- #ifdef ANDROID
89
- HybridSegmentSliderState(const HybridSegmentSliderState& /* previousState */, folly::dynamic /* data */) {}
90
- folly::dynamic getDynamic() const {
91
- throw std::runtime_error("HybridSegmentSliderState does not support folly!");
92
- }
93
- react::MapBuffer getMapBuffer() const {
94
- throw std::runtime_error("HybridSegmentSliderState does not support MapBuffer!");
95
- };
96
- #endif
97
-
98
- private:
99
- std::shared_ptr<HybridSegmentSliderProps> _props;
100
- };
128
+ using HybridSegmentSliderState = nitro::ViewPropsHolderState<HybridSegmentSliderProps>;
101
129
 
102
130
  /**
103
131
  * The Shadow Node for the "SegmentSlider" View.
@@ -110,21 +138,7 @@ namespace margelo::nitro::segmentslider::views {
110
138
  /**
111
139
  * The Component Descriptor for the "SegmentSlider" View.
112
140
  */
113
- class HybridSegmentSliderComponentDescriptor final: public react::ConcreteComponentDescriptor<HybridSegmentSliderShadowNode> {
114
- public:
115
- explicit HybridSegmentSliderComponentDescriptor(const react::ComponentDescriptorParameters& parameters);
116
-
117
- public:
118
- /**
119
- * A faster path for cloning props - reuses the caching logic from `HybridSegmentSliderProps`.
120
- */
121
- std::shared_ptr<const react::Props> cloneProps(const react::PropsParserContext& context,
122
- const std::shared_ptr<const react::Props>& props,
123
- react::RawProps rawProps) const override;
124
- #ifdef ANDROID
125
- void adopt(react::ShadowNode& shadowNode) const override;
126
- #endif
127
- };
141
+ using HybridSegmentSliderComponentDescriptor = nitro::ViewComponentDescriptor<HybridSegmentSliderShadowNode>;
128
142
 
129
143
  /* The actual view for "SegmentSlider" needs to be implemented in platform-specific code. */
130
144
 
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@onekeyfe/react-native-segment-slider",
3
- "version": "3.0.95",
3
+ "version": "3.0.98",
4
4
  "description": "react-native-segment-slider",
5
5
  "main": "./lib/module/index.js",
6
6
  "types": "./lib/typescript/src/index.d.ts",
@@ -77,12 +77,12 @@
77
77
  "eslint-plugin-prettier": "^5.5.4",
78
78
  "jest": "^29.7.0",
79
79
  "lefthook": "^2.0.3",
80
- "nitrogen": "0.36.5",
80
+ "nitrogen": "0.37.0",
81
81
  "prettier": "^2.8.8",
82
82
  "react": "19.2.3",
83
83
  "react-native": "patch:react-native@npm%3A0.86.2#~/.yarn/patches/react-native-npm-0.86.2-c9d546616f.patch",
84
84
  "react-native-builder-bob": "^0.40.13",
85
- "react-native-nitro-modules": "0.36.5",
85
+ "react-native-nitro-modules": "0.37.0",
86
86
  "release-it": "^19.0.4",
87
87
  "turbo": "^2.5.6",
88
88
  "typescript": "^5.9.2"
@@ -90,7 +90,7 @@
90
90
  "peerDependencies": {
91
91
  "react": "*",
92
92
  "react-native": "*",
93
- "react-native-nitro-modules": "0.36.5"
93
+ "react-native-nitro-modules": "0.37.0"
94
94
  },
95
95
  "packageManager": "yarn@4.11.0",
96
96
  "react-native-builder-bob": {