@oxyhq/services 12.1.1 → 13.0.0
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/index.js +73 -6
- package/lib/commonjs/index.js.map +1 -1
- package/lib/commonjs/ui/components/AccountMenuButton.js +26 -9
- package/lib/commonjs/ui/components/AccountMenuButton.js.map +1 -1
- package/lib/commonjs/ui/components/AccountSwitcher.js +792 -0
- package/lib/commonjs/ui/components/AccountSwitcher.js.map +1 -0
- package/lib/commonjs/ui/components/ActiveAccountBanner.js +144 -0
- package/lib/commonjs/ui/components/ActiveAccountBanner.js.map +1 -0
- package/lib/commonjs/ui/components/SignInModal.js +9 -2
- package/lib/commonjs/ui/components/SignInModal.js.map +1 -1
- package/lib/commonjs/ui/context/OxyContext.js +72 -27
- package/lib/commonjs/ui/context/OxyContext.js.map +1 -1
- package/lib/commonjs/ui/context/hooks/useAuthOperations.js +8 -0
- package/lib/commonjs/ui/context/hooks/useAuthOperations.js.map +1 -1
- package/lib/commonjs/ui/index.js +42 -0
- package/lib/commonjs/ui/index.js.map +1 -1
- package/lib/commonjs/ui/navigation/routes.js +4 -1
- package/lib/commonjs/ui/navigation/routes.js.map +1 -1
- package/lib/commonjs/ui/screens/AccountMembersScreen.js +469 -0
- package/lib/commonjs/ui/screens/AccountMembersScreen.js.map +1 -0
- package/lib/commonjs/ui/screens/AccountSettingsScreen.js +264 -0
- package/lib/commonjs/ui/screens/AccountSettingsScreen.js.map +1 -0
- package/lib/commonjs/ui/screens/AccountSwitcherScreen.js +51 -0
- package/lib/commonjs/ui/screens/AccountSwitcherScreen.js.map +1 -0
- package/lib/commonjs/ui/screens/{CreateManagedAccountScreen.js → CreateAccountScreen.js} +116 -25
- package/lib/commonjs/ui/screens/CreateAccountScreen.js.map +1 -0
- package/lib/commonjs/ui/screens/ManageAccountScreen.js +11 -11
- package/lib/commonjs/ui/screens/ManageAccountScreen.js.map +1 -1
- package/lib/commonjs/ui/screens/OxyAuthScreen.js +10 -2
- package/lib/commonjs/ui/screens/OxyAuthScreen.js.map +1 -1
- package/lib/commonjs/utils/crossApex.js +74 -0
- package/lib/commonjs/utils/crossApex.js.map +1 -0
- package/lib/module/index.js +21 -4
- package/lib/module/index.js.map +1 -1
- package/lib/module/ui/components/AccountMenuButton.js +26 -9
- package/lib/module/ui/components/AccountMenuButton.js.map +1 -1
- package/lib/module/ui/components/AccountSwitcher.js +786 -0
- package/lib/module/ui/components/AccountSwitcher.js.map +1 -0
- package/lib/module/ui/components/ActiveAccountBanner.js +141 -0
- package/lib/module/ui/components/ActiveAccountBanner.js.map +1 -0
- package/lib/module/ui/components/SignInModal.js +9 -2
- package/lib/module/ui/components/SignInModal.js.map +1 -1
- package/lib/module/ui/context/OxyContext.js +72 -27
- package/lib/module/ui/context/OxyContext.js.map +1 -1
- package/lib/module/ui/context/hooks/useAuthOperations.js +8 -0
- package/lib/module/ui/context/hooks/useAuthOperations.js.map +1 -1
- package/lib/module/ui/index.js +5 -0
- package/lib/module/ui/index.js.map +1 -1
- package/lib/module/ui/navigation/routes.js +4 -1
- package/lib/module/ui/navigation/routes.js.map +1 -1
- package/lib/module/ui/screens/AccountMembersScreen.js +464 -0
- package/lib/module/ui/screens/AccountMembersScreen.js.map +1 -0
- package/lib/module/ui/screens/AccountSettingsScreen.js +259 -0
- package/lib/module/ui/screens/AccountSettingsScreen.js.map +1 -0
- package/lib/module/ui/screens/AccountSwitcherScreen.js +48 -0
- package/lib/module/ui/screens/AccountSwitcherScreen.js.map +1 -0
- package/lib/module/ui/screens/{CreateManagedAccountScreen.js → CreateAccountScreen.js} +117 -26
- package/lib/module/ui/screens/CreateAccountScreen.js.map +1 -0
- package/lib/module/ui/screens/ManageAccountScreen.js +11 -11
- package/lib/module/ui/screens/ManageAccountScreen.js.map +1 -1
- package/lib/module/ui/screens/OxyAuthScreen.js +10 -2
- package/lib/module/ui/screens/OxyAuthScreen.js.map +1 -1
- package/lib/module/utils/crossApex.js +69 -0
- package/lib/module/utils/crossApex.js.map +1 -0
- package/lib/typescript/commonjs/index.d.ts +8 -1
- package/lib/typescript/commonjs/index.d.ts.map +1 -1
- package/lib/typescript/commonjs/ui/components/AccountMenuButton.d.ts +13 -4
- package/lib/typescript/commonjs/ui/components/AccountMenuButton.d.ts.map +1 -1
- package/lib/typescript/commonjs/ui/components/AccountSwitcher.d.ts +47 -0
- package/lib/typescript/commonjs/ui/components/AccountSwitcher.d.ts.map +1 -0
- package/lib/typescript/commonjs/ui/components/{ActingAsBanner.d.ts → ActiveAccountBanner.d.ts} +1 -1
- package/lib/typescript/commonjs/ui/components/ActiveAccountBanner.d.ts.map +1 -0
- package/lib/typescript/commonjs/ui/components/SignInModal.d.ts.map +1 -1
- package/lib/typescript/commonjs/ui/context/OxyContext.d.ts +33 -5
- package/lib/typescript/commonjs/ui/context/OxyContext.d.ts.map +1 -1
- package/lib/typescript/commonjs/ui/context/hooks/useAuthOperations.d.ts.map +1 -1
- package/lib/typescript/commonjs/ui/hooks/mutations/useAccountMutations.d.ts.map +1 -1
- package/lib/typescript/commonjs/ui/index.d.ts +5 -0
- package/lib/typescript/commonjs/ui/index.d.ts.map +1 -1
- package/lib/typescript/commonjs/ui/navigation/routes.d.ts +1 -1
- package/lib/typescript/commonjs/ui/navigation/routes.d.ts.map +1 -1
- package/lib/typescript/commonjs/ui/screens/AccountMembersScreen.d.ts +10 -0
- package/lib/typescript/commonjs/ui/screens/AccountMembersScreen.d.ts.map +1 -0
- package/lib/typescript/commonjs/ui/screens/AccountSettingsScreen.d.ts +12 -0
- package/lib/typescript/commonjs/ui/screens/AccountSettingsScreen.d.ts.map +1 -0
- package/lib/typescript/commonjs/ui/screens/AccountSwitcherScreen.d.ts +11 -0
- package/lib/typescript/commonjs/ui/screens/AccountSwitcherScreen.d.ts.map +1 -0
- package/lib/typescript/commonjs/ui/screens/CreateAccountScreen.d.ts +11 -0
- package/lib/typescript/commonjs/ui/screens/CreateAccountScreen.d.ts.map +1 -0
- package/lib/typescript/commonjs/ui/screens/OxyAuthScreen.d.ts.map +1 -1
- package/lib/typescript/commonjs/utils/crossApex.d.ts +55 -0
- package/lib/typescript/commonjs/utils/crossApex.d.ts.map +1 -0
- package/lib/typescript/module/index.d.ts +8 -1
- package/lib/typescript/module/index.d.ts.map +1 -1
- package/lib/typescript/module/ui/components/AccountMenuButton.d.ts +13 -4
- package/lib/typescript/module/ui/components/AccountMenuButton.d.ts.map +1 -1
- package/lib/typescript/module/ui/components/AccountSwitcher.d.ts +47 -0
- package/lib/typescript/module/ui/components/AccountSwitcher.d.ts.map +1 -0
- package/lib/typescript/module/ui/components/{ActingAsBanner.d.ts → ActiveAccountBanner.d.ts} +1 -1
- package/lib/typescript/module/ui/components/ActiveAccountBanner.d.ts.map +1 -0
- package/lib/typescript/module/ui/components/SignInModal.d.ts.map +1 -1
- package/lib/typescript/module/ui/context/OxyContext.d.ts +33 -5
- package/lib/typescript/module/ui/context/OxyContext.d.ts.map +1 -1
- package/lib/typescript/module/ui/context/hooks/useAuthOperations.d.ts.map +1 -1
- package/lib/typescript/module/ui/hooks/mutations/useAccountMutations.d.ts.map +1 -1
- package/lib/typescript/module/ui/index.d.ts +5 -0
- package/lib/typescript/module/ui/index.d.ts.map +1 -1
- package/lib/typescript/module/ui/navigation/routes.d.ts +1 -1
- package/lib/typescript/module/ui/navigation/routes.d.ts.map +1 -1
- package/lib/typescript/module/ui/screens/AccountMembersScreen.d.ts +10 -0
- package/lib/typescript/module/ui/screens/AccountMembersScreen.d.ts.map +1 -0
- package/lib/typescript/module/ui/screens/AccountSettingsScreen.d.ts +12 -0
- package/lib/typescript/module/ui/screens/AccountSettingsScreen.d.ts.map +1 -0
- package/lib/typescript/module/ui/screens/AccountSwitcherScreen.d.ts +11 -0
- package/lib/typescript/module/ui/screens/AccountSwitcherScreen.d.ts.map +1 -0
- package/lib/typescript/module/ui/screens/CreateAccountScreen.d.ts +11 -0
- package/lib/typescript/module/ui/screens/CreateAccountScreen.d.ts.map +1 -0
- package/lib/typescript/module/ui/screens/OxyAuthScreen.d.ts.map +1 -1
- package/lib/typescript/module/utils/crossApex.d.ts +55 -0
- package/lib/typescript/module/utils/crossApex.d.ts.map +1 -0
- package/package.json +3 -3
- package/src/index.ts +22 -4
- package/src/ui/components/AccountMenuButton.tsx +25 -10
- package/src/ui/components/AccountSwitcher.tsx +763 -0
- package/src/ui/components/ActiveAccountBanner.tsx +130 -0
- package/src/ui/components/SignInModal.tsx +18 -6
- package/src/ui/context/OxyContext.tsx +121 -35
- package/src/ui/context/hooks/useAuthOperations.ts +8 -0
- package/src/ui/index.ts +5 -0
- package/src/ui/navigation/routes.ts +8 -2
- package/src/ui/screens/AccountMembersScreen.tsx +481 -0
- package/src/ui/screens/AccountSettingsScreen.tsx +261 -0
- package/src/ui/screens/AccountSwitcherScreen.tsx +43 -0
- package/src/ui/screens/{CreateManagedAccountScreen.tsx → CreateAccountScreen.tsx} +140 -22
- package/src/ui/screens/ManageAccountScreen.tsx +19 -19
- package/src/ui/screens/OxyAuthScreen.tsx +20 -6
- package/src/utils/crossApex.ts +75 -0
- package/lib/commonjs/ui/components/ActingAsBanner.js +0 -140
- package/lib/commonjs/ui/components/ActingAsBanner.js.map +0 -1
- package/lib/commonjs/ui/screens/CreateManagedAccountScreen.js.map +0 -1
- package/lib/module/ui/components/ActingAsBanner.js +0 -137
- package/lib/module/ui/components/ActingAsBanner.js.map +0 -1
- package/lib/module/ui/screens/CreateManagedAccountScreen.js.map +0 -1
- package/lib/typescript/commonjs/ui/components/ActingAsBanner.d.ts.map +0 -1
- package/lib/typescript/commonjs/ui/screens/CreateManagedAccountScreen.d.ts +0 -5
- package/lib/typescript/commonjs/ui/screens/CreateManagedAccountScreen.d.ts.map +0 -1
- package/lib/typescript/module/ui/components/ActingAsBanner.d.ts.map +0 -1
- package/lib/typescript/module/ui/screens/CreateManagedAccountScreen.d.ts +0 -5
- package/lib/typescript/module/ui/screens/CreateManagedAccountScreen.d.ts.map +0 -1
- package/src/ui/components/ActingAsBanner.tsx +0 -129
|
@@ -0,0 +1,264 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
|
|
3
|
+
Object.defineProperty(exports, "__esModule", {
|
|
4
|
+
value: true
|
|
5
|
+
});
|
|
6
|
+
exports.default = void 0;
|
|
7
|
+
var _react = require("react");
|
|
8
|
+
var _reactNative = require("react-native");
|
|
9
|
+
var _reactQuery = require("@tanstack/react-query");
|
|
10
|
+
var _bloom = require("@oxyhq/bloom");
|
|
11
|
+
var _theme = require("@oxyhq/bloom/theme");
|
|
12
|
+
var _typography = require("@oxyhq/bloom/typography");
|
|
13
|
+
var _button = require("@oxyhq/bloom/button");
|
|
14
|
+
var _textField = require("@oxyhq/bloom/text-field");
|
|
15
|
+
var _settingsList = require("@oxyhq/bloom/settings-list");
|
|
16
|
+
var _Header = _interopRequireDefault(require("../components/Header.js"));
|
|
17
|
+
var _SettingsIcon = require("../components/SettingsIcon.js");
|
|
18
|
+
var _OxyContext = require("../context/OxyContext.js");
|
|
19
|
+
var _useI18n = require("../hooks/useI18n.js");
|
|
20
|
+
var _jsxRuntime = require("react/jsx-runtime");
|
|
21
|
+
function _interopRequireDefault(e) { return e && e.__esModule ? e : { default: e }; }
|
|
22
|
+
const DISPLAY_NAME_MAX = 50;
|
|
23
|
+
const BIO_MAX = 160;
|
|
24
|
+
const errorMessage = (error, fallback) => error instanceof Error && error.message ? error.message : fallback;
|
|
25
|
+
|
|
26
|
+
/**
|
|
27
|
+
* Per-account settings: edit the account's profile, jump to member management,
|
|
28
|
+
* and archive the account (danger zone). Receives the target `accountId` via
|
|
29
|
+
* navigation props. Self-surface for the caller's own personal account lives in
|
|
30
|
+
* {@link ManageAccountScreen}; this screen manages a non-personal account in the
|
|
31
|
+
* graph.
|
|
32
|
+
*/
|
|
33
|
+
const AccountSettingsScreen = ({
|
|
34
|
+
onClose,
|
|
35
|
+
goBack,
|
|
36
|
+
navigate,
|
|
37
|
+
accountId
|
|
38
|
+
}) => {
|
|
39
|
+
const bloomTheme = (0, _theme.useTheme)();
|
|
40
|
+
const colors = bloomTheme.colors;
|
|
41
|
+
const {
|
|
42
|
+
t
|
|
43
|
+
} = (0, _useI18n.useI18n)();
|
|
44
|
+
const {
|
|
45
|
+
oxyServices,
|
|
46
|
+
canUsePrivateApi,
|
|
47
|
+
actingAs,
|
|
48
|
+
setActingAs
|
|
49
|
+
} = (0, _OxyContext.useOxy)();
|
|
50
|
+
const queryClient = (0, _reactQuery.useQueryClient)();
|
|
51
|
+
const id = typeof accountId === 'string' ? accountId : '';
|
|
52
|
+
const accountQuery = (0, _reactQuery.useQuery)({
|
|
53
|
+
queryKey: ['accounts', 'detail', id],
|
|
54
|
+
queryFn: () => oxyServices.getAccount(id),
|
|
55
|
+
enabled: canUsePrivateApi && id.length > 0
|
|
56
|
+
});
|
|
57
|
+
const node = accountQuery.data ?? null;
|
|
58
|
+
const permissions = node?.callerMembership?.permissions ?? [];
|
|
59
|
+
const isImplicitOwner = node ? node.relationship !== 'member' : false;
|
|
60
|
+
const can = (0, _react.useCallback)(permission => isImplicitOwner || permissions.includes(permission), [isImplicitOwner, permissions]);
|
|
61
|
+
const canUpdate = can('account:update');
|
|
62
|
+
const canViewMembers = can('members:read');
|
|
63
|
+
const canArchive = can('account:delete');
|
|
64
|
+
|
|
65
|
+
// Editable fields, seeded lazily from the loaded account once.
|
|
66
|
+
const [seeded, setSeeded] = (0, _react.useState)(false);
|
|
67
|
+
const [displayName, setDisplayName] = (0, _react.useState)('');
|
|
68
|
+
const [bio, setBio] = (0, _react.useState)('');
|
|
69
|
+
|
|
70
|
+
// Seed the form from the account during render (no useEffect): the first time
|
|
71
|
+
// the query resolves we capture its values into local edit state.
|
|
72
|
+
if (node && !seeded) {
|
|
73
|
+
const first = node.account?.name?.first ?? '';
|
|
74
|
+
const last = node.account?.name?.last ?? '';
|
|
75
|
+
setDisplayName([first, last].filter(Boolean).join(' '));
|
|
76
|
+
setBio(node.account?.bio ?? '');
|
|
77
|
+
setSeeded(true);
|
|
78
|
+
}
|
|
79
|
+
const updateMutation = (0, _reactQuery.useMutation)({
|
|
80
|
+
mutationKey: ['accounts', 'update', id],
|
|
81
|
+
mutationFn: input => oxyServices.updateAccount(id, input),
|
|
82
|
+
onSuccess: () => {
|
|
83
|
+
queryClient.invalidateQueries({
|
|
84
|
+
queryKey: ['accounts', 'detail', id]
|
|
85
|
+
});
|
|
86
|
+
queryClient.invalidateQueries({
|
|
87
|
+
queryKey: ['accounts']
|
|
88
|
+
});
|
|
89
|
+
_bloom.toast.success(t('accounts.settings.toasts.saved') || 'Account updated');
|
|
90
|
+
},
|
|
91
|
+
onError: error => {
|
|
92
|
+
_bloom.toast.error(errorMessage(error, t('accounts.settings.toasts.saveFailed') || 'Failed to update account'));
|
|
93
|
+
}
|
|
94
|
+
});
|
|
95
|
+
const archiveMutation = (0, _reactQuery.useMutation)({
|
|
96
|
+
mutationKey: ['accounts', 'archive', id],
|
|
97
|
+
mutationFn: () => oxyServices.archiveAccount(id),
|
|
98
|
+
onSuccess: () => {
|
|
99
|
+
// If this was the active account, drop back to the personal account.
|
|
100
|
+
if (actingAs === id) {
|
|
101
|
+
setActingAs(null);
|
|
102
|
+
}
|
|
103
|
+
queryClient.invalidateQueries({
|
|
104
|
+
queryKey: ['accounts']
|
|
105
|
+
});
|
|
106
|
+
_bloom.toast.success(t('accounts.settings.toasts.archived') || 'Account archived');
|
|
107
|
+
(onClose ?? goBack)?.();
|
|
108
|
+
},
|
|
109
|
+
onError: error => {
|
|
110
|
+
_bloom.toast.error(errorMessage(error, t('accounts.settings.toasts.archiveFailed') || 'Failed to archive account'));
|
|
111
|
+
}
|
|
112
|
+
});
|
|
113
|
+
const archiveDialog = (0, _bloom.useDialogControl)();
|
|
114
|
+
const handleSave = (0, _react.useCallback)(() => {
|
|
115
|
+
const trimmed = displayName.trim();
|
|
116
|
+
const nameParts = trimmed.split(/\s+/).filter(Boolean);
|
|
117
|
+
const first = nameParts[0] || '';
|
|
118
|
+
const last = nameParts.length > 1 ? nameParts.slice(1).join(' ') : undefined;
|
|
119
|
+
updateMutation.mutate({
|
|
120
|
+
name: {
|
|
121
|
+
first,
|
|
122
|
+
last
|
|
123
|
+
},
|
|
124
|
+
bio: bio.trim() ? bio.trim() : null
|
|
125
|
+
});
|
|
126
|
+
}, [displayName, bio, updateMutation]);
|
|
127
|
+
const title = t('accounts.settings.title') || 'Account settings';
|
|
128
|
+
const accountHandle = (0, _react.useMemo)(() => {
|
|
129
|
+
const username = node?.account?.username;
|
|
130
|
+
return username ? `@${username}` : '';
|
|
131
|
+
}, [node?.account?.username]);
|
|
132
|
+
if (!id) {
|
|
133
|
+
return /*#__PURE__*/(0, _jsxRuntime.jsxs)(_reactNative.View, {
|
|
134
|
+
className: "flex-1 bg-bg",
|
|
135
|
+
children: [/*#__PURE__*/(0, _jsxRuntime.jsx)(_Header.default, {
|
|
136
|
+
title: title,
|
|
137
|
+
onBack: goBack,
|
|
138
|
+
onClose: onClose,
|
|
139
|
+
showBackButton: true,
|
|
140
|
+
showCloseButton: true,
|
|
141
|
+
elevation: "subtle"
|
|
142
|
+
}), /*#__PURE__*/(0, _jsxRuntime.jsx)(_reactNative.View, {
|
|
143
|
+
className: "flex-1 items-center justify-center px-screen-margin",
|
|
144
|
+
children: /*#__PURE__*/(0, _jsxRuntime.jsx)(_typography.Text, {
|
|
145
|
+
className: "text-body font-body text-text-secondary text-center",
|
|
146
|
+
children: t('accounts.settings.errors.missingAccount') || 'No account selected.'
|
|
147
|
+
})
|
|
148
|
+
})]
|
|
149
|
+
});
|
|
150
|
+
}
|
|
151
|
+
return /*#__PURE__*/(0, _jsxRuntime.jsxs)(_reactNative.View, {
|
|
152
|
+
className: "flex-1 bg-bg",
|
|
153
|
+
children: [/*#__PURE__*/(0, _jsxRuntime.jsx)(_Header.default, {
|
|
154
|
+
title: title,
|
|
155
|
+
onBack: goBack,
|
|
156
|
+
onClose: onClose,
|
|
157
|
+
showBackButton: true,
|
|
158
|
+
showCloseButton: true,
|
|
159
|
+
elevation: "subtle"
|
|
160
|
+
}), /*#__PURE__*/(0, _jsxRuntime.jsx)(_reactNative.KeyboardAvoidingView, {
|
|
161
|
+
className: "flex-1",
|
|
162
|
+
behavior: _reactNative.Platform.OS === 'ios' ? 'padding' : undefined,
|
|
163
|
+
keyboardVerticalOffset: _reactNative.Platform.OS === 'ios' ? 88 : 0,
|
|
164
|
+
children: /*#__PURE__*/(0, _jsxRuntime.jsx)(_reactNative.ScrollView, {
|
|
165
|
+
className: "flex-1",
|
|
166
|
+
contentContainerClassName: "px-screen-margin pt-space-24 pb-space-32 gap-space-24",
|
|
167
|
+
showsVerticalScrollIndicator: false,
|
|
168
|
+
keyboardShouldPersistTaps: "handled",
|
|
169
|
+
children: accountQuery.isLoading ? /*#__PURE__*/(0, _jsxRuntime.jsx)(_reactNative.View, {
|
|
170
|
+
className: "items-center py-space-32",
|
|
171
|
+
children: /*#__PURE__*/(0, _jsxRuntime.jsx)(_reactNative.ActivityIndicator, {
|
|
172
|
+
color: colors.primary
|
|
173
|
+
})
|
|
174
|
+
}) : /*#__PURE__*/(0, _jsxRuntime.jsxs)(_jsxRuntime.Fragment, {
|
|
175
|
+
children: [/*#__PURE__*/(0, _jsxRuntime.jsxs)(_reactNative.View, {
|
|
176
|
+
className: "gap-space-8",
|
|
177
|
+
children: [/*#__PURE__*/(0, _jsxRuntime.jsx)(_typography.H1, {
|
|
178
|
+
className: "text-headerBold font-headerBold text-text",
|
|
179
|
+
numberOfLines: 1,
|
|
180
|
+
children: accountHandle || title
|
|
181
|
+
}), /*#__PURE__*/(0, _jsxRuntime.jsx)(_typography.Text, {
|
|
182
|
+
className: "text-body font-body text-text-secondary",
|
|
183
|
+
children: t('accounts.settings.subtitle') || 'Manage this account’s profile, members, and access.'
|
|
184
|
+
})]
|
|
185
|
+
}), canUpdate ? /*#__PURE__*/(0, _jsxRuntime.jsxs)(_reactNative.View, {
|
|
186
|
+
className: "gap-space-16 p-space-16 rounded-radius-20 bg-fill",
|
|
187
|
+
children: [/*#__PURE__*/(0, _jsxRuntime.jsx)(_textField.TextField, {
|
|
188
|
+
children: /*#__PURE__*/(0, _jsxRuntime.jsx)(_textField.TextFieldInput, {
|
|
189
|
+
floatingLabel: true,
|
|
190
|
+
label: t('accounts.settings.displayName.label') || 'Display name',
|
|
191
|
+
value: displayName,
|
|
192
|
+
onChangeText: setDisplayName,
|
|
193
|
+
maxLength: DISPLAY_NAME_MAX
|
|
194
|
+
})
|
|
195
|
+
}), /*#__PURE__*/(0, _jsxRuntime.jsxs)(_reactNative.View, {
|
|
196
|
+
className: "gap-space-4",
|
|
197
|
+
children: [/*#__PURE__*/(0, _jsxRuntime.jsx)(_textField.TextField, {
|
|
198
|
+
children: /*#__PURE__*/(0, _jsxRuntime.jsx)(_textField.TextFieldInput, {
|
|
199
|
+
floatingLabel: true,
|
|
200
|
+
label: t('accounts.settings.bio.label') || 'Bio (optional)',
|
|
201
|
+
value: bio,
|
|
202
|
+
onChangeText: setBio,
|
|
203
|
+
maxLength: BIO_MAX,
|
|
204
|
+
multiline: true,
|
|
205
|
+
numberOfLines: 3,
|
|
206
|
+
textAlignVertical: "top"
|
|
207
|
+
})
|
|
208
|
+
}), /*#__PURE__*/(0, _jsxRuntime.jsxs)(_typography.Text, {
|
|
209
|
+
className: "text-caption font-caption text-text-tertiary px-space-4 text-right",
|
|
210
|
+
children: [bio.length, "/", BIO_MAX]
|
|
211
|
+
})]
|
|
212
|
+
}), /*#__PURE__*/(0, _jsxRuntime.jsx)(_button.Button, {
|
|
213
|
+
variant: "primary",
|
|
214
|
+
onPress: handleSave,
|
|
215
|
+
disabled: updateMutation.isPending || !displayName.trim(),
|
|
216
|
+
loading: updateMutation.isPending,
|
|
217
|
+
accessibilityLabel: t('accounts.settings.save') || 'Save changes',
|
|
218
|
+
className: "w-full",
|
|
219
|
+
children: t('accounts.settings.save') || 'Save changes'
|
|
220
|
+
})]
|
|
221
|
+
}) : null, canViewMembers ? /*#__PURE__*/(0, _jsxRuntime.jsx)(_settingsList.SettingsListGroup, {
|
|
222
|
+
title: t('accounts.settings.sections.access') || 'Access',
|
|
223
|
+
children: /*#__PURE__*/(0, _jsxRuntime.jsx)(_settingsList.SettingsListItem, {
|
|
224
|
+
icon: /*#__PURE__*/(0, _jsxRuntime.jsx)(_SettingsIcon.SettingsIcon, {
|
|
225
|
+
name: "account-multiple",
|
|
226
|
+
color: colors.info
|
|
227
|
+
}),
|
|
228
|
+
title: t('accounts.members.title') || 'Members',
|
|
229
|
+
description: t('accounts.settings.members.subtitle') || 'Invite people and manage roles',
|
|
230
|
+
onPress: () => navigate?.('AccountMembers', {
|
|
231
|
+
accountId: id
|
|
232
|
+
})
|
|
233
|
+
})
|
|
234
|
+
}) : null, canArchive ? /*#__PURE__*/(0, _jsxRuntime.jsx)(_settingsList.SettingsListGroup, {
|
|
235
|
+
title: t('accounts.settings.sections.dangerZone') || 'Danger zone',
|
|
236
|
+
children: /*#__PURE__*/(0, _jsxRuntime.jsx)(_settingsList.SettingsListItem, {
|
|
237
|
+
icon: /*#__PURE__*/(0, _jsxRuntime.jsx)(_SettingsIcon.SettingsIcon, {
|
|
238
|
+
name: "archive-arrow-down",
|
|
239
|
+
color: colors.error
|
|
240
|
+
}),
|
|
241
|
+
title: t('accounts.settings.archive.title') || 'Archive account',
|
|
242
|
+
description: t('accounts.settings.archive.subtitle') || 'Deactivate this account',
|
|
243
|
+
onPress: () => archiveDialog.open()
|
|
244
|
+
})
|
|
245
|
+
}) : null]
|
|
246
|
+
})
|
|
247
|
+
})
|
|
248
|
+
}), /*#__PURE__*/(0, _jsxRuntime.jsx)(_bloom.Dialog, {
|
|
249
|
+
control: archiveDialog,
|
|
250
|
+
title: t('accounts.settings.archive.confirmTitle') || 'Archive account',
|
|
251
|
+
description: t('accounts.settings.archive.confirmDescription') || 'Archive this account? It will be deactivated and its members will lose access.',
|
|
252
|
+
actions: [{
|
|
253
|
+
label: t('accounts.settings.archive.title') || 'Archive account',
|
|
254
|
+
color: 'destructive',
|
|
255
|
+
onPress: () => archiveMutation.mutate()
|
|
256
|
+
}, {
|
|
257
|
+
label: t('common.cancel') || 'Cancel',
|
|
258
|
+
color: 'cancel'
|
|
259
|
+
}]
|
|
260
|
+
})]
|
|
261
|
+
});
|
|
262
|
+
};
|
|
263
|
+
var _default = exports.default = AccountSettingsScreen;
|
|
264
|
+
//# sourceMappingURL=AccountSettingsScreen.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"names":["_react","require","_reactNative","_reactQuery","_bloom","_theme","_typography","_button","_textField","_settingsList","_Header","_interopRequireDefault","_SettingsIcon","_OxyContext","_useI18n","_jsxRuntime","e","__esModule","default","DISPLAY_NAME_MAX","BIO_MAX","errorMessage","error","fallback","Error","message","AccountSettingsScreen","onClose","goBack","navigate","accountId","bloomTheme","useTheme","colors","t","useI18n","oxyServices","canUsePrivateApi","actingAs","setActingAs","useOxy","queryClient","useQueryClient","id","accountQuery","useQuery","queryKey","queryFn","getAccount","enabled","length","node","data","permissions","callerMembership","isImplicitOwner","relationship","can","useCallback","permission","includes","canUpdate","canViewMembers","canArchive","seeded","setSeeded","useState","displayName","setDisplayName","bio","setBio","first","account","name","last","filter","Boolean","join","updateMutation","useMutation","mutationKey","mutationFn","input","updateAccount","onSuccess","invalidateQueries","toast","success","onError","archiveMutation","archiveAccount","archiveDialog","useDialogControl","handleSave","trimmed","trim","nameParts","split","slice","undefined","mutate","title","accountHandle","useMemo","username","jsxs","View","className","children","jsx","onBack","showBackButton","showCloseButton","elevation","Text","KeyboardAvoidingView","behavior","Platform","OS","keyboardVerticalOffset","ScrollView","contentContainerClassName","showsVerticalScrollIndicator","keyboardShouldPersistTaps","isLoading","ActivityIndicator","color","primary","Fragment","H1","numberOfLines","TextField","TextFieldInput","floatingLabel","label","value","onChangeText","maxLength","multiline","textAlignVertical","Button","variant","onPress","disabled","isPending","loading","accessibilityLabel","SettingsListGroup","SettingsListItem","icon","SettingsIcon","info","description","open","Dialog","control","actions","_default","exports"],"sourceRoot":"../../../../src","sources":["ui/screens/AccountSettingsScreen.tsx"],"mappings":"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","ignoreList":[]}
|
|
@@ -0,0 +1,51 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
|
|
3
|
+
Object.defineProperty(exports, "__esModule", {
|
|
4
|
+
value: true
|
|
5
|
+
});
|
|
6
|
+
exports.default = void 0;
|
|
7
|
+
var _react = require("react");
|
|
8
|
+
var _reactNative = require("react-native");
|
|
9
|
+
var _Header = _interopRequireDefault(require("../components/Header.js"));
|
|
10
|
+
var _AccountSwitcher = require("../components/AccountSwitcher.js");
|
|
11
|
+
var _useI18n = require("../hooks/useI18n.js");
|
|
12
|
+
var _jsxRuntime = require("react/jsx-runtime");
|
|
13
|
+
function _interopRequireDefault(e) { return e && e.__esModule ? e : { default: e }; }
|
|
14
|
+
/**
|
|
15
|
+
* Bottom-sheet route wrapper around {@link AccountSwitcherView}. Used when the
|
|
16
|
+
* switcher is opened as a sheet (e.g. from the `ActiveAccountBanner` cue or the
|
|
17
|
+
* "Your accounts" entry in ManageAccount) rather than as the header-chip
|
|
18
|
+
* popover (which uses the `AccountSwitcher` modal directly).
|
|
19
|
+
*/const AccountSwitcherScreen = ({
|
|
20
|
+
onClose,
|
|
21
|
+
goBack,
|
|
22
|
+
navigate
|
|
23
|
+
}) => {
|
|
24
|
+
const {
|
|
25
|
+
t
|
|
26
|
+
} = (0, _useI18n.useI18n)();
|
|
27
|
+
const close = (0, _react.useCallback)(() => {
|
|
28
|
+
(onClose ?? goBack)?.();
|
|
29
|
+
}, [onClose, goBack]);
|
|
30
|
+
return /*#__PURE__*/(0, _jsxRuntime.jsxs)(_reactNative.View, {
|
|
31
|
+
className: "flex-1 bg-bg",
|
|
32
|
+
children: [/*#__PURE__*/(0, _jsxRuntime.jsx)(_Header.default, {
|
|
33
|
+
title: t('accountSwitcher.title') || 'Switch account',
|
|
34
|
+
onBack: goBack,
|
|
35
|
+
onClose: onClose,
|
|
36
|
+
showBackButton: !!goBack,
|
|
37
|
+
showCloseButton: !!onClose,
|
|
38
|
+
elevation: "subtle"
|
|
39
|
+
}), /*#__PURE__*/(0, _jsxRuntime.jsx)(_AccountSwitcher.AccountSwitcherView, {
|
|
40
|
+
onClose: close,
|
|
41
|
+
onAddAccount: () => navigate?.('OxyAuth'),
|
|
42
|
+
onNavigateManage: () => navigate?.('ManageAccount'),
|
|
43
|
+
onCreateAccount: () => navigate?.('CreateAccount'),
|
|
44
|
+
onOpenAccountSettings: accountId => navigate?.('AccountSettings', {
|
|
45
|
+
accountId
|
|
46
|
+
})
|
|
47
|
+
})]
|
|
48
|
+
});
|
|
49
|
+
};
|
|
50
|
+
var _default = exports.default = AccountSwitcherScreen;
|
|
51
|
+
//# sourceMappingURL=AccountSwitcherScreen.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"names":["_react","require","_reactNative","_Header","_interopRequireDefault","_AccountSwitcher","_useI18n","_jsxRuntime","e","__esModule","default","AccountSwitcherScreen","onClose","goBack","navigate","t","useI18n","close","useCallback","jsxs","View","className","children","jsx","title","onBack","showBackButton","showCloseButton","elevation","AccountSwitcherView","onAddAccount","onNavigateManage","onCreateAccount","onOpenAccountSettings","accountId","_default","exports"],"sourceRoot":"../../../../src","sources":["ui/screens/AccountSwitcherScreen.tsx"],"mappings":";;;;;;AACA,IAAAA,MAAA,GAAAC,OAAA;AACA,IAAAC,YAAA,GAAAD,OAAA;AAEA,IAAAE,OAAA,GAAAC,sBAAA,CAAAH,OAAA;AACA,IAAAI,gBAAA,GAAAJ,OAAA;AACA,IAAAK,QAAA,GAAAL,OAAA;AAA2C,IAAAM,WAAA,GAAAN,OAAA;AAAA,SAAAG,uBAAAI,CAAA,WAAAA,CAAA,IAAAA,CAAA,CAAAC,UAAA,GAAAD,CAAA,KAAAE,OAAA,EAAAF,CAAA;AAE3C;AACA;AACA;AACA;AACA;AACA,GACA,MAAMG,qBAAgD,GAAGA,CAAC;EAAEC,OAAO;EAAEC,MAAM;EAAEC;AAAS,CAAC,KAAK;EAC1F,MAAM;IAAEC;EAAE,CAAC,GAAG,IAAAC,gBAAO,EAAC,CAAC;EAEvB,MAAMC,KAAK,GAAG,IAAAC,kBAAW,EAAC,MAAM;IAC9B,CAACN,OAAO,IAAIC,MAAM,IAAI,CAAC;EACzB,CAAC,EAAE,CAACD,OAAO,EAAEC,MAAM,CAAC,CAAC;EAErB,oBACE,IAAAN,WAAA,CAAAY,IAAA,EAACjB,YAAA,CAAAkB,IAAI;IAACC,SAAS,EAAC,cAAc;IAAAC,QAAA,gBAC5B,IAAAf,WAAA,CAAAgB,GAAA,EAACpB,OAAA,CAAAO,OAAM;MACLc,KAAK,EAAET,CAAC,CAAC,uBAAuB,CAAC,IAAI,gBAAiB;MACtDU,MAAM,EAAEZ,MAAO;MACfD,OAAO,EAAEA,OAAQ;MACjBc,cAAc,EAAE,CAAC,CAACb,MAAO;MACzBc,eAAe,EAAE,CAAC,CAACf,OAAQ;MAC3BgB,SAAS,EAAC;IAAQ,CACnB,CAAC,eACF,IAAArB,WAAA,CAAAgB,GAAA,EAAClB,gBAAA,CAAAwB,mBAAmB;MAClBjB,OAAO,EAAEK,KAAM;MACfa,YAAY,EAAEA,CAAA,KAAMhB,QAAQ,GAAG,SAAS,CAAE;MAC1CiB,gBAAgB,EAAEA,CAAA,KAAMjB,QAAQ,GAAG,eAAe,CAAE;MACpDkB,eAAe,EAAEA,CAAA,KAAMlB,QAAQ,GAAG,eAAe,CAAE;MACnDmB,qBAAqB,EAAGC,SAAS,IAAKpB,QAAQ,GAAG,iBAAiB,EAAE;QAAEoB;MAAU,CAAC;IAAE,CACpF,CAAC;EAAA,CACE,CAAC;AAEX,CAAC;AAAC,IAAAC,QAAA,GAAAC,OAAA,CAAA1B,OAAA,GAEaC,qBAAqB","ignoreList":[]}
|
|
@@ -17,24 +17,68 @@ var _OxyContext = require("../context/OxyContext.js");
|
|
|
17
17
|
var _bloom = require("@oxyhq/bloom");
|
|
18
18
|
var _jsxRuntime = require("react/jsx-runtime");
|
|
19
19
|
function _interopRequireDefault(e) { return e && e.__esModule ? e : { default: e }; }
|
|
20
|
+
/** Kind of account this screen can create. `personal` is a signup-minted root and is never created here. */
|
|
21
|
+
|
|
20
22
|
const USERNAME_REGEX = /^[a-zA-Z0-9_-]{3,30}$/;
|
|
21
23
|
const DEBOUNCE_MS = 400;
|
|
22
24
|
const USERNAME_MAX = 30;
|
|
23
25
|
const DISPLAY_NAME_MAX = 50;
|
|
24
26
|
const BIO_MAX = 160;
|
|
25
|
-
|
|
27
|
+
// The creatable account kinds, matching the API `createAccountSchema` enum.
|
|
28
|
+
// Order places the most common choice (a project / persona) first.
|
|
29
|
+
const KIND_OPTIONS = [{
|
|
30
|
+
value: 'project',
|
|
31
|
+
icon: 'cube-outline'
|
|
32
|
+
}, {
|
|
33
|
+
value: 'organization',
|
|
34
|
+
icon: 'business-outline'
|
|
35
|
+
}, {
|
|
36
|
+
value: 'bot',
|
|
37
|
+
icon: 'hardware-chip-outline'
|
|
38
|
+
}];
|
|
39
|
+
const kindLabel = (t, kind) => {
|
|
40
|
+
switch (kind) {
|
|
41
|
+
case 'organization':
|
|
42
|
+
return t('accounts.kinds.organization.label') || 'Organization';
|
|
43
|
+
case 'bot':
|
|
44
|
+
return t('accounts.kinds.bot.label') || 'Bot';
|
|
45
|
+
default:
|
|
46
|
+
return t('accounts.kinds.project.label') || 'Project';
|
|
47
|
+
}
|
|
48
|
+
};
|
|
49
|
+
const kindDescription = (t, kind) => {
|
|
50
|
+
switch (kind) {
|
|
51
|
+
case 'organization':
|
|
52
|
+
return t('accounts.kinds.organization.description') || 'A shared team account with members';
|
|
53
|
+
case 'bot':
|
|
54
|
+
return t('accounts.kinds.bot.description') || 'A programmatic account with service credentials';
|
|
55
|
+
default:
|
|
56
|
+
return t('accounts.kinds.project.description') || 'A separate account you control';
|
|
57
|
+
}
|
|
58
|
+
};
|
|
59
|
+
|
|
60
|
+
/**
|
|
61
|
+
* Create a new account in the unified account graph (an organization, project,
|
|
62
|
+
* or bot). The caller becomes its owner. Optionally nested under a parent
|
|
63
|
+
* account via the `parentAccountId` prop. NOT the cryptographic Commons/DID
|
|
64
|
+
* "identity" — that is a separate concept.
|
|
65
|
+
*/
|
|
66
|
+
const CreateAccountScreen = ({
|
|
26
67
|
onClose,
|
|
27
|
-
goBack
|
|
68
|
+
goBack,
|
|
69
|
+
parentAccountId
|
|
28
70
|
}) => {
|
|
29
71
|
const bloomTheme = (0, _theme.useTheme)();
|
|
30
72
|
const {
|
|
31
73
|
oxyServices,
|
|
32
|
-
|
|
74
|
+
createAccount,
|
|
33
75
|
setActingAs
|
|
34
76
|
} = (0, _OxyContext.useOxy)();
|
|
35
77
|
const {
|
|
36
78
|
t
|
|
37
79
|
} = (0, _useI18n.useI18n)();
|
|
80
|
+
const parentId = typeof parentAccountId === 'string' ? parentAccountId : undefined;
|
|
81
|
+
const [kind, setKind] = (0, _react.useState)('project');
|
|
38
82
|
const [username, setUsername] = (0, _react.useState)('');
|
|
39
83
|
const [displayName, setDisplayName] = (0, _react.useState)('');
|
|
40
84
|
const [bio, setBio] = (0, _react.useState)('');
|
|
@@ -50,12 +94,12 @@ const CreateManagedAccountScreen = ({
|
|
|
50
94
|
}
|
|
51
95
|
if (!value || value.length < 3) {
|
|
52
96
|
setUsernameStatus(value.length > 0 ? 'invalid' : 'idle');
|
|
53
|
-
setUsernameMessage(value.length > 0 ? 'Username must be at least 3 characters' : '');
|
|
97
|
+
setUsernameMessage(value.length > 0 ? t('accounts.create.username.tooShort') || 'Username must be at least 3 characters' : '');
|
|
54
98
|
return;
|
|
55
99
|
}
|
|
56
100
|
if (!USERNAME_REGEX.test(value)) {
|
|
57
101
|
setUsernameStatus('invalid');
|
|
58
|
-
setUsernameMessage('Only letters, numbers, hyphens, and underscores');
|
|
102
|
+
setUsernameMessage(t('accounts.create.username.invalidChars') || 'Only letters, numbers, hyphens, and underscores');
|
|
59
103
|
return;
|
|
60
104
|
}
|
|
61
105
|
setUsernameStatus('checking');
|
|
@@ -64,13 +108,13 @@ const CreateManagedAccountScreen = ({
|
|
|
64
108
|
try {
|
|
65
109
|
const result = await oxyServices.checkUsernameAvailability(value);
|
|
66
110
|
setUsernameStatus(result.available ? 'available' : 'taken');
|
|
67
|
-
setUsernameMessage(result.message || (result.available ? 'Username is available' : 'Username is taken'));
|
|
111
|
+
setUsernameMessage(result.message || (result.available ? t('accounts.create.username.available') || 'Username is available' : t('accounts.create.username.taken') || 'Username is taken'));
|
|
68
112
|
} catch {
|
|
69
113
|
setUsernameStatus('idle');
|
|
70
|
-
setUsernameMessage('Could not check availability');
|
|
114
|
+
setUsernameMessage(t('accounts.create.username.checkFailed') || 'Could not check availability');
|
|
71
115
|
}
|
|
72
116
|
}, DEBOUNCE_MS);
|
|
73
|
-
}, [oxyServices]);
|
|
117
|
+
}, [oxyServices, t]);
|
|
74
118
|
const handleUsernameChange = (0, _react.useCallback)(value => {
|
|
75
119
|
const cleaned = value.toLowerCase().replace(/[^a-z0-9_-]/g, '');
|
|
76
120
|
setUsername(cleaned);
|
|
@@ -94,36 +138,42 @@ const CreateManagedAccountScreen = ({
|
|
|
94
138
|
const nameParts = displayName.trim().split(/\s+/);
|
|
95
139
|
const firstName = nameParts[0] || '';
|
|
96
140
|
const lastName = nameParts.length > 1 ? nameParts.slice(1).join(' ') : undefined;
|
|
97
|
-
const
|
|
141
|
+
const input = {
|
|
142
|
+
kind,
|
|
98
143
|
username,
|
|
99
144
|
name: {
|
|
100
145
|
first: firstName,
|
|
101
146
|
last: lastName
|
|
102
147
|
},
|
|
103
|
-
bio: bio.trim() || undefined
|
|
104
|
-
|
|
105
|
-
|
|
148
|
+
bio: bio.trim() || undefined,
|
|
149
|
+
...(parentId ? {
|
|
150
|
+
parentAccountId: parentId
|
|
151
|
+
} : null)
|
|
152
|
+
};
|
|
153
|
+
const account = await createAccount(input);
|
|
154
|
+
_bloom.toast.success(t('accounts.create.toasts.success') || 'Account created');
|
|
106
155
|
|
|
107
|
-
// Switch to the new
|
|
156
|
+
// Switch to the new account
|
|
108
157
|
if (account.accountId) {
|
|
109
158
|
setActingAs(account.accountId);
|
|
110
159
|
}
|
|
111
160
|
onClose?.();
|
|
112
161
|
} catch (error) {
|
|
113
|
-
const message = error instanceof Error ? error.message : 'Failed to create
|
|
162
|
+
const message = error instanceof Error ? error.message : t('accounts.create.toasts.failed') || 'Failed to create account';
|
|
114
163
|
_bloom.toast.error(message);
|
|
115
164
|
} finally {
|
|
116
165
|
setIsCreating(false);
|
|
117
166
|
}
|
|
118
|
-
}, [canCreate, username, displayName, bio,
|
|
167
|
+
}, [canCreate, kind, username, displayName, bio, parentId, createAccount, setActingAs, onClose, t]);
|
|
119
168
|
|
|
120
169
|
// Status icon + color shown alongside the username field message
|
|
121
170
|
const usernameIsInvalid = usernameStatus === 'taken' || usernameStatus === 'invalid';
|
|
122
171
|
const statusColor = usernameStatus === 'available' ? bloomTheme.colors.success : usernameIsInvalid ? bloomTheme.colors.negative : bloomTheme.colors.textSecondary;
|
|
172
|
+
const title = t('accounts.create.title') || 'Create account';
|
|
123
173
|
return /*#__PURE__*/(0, _jsxRuntime.jsxs)(_reactNative.View, {
|
|
124
174
|
className: "flex-1 bg-bg",
|
|
125
175
|
children: [/*#__PURE__*/(0, _jsxRuntime.jsx)(_Header.default, {
|
|
126
|
-
title:
|
|
176
|
+
title: title,
|
|
127
177
|
onBack: goBack,
|
|
128
178
|
onClose: onClose,
|
|
129
179
|
showBackButton: true,
|
|
@@ -142,11 +192,52 @@ const CreateManagedAccountScreen = ({
|
|
|
142
192
|
className: "gap-space-8",
|
|
143
193
|
children: [/*#__PURE__*/(0, _jsxRuntime.jsx)(_typography.H1, {
|
|
144
194
|
className: "text-headerBold font-headerBold text-text",
|
|
145
|
-
children:
|
|
195
|
+
children: title
|
|
146
196
|
}), /*#__PURE__*/(0, _jsxRuntime.jsx)(_typography.Text, {
|
|
147
197
|
className: "text-body font-body text-text-secondary",
|
|
148
|
-
children:
|
|
198
|
+
children: t('accounts.create.subtitle') || 'Create an account you control. It will have its own profile, members, and apps.'
|
|
149
199
|
})]
|
|
200
|
+
}), /*#__PURE__*/(0, _jsxRuntime.jsx)(_reactNative.View, {
|
|
201
|
+
className: "gap-space-8",
|
|
202
|
+
children: KIND_OPTIONS.map(option => {
|
|
203
|
+
const selected = option.value === kind;
|
|
204
|
+
return /*#__PURE__*/(0, _jsxRuntime.jsxs)(_reactNative.TouchableOpacity, {
|
|
205
|
+
accessibilityRole: "radio",
|
|
206
|
+
accessibilityState: {
|
|
207
|
+
selected
|
|
208
|
+
},
|
|
209
|
+
accessibilityLabel: kindLabel(t, option.value),
|
|
210
|
+
onPress: () => setKind(option.value),
|
|
211
|
+
activeOpacity: 0.7,
|
|
212
|
+
className: "flex-row items-center gap-space-12 p-space-16 rounded-radius-20",
|
|
213
|
+
style: {
|
|
214
|
+
backgroundColor: selected ? bloomTheme.colors.primarySubtle : bloomTheme.colors.card,
|
|
215
|
+
borderWidth: 1,
|
|
216
|
+
borderColor: selected ? bloomTheme.colors.primary : bloomTheme.colors.border
|
|
217
|
+
},
|
|
218
|
+
children: [/*#__PURE__*/(0, _jsxRuntime.jsx)(_vectorIcons.Ionicons, {
|
|
219
|
+
name: option.icon,
|
|
220
|
+
size: 22,
|
|
221
|
+
color: selected ? bloomTheme.colors.primary : bloomTheme.colors.icon
|
|
222
|
+
}), /*#__PURE__*/(0, _jsxRuntime.jsxs)(_reactNative.View, {
|
|
223
|
+
className: "flex-1",
|
|
224
|
+
children: [/*#__PURE__*/(0, _jsxRuntime.jsx)(_typography.Text, {
|
|
225
|
+
className: "text-body font-bodyBold",
|
|
226
|
+
style: {
|
|
227
|
+
color: selected ? bloomTheme.colors.primary : bloomTheme.colors.text
|
|
228
|
+
},
|
|
229
|
+
children: kindLabel(t, option.value)
|
|
230
|
+
}), /*#__PURE__*/(0, _jsxRuntime.jsx)(_typography.Text, {
|
|
231
|
+
className: "text-caption font-caption text-text-secondary",
|
|
232
|
+
children: kindDescription(t, option.value)
|
|
233
|
+
})]
|
|
234
|
+
}), selected ? /*#__PURE__*/(0, _jsxRuntime.jsx)(_vectorIcons.Ionicons, {
|
|
235
|
+
name: "checkmark-circle",
|
|
236
|
+
size: 20,
|
|
237
|
+
color: bloomTheme.colors.primary
|
|
238
|
+
}) : null]
|
|
239
|
+
}, option.value);
|
|
240
|
+
})
|
|
150
241
|
}), /*#__PURE__*/(0, _jsxRuntime.jsxs)(_reactNative.View, {
|
|
151
242
|
className: "gap-space-16 p-space-16 rounded-radius-20 bg-fill",
|
|
152
243
|
children: [/*#__PURE__*/(0, _jsxRuntime.jsxs)(_reactNative.View, {
|
|
@@ -155,7 +246,7 @@ const CreateManagedAccountScreen = ({
|
|
|
155
246
|
isInvalid: usernameIsInvalid,
|
|
156
247
|
children: /*#__PURE__*/(0, _jsxRuntime.jsx)(_textField.TextFieldInput, {
|
|
157
248
|
floatingLabel: true,
|
|
158
|
-
label:
|
|
249
|
+
label: t('accounts.create.username.label') || 'Username',
|
|
159
250
|
value: username,
|
|
160
251
|
onChangeText: handleUsernameChange,
|
|
161
252
|
isInvalid: usernameIsInvalid,
|
|
@@ -188,7 +279,7 @@ const CreateManagedAccountScreen = ({
|
|
|
188
279
|
}), /*#__PURE__*/(0, _jsxRuntime.jsx)(_textField.TextField, {
|
|
189
280
|
children: /*#__PURE__*/(0, _jsxRuntime.jsx)(_textField.TextFieldInput, {
|
|
190
281
|
floatingLabel: true,
|
|
191
|
-
label:
|
|
282
|
+
label: t('accounts.create.displayName.label') || 'Display name',
|
|
192
283
|
value: displayName,
|
|
193
284
|
onChangeText: setDisplayName,
|
|
194
285
|
maxLength: DISPLAY_NAME_MAX
|
|
@@ -198,7 +289,7 @@ const CreateManagedAccountScreen = ({
|
|
|
198
289
|
children: [/*#__PURE__*/(0, _jsxRuntime.jsx)(_textField.TextField, {
|
|
199
290
|
children: /*#__PURE__*/(0, _jsxRuntime.jsx)(_textField.TextFieldInput, {
|
|
200
291
|
floatingLabel: true,
|
|
201
|
-
label:
|
|
292
|
+
label: t('accounts.create.bio.label') || 'Bio (optional)',
|
|
202
293
|
value: bio,
|
|
203
294
|
onChangeText: setBio,
|
|
204
295
|
maxLength: BIO_MAX,
|
|
@@ -216,13 +307,13 @@ const CreateManagedAccountScreen = ({
|
|
|
216
307
|
onPress: handleCreate,
|
|
217
308
|
disabled: !canCreate,
|
|
218
309
|
loading: isCreating,
|
|
219
|
-
accessibilityLabel:
|
|
310
|
+
accessibilityLabel: title,
|
|
220
311
|
className: "w-full",
|
|
221
|
-
children:
|
|
312
|
+
children: title
|
|
222
313
|
})]
|
|
223
314
|
})
|
|
224
315
|
})]
|
|
225
316
|
});
|
|
226
317
|
};
|
|
227
|
-
var _default = exports.default =
|
|
228
|
-
//# sourceMappingURL=
|
|
318
|
+
var _default = exports.default = CreateAccountScreen;
|
|
319
|
+
//# sourceMappingURL=CreateAccountScreen.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"names":["_react","require","_reactNative","_vectorIcons","_Header","_interopRequireDefault","_useI18n","_theme","_typography","_button","_textField","_OxyContext","_bloom","_jsxRuntime","e","__esModule","default","USERNAME_REGEX","DEBOUNCE_MS","USERNAME_MAX","DISPLAY_NAME_MAX","BIO_MAX","KIND_OPTIONS","value","icon","kindLabel","t","kind","kindDescription","CreateAccountScreen","onClose","goBack","parentAccountId","bloomTheme","useTheme","oxyServices","createAccount","setActingAs","useOxy","useI18n","parentId","undefined","setKind","useState","username","setUsername","displayName","setDisplayName","bio","setBio","usernameStatus","setUsernameStatus","usernameMessage","setUsernameMessage","isCreating","setIsCreating","debounceTimerRef","useRef","checkUsername","useCallback","current","clearTimeout","length","test","setTimeout","result","checkUsernameAvailability","available","message","handleUsernameChange","cleaned","toLowerCase","replace","useEffect","canCreate","trim","handleCreate","nameParts","split","firstName","lastName","slice","join","input","name","first","last","account","toast","success","accountId","error","Error","usernameIsInvalid","statusColor","colors","negative","textSecondary","title","jsxs","View","className","children","jsx","onBack","showBackButton","showCloseButton","elevation","KeyboardAvoidingView","behavior","Platform","OS","keyboardVerticalOffset","ScrollView","contentContainerClassName","showsVerticalScrollIndicator","keyboardShouldPersistTaps","H1","Text","map","option","selected","TouchableOpacity","accessibilityRole","accessibilityState","accessibilityLabel","onPress","activeOpacity","style","backgroundColor","primarySubtle","card","borderWidth","borderColor","primary","border","Ionicons","size","color","text","TextField","isInvalid","TextFieldInput","floatingLabel","label","onChangeText","autoCapitalize","autoCorrect","autoComplete","maxLength","ActivityIndicator","multiline","numberOfLines","textAlignVertical","Button","variant","disabled","loading","_default","exports"],"sourceRoot":"../../../../src","sources":["ui/screens/CreateAccountScreen.tsx"],"mappings":"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","ignoreList":[]}
|