@oxyhq/services 6.9.28 → 6.9.30
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.
- package/lib/commonjs/ui/components/FollowButton.js +10 -7
- package/lib/commonjs/ui/components/FollowButton.js.map +1 -1
- package/lib/commonjs/ui/components/SettingsIcon.js +45 -0
- package/lib/commonjs/ui/components/SettingsIcon.js.map +1 -0
- package/lib/commonjs/ui/components/index.js +7 -0
- package/lib/commonjs/ui/components/index.js.map +1 -1
- package/lib/commonjs/ui/screens/AccountCenterScreen.js +127 -126
- package/lib/commonjs/ui/screens/AccountCenterScreen.js.map +1 -1
- package/lib/commonjs/ui/screens/AccountOverviewScreen.js +203 -191
- package/lib/commonjs/ui/screens/AccountOverviewScreen.js.map +1 -1
- package/lib/commonjs/ui/screens/AppInfoScreen.js +209 -205
- package/lib/commonjs/ui/screens/AppInfoScreen.js.map +1 -1
- package/lib/commonjs/ui/screens/HelpSupportScreen.js +66 -63
- package/lib/commonjs/ui/screens/HelpSupportScreen.js.map +1 -1
- package/lib/module/ui/components/FollowButton.js +10 -7
- package/lib/module/ui/components/FollowButton.js.map +1 -1
- package/lib/module/ui/components/SettingsIcon.js +40 -0
- package/lib/module/ui/components/SettingsIcon.js.map +1 -0
- package/lib/module/ui/components/index.js +1 -0
- package/lib/module/ui/components/index.js.map +1 -1
- package/lib/module/ui/screens/AccountCenterScreen.js +127 -126
- package/lib/module/ui/screens/AccountCenterScreen.js.map +1 -1
- package/lib/module/ui/screens/AccountOverviewScreen.js +204 -192
- package/lib/module/ui/screens/AccountOverviewScreen.js.map +1 -1
- package/lib/module/ui/screens/AppInfoScreen.js +210 -206
- package/lib/module/ui/screens/AppInfoScreen.js.map +1 -1
- package/lib/module/ui/screens/HelpSupportScreen.js +67 -64
- package/lib/module/ui/screens/HelpSupportScreen.js.map +1 -1
- package/lib/typescript/commonjs/ui/components/FollowButton.d.ts.map +1 -1
- package/lib/typescript/commonjs/ui/components/SettingsIcon.d.ts +14 -0
- package/lib/typescript/commonjs/ui/components/SettingsIcon.d.ts.map +1 -0
- package/lib/typescript/commonjs/ui/components/index.d.ts +1 -0
- package/lib/typescript/commonjs/ui/components/index.d.ts.map +1 -1
- package/lib/typescript/commonjs/ui/screens/AccountCenterScreen.d.ts.map +1 -1
- package/lib/typescript/commonjs/ui/screens/AccountOverviewScreen.d.ts.map +1 -1
- package/lib/typescript/commonjs/ui/screens/AppInfoScreen.d.ts.map +1 -1
- package/lib/typescript/commonjs/ui/screens/HelpSupportScreen.d.ts.map +1 -1
- package/lib/typescript/module/ui/components/FollowButton.d.ts.map +1 -1
- package/lib/typescript/module/ui/components/SettingsIcon.d.ts +14 -0
- package/lib/typescript/module/ui/components/SettingsIcon.d.ts.map +1 -0
- package/lib/typescript/module/ui/components/index.d.ts +1 -0
- package/lib/typescript/module/ui/components/index.d.ts.map +1 -1
- package/lib/typescript/module/ui/screens/AccountCenterScreen.d.ts.map +1 -1
- package/lib/typescript/module/ui/screens/AccountOverviewScreen.d.ts.map +1 -1
- package/lib/typescript/module/ui/screens/AppInfoScreen.d.ts.map +1 -1
- package/lib/typescript/module/ui/screens/HelpSupportScreen.d.ts.map +1 -1
- package/package.json +2 -2
- package/src/ui/components/FollowButton.tsx +10 -7
- package/src/ui/components/SettingsIcon.tsx +43 -0
- package/src/ui/components/index.ts +1 -0
- package/src/ui/screens/AccountCenterScreen.tsx +97 -145
- package/src/ui/screens/AccountOverviewScreen.tsx +154 -220
- package/src/ui/screens/AppInfoScreen.tsx +177 -248
- package/src/ui/screens/HelpSupportScreen.tsx +53 -76
|
@@ -3,10 +3,12 @@
|
|
|
3
3
|
import React, { useMemo } from 'react';
|
|
4
4
|
import { View, StyleSheet, ScrollView, Linking } from 'react-native';
|
|
5
5
|
import { toast } from '../../lib/sonner';
|
|
6
|
-
import { Header
|
|
6
|
+
import { Header } from "../components/index.js";
|
|
7
|
+
import { SettingsIcon } from "../components/SettingsIcon.js";
|
|
7
8
|
import { useI18n } from "../hooks/useI18n.js";
|
|
8
9
|
import { useThemeStyles } from "../hooks/useThemeStyles.js";
|
|
9
10
|
import { useColorScheme } from "../hooks/useColorScheme.js";
|
|
11
|
+
import { SettingsListGroup, SettingsListItem } from '@oxyhq/bloom/settings-list';
|
|
10
12
|
import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
|
|
11
13
|
const HelpSupportScreen = ({
|
|
12
14
|
onClose,
|
|
@@ -48,71 +50,72 @@ const HelpSupportScreen = ({
|
|
|
48
50
|
elevation: "subtle"
|
|
49
51
|
}), /*#__PURE__*/_jsxs(ScrollView, {
|
|
50
52
|
style: styles.content,
|
|
51
|
-
children: [/*#__PURE__*/
|
|
53
|
+
children: [/*#__PURE__*/_jsxs(SettingsListGroup, {
|
|
52
54
|
title: t('help.options') || 'Get Help',
|
|
53
|
-
|
|
54
|
-
|
|
55
|
-
|
|
56
|
-
|
|
57
|
-
|
|
58
|
-
|
|
59
|
-
|
|
60
|
-
|
|
61
|
-
|
|
62
|
-
|
|
63
|
-
|
|
64
|
-
|
|
65
|
-
|
|
66
|
-
|
|
67
|
-
|
|
68
|
-
|
|
69
|
-
|
|
70
|
-
|
|
71
|
-
|
|
72
|
-
|
|
73
|
-
|
|
74
|
-
|
|
75
|
-
|
|
76
|
-
|
|
77
|
-
})
|
|
78
|
-
}), /*#__PURE__*/
|
|
55
|
+
children: [/*#__PURE__*/_jsx(SettingsListItem, {
|
|
56
|
+
icon: /*#__PURE__*/_jsx(SettingsIcon, {
|
|
57
|
+
name: "help-circle",
|
|
58
|
+
color: themeStyles.colors.iconSecurity
|
|
59
|
+
}),
|
|
60
|
+
title: t('help.faq.title') || 'Frequently Asked Questions',
|
|
61
|
+
description: t('help.faq.subtitle') || 'Find answers to common questions',
|
|
62
|
+
onPress: handleFAQ
|
|
63
|
+
}), /*#__PURE__*/_jsx(SettingsListItem, {
|
|
64
|
+
icon: /*#__PURE__*/_jsx(SettingsIcon, {
|
|
65
|
+
name: "email",
|
|
66
|
+
color: themeStyles.colors.iconPersonalInfo
|
|
67
|
+
}),
|
|
68
|
+
title: t('help.contact.title') || 'Contact Support',
|
|
69
|
+
description: t('help.contact.subtitle') || 'Get help from our support team',
|
|
70
|
+
onPress: handleContactSupport
|
|
71
|
+
}), /*#__PURE__*/_jsx(SettingsListItem, {
|
|
72
|
+
icon: /*#__PURE__*/_jsx(SettingsIcon, {
|
|
73
|
+
name: "bug",
|
|
74
|
+
color: themeStyles.colors.iconStorage
|
|
75
|
+
}),
|
|
76
|
+
title: t('help.reportBug.title') || 'Report a Bug',
|
|
77
|
+
description: t('help.reportBug.subtitle') || 'Help us improve by reporting issues',
|
|
78
|
+
onPress: handleReportBug
|
|
79
|
+
})]
|
|
80
|
+
}), /*#__PURE__*/_jsxs(SettingsListGroup, {
|
|
79
81
|
title: t('help.resources') || 'Resources',
|
|
80
|
-
children: /*#__PURE__*/_jsx(
|
|
81
|
-
|
|
82
|
-
|
|
83
|
-
|
|
84
|
-
|
|
85
|
-
|
|
86
|
-
|
|
87
|
-
|
|
88
|
-
|
|
89
|
-
|
|
90
|
-
|
|
91
|
-
|
|
92
|
-
|
|
93
|
-
|
|
94
|
-
|
|
95
|
-
|
|
96
|
-
|
|
97
|
-
|
|
98
|
-
|
|
99
|
-
|
|
100
|
-
|
|
101
|
-
|
|
102
|
-
}
|
|
103
|
-
}
|
|
104
|
-
|
|
105
|
-
|
|
106
|
-
|
|
107
|
-
|
|
108
|
-
|
|
109
|
-
|
|
110
|
-
|
|
111
|
-
|
|
112
|
-
|
|
113
|
-
|
|
114
|
-
|
|
115
|
-
|
|
82
|
+
children: [/*#__PURE__*/_jsx(SettingsListItem, {
|
|
83
|
+
icon: /*#__PURE__*/_jsx(SettingsIcon, {
|
|
84
|
+
name: "file-document",
|
|
85
|
+
color: "#8E8E93"
|
|
86
|
+
}),
|
|
87
|
+
title: t('help.documentation.title') || 'Documentation',
|
|
88
|
+
description: t('help.documentation.subtitle') || 'User guides and tutorials',
|
|
89
|
+
onPress: () => {
|
|
90
|
+
Linking.openURL('https://developer.oxy.so/docs').catch(() => {
|
|
91
|
+
toast.error(t('help.linkError') || 'Failed to open link');
|
|
92
|
+
});
|
|
93
|
+
}
|
|
94
|
+
}), /*#__PURE__*/_jsx(SettingsListItem, {
|
|
95
|
+
icon: /*#__PURE__*/_jsx(SettingsIcon, {
|
|
96
|
+
name: "account-group",
|
|
97
|
+
color: themeStyles.colors.iconData
|
|
98
|
+
}),
|
|
99
|
+
title: t('help.community.title') || 'Community',
|
|
100
|
+
description: t('help.community.subtitle') || 'Join our community',
|
|
101
|
+
onPress: () => {
|
|
102
|
+
Linking.openURL('https://community.oxy.so').catch(() => {
|
|
103
|
+
toast.error(t('help.linkError') || 'Failed to open link');
|
|
104
|
+
});
|
|
105
|
+
}
|
|
106
|
+
}), /*#__PURE__*/_jsx(SettingsListItem, {
|
|
107
|
+
icon: /*#__PURE__*/_jsx(SettingsIcon, {
|
|
108
|
+
name: "code-tags",
|
|
109
|
+
color: themeStyles.colors.iconSharing
|
|
110
|
+
}),
|
|
111
|
+
title: t('help.developersPortal.title') || 'Developers Portal',
|
|
112
|
+
description: t('help.developersPortal.subtitle') || 'API documentation and developer resources',
|
|
113
|
+
onPress: () => {
|
|
114
|
+
Linking.openURL('https://developer.oxy.so').catch(() => {
|
|
115
|
+
toast.error(t('help.linkError') || 'Failed to open link');
|
|
116
|
+
});
|
|
117
|
+
}
|
|
118
|
+
})]
|
|
116
119
|
})]
|
|
117
120
|
})]
|
|
118
121
|
});
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["React","useMemo","View","StyleSheet","ScrollView","Linking","toast","Header","
|
|
1
|
+
{"version":3,"names":["React","useMemo","View","StyleSheet","ScrollView","Linking","toast","Header","SettingsIcon","useI18n","useThemeStyles","useColorScheme","SettingsListGroup","SettingsListItem","jsx","_jsx","jsxs","_jsxs","HelpSupportScreen","onClose","theme","goBack","navigate","t","colorScheme","themeStyles","handleContactSupport","openURL","catch","error","handleFAQ","info","handleReportBug","style","styles","container","backgroundColor","children","title","onBack","variant","elevation","content","icon","name","color","colors","iconSecurity","description","onPress","iconPersonalInfo","iconStorage","iconData","iconSharing","create","flex","padding","memo"],"sourceRoot":"../../../../src","sources":["ui/screens/HelpSupportScreen.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;
|
|
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"}
|
|
@@ -0,0 +1,14 @@
|
|
|
1
|
+
import React from 'react';
|
|
2
|
+
interface SettingsIconProps {
|
|
3
|
+
/** MaterialCommunityIcons icon name */
|
|
4
|
+
name: string;
|
|
5
|
+
/** Background color for the circle */
|
|
6
|
+
color: string;
|
|
7
|
+
/** Icon size (default 14, fits bloom's 20x20 container) */
|
|
8
|
+
iconSize?: number;
|
|
9
|
+
/** Container size (default 20, matches bloom SettingsListItem icon slot) */
|
|
10
|
+
size?: number;
|
|
11
|
+
}
|
|
12
|
+
export declare const SettingsIcon: React.NamedExoticComponent<SettingsIconProps>;
|
|
13
|
+
export default SettingsIcon;
|
|
14
|
+
//# sourceMappingURL=SettingsIcon.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"SettingsIcon.d.ts","sourceRoot":"","sources":["../../../../../src/ui/components/SettingsIcon.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAe,MAAM,OAAO,CAAC;AAKpC,UAAU,iBAAiB;IACvB,uCAAuC;IACvC,IAAI,EAAE,MAAM,CAAC;IACb,sCAAsC;IACtC,KAAK,EAAE,MAAM,CAAC;IACd,2DAA2D;IAC3D,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,4EAA4E;IAC5E,IAAI,CAAC,EAAE,MAAM,CAAC;CACjB;AAoBD,eAAO,MAAM,YAAY,+CAA8B,CAAC;AACxD,eAAe,YAAY,CAAC"}
|
|
@@ -8,6 +8,7 @@ export { default as Header, getHeaderHeight } from './Header';
|
|
|
8
8
|
export { default as LoadingState } from './LoadingState';
|
|
9
9
|
export { default as EmptyState } from './EmptyState';
|
|
10
10
|
export { default as SettingRow } from './SettingRow';
|
|
11
|
+
export { SettingsIcon } from './SettingsIcon';
|
|
11
12
|
export { default as Avatar } from './Avatar';
|
|
12
13
|
export { default as FollowButton } from './FollowButton';
|
|
13
14
|
export { FontLoader, setupFonts } from './FontLoader';
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../../src/ui/components/index.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,OAAO,IAAI,WAAW,EAAE,MAAM,eAAe,CAAC;AACvD,OAAO,EAAE,OAAO,IAAI,OAAO,EAAE,MAAM,WAAW,CAAC;AAC/C,OAAO,EAAE,OAAO,IAAI,YAAY,EAAE,MAAM,gBAAgB,CAAC;AACzD,OAAO,EAAE,OAAO,IAAI,WAAW,EAAE,MAAM,eAAe,CAAC;AACvD,OAAO,EAAE,OAAO,IAAI,cAAc,EAAE,MAAM,kBAAkB,CAAC;AAC7D,OAAO,EAAE,OAAO,IAAI,YAAY,EAAE,MAAM,gBAAgB,CAAC;AACzD,OAAO,EAAE,OAAO,IAAI,MAAM,EAAE,eAAe,EAAE,MAAM,UAAU,CAAC;AAC9D,OAAO,EAAE,OAAO,IAAI,YAAY,EAAE,MAAM,gBAAgB,CAAC;AACzD,OAAO,EAAE,OAAO,IAAI,UAAU,EAAE,MAAM,cAAc,CAAC;AACrD,OAAO,EAAE,OAAO,IAAI,UAAU,EAAE,MAAM,cAAc,CAAC;
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../../src/ui/components/index.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,OAAO,IAAI,WAAW,EAAE,MAAM,eAAe,CAAC;AACvD,OAAO,EAAE,OAAO,IAAI,OAAO,EAAE,MAAM,WAAW,CAAC;AAC/C,OAAO,EAAE,OAAO,IAAI,YAAY,EAAE,MAAM,gBAAgB,CAAC;AACzD,OAAO,EAAE,OAAO,IAAI,WAAW,EAAE,MAAM,eAAe,CAAC;AACvD,OAAO,EAAE,OAAO,IAAI,cAAc,EAAE,MAAM,kBAAkB,CAAC;AAC7D,OAAO,EAAE,OAAO,IAAI,YAAY,EAAE,MAAM,gBAAgB,CAAC;AACzD,OAAO,EAAE,OAAO,IAAI,MAAM,EAAE,eAAe,EAAE,MAAM,UAAU,CAAC;AAC9D,OAAO,EAAE,OAAO,IAAI,YAAY,EAAE,MAAM,gBAAgB,CAAC;AACzD,OAAO,EAAE,OAAO,IAAI,UAAU,EAAE,MAAM,cAAc,CAAC;AACrD,OAAO,EAAE,OAAO,IAAI,UAAU,EAAE,MAAM,cAAc,CAAC;AACrD,OAAO,EAAE,YAAY,EAAE,MAAM,gBAAgB,CAAC;AAG9C,OAAO,EAAE,OAAO,IAAI,MAAM,EAAE,MAAM,UAAU,CAAC;AAC7C,OAAO,EAAE,OAAO,IAAI,YAAY,EAAE,MAAM,gBAAgB,CAAC;AACzD,OAAO,EAAE,UAAU,EAAE,UAAU,EAAE,MAAM,cAAc,CAAC;AACtD,OAAO,EAAE,OAAO,IAAI,OAAO,EAAE,MAAM,WAAW,CAAC;AAC/C,OAAO,EAAE,OAAO,IAAI,eAAe,EAAE,MAAM,mBAAmB,CAAC;AAC/D,OAAO,EAAE,OAAO,IAAI,YAAY,EAAE,MAAM,gBAAgB,CAAC"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"AccountCenterScreen.d.ts","sourceRoot":"","sources":["../../../../../src/ui/screens/AccountCenterScreen.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,KAAK,MAAM,OAAO,CAAC;
|
|
1
|
+
{"version":3,"file":"AccountCenterScreen.d.ts","sourceRoot":"","sources":["../../../../../src/ui/screens/AccountCenterScreen.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,KAAK,MAAM,OAAO,CAAC;AAU/B,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,qBAAqB,CAAC;AAkB3D,QAAA,MAAM,mBAAmB,EAAE,KAAK,CAAC,EAAE,CAAC,eAAe,CAmNlD,CAAC;AA0BF,eAAe,mBAAmB,CAAC"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"AccountOverviewScreen.d.ts","sourceRoot":"","sources":["../../../../../src/ui/screens/AccountOverviewScreen.tsx"],"names":[],"mappings":"AAAA,OAAO,KAA4D,MAAM,OAAO,CAAC;AAcjF,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,qBAAqB,CAAC;;
|
|
1
|
+
{"version":3,"file":"AccountOverviewScreen.d.ts","sourceRoot":"","sources":["../../../../../src/ui/screens/AccountOverviewScreen.tsx"],"names":[],"mappings":"AAAA,OAAO,KAA4D,MAAM,OAAO,CAAC;AAcjF,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,qBAAqB,CAAC;;AA2uB3D,wBAAiD"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"AppInfoScreen.d.ts","sourceRoot":"","sources":["../../../../../src/ui/screens/AppInfoScreen.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,KAAK,MAAM,OAAO,CAAC;
|
|
1
|
+
{"version":3,"file":"AppInfoScreen.d.ts","sourceRoot":"","sources":["../../../../../src/ui/screens/AppInfoScreen.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,KAAK,MAAM,OAAO,CAAC;AAa/B,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,qBAAqB,CAAC;AAwB3D,QAAA,MAAM,aAAa,EAAE,KAAK,CAAC,EAAE,CAAC,eAAe,CA0U5C,CAAC;AAgCF,eAAe,aAAa,CAAC"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"HelpSupportScreen.d.ts","sourceRoot":"","sources":["../../../../../src/ui/screens/HelpSupportScreen.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAkB,MAAM,OAAO,CAAC;
|
|
1
|
+
{"version":3,"file":"HelpSupportScreen.d.ts","sourceRoot":"","sources":["../../../../../src/ui/screens/HelpSupportScreen.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAkB,MAAM,OAAO,CAAC;AAOvC,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,qBAAqB,CAAC;;AAyH3D,wBAA6C"}
|
|
@@ -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;
|
|
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"}
|
|
@@ -0,0 +1,14 @@
|
|
|
1
|
+
import React from 'react';
|
|
2
|
+
interface SettingsIconProps {
|
|
3
|
+
/** MaterialCommunityIcons icon name */
|
|
4
|
+
name: string;
|
|
5
|
+
/** Background color for the circle */
|
|
6
|
+
color: string;
|
|
7
|
+
/** Icon size (default 14, fits bloom's 20x20 container) */
|
|
8
|
+
iconSize?: number;
|
|
9
|
+
/** Container size (default 20, matches bloom SettingsListItem icon slot) */
|
|
10
|
+
size?: number;
|
|
11
|
+
}
|
|
12
|
+
export declare const SettingsIcon: React.NamedExoticComponent<SettingsIconProps>;
|
|
13
|
+
export default SettingsIcon;
|
|
14
|
+
//# sourceMappingURL=SettingsIcon.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"SettingsIcon.d.ts","sourceRoot":"","sources":["../../../../../src/ui/components/SettingsIcon.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAe,MAAM,OAAO,CAAC;AAKpC,UAAU,iBAAiB;IACvB,uCAAuC;IACvC,IAAI,EAAE,MAAM,CAAC;IACb,sCAAsC;IACtC,KAAK,EAAE,MAAM,CAAC;IACd,2DAA2D;IAC3D,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,4EAA4E;IAC5E,IAAI,CAAC,EAAE,MAAM,CAAC;CACjB;AAoBD,eAAO,MAAM,YAAY,+CAA8B,CAAC;AACxD,eAAe,YAAY,CAAC"}
|
|
@@ -8,6 +8,7 @@ export { default as Header, getHeaderHeight } from './Header';
|
|
|
8
8
|
export { default as LoadingState } from './LoadingState';
|
|
9
9
|
export { default as EmptyState } from './EmptyState';
|
|
10
10
|
export { default as SettingRow } from './SettingRow';
|
|
11
|
+
export { SettingsIcon } from './SettingsIcon';
|
|
11
12
|
export { default as Avatar } from './Avatar';
|
|
12
13
|
export { default as FollowButton } from './FollowButton';
|
|
13
14
|
export { FontLoader, setupFonts } from './FontLoader';
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../../src/ui/components/index.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,OAAO,IAAI,WAAW,EAAE,MAAM,eAAe,CAAC;AACvD,OAAO,EAAE,OAAO,IAAI,OAAO,EAAE,MAAM,WAAW,CAAC;AAC/C,OAAO,EAAE,OAAO,IAAI,YAAY,EAAE,MAAM,gBAAgB,CAAC;AACzD,OAAO,EAAE,OAAO,IAAI,WAAW,EAAE,MAAM,eAAe,CAAC;AACvD,OAAO,EAAE,OAAO,IAAI,cAAc,EAAE,MAAM,kBAAkB,CAAC;AAC7D,OAAO,EAAE,OAAO,IAAI,YAAY,EAAE,MAAM,gBAAgB,CAAC;AACzD,OAAO,EAAE,OAAO,IAAI,MAAM,EAAE,eAAe,EAAE,MAAM,UAAU,CAAC;AAC9D,OAAO,EAAE,OAAO,IAAI,YAAY,EAAE,MAAM,gBAAgB,CAAC;AACzD,OAAO,EAAE,OAAO,IAAI,UAAU,EAAE,MAAM,cAAc,CAAC;AACrD,OAAO,EAAE,OAAO,IAAI,UAAU,EAAE,MAAM,cAAc,CAAC;
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../../src/ui/components/index.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,OAAO,IAAI,WAAW,EAAE,MAAM,eAAe,CAAC;AACvD,OAAO,EAAE,OAAO,IAAI,OAAO,EAAE,MAAM,WAAW,CAAC;AAC/C,OAAO,EAAE,OAAO,IAAI,YAAY,EAAE,MAAM,gBAAgB,CAAC;AACzD,OAAO,EAAE,OAAO,IAAI,WAAW,EAAE,MAAM,eAAe,CAAC;AACvD,OAAO,EAAE,OAAO,IAAI,cAAc,EAAE,MAAM,kBAAkB,CAAC;AAC7D,OAAO,EAAE,OAAO,IAAI,YAAY,EAAE,MAAM,gBAAgB,CAAC;AACzD,OAAO,EAAE,OAAO,IAAI,MAAM,EAAE,eAAe,EAAE,MAAM,UAAU,CAAC;AAC9D,OAAO,EAAE,OAAO,IAAI,YAAY,EAAE,MAAM,gBAAgB,CAAC;AACzD,OAAO,EAAE,OAAO,IAAI,UAAU,EAAE,MAAM,cAAc,CAAC;AACrD,OAAO,EAAE,OAAO,IAAI,UAAU,EAAE,MAAM,cAAc,CAAC;AACrD,OAAO,EAAE,YAAY,EAAE,MAAM,gBAAgB,CAAC;AAG9C,OAAO,EAAE,OAAO,IAAI,MAAM,EAAE,MAAM,UAAU,CAAC;AAC7C,OAAO,EAAE,OAAO,IAAI,YAAY,EAAE,MAAM,gBAAgB,CAAC;AACzD,OAAO,EAAE,UAAU,EAAE,UAAU,EAAE,MAAM,cAAc,CAAC;AACtD,OAAO,EAAE,OAAO,IAAI,OAAO,EAAE,MAAM,WAAW,CAAC;AAC/C,OAAO,EAAE,OAAO,IAAI,eAAe,EAAE,MAAM,mBAAmB,CAAC;AAC/D,OAAO,EAAE,OAAO,IAAI,YAAY,EAAE,MAAM,gBAAgB,CAAC"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"AccountCenterScreen.d.ts","sourceRoot":"","sources":["../../../../../src/ui/screens/AccountCenterScreen.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,KAAK,MAAM,OAAO,CAAC;
|
|
1
|
+
{"version":3,"file":"AccountCenterScreen.d.ts","sourceRoot":"","sources":["../../../../../src/ui/screens/AccountCenterScreen.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,KAAK,MAAM,OAAO,CAAC;AAU/B,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,qBAAqB,CAAC;AAkB3D,QAAA,MAAM,mBAAmB,EAAE,KAAK,CAAC,EAAE,CAAC,eAAe,CAmNlD,CAAC;AA0BF,eAAe,mBAAmB,CAAC"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"AccountOverviewScreen.d.ts","sourceRoot":"","sources":["../../../../../src/ui/screens/AccountOverviewScreen.tsx"],"names":[],"mappings":"AAAA,OAAO,KAA4D,MAAM,OAAO,CAAC;AAcjF,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,qBAAqB,CAAC;;
|
|
1
|
+
{"version":3,"file":"AccountOverviewScreen.d.ts","sourceRoot":"","sources":["../../../../../src/ui/screens/AccountOverviewScreen.tsx"],"names":[],"mappings":"AAAA,OAAO,KAA4D,MAAM,OAAO,CAAC;AAcjF,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,qBAAqB,CAAC;;AA2uB3D,wBAAiD"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"AppInfoScreen.d.ts","sourceRoot":"","sources":["../../../../../src/ui/screens/AppInfoScreen.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,KAAK,MAAM,OAAO,CAAC;
|
|
1
|
+
{"version":3,"file":"AppInfoScreen.d.ts","sourceRoot":"","sources":["../../../../../src/ui/screens/AppInfoScreen.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,KAAK,MAAM,OAAO,CAAC;AAa/B,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,qBAAqB,CAAC;AAwB3D,QAAA,MAAM,aAAa,EAAE,KAAK,CAAC,EAAE,CAAC,eAAe,CA0U5C,CAAC;AAgCF,eAAe,aAAa,CAAC"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"HelpSupportScreen.d.ts","sourceRoot":"","sources":["../../../../../src/ui/screens/HelpSupportScreen.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAkB,MAAM,OAAO,CAAC;
|
|
1
|
+
{"version":3,"file":"HelpSupportScreen.d.ts","sourceRoot":"","sources":["../../../../../src/ui/screens/HelpSupportScreen.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAkB,MAAM,OAAO,CAAC;AAOvC,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,qBAAqB,CAAC;;AAyH3D,wBAA6C"}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@oxyhq/services",
|
|
3
|
-
"version": "6.9.
|
|
3
|
+
"version": "6.9.30",
|
|
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.
|
|
74
|
+
"@oxyhq/bloom": "0.1.21",
|
|
75
75
|
"@oxyhq/core": "*",
|
|
76
76
|
"@react-native-async-storage/async-storage": "2.2.0",
|
|
77
77
|
"@react-native-community/netinfo": "^11.4.1",
|
|
@@ -21,7 +21,7 @@ import { useOxy } from '../context/OxyContext';
|
|
|
21
21
|
import { fontFamilies } from '../styles/fonts';
|
|
22
22
|
import { toast } from '../../lib/sonner';
|
|
23
23
|
import { useFollowForButton } from '../hooks/useFollow';
|
|
24
|
-
import {
|
|
24
|
+
import { useTheme } from '@oxyhq/bloom/theme';
|
|
25
25
|
import type { OxyServices } from '@oxyhq/core';
|
|
26
26
|
|
|
27
27
|
// Create animated TouchableOpacity
|
|
@@ -65,9 +65,10 @@ const FollowButtonInner = memo(function FollowButtonInner({
|
|
|
65
65
|
disabled = false,
|
|
66
66
|
showLoadingState = true,
|
|
67
67
|
preventParentActions = true,
|
|
68
|
-
theme = 'light',
|
|
68
|
+
theme: _theme = 'light',
|
|
69
69
|
}: FollowButtonProps & { oxyServices: OxyServices }) {
|
|
70
|
-
const
|
|
70
|
+
const bloomTheme = useTheme();
|
|
71
|
+
const colors = bloomTheme.colors;
|
|
71
72
|
|
|
72
73
|
// Uses granular Zustand selectors — only re-renders when THIS user's data changes
|
|
73
74
|
const {
|
|
@@ -128,18 +129,20 @@ const FollowButtonInner = memo(function FollowButtonInner({
|
|
|
128
129
|
}, [isFollowing, animationProgress]);
|
|
129
130
|
|
|
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)
|
|
131
134
|
const animatedButtonStyle = useAnimatedStyle(() => {
|
|
132
135
|
return {
|
|
133
136
|
transform: [{ scale: scale.value }],
|
|
134
137
|
backgroundColor: interpolateColor(
|
|
135
138
|
animationProgress.value,
|
|
136
139
|
[0, 1],
|
|
137
|
-
[colors.
|
|
140
|
+
[colors.primary, colors.background]
|
|
138
141
|
),
|
|
139
142
|
borderColor: interpolateColor(
|
|
140
143
|
animationProgress.value,
|
|
141
144
|
[0, 1],
|
|
142
|
-
[colors.
|
|
145
|
+
[colors.primary, colors.border]
|
|
143
146
|
),
|
|
144
147
|
};
|
|
145
148
|
}, [colors]);
|
|
@@ -149,7 +152,7 @@ const FollowButtonInner = memo(function FollowButtonInner({
|
|
|
149
152
|
color: interpolateColor(
|
|
150
153
|
animationProgress.value,
|
|
151
154
|
[0, 1],
|
|
152
|
-
[
|
|
155
|
+
['#FFFFFF', colors.text]
|
|
153
156
|
),
|
|
154
157
|
};
|
|
155
158
|
}, [colors]);
|
|
@@ -167,7 +170,7 @@ const FollowButtonInner = memo(function FollowButtonInner({
|
|
|
167
170
|
{showLoadingState && isLoading ? (
|
|
168
171
|
<ActivityIndicator
|
|
169
172
|
size="small"
|
|
170
|
-
color={isFollowing ? '#FFFFFF'
|
|
173
|
+
color={isFollowing ? colors.text : '#FFFFFF'}
|
|
171
174
|
/>
|
|
172
175
|
) : (
|
|
173
176
|
<AnimatedText style={[baseTextStyle, animatedTextStyle]}>
|
|
@@ -0,0 +1,43 @@
|
|
|
1
|
+
import React, { memo } from 'react';
|
|
2
|
+
import { View, StyleSheet } from 'react-native';
|
|
3
|
+
import { MaterialCommunityIcons } from '@expo/vector-icons';
|
|
4
|
+
import { darkenColor } from '../utils/colorUtils';
|
|
5
|
+
|
|
6
|
+
interface SettingsIconProps {
|
|
7
|
+
/** MaterialCommunityIcons icon name */
|
|
8
|
+
name: string;
|
|
9
|
+
/** Background color for the circle */
|
|
10
|
+
color: string;
|
|
11
|
+
/** Icon size (default 14, fits bloom's 20x20 container) */
|
|
12
|
+
iconSize?: number;
|
|
13
|
+
/** Container size (default 20, matches bloom SettingsListItem icon slot) */
|
|
14
|
+
size?: number;
|
|
15
|
+
}
|
|
16
|
+
|
|
17
|
+
/**
|
|
18
|
+
* Compact colored-circle icon for use with bloom's SettingsListItem.
|
|
19
|
+
* Renders a MaterialCommunityIcons glyph inside a tinted circle,
|
|
20
|
+
* sized to fit bloom's 20x20 icon container.
|
|
21
|
+
*/
|
|
22
|
+
const SettingsIconComponent: React.FC<SettingsIconProps> = ({
|
|
23
|
+
name,
|
|
24
|
+
color,
|
|
25
|
+
iconSize = 14,
|
|
26
|
+
size = 20,
|
|
27
|
+
}) => (
|
|
28
|
+
<View style={[styles.circle, { width: size, height: size, borderRadius: size / 2, backgroundColor: color }]}>
|
|
29
|
+
<MaterialCommunityIcons name={name as any} size={iconSize} color={darkenColor(color)} />
|
|
30
|
+
</View>
|
|
31
|
+
);
|
|
32
|
+
|
|
33
|
+
SettingsIconComponent.displayName = 'SettingsIcon';
|
|
34
|
+
|
|
35
|
+
export const SettingsIcon = memo(SettingsIconComponent);
|
|
36
|
+
export default SettingsIcon;
|
|
37
|
+
|
|
38
|
+
const styles = StyleSheet.create({
|
|
39
|
+
circle: {
|
|
40
|
+
alignItems: 'center',
|
|
41
|
+
justifyContent: 'center',
|
|
42
|
+
},
|
|
43
|
+
});
|
|
@@ -9,6 +9,7 @@ export { default as Header, getHeaderHeight } from './Header';
|
|
|
9
9
|
export { default as LoadingState } from './LoadingState';
|
|
10
10
|
export { default as EmptyState } from './EmptyState';
|
|
11
11
|
export { default as SettingRow } from './SettingRow';
|
|
12
|
+
export { SettingsIcon } from './SettingsIcon';
|
|
12
13
|
|
|
13
14
|
// Re-export existing components
|
|
14
15
|
export { default as Avatar } from './Avatar';
|