@oxyhq/services 6.9.30 → 6.9.32

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.
@@ -6,7 +6,6 @@ Object.defineProperty(exports, "__esModule", {
6
6
  exports.default = exports.FollowButton = void 0;
7
7
  var _react = _interopRequireWildcard(require("react"));
8
8
  var _reactNative = require("react-native");
9
- var _reactNativeReanimated = _interopRequireWildcard(require("react-native-reanimated"));
10
9
  var _OxyContext = require("../context/OxyContext.js");
11
10
  var _fonts = require("../styles/fonts.js");
12
11
  var _sonner = require("../../lib/sonner");
@@ -14,9 +13,6 @@ var _useFollow = require("../hooks/useFollow.js");
14
13
  var _theme2 = require("@oxyhq/bloom/theme");
15
14
  var _jsxRuntime = require("react/jsx-runtime");
16
15
  function _interopRequireWildcard(e, t) { if ("function" == typeof WeakMap) var r = new WeakMap(), n = new WeakMap(); return (_interopRequireWildcard = function (e, t) { if (!t && e && e.__esModule) return e; var o, i, f = { __proto__: null, default: e }; if (null === e || "object" != typeof e && "function" != typeof e) return f; if (o = t ? n : r) { if (o.has(e)) return o.get(e); o.set(e, f); } for (const t in e) "default" !== t && {}.hasOwnProperty.call(e, t) && ((i = (o = Object.defineProperty) && Object.getOwnPropertyDescriptor(e, t)) && (i.get || i.set) ? o(f, t, i) : f[t] = e[t]); return f; })(e, t); }
17
- // Create animated TouchableOpacity
18
- const AnimatedTouchableOpacity = _reactNativeReanimated.default.createAnimatedComponent(_reactNative.TouchableOpacity);
19
- const AnimatedText = _reactNativeReanimated.default.createAnimatedComponent(_reactNative.Text);
20
16
  /**
21
17
  * Inner component that handles all hooks and rendering.
22
18
  *
@@ -55,10 +51,6 @@ const FollowButtonInner = /*#__PURE__*/(0, _react.memo)(function FollowButtonInn
55
51
  fetchStatus
56
52
  } = (0, _useFollow.useFollowForButton)(userId, oxyServices);
57
53
 
58
- // Animation values
59
- const animationProgress = (0, _reactNativeReanimated.useSharedValue)(isFollowing ? 1 : 0);
60
- const scale = (0, _reactNativeReanimated.useSharedValue)(1);
61
-
62
54
  // Stable press handler — depends on primitives only
63
55
  const handlePress = (0, _react.useCallback)(async event => {
64
56
  if (preventParentActions && event && event.preventDefault) {
@@ -66,18 +58,6 @@ const FollowButtonInner = /*#__PURE__*/(0, _react.memo)(function FollowButtonInn
66
58
  event.stopPropagation?.();
67
59
  }
68
60
  if (disabled || isLoading) return;
69
-
70
- // Press animation
71
- scale.value = (0, _reactNativeReanimated.withTiming)(0.95, {
72
- duration: 100
73
- }, finished => {
74
- if (finished) {
75
- scale.value = (0, _reactNativeReanimated.withSpring)(1, {
76
- damping: 15,
77
- stiffness: 200
78
- });
79
- }
80
- });
81
61
  try {
82
62
  await toggleFollow();
83
63
  if (onFollowChange) onFollowChange(!isFollowing);
@@ -85,7 +65,7 @@ const FollowButtonInner = /*#__PURE__*/(0, _react.memo)(function FollowButtonInn
85
65
  const error = err instanceof Error ? err : new Error(String(err));
86
66
  _sonner.toast.error(error.message || 'Failed to update follow status');
87
67
  }
88
- }, [disabled, isLoading, toggleFollow, onFollowChange, isFollowing, preventParentActions, scale]);
68
+ }, [disabled, isLoading, toggleFollow, onFollowChange, isFollowing, preventParentActions]);
89
69
 
90
70
  // Set initial follow status on mount if provided and not already set
91
71
  (0, _react.useEffect)(() => {
@@ -103,43 +83,31 @@ const FollowButtonInner = /*#__PURE__*/(0, _react.memo)(function FollowButtonInn
103
83
  }
104
84
  }, [userId, fetchStatus]);
105
85
 
106
- // Animate button on follow/unfollow
107
- (0, _react.useEffect)(() => {
108
- animationProgress.value = (0, _reactNativeReanimated.withTiming)(isFollowing ? 1 : 0, {
109
- duration: 300,
110
- easing: _reactNativeReanimated.Easing.inOut(_reactNativeReanimated.Easing.ease)
111
- });
112
- }, [isFollowing, animationProgress]);
113
-
114
- // Animated styles
115
- // When not following (progress=0): primary filled button (bg-primary, text white)
116
- // When following (progress=1): outlined button (bg-background, border-border, text-foreground)
117
- const animatedButtonStyle = (0, _reactNativeReanimated.useAnimatedStyle)(() => {
118
- return {
119
- transform: [{
120
- scale: scale.value
121
- }],
122
- backgroundColor: (0, _reactNativeReanimated.interpolateColor)(animationProgress.value, [0, 1], [colors.primary, colors.background]),
123
- borderColor: (0, _reactNativeReanimated.interpolateColor)(animationProgress.value, [0, 1], [colors.primary, colors.border])
124
- };
125
- }, [colors]);
126
- const animatedTextStyle = (0, _reactNativeReanimated.useAnimatedStyle)(() => {
127
- return {
128
- color: (0, _reactNativeReanimated.interpolateColor)(animationProgress.value, [0, 1], ['#FFFFFF', colors.text])
129
- };
130
- }, [colors]);
86
+ // Colors from bloom theme — follows NativeWind convention via useTheme()
87
+ // Not following: bg-primary, border-primary, text white
88
+ // Following: bg-background, border-border, text-foreground
89
+ const buttonColorStyle = isFollowing ? {
90
+ backgroundColor: colors.background,
91
+ borderColor: colors.border
92
+ } : {
93
+ backgroundColor: colors.primary,
94
+ borderColor: colors.primary
95
+ };
96
+ const textColor = isFollowing ? colors.text : '#FFFFFF';
131
97
  const baseButtonStyle = getBaseButtonStyle(size, style);
132
98
  const baseTextStyle = getBaseTextStyle(size, textStyle);
133
- return /*#__PURE__*/(0, _jsxRuntime.jsx)(AnimatedTouchableOpacity, {
134
- style: [baseButtonStyle, animatedButtonStyle],
99
+ return /*#__PURE__*/(0, _jsxRuntime.jsx)(_reactNative.TouchableOpacity, {
100
+ style: [baseButtonStyle, buttonColorStyle],
135
101
  onPress: handlePress,
136
102
  disabled: disabled || isLoading,
137
103
  activeOpacity: 0.8,
138
104
  children: showLoadingState && isLoading ? /*#__PURE__*/(0, _jsxRuntime.jsx)(_reactNative.ActivityIndicator, {
139
105
  size: "small",
140
- color: isFollowing ? colors.text : '#FFFFFF'
141
- }) : /*#__PURE__*/(0, _jsxRuntime.jsx)(AnimatedText, {
142
- style: [baseTextStyle, animatedTextStyle],
106
+ color: textColor
107
+ }) : /*#__PURE__*/(0, _jsxRuntime.jsx)(_reactNative.Text, {
108
+ style: [baseTextStyle, {
109
+ color: textColor
110
+ }],
143
111
  children: isFollowing ? 'Following' : 'Follow'
144
112
  })
145
113
  });
@@ -1 +1 @@
1
- {"version":3,"names":["_react","_interopRequireWildcard","require","_reactNative","_reactNativeReanimated","_OxyContext","_fonts","_sonner","_useFollow","_theme2","_jsxRuntime","e","t","WeakMap","r","n","__esModule","o","i","f","__proto__","default","has","get","set","hasOwnProperty","call","Object","defineProperty","getOwnPropertyDescriptor","AnimatedTouchableOpacity","Animated","createAnimatedComponent","TouchableOpacity","AnimatedText","Text","FollowButtonInner","memo","userId","oxyServices","initiallyFollowing","size","onFollowChange","style","textStyle","disabled","showLoadingState","preventParentActions","theme","_theme","bloomTheme","useTheme","colors","isFollowing","isLoading","toggleFollow","setFollowStatus","fetchStatus","useFollowForButton","animationProgress","useSharedValue","scale","handlePress","useCallback","event","preventDefault","stopPropagation","value","withTiming","duration","finished","withSpring","damping","stiffness","err","error","Error","String","toast","message","useEffect","easing","Easing","inOut","ease","animatedButtonStyle","useAnimatedStyle","transform","backgroundColor","interpolateColor","primary","background","borderColor","border","animatedTextStyle","color","text","baseButtonStyle","getBaseButtonStyle","baseTextStyle","getBaseTextStyle","jsx","onPress","activeOpacity","children","ActivityIndicator","FollowButton","props","isAuthenticated","user","currentUser","useOxy","currentUserId","id","trim","targetUserId","exports","baseStyle","flexDirection","alignItems","justifyContent","borderWidth","Platform","select","web","shadowColor","shadowOffset","width","height","shadowOpacity","shadowRadius","elevation","sizeStyle","paddingVertical","paddingHorizontal","minWidth","borderRadius","fontFamily","fontFamilies","interSemiBold","fontWeight","sizeTextStyle","fontSize","_default"],"sourceRoot":"../../../../src","sources":["ui/components/FollowButton.tsx"],"mappings":"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","ignoreList":[]}
1
+ {"version":3,"names":["_react","_interopRequireWildcard","require","_reactNative","_OxyContext","_fonts","_sonner","_useFollow","_theme2","_jsxRuntime","e","t","WeakMap","r","n","__esModule","o","i","f","__proto__","default","has","get","set","hasOwnProperty","call","Object","defineProperty","getOwnPropertyDescriptor","FollowButtonInner","memo","userId","oxyServices","initiallyFollowing","size","onFollowChange","style","textStyle","disabled","showLoadingState","preventParentActions","theme","_theme","bloomTheme","useTheme","colors","isFollowing","isLoading","toggleFollow","setFollowStatus","fetchStatus","useFollowForButton","handlePress","useCallback","event","preventDefault","stopPropagation","err","error","Error","String","toast","message","useEffect","buttonColorStyle","backgroundColor","background","borderColor","border","primary","textColor","text","baseButtonStyle","getBaseButtonStyle","baseTextStyle","getBaseTextStyle","jsx","TouchableOpacity","onPress","activeOpacity","children","ActivityIndicator","color","Text","FollowButton","props","isAuthenticated","user","currentUser","useOxy","currentUserId","id","trim","targetUserId","exports","baseStyle","flexDirection","alignItems","justifyContent","borderWidth","Platform","select","web","shadowColor","shadowOffset","width","height","shadowOpacity","shadowRadius","elevation","sizeStyle","paddingVertical","paddingHorizontal","minWidth","borderRadius","fontFamily","fontFamilies","interSemiBold","fontWeight","sizeTextStyle","fontSize","_default"],"sourceRoot":"../../../../src","sources":["ui/components/FollowButton.tsx"],"mappings":"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","ignoreList":[]}
@@ -2,16 +2,12 @@
2
2
 
3
3
  import React, { useEffect, useCallback, memo } from 'react';
4
4
  import { TouchableOpacity, Text, Platform, ActivityIndicator } from 'react-native';
5
- import Animated, { useSharedValue, useAnimatedStyle, withSpring, interpolateColor, Easing, withTiming } from 'react-native-reanimated';
6
5
  import { useOxy } from "../context/OxyContext.js";
7
6
  import { fontFamilies } from "../styles/fonts.js";
8
7
  import { toast } from '../../lib/sonner';
9
8
  import { useFollowForButton } from "../hooks/useFollow.js";
10
9
  import { useTheme } from '@oxyhq/bloom/theme';
11
10
  import { jsx as _jsx } from "react/jsx-runtime";
12
- // Create animated TouchableOpacity
13
- const AnimatedTouchableOpacity = Animated.createAnimatedComponent(TouchableOpacity);
14
- const AnimatedText = Animated.createAnimatedComponent(Text);
15
11
  /**
16
12
  * Inner component that handles all hooks and rendering.
17
13
  *
@@ -50,10 +46,6 @@ const FollowButtonInner = /*#__PURE__*/memo(function FollowButtonInner({
50
46
  fetchStatus
51
47
  } = useFollowForButton(userId, oxyServices);
52
48
 
53
- // Animation values
54
- const animationProgress = useSharedValue(isFollowing ? 1 : 0);
55
- const scale = useSharedValue(1);
56
-
57
49
  // Stable press handler — depends on primitives only
58
50
  const handlePress = useCallback(async event => {
59
51
  if (preventParentActions && event && event.preventDefault) {
@@ -61,18 +53,6 @@ const FollowButtonInner = /*#__PURE__*/memo(function FollowButtonInner({
61
53
  event.stopPropagation?.();
62
54
  }
63
55
  if (disabled || isLoading) return;
64
-
65
- // Press animation
66
- scale.value = withTiming(0.95, {
67
- duration: 100
68
- }, finished => {
69
- if (finished) {
70
- scale.value = withSpring(1, {
71
- damping: 15,
72
- stiffness: 200
73
- });
74
- }
75
- });
76
56
  try {
77
57
  await toggleFollow();
78
58
  if (onFollowChange) onFollowChange(!isFollowing);
@@ -80,7 +60,7 @@ const FollowButtonInner = /*#__PURE__*/memo(function FollowButtonInner({
80
60
  const error = err instanceof Error ? err : new Error(String(err));
81
61
  toast.error(error.message || 'Failed to update follow status');
82
62
  }
83
- }, [disabled, isLoading, toggleFollow, onFollowChange, isFollowing, preventParentActions, scale]);
63
+ }, [disabled, isLoading, toggleFollow, onFollowChange, isFollowing, preventParentActions]);
84
64
 
85
65
  // Set initial follow status on mount if provided and not already set
86
66
  useEffect(() => {
@@ -98,43 +78,31 @@ const FollowButtonInner = /*#__PURE__*/memo(function FollowButtonInner({
98
78
  }
99
79
  }, [userId, fetchStatus]);
100
80
 
101
- // Animate button on follow/unfollow
102
- useEffect(() => {
103
- animationProgress.value = withTiming(isFollowing ? 1 : 0, {
104
- duration: 300,
105
- easing: Easing.inOut(Easing.ease)
106
- });
107
- }, [isFollowing, animationProgress]);
108
-
109
- // Animated styles
110
- // When not following (progress=0): primary filled button (bg-primary, text white)
111
- // When following (progress=1): outlined button (bg-background, border-border, text-foreground)
112
- const animatedButtonStyle = useAnimatedStyle(() => {
113
- return {
114
- transform: [{
115
- scale: scale.value
116
- }],
117
- backgroundColor: interpolateColor(animationProgress.value, [0, 1], [colors.primary, colors.background]),
118
- borderColor: interpolateColor(animationProgress.value, [0, 1], [colors.primary, colors.border])
119
- };
120
- }, [colors]);
121
- const animatedTextStyle = useAnimatedStyle(() => {
122
- return {
123
- color: interpolateColor(animationProgress.value, [0, 1], ['#FFFFFF', colors.text])
124
- };
125
- }, [colors]);
81
+ // Colors from bloom theme — follows NativeWind convention via useTheme()
82
+ // Not following: bg-primary, border-primary, text white
83
+ // Following: bg-background, border-border, text-foreground
84
+ const buttonColorStyle = isFollowing ? {
85
+ backgroundColor: colors.background,
86
+ borderColor: colors.border
87
+ } : {
88
+ backgroundColor: colors.primary,
89
+ borderColor: colors.primary
90
+ };
91
+ const textColor = isFollowing ? colors.text : '#FFFFFF';
126
92
  const baseButtonStyle = getBaseButtonStyle(size, style);
127
93
  const baseTextStyle = getBaseTextStyle(size, textStyle);
128
- return /*#__PURE__*/_jsx(AnimatedTouchableOpacity, {
129
- style: [baseButtonStyle, animatedButtonStyle],
94
+ return /*#__PURE__*/_jsx(TouchableOpacity, {
95
+ style: [baseButtonStyle, buttonColorStyle],
130
96
  onPress: handlePress,
131
97
  disabled: disabled || isLoading,
132
98
  activeOpacity: 0.8,
133
99
  children: showLoadingState && isLoading ? /*#__PURE__*/_jsx(ActivityIndicator, {
134
100
  size: "small",
135
- color: isFollowing ? colors.text : '#FFFFFF'
136
- }) : /*#__PURE__*/_jsx(AnimatedText, {
137
- style: [baseTextStyle, animatedTextStyle],
101
+ color: textColor
102
+ }) : /*#__PURE__*/_jsx(Text, {
103
+ style: [baseTextStyle, {
104
+ color: textColor
105
+ }],
138
106
  children: isFollowing ? 'Following' : 'Follow'
139
107
  })
140
108
  });
@@ -1 +1 @@
1
- {"version":3,"names":["React","useEffect","useCallback","memo","TouchableOpacity","Text","Platform","ActivityIndicator","Animated","useSharedValue","useAnimatedStyle","withSpring","interpolateColor","Easing","withTiming","useOxy","fontFamilies","toast","useFollowForButton","useTheme","jsx","_jsx","AnimatedTouchableOpacity","createAnimatedComponent","AnimatedText","FollowButtonInner","userId","oxyServices","initiallyFollowing","size","onFollowChange","style","textStyle","disabled","showLoadingState","preventParentActions","theme","_theme","bloomTheme","colors","isFollowing","isLoading","toggleFollow","setFollowStatus","fetchStatus","animationProgress","scale","handlePress","event","preventDefault","stopPropagation","value","duration","finished","damping","stiffness","err","error","Error","String","message","easing","inOut","ease","animatedButtonStyle","transform","backgroundColor","primary","background","borderColor","border","animatedTextStyle","color","text","baseButtonStyle","getBaseButtonStyle","baseTextStyle","getBaseTextStyle","onPress","activeOpacity","children","FollowButton","props","isAuthenticated","user","currentUser","currentUserId","id","trim","targetUserId","baseStyle","flexDirection","alignItems","justifyContent","borderWidth","select","web","default","shadowColor","shadowOffset","width","height","shadowOpacity","shadowRadius","elevation","sizeStyle","paddingVertical","paddingHorizontal","minWidth","borderRadius","fontFamily","interSemiBold","fontWeight","sizeTextStyle","fontSize"],"sourceRoot":"../../../../src","sources":["ui/components/FollowButton.tsx"],"mappings":"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","ignoreList":[]}
1
+ {"version":3,"names":["React","useEffect","useCallback","memo","TouchableOpacity","Text","Platform","ActivityIndicator","useOxy","fontFamilies","toast","useFollowForButton","useTheme","jsx","_jsx","FollowButtonInner","userId","oxyServices","initiallyFollowing","size","onFollowChange","style","textStyle","disabled","showLoadingState","preventParentActions","theme","_theme","bloomTheme","colors","isFollowing","isLoading","toggleFollow","setFollowStatus","fetchStatus","handlePress","event","preventDefault","stopPropagation","err","error","Error","String","message","buttonColorStyle","backgroundColor","background","borderColor","border","primary","textColor","text","baseButtonStyle","getBaseButtonStyle","baseTextStyle","getBaseTextStyle","onPress","activeOpacity","children","color","FollowButton","props","isAuthenticated","user","currentUser","currentUserId","id","trim","targetUserId","baseStyle","flexDirection","alignItems","justifyContent","borderWidth","select","web","default","shadowColor","shadowOffset","width","height","shadowOpacity","shadowRadius","elevation","sizeStyle","paddingVertical","paddingHorizontal","minWidth","borderRadius","fontFamily","interSemiBold","fontWeight","sizeTextStyle","fontSize"],"sourceRoot":"../../../../src","sources":["ui/components/FollowButton.tsx"],"mappings":"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","ignoreList":[]}
@@ -1 +1 @@
1
- {"version":3,"file":"FollowButton.d.ts","sourceRoot":"","sources":["../../../../../src/ui/components/FollowButton.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAuC,MAAM,OAAO,CAAC;AAC5D,OAAO,EAIL,KAAK,SAAS,EACd,KAAK,SAAS,EACd,KAAK,SAAS,EAGf,MAAM,cAAc,CAAC;AAoBtB,MAAM,WAAW,iBAAiB;IAChC,MAAM,EAAE,MAAM,CAAC;IACf,kBAAkB,CAAC,EAAE,OAAO,CAAC;IAC7B,IAAI,CAAC,EAAE,OAAO,GAAG,QAAQ,GAAG,OAAO,CAAC;IACpC,cAAc,CAAC,EAAE,CAAC,WAAW,EAAE,OAAO,KAAK,IAAI,CAAC;IAChD,KAAK,CAAC,EAAE,SAAS,CAAC,SAAS,CAAC,CAAC;IAC7B,SAAS,CAAC,EAAE,SAAS,CAAC,SAAS,CAAC,CAAC;IACjC,QAAQ,CAAC,EAAE,OAAO,CAAC;IACnB,gBAAgB,CAAC,EAAE,OAAO,CAAC;IAC3B,oBAAoB,CAAC,EAAE,OAAO,CAAC;IAC/B,KAAK,CAAC,EAAE,OAAO,GAAG,MAAM,CAAC;CAC1B;AA8ID;;;;;;;;;;GAUG;AACH,QAAA,MAAM,YAAY,EAAE,KAAK,CAAC,EAAE,CAAC,iBAAiB,CAkB7C,CAAC;AAmDF,OAAO,EAAE,YAAY,EAAE,CAAC;AACxB,eAAe,YAAY,CAAC"}
1
+ {"version":3,"file":"FollowButton.d.ts","sourceRoot":"","sources":["../../../../../src/ui/components/FollowButton.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAuC,MAAM,OAAO,CAAC;AAC5D,OAAO,EAGL,KAAK,SAAS,EACd,KAAK,SAAS,EACd,KAAK,SAAS,EAGf,MAAM,cAAc,CAAC;AAQtB,MAAM,WAAW,iBAAiB;IAChC,MAAM,EAAE,MAAM,CAAC;IACf,kBAAkB,CAAC,EAAE,OAAO,CAAC;IAC7B,IAAI,CAAC,EAAE,OAAO,GAAG,QAAQ,GAAG,OAAO,CAAC;IACpC,cAAc,CAAC,EAAE,CAAC,WAAW,EAAE,OAAO,KAAK,IAAI,CAAC;IAChD,KAAK,CAAC,EAAE,SAAS,CAAC,SAAS,CAAC,CAAC;IAC7B,SAAS,CAAC,EAAE,SAAS,CAAC,SAAS,CAAC,CAAC;IACjC,QAAQ,CAAC,EAAE,OAAO,CAAC;IACnB,gBAAgB,CAAC,EAAE,OAAO,CAAC;IAC3B,oBAAoB,CAAC,EAAE,OAAO,CAAC;IAC/B,KAAK,CAAC,EAAE,OAAO,GAAG,MAAM,CAAC;CAC1B;AAyGD;;;;;;;;;;GAUG;AACH,QAAA,MAAM,YAAY,EAAE,KAAK,CAAC,EAAE,CAAC,iBAAiB,CAkB7C,CAAC;AAmDF,OAAO,EAAE,YAAY,EAAE,CAAC;AACxB,eAAe,YAAY,CAAC"}
@@ -1 +1 @@
1
- {"version":3,"file":"FollowButton.d.ts","sourceRoot":"","sources":["../../../../../src/ui/components/FollowButton.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAuC,MAAM,OAAO,CAAC;AAC5D,OAAO,EAIL,KAAK,SAAS,EACd,KAAK,SAAS,EACd,KAAK,SAAS,EAGf,MAAM,cAAc,CAAC;AAoBtB,MAAM,WAAW,iBAAiB;IAChC,MAAM,EAAE,MAAM,CAAC;IACf,kBAAkB,CAAC,EAAE,OAAO,CAAC;IAC7B,IAAI,CAAC,EAAE,OAAO,GAAG,QAAQ,GAAG,OAAO,CAAC;IACpC,cAAc,CAAC,EAAE,CAAC,WAAW,EAAE,OAAO,KAAK,IAAI,CAAC;IAChD,KAAK,CAAC,EAAE,SAAS,CAAC,SAAS,CAAC,CAAC;IAC7B,SAAS,CAAC,EAAE,SAAS,CAAC,SAAS,CAAC,CAAC;IACjC,QAAQ,CAAC,EAAE,OAAO,CAAC;IACnB,gBAAgB,CAAC,EAAE,OAAO,CAAC;IAC3B,oBAAoB,CAAC,EAAE,OAAO,CAAC;IAC/B,KAAK,CAAC,EAAE,OAAO,GAAG,MAAM,CAAC;CAC1B;AA8ID;;;;;;;;;;GAUG;AACH,QAAA,MAAM,YAAY,EAAE,KAAK,CAAC,EAAE,CAAC,iBAAiB,CAkB7C,CAAC;AAmDF,OAAO,EAAE,YAAY,EAAE,CAAC;AACxB,eAAe,YAAY,CAAC"}
1
+ {"version":3,"file":"FollowButton.d.ts","sourceRoot":"","sources":["../../../../../src/ui/components/FollowButton.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAuC,MAAM,OAAO,CAAC;AAC5D,OAAO,EAGL,KAAK,SAAS,EACd,KAAK,SAAS,EACd,KAAK,SAAS,EAGf,MAAM,cAAc,CAAC;AAQtB,MAAM,WAAW,iBAAiB;IAChC,MAAM,EAAE,MAAM,CAAC;IACf,kBAAkB,CAAC,EAAE,OAAO,CAAC;IAC7B,IAAI,CAAC,EAAE,OAAO,GAAG,QAAQ,GAAG,OAAO,CAAC;IACpC,cAAc,CAAC,EAAE,CAAC,WAAW,EAAE,OAAO,KAAK,IAAI,CAAC;IAChD,KAAK,CAAC,EAAE,SAAS,CAAC,SAAS,CAAC,CAAC;IAC7B,SAAS,CAAC,EAAE,SAAS,CAAC,SAAS,CAAC,CAAC;IACjC,QAAQ,CAAC,EAAE,OAAO,CAAC;IACnB,gBAAgB,CAAC,EAAE,OAAO,CAAC;IAC3B,oBAAoB,CAAC,EAAE,OAAO,CAAC;IAC/B,KAAK,CAAC,EAAE,OAAO,GAAG,MAAM,CAAC;CAC1B;AAyGD;;;;;;;;;;GAUG;AACH,QAAA,MAAM,YAAY,EAAE,KAAK,CAAC,EAAE,CAAC,iBAAiB,CAkB7C,CAAC;AAmDF,OAAO,EAAE,YAAY,EAAE,CAAC;AACxB,eAAe,YAAY,CAAC"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@oxyhq/services",
3
- "version": "6.9.30",
3
+ "version": "6.9.32",
4
4
  "description": "OxyHQ Expo/React Native SDK — UI components, screens, and native features",
5
5
  "main": "lib/commonjs/index.js",
6
6
  "module": "lib/module/index.js",
@@ -71,7 +71,7 @@
71
71
  },
72
72
  "dependencies": {
73
73
  "@lottiefiles/dotlottie-react": "^0.13.5",
74
- "@oxyhq/bloom": "0.1.21",
74
+ "@oxyhq/bloom": "0.1.22",
75
75
  "@oxyhq/core": "*",
76
76
  "@react-native-async-storage/async-storage": "2.2.0",
77
77
  "@react-native-community/netinfo": "^11.4.1",
@@ -2,21 +2,12 @@ import React, { useEffect, useCallback, memo } from 'react';
2
2
  import {
3
3
  TouchableOpacity,
4
4
  Text,
5
- StyleSheet,
6
5
  type ViewStyle,
7
6
  type TextStyle,
8
7
  type StyleProp,
9
8
  Platform,
10
9
  ActivityIndicator
11
10
  } from 'react-native';
12
- import Animated, {
13
- useSharedValue,
14
- useAnimatedStyle,
15
- withSpring,
16
- interpolateColor,
17
- Easing,
18
- withTiming
19
- } from 'react-native-reanimated';
20
11
  import { useOxy } from '../context/OxyContext';
21
12
  import { fontFamilies } from '../styles/fonts';
22
13
  import { toast } from '../../lib/sonner';
@@ -24,10 +15,6 @@ import { useFollowForButton } from '../hooks/useFollow';
24
15
  import { useTheme } from '@oxyhq/bloom/theme';
25
16
  import type { OxyServices } from '@oxyhq/core';
26
17
 
27
- // Create animated TouchableOpacity
28
- const AnimatedTouchableOpacity = Animated.createAnimatedComponent(TouchableOpacity);
29
- const AnimatedText = Animated.createAnimatedComponent(Text);
30
-
31
18
  export interface FollowButtonProps {
32
19
  userId: string;
33
20
  initiallyFollowing?: boolean;
@@ -79,10 +66,6 @@ const FollowButtonInner = memo(function FollowButtonInner({
79
66
  fetchStatus,
80
67
  } = useFollowForButton(userId, oxyServices);
81
68
 
82
- // Animation values
83
- const animationProgress = useSharedValue(isFollowing ? 1 : 0);
84
- const scale = useSharedValue(1);
85
-
86
69
  // Stable press handler — depends on primitives only
87
70
  const handlePress = useCallback(async (event?: { preventDefault?: () => void; stopPropagation?: () => void }) => {
88
71
  if (preventParentActions && event && event.preventDefault) {
@@ -91,13 +74,6 @@ const FollowButtonInner = memo(function FollowButtonInner({
91
74
  }
92
75
  if (disabled || isLoading) return;
93
76
 
94
- // Press animation
95
- scale.value = withTiming(0.95, { duration: 100 }, (finished) => {
96
- if (finished) {
97
- scale.value = withSpring(1, { damping: 15, stiffness: 200 });
98
- }
99
- });
100
-
101
77
  try {
102
78
  await toggleFollow();
103
79
  if (onFollowChange) onFollowChange(!isFollowing);
@@ -105,7 +81,7 @@ const FollowButtonInner = memo(function FollowButtonInner({
105
81
  const error = err instanceof Error ? err : new Error(String(err));
106
82
  toast.error(error.message || 'Failed to update follow status');
107
83
  }
108
- }, [disabled, isLoading, toggleFollow, onFollowChange, isFollowing, preventParentActions, scale]);
84
+ }, [disabled, isLoading, toggleFollow, onFollowChange, isFollowing, preventParentActions]);
109
85
 
110
86
  // Set initial follow status on mount if provided and not already set
111
87
  useEffect(() => {
@@ -123,46 +99,20 @@ const FollowButtonInner = memo(function FollowButtonInner({
123
99
  }
124
100
  }, [userId, fetchStatus]);
125
101
 
126
- // Animate button on follow/unfollow
127
- useEffect(() => {
128
- animationProgress.value = withTiming(isFollowing ? 1 : 0, { duration: 300, easing: Easing.inOut(Easing.ease) });
129
- }, [isFollowing, animationProgress]);
130
-
131
- // Animated styles
132
- // When not following (progress=0): primary filled button (bg-primary, text white)
133
- // When following (progress=1): outlined button (bg-background, border-border, text-foreground)
134
- const animatedButtonStyle = useAnimatedStyle(() => {
135
- return {
136
- transform: [{ scale: scale.value }],
137
- backgroundColor: interpolateColor(
138
- animationProgress.value,
139
- [0, 1],
140
- [colors.primary, colors.background]
141
- ),
142
- borderColor: interpolateColor(
143
- animationProgress.value,
144
- [0, 1],
145
- [colors.primary, colors.border]
146
- ),
147
- };
148
- }, [colors]);
149
-
150
- const animatedTextStyle = useAnimatedStyle(() => {
151
- return {
152
- color: interpolateColor(
153
- animationProgress.value,
154
- [0, 1],
155
- ['#FFFFFF', colors.text]
156
- ),
157
- };
158
- }, [colors]);
102
+ // Colors from bloom theme — follows NativeWind convention via useTheme()
103
+ // Not following: bg-primary, border-primary, text white
104
+ // Following: bg-background, border-border, text-foreground
105
+ const buttonColorStyle: ViewStyle = isFollowing
106
+ ? { backgroundColor: colors.background, borderColor: colors.border }
107
+ : { backgroundColor: colors.primary, borderColor: colors.primary };
108
+ const textColor = isFollowing ? colors.text : '#FFFFFF';
159
109
 
160
110
  const baseButtonStyle = getBaseButtonStyle(size, style);
161
111
  const baseTextStyle = getBaseTextStyle(size, textStyle);
162
112
 
163
113
  return (
164
- <AnimatedTouchableOpacity
165
- style={[baseButtonStyle, animatedButtonStyle]}
114
+ <TouchableOpacity
115
+ style={[baseButtonStyle, buttonColorStyle]}
166
116
  onPress={handlePress}
167
117
  disabled={disabled || isLoading}
168
118
  activeOpacity={0.8}
@@ -170,14 +120,14 @@ const FollowButtonInner = memo(function FollowButtonInner({
170
120
  {showLoadingState && isLoading ? (
171
121
  <ActivityIndicator
172
122
  size="small"
173
- color={isFollowing ? colors.text : '#FFFFFF'}
123
+ color={textColor}
174
124
  />
175
125
  ) : (
176
- <AnimatedText style={[baseTextStyle, animatedTextStyle]}>
126
+ <Text style={[baseTextStyle, { color: textColor }]}>
177
127
  {isFollowing ? 'Following' : 'Follow'}
178
- </AnimatedText>
128
+ </Text>
179
129
  )}
180
- </AnimatedTouchableOpacity>
130
+ </TouchableOpacity>
181
131
  );
182
132
  });
183
133