@oxyhq/services 6.9.29 → 6.9.31

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.
@@ -11,12 +11,11 @@ var _OxyContext = require("../context/OxyContext.js");
11
11
  var _fonts = require("../styles/fonts.js");
12
12
  var _sonner = require("../../lib/sonner");
13
13
  var _useFollow = require("../hooks/useFollow.js");
14
- var _theme = require("../styles/theme.js");
14
+ var _theme2 = require("@oxyhq/bloom/theme");
15
15
  var _jsxRuntime = require("react/jsx-runtime");
16
16
  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
17
  // Create animated TouchableOpacity
18
18
  const AnimatedTouchableOpacity = _reactNativeReanimated.default.createAnimatedComponent(_reactNative.TouchableOpacity);
19
- const AnimatedText = _reactNativeReanimated.default.createAnimatedComponent(_reactNative.Text);
20
19
  /**
21
20
  * Inner component that handles all hooks and rendering.
22
21
  *
@@ -41,9 +40,10 @@ const FollowButtonInner = /*#__PURE__*/(0, _react.memo)(function FollowButtonInn
41
40
  disabled = false,
42
41
  showLoadingState = true,
43
42
  preventParentActions = true,
44
- theme = 'light'
43
+ theme: _theme = 'light'
45
44
  }) {
46
- const colors = (0, _theme.useThemeColors)(theme);
45
+ const bloomTheme = (0, _theme2.useTheme)();
46
+ const colors = bloomTheme.colors;
47
47
 
48
48
  // Uses granular Zustand selectors — only re-renders when THIS user's data changes
49
49
  const {
@@ -55,7 +55,6 @@ const FollowButtonInner = /*#__PURE__*/(0, _react.memo)(function FollowButtonInn
55
55
  } = (0, _useFollow.useFollowForButton)(userId, oxyServices);
56
56
 
57
57
  // Animation values
58
- const animationProgress = (0, _reactNativeReanimated.useSharedValue)(isFollowing ? 1 : 0);
59
58
  const scale = (0, _reactNativeReanimated.useSharedValue)(1);
60
59
 
61
60
  // Stable press handler — depends on primitives only
@@ -102,41 +101,38 @@ const FollowButtonInner = /*#__PURE__*/(0, _react.memo)(function FollowButtonInn
102
101
  }
103
102
  }, [userId, fetchStatus]);
104
103
 
105
- // Animate button on follow/unfollow
106
- (0, _react.useEffect)(() => {
107
- animationProgress.value = (0, _reactNativeReanimated.withTiming)(isFollowing ? 1 : 0, {
108
- duration: 300,
109
- easing: _reactNativeReanimated.Easing.inOut(_reactNativeReanimated.Easing.ease)
110
- });
111
- }, [isFollowing, animationProgress]);
104
+ // Scale-only animated style
105
+ const animatedStyle = (0, _reactNativeReanimated.useAnimatedStyle)(() => ({
106
+ transform: [{
107
+ scale: scale.value
108
+ }]
109
+ }));
112
110
 
113
- // Animated styles
114
- const animatedButtonStyle = (0, _reactNativeReanimated.useAnimatedStyle)(() => {
115
- return {
116
- transform: [{
117
- scale: scale.value
118
- }],
119
- backgroundColor: (0, _reactNativeReanimated.interpolateColor)(animationProgress.value, [0, 1], [colors.background, colors.primary]),
120
- borderColor: (0, _reactNativeReanimated.interpolateColor)(animationProgress.value, [0, 1], [colors.border, colors.primary])
121
- };
122
- }, [colors]);
123
- const animatedTextStyle = (0, _reactNativeReanimated.useAnimatedStyle)(() => {
124
- return {
125
- color: (0, _reactNativeReanimated.interpolateColor)(animationProgress.value, [0, 1], [colors.text, '#FFFFFF'])
126
- };
127
- }, [colors]);
111
+ // Colors from bloom theme — follows NativeWind convention via useTheme()
112
+ // Not following: bg-primary, border-primary, text white
113
+ // Following: bg-background, border-border, text-foreground
114
+ const buttonColorStyle = isFollowing ? {
115
+ backgroundColor: colors.background,
116
+ borderColor: colors.border
117
+ } : {
118
+ backgroundColor: colors.primary,
119
+ borderColor: colors.primary
120
+ };
121
+ const textColor = isFollowing ? colors.text : '#FFFFFF';
128
122
  const baseButtonStyle = getBaseButtonStyle(size, style);
129
123
  const baseTextStyle = getBaseTextStyle(size, textStyle);
130
124
  return /*#__PURE__*/(0, _jsxRuntime.jsx)(AnimatedTouchableOpacity, {
131
- style: [baseButtonStyle, animatedButtonStyle],
125
+ style: [baseButtonStyle, buttonColorStyle, animatedStyle],
132
126
  onPress: handlePress,
133
127
  disabled: disabled || isLoading,
134
128
  activeOpacity: 0.8,
135
129
  children: showLoadingState && isLoading ? /*#__PURE__*/(0, _jsxRuntime.jsx)(_reactNative.ActivityIndicator, {
136
130
  size: "small",
137
- color: isFollowing ? '#FFFFFF' : colors.primary
138
- }) : /*#__PURE__*/(0, _jsxRuntime.jsx)(AnimatedText, {
139
- style: [baseTextStyle, animatedTextStyle],
131
+ color: textColor
132
+ }) : /*#__PURE__*/(0, _jsxRuntime.jsx)(_reactNative.Text, {
133
+ style: [baseTextStyle, {
134
+ color: textColor
135
+ }],
140
136
  children: isFollowing ? 'Following' : 'Follow'
141
137
  })
142
138
  });
@@ -1 +1 @@
1
- {"version":3,"names":["_react","_interopRequireWildcard","require","_reactNative","_reactNativeReanimated","_OxyContext","_fonts","_sonner","_useFollow","_theme","_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","colors","useThemeColors","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","background","primary","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","_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","FollowButtonInner","memo","userId","oxyServices","initiallyFollowing","size","onFollowChange","style","textStyle","disabled","showLoadingState","preventParentActions","theme","_theme","bloomTheme","useTheme","colors","isFollowing","isLoading","toggleFollow","setFollowStatus","fetchStatus","useFollowForButton","scale","useSharedValue","handlePress","useCallback","event","preventDefault","stopPropagation","value","withTiming","duration","finished","withSpring","damping","stiffness","err","error","Error","String","toast","message","useEffect","animatedStyle","useAnimatedStyle","transform","buttonColorStyle","backgroundColor","background","borderColor","border","primary","textColor","text","baseButtonStyle","getBaseButtonStyle","baseTextStyle","getBaseTextStyle","jsx","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,15 @@
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';
5
+ import Animated, { useSharedValue, useAnimatedStyle, withSpring, withTiming } from 'react-native-reanimated';
6
6
  import { useOxy } from "../context/OxyContext.js";
7
7
  import { fontFamilies } from "../styles/fonts.js";
8
8
  import { toast } from '../../lib/sonner';
9
9
  import { useFollowForButton } from "../hooks/useFollow.js";
10
- import { useThemeColors } from "../styles/theme.js";
10
+ import { useTheme } from '@oxyhq/bloom/theme';
11
11
  import { jsx as _jsx } from "react/jsx-runtime";
12
12
  // Create animated TouchableOpacity
13
13
  const AnimatedTouchableOpacity = Animated.createAnimatedComponent(TouchableOpacity);
14
- const AnimatedText = Animated.createAnimatedComponent(Text);
15
14
  /**
16
15
  * Inner component that handles all hooks and rendering.
17
16
  *
@@ -36,9 +35,10 @@ const FollowButtonInner = /*#__PURE__*/memo(function FollowButtonInner({
36
35
  disabled = false,
37
36
  showLoadingState = true,
38
37
  preventParentActions = true,
39
- theme = 'light'
38
+ theme: _theme = 'light'
40
39
  }) {
41
- const colors = useThemeColors(theme);
40
+ const bloomTheme = useTheme();
41
+ const colors = bloomTheme.colors;
42
42
 
43
43
  // Uses granular Zustand selectors — only re-renders when THIS user's data changes
44
44
  const {
@@ -50,7 +50,6 @@ const FollowButtonInner = /*#__PURE__*/memo(function FollowButtonInner({
50
50
  } = useFollowForButton(userId, oxyServices);
51
51
 
52
52
  // Animation values
53
- const animationProgress = useSharedValue(isFollowing ? 1 : 0);
54
53
  const scale = useSharedValue(1);
55
54
 
56
55
  // Stable press handler — depends on primitives only
@@ -97,41 +96,38 @@ const FollowButtonInner = /*#__PURE__*/memo(function FollowButtonInner({
97
96
  }
98
97
  }, [userId, fetchStatus]);
99
98
 
100
- // Animate button on follow/unfollow
101
- useEffect(() => {
102
- animationProgress.value = withTiming(isFollowing ? 1 : 0, {
103
- duration: 300,
104
- easing: Easing.inOut(Easing.ease)
105
- });
106
- }, [isFollowing, animationProgress]);
99
+ // Scale-only animated style
100
+ const animatedStyle = useAnimatedStyle(() => ({
101
+ transform: [{
102
+ scale: scale.value
103
+ }]
104
+ }));
107
105
 
108
- // Animated styles
109
- const animatedButtonStyle = useAnimatedStyle(() => {
110
- return {
111
- transform: [{
112
- scale: scale.value
113
- }],
114
- backgroundColor: interpolateColor(animationProgress.value, [0, 1], [colors.background, colors.primary]),
115
- borderColor: interpolateColor(animationProgress.value, [0, 1], [colors.border, colors.primary])
116
- };
117
- }, [colors]);
118
- const animatedTextStyle = useAnimatedStyle(() => {
119
- return {
120
- color: interpolateColor(animationProgress.value, [0, 1], [colors.text, '#FFFFFF'])
121
- };
122
- }, [colors]);
106
+ // Colors from bloom theme — follows NativeWind convention via useTheme()
107
+ // Not following: bg-primary, border-primary, text white
108
+ // Following: bg-background, border-border, text-foreground
109
+ const buttonColorStyle = isFollowing ? {
110
+ backgroundColor: colors.background,
111
+ borderColor: colors.border
112
+ } : {
113
+ backgroundColor: colors.primary,
114
+ borderColor: colors.primary
115
+ };
116
+ const textColor = isFollowing ? colors.text : '#FFFFFF';
123
117
  const baseButtonStyle = getBaseButtonStyle(size, style);
124
118
  const baseTextStyle = getBaseTextStyle(size, textStyle);
125
119
  return /*#__PURE__*/_jsx(AnimatedTouchableOpacity, {
126
- style: [baseButtonStyle, animatedButtonStyle],
120
+ style: [baseButtonStyle, buttonColorStyle, animatedStyle],
127
121
  onPress: handlePress,
128
122
  disabled: disabled || isLoading,
129
123
  activeOpacity: 0.8,
130
124
  children: showLoadingState && isLoading ? /*#__PURE__*/_jsx(ActivityIndicator, {
131
125
  size: "small",
132
- color: isFollowing ? '#FFFFFF' : colors.primary
133
- }) : /*#__PURE__*/_jsx(AnimatedText, {
134
- style: [baseTextStyle, animatedTextStyle],
126
+ color: textColor
127
+ }) : /*#__PURE__*/_jsx(Text, {
128
+ style: [baseTextStyle, {
129
+ color: textColor
130
+ }],
135
131
  children: isFollowing ? 'Following' : 'Follow'
136
132
  })
137
133
  });
@@ -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","useThemeColors","jsx","_jsx","AnimatedTouchableOpacity","createAnimatedComponent","AnimatedText","FollowButtonInner","userId","oxyServices","initiallyFollowing","size","onFollowChange","style","textStyle","disabled","showLoadingState","preventParentActions","theme","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","background","primary","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","Animated","useSharedValue","useAnimatedStyle","withSpring","withTiming","useOxy","fontFamilies","toast","useFollowForButton","useTheme","jsx","_jsx","AnimatedTouchableOpacity","createAnimatedComponent","FollowButtonInner","userId","oxyServices","initiallyFollowing","size","onFollowChange","style","textStyle","disabled","showLoadingState","preventParentActions","theme","_theme","bloomTheme","colors","isFollowing","isLoading","toggleFollow","setFollowStatus","fetchStatus","scale","handlePress","event","preventDefault","stopPropagation","value","duration","finished","damping","stiffness","err","error","Error","String","message","animatedStyle","transform","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;AA2ID;;;;;;;;;;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;AAiBtB,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;AAwHD;;;;;;;;;;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;AA2ID;;;;;;;;;;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;AAiBtB,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;AAwHD;;;;;;;;;;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.29",
3
+ "version": "6.9.31",
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,7 +2,6 @@ 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,
@@ -13,20 +12,17 @@ import Animated, {
13
12
  useSharedValue,
14
13
  useAnimatedStyle,
15
14
  withSpring,
16
- interpolateColor,
17
- Easing,
18
15
  withTiming
19
16
  } from 'react-native-reanimated';
20
17
  import { useOxy } from '../context/OxyContext';
21
18
  import { fontFamilies } from '../styles/fonts';
22
19
  import { toast } from '../../lib/sonner';
23
20
  import { useFollowForButton } from '../hooks/useFollow';
24
- import { useThemeColors } from '../styles/theme';
21
+ import { useTheme } from '@oxyhq/bloom/theme';
25
22
  import type { OxyServices } from '@oxyhq/core';
26
23
 
27
24
  // Create animated TouchableOpacity
28
25
  const AnimatedTouchableOpacity = Animated.createAnimatedComponent(TouchableOpacity);
29
- const AnimatedText = Animated.createAnimatedComponent(Text);
30
26
 
31
27
  export interface FollowButtonProps {
32
28
  userId: string;
@@ -65,9 +61,10 @@ const FollowButtonInner = memo(function FollowButtonInner({
65
61
  disabled = false,
66
62
  showLoadingState = true,
67
63
  preventParentActions = true,
68
- theme = 'light',
64
+ theme: _theme = 'light',
69
65
  }: FollowButtonProps & { oxyServices: OxyServices }) {
70
- const colors = useThemeColors(theme);
66
+ const bloomTheme = useTheme();
67
+ const colors = bloomTheme.colors;
71
68
 
72
69
  // Uses granular Zustand selectors — only re-renders when THIS user's data changes
73
70
  const {
@@ -79,7 +76,6 @@ const FollowButtonInner = memo(function FollowButtonInner({
79
76
  } = useFollowForButton(userId, oxyServices);
80
77
 
81
78
  // Animation values
82
- const animationProgress = useSharedValue(isFollowing ? 1 : 0);
83
79
  const scale = useSharedValue(1);
84
80
 
85
81
  // Stable press handler — depends on primitives only
@@ -122,44 +118,25 @@ const FollowButtonInner = memo(function FollowButtonInner({
122
118
  }
123
119
  }, [userId, fetchStatus]);
124
120
 
125
- // Animate button on follow/unfollow
126
- useEffect(() => {
127
- animationProgress.value = withTiming(isFollowing ? 1 : 0, { duration: 300, easing: Easing.inOut(Easing.ease) });
128
- }, [isFollowing, animationProgress]);
129
-
130
- // Animated styles
131
- const animatedButtonStyle = useAnimatedStyle(() => {
132
- return {
133
- transform: [{ scale: scale.value }],
134
- backgroundColor: interpolateColor(
135
- animationProgress.value,
136
- [0, 1],
137
- [colors.background, colors.primary]
138
- ),
139
- borderColor: interpolateColor(
140
- animationProgress.value,
141
- [0, 1],
142
- [colors.border, colors.primary]
143
- ),
144
- };
145
- }, [colors]);
121
+ // Scale-only animated style
122
+ const animatedStyle = useAnimatedStyle(() => ({
123
+ transform: [{ scale: scale.value }],
124
+ }));
146
125
 
147
- const animatedTextStyle = useAnimatedStyle(() => {
148
- return {
149
- color: interpolateColor(
150
- animationProgress.value,
151
- [0, 1],
152
- [colors.text, '#FFFFFF']
153
- ),
154
- };
155
- }, [colors]);
126
+ // Colors from bloom theme — follows NativeWind convention via useTheme()
127
+ // Not following: bg-primary, border-primary, text white
128
+ // Following: bg-background, border-border, text-foreground
129
+ const buttonColorStyle: ViewStyle = isFollowing
130
+ ? { backgroundColor: colors.background, borderColor: colors.border }
131
+ : { backgroundColor: colors.primary, borderColor: colors.primary };
132
+ const textColor = isFollowing ? colors.text : '#FFFFFF';
156
133
 
157
134
  const baseButtonStyle = getBaseButtonStyle(size, style);
158
135
  const baseTextStyle = getBaseTextStyle(size, textStyle);
159
136
 
160
137
  return (
161
138
  <AnimatedTouchableOpacity
162
- style={[baseButtonStyle, animatedButtonStyle]}
139
+ style={[baseButtonStyle, buttonColorStyle, animatedStyle]}
163
140
  onPress={handlePress}
164
141
  disabled={disabled || isLoading}
165
142
  activeOpacity={0.8}
@@ -167,12 +144,12 @@ const FollowButtonInner = memo(function FollowButtonInner({
167
144
  {showLoadingState && isLoading ? (
168
145
  <ActivityIndicator
169
146
  size="small"
170
- color={isFollowing ? '#FFFFFF' : colors.primary}
147
+ color={textColor}
171
148
  />
172
149
  ) : (
173
- <AnimatedText style={[baseTextStyle, animatedTextStyle]}>
150
+ <Text style={[baseTextStyle, { color: textColor }]}>
174
151
  {isFollowing ? 'Following' : 'Follow'}
175
- </AnimatedText>
152
+ </Text>
176
153
  )}
177
154
  </AnimatedTouchableOpacity>
178
155
  );