@oxyhq/services 12.2.0 → 13.0.1
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 +56 -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/context/OxyContext.js +72 -28
- package/lib/commonjs/ui/context/OxyContext.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/module/index.js +16 -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/context/OxyContext.js +72 -28
- package/lib/module/ui/context/OxyContext.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/typescript/commonjs/index.d.ts +7 -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/context/OxyContext.d.ts +33 -5
- package/lib/typescript/commonjs/ui/context/OxyContext.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/module/index.d.ts +7 -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/context/OxyContext.d.ts +33 -5
- package/lib/typescript/module/ui/context/OxyContext.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/package.json +3 -3
- package/src/index.ts +18 -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/context/OxyContext.tsx +122 -37
- 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/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
package/lib/module/ui/index.js
CHANGED
|
@@ -28,6 +28,7 @@ export { FontLoader, setupFonts } from "./components/FontLoader.js";
|
|
|
28
28
|
export { default as OxyIcon } from "./components/icon/OxyIcon.js";
|
|
29
29
|
export { default as AccountMenu } from "./components/AccountMenu.js";
|
|
30
30
|
export { default as AccountMenuButton } from "./components/AccountMenuButton.js";
|
|
31
|
+
export { default as AccountSwitcher, AccountSwitcherView } from "./components/AccountSwitcher.js";
|
|
31
32
|
|
|
32
33
|
// Context + hooks
|
|
33
34
|
export { useOxy } from "./context/OxyContext.js";
|
|
@@ -37,6 +38,10 @@ export { useStorage } from "./hooks/useStorage.js";
|
|
|
37
38
|
// Screens
|
|
38
39
|
export { default as ProfileScreen } from "./screens/ProfileScreen.js";
|
|
39
40
|
export { default as ManageAccountScreen } from "./screens/ManageAccountScreen.js";
|
|
41
|
+
export { default as AccountSwitcherScreen } from "./screens/AccountSwitcherScreen.js";
|
|
42
|
+
export { default as CreateAccountScreen } from "./screens/CreateAccountScreen.js";
|
|
43
|
+
export { default as AccountMembersScreen } from "./screens/AccountMembersScreen.js";
|
|
44
|
+
export { default as AccountSettingsScreen } from "./screens/AccountSettingsScreen.js";
|
|
40
45
|
|
|
41
46
|
// Stores
|
|
42
47
|
export { useAuthStore } from "./stores/authStore.js";
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["default","OxyProvider","OxySignInButton","OxyAuthPrompt","OxyLogo","Avatar","FollowButton","OxyPayButton","FontLoader","setupFonts","OxyIcon","AccountMenu","AccountMenuButton","useOxy","useAuth","useFollow","useStorage","ProfileScreen","ManageAccountScreen","useAuthStore","useAccountStore","handleAuthError","isInvalidSessionError","isTimeoutOrNetworkError","extractErrorMessage"],"sourceRoot":"../../../src","sources":["ui/index.ts"],"mappings":";;AAAA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;AACA,SAASA,OAAO,IAAIC,WAAW,QAAQ,6BAA0B;AACjE,SAASD,OAAO,IAAIE,eAAe,QAAQ,iCAA8B;AACzE,SAASF,OAAO,IAAIG,aAAa,QAAQ,+BAA4B;AAErE,SAASH,OAAO,IAAII,OAAO,QAAQ,yBAAsB;AACzD,SAASJ,OAAO,IAAIK,MAAM,QAAQ,wBAAqB;AACvD,SAASL,OAAO,IAAIM,YAAY,QAAQ,8BAA2B;AACnE,SAASN,OAAO,IAAIO,YAAY,QAAQ,8BAA2B;AACnE,SAASC,UAAU,EAAEC,UAAU,QAAQ,4BAAyB;AAChE,SAAST,OAAO,IAAIU,OAAO,QAAQ,8BAA2B;AAC9D,SAASV,OAAO,IAAIW,WAAW,QAAQ,6BAA0B;AACjE,SAASX,OAAO,IAAIY,iBAAiB,QAAQ,mCAAgC;;
|
|
1
|
+
{"version":3,"names":["default","OxyProvider","OxySignInButton","OxyAuthPrompt","OxyLogo","Avatar","FollowButton","OxyPayButton","FontLoader","setupFonts","OxyIcon","AccountMenu","AccountMenuButton","AccountSwitcher","AccountSwitcherView","useOxy","useAuth","useFollow","useStorage","ProfileScreen","ManageAccountScreen","AccountSwitcherScreen","CreateAccountScreen","AccountMembersScreen","AccountSettingsScreen","useAuthStore","useAccountStore","handleAuthError","isInvalidSessionError","isTimeoutOrNetworkError","extractErrorMessage"],"sourceRoot":"../../../src","sources":["ui/index.ts"],"mappings":";;AAAA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;AACA,SAASA,OAAO,IAAIC,WAAW,QAAQ,6BAA0B;AACjE,SAASD,OAAO,IAAIE,eAAe,QAAQ,iCAA8B;AACzE,SAASF,OAAO,IAAIG,aAAa,QAAQ,+BAA4B;AAErE,SAASH,OAAO,IAAII,OAAO,QAAQ,yBAAsB;AACzD,SAASJ,OAAO,IAAIK,MAAM,QAAQ,wBAAqB;AACvD,SAASL,OAAO,IAAIM,YAAY,QAAQ,8BAA2B;AACnE,SAASN,OAAO,IAAIO,YAAY,QAAQ,8BAA2B;AACnE,SAASC,UAAU,EAAEC,UAAU,QAAQ,4BAAyB;AAChE,SAAST,OAAO,IAAIU,OAAO,QAAQ,8BAA2B;AAC9D,SAASV,OAAO,IAAIW,WAAW,QAAQ,6BAA0B;AACjE,SAASX,OAAO,IAAIY,iBAAiB,QAAQ,mCAAgC;AAC7E,SAASZ,OAAO,IAAIa,eAAe,EAAEC,mBAAmB,QAAQ,iCAA8B;;AAE9F;AACA,SAASC,MAAM,QAAQ,yBAAsB;AAC7C,SAASC,OAAO,QAAQ,oBAAiB;AACzC,SAASC,SAAS,QAAQ,sBAAmB;AAC7C,SAASC,UAAU,QAAQ,uBAAoB;AAG/C;AACA,SAASlB,OAAO,IAAImB,aAAa,QAAQ,4BAAyB;AAClE,SAASnB,OAAO,IAAIoB,mBAAmB,QAAQ,kCAA+B;AAC9E,SAASpB,OAAO,IAAIqB,qBAAqB,QAAQ,oCAAiC;AAClF,SAASrB,OAAO,IAAIsB,mBAAmB,QAAQ,kCAA+B;AAC9E,SAAStB,OAAO,IAAIuB,oBAAoB,QAAQ,mCAAgC;AAChF,SAASvB,OAAO,IAAIwB,qBAAqB,QAAQ,oCAAiC;;AAElF;AACA,SAASC,YAAY,QAAQ,uBAAoB;AACjD,SAASC,eAAe,QAAQ,0BAAuB;;AAEvD;AACA,SACIC,eAAe,EACfC,qBAAqB,EACrBC,uBAAuB,EACvBC,mBAAmB,QAChB,0BAAuB","ignoreList":[]}
|
|
@@ -43,7 +43,10 @@ const screenLoaders = {
|
|
|
43
43
|
// User list screens (followers/following)
|
|
44
44
|
FollowersList: () => require('../screens/FollowersListScreen').default,
|
|
45
45
|
FollowingList: () => require('../screens/FollowingListScreen').default,
|
|
46
|
-
|
|
46
|
+
AccountSwitcher: () => require('../screens/AccountSwitcherScreen').default,
|
|
47
|
+
CreateAccount: () => require('../screens/CreateAccountScreen').default,
|
|
48
|
+
AccountMembers: () => require('../screens/AccountMembersScreen').default,
|
|
49
|
+
AccountSettings: () => require('../screens/AccountSettingsScreen').default,
|
|
47
50
|
AvatarCrop: () => require('../screens/AvatarCropScreen').default,
|
|
48
51
|
Notifications: () => require('../screens/NotificationsScreen').default,
|
|
49
52
|
ConnectedApps: () => require('../screens/ConnectedAppsScreen').default,
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["screenLoaders","OxyAuth","require","default","ManageAccount","AccountVerification","PaymentGateway","Profile","LanguageSelector","PrivacySettings","SearchSettings","FileManagement","HelpSupport","FAQ","Feedback","LegalDocuments","AppInfo","PremiumSubscription","WelcomeNewUser","UserLinks","HistoryView","SavesCollections","EditProfileField","LearnMoreUsernames","TrustCenter","TrustLeaderboard","TrustRewards","TrustRules","AboutTrust","TrustFAQ","FollowersList","FollowingList","
|
|
1
|
+
{"version":3,"names":["screenLoaders","OxyAuth","require","default","ManageAccount","AccountVerification","PaymentGateway","Profile","LanguageSelector","PrivacySettings","SearchSettings","FileManagement","HelpSupport","FAQ","Feedback","LegalDocuments","AppInfo","PremiumSubscription","WelcomeNewUser","UserLinks","HistoryView","SavesCollections","EditProfileField","LearnMoreUsernames","TrustCenter","TrustLeaderboard","TrustRewards","TrustRules","AboutTrust","TrustFAQ","FollowersList","FollowingList","AccountSwitcher","CreateAccount","AccountMembers","AccountSettings","AvatarCrop","Notifications","ConnectedApps","Preferences","screenCache","Map","getScreenComponent","routeName","has","get","loader","component","set","error","__DEV__","console","undefined","isValidRoute","isFileManagementImageOnlyPicker","props","selectMode","disabled","disabledMimeTypes","Array","isArray","length","predicate","some","mt","blocksVideos","startsWith","blocksAudio","blocksDocs","DEFAULT_SHEET_CONFIG","scrollable","manualActivation","dynamicBackdrop","getSheetConfig","screenProps"],"sourceRoot":"../../../../src","sources":["ui/navigation/routes.ts"],"mappings":"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","ignoreList":[]}
|
|
@@ -0,0 +1,464 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
|
|
3
|
+
import { useCallback, useMemo, useState } from 'react';
|
|
4
|
+
import { View, ScrollView, TouchableOpacity, ActivityIndicator, Platform, KeyboardAvoidingView } from 'react-native';
|
|
5
|
+
import { Ionicons } from '@expo/vector-icons';
|
|
6
|
+
import { useQuery, useMutation, useQueryClient } from '@tanstack/react-query';
|
|
7
|
+
import { toast, Dialog, useDialogControl } from '@oxyhq/bloom';
|
|
8
|
+
import { useTheme } from '@oxyhq/bloom/theme';
|
|
9
|
+
import { H1, Text } from '@oxyhq/bloom/typography';
|
|
10
|
+
import { Button } from '@oxyhq/bloom/button';
|
|
11
|
+
import { TextField, TextFieldInput } from '@oxyhq/bloom/text-field';
|
|
12
|
+
import { Divider } from '@oxyhq/bloom/divider';
|
|
13
|
+
import { logger as loggerUtil } from '@oxyhq/core';
|
|
14
|
+
import Header from "../components/Header.js";
|
|
15
|
+
import { useOxy } from "../context/OxyContext.js";
|
|
16
|
+
import { useI18n } from "../hooks/useI18n.js";
|
|
17
|
+
|
|
18
|
+
/** Roles assignable via invite / role change — everything except `owner`. */
|
|
19
|
+
import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
|
|
20
|
+
const ASSIGNABLE_ROLES = ['admin', 'editor', 'developer', 'billing', 'viewer'];
|
|
21
|
+
const errorMessage = (error, fallback) => error instanceof Error && error.message ? error.message : fallback;
|
|
22
|
+
const isUserNotFound = error => {
|
|
23
|
+
const message = error instanceof Error ? error.message.toLowerCase() : '';
|
|
24
|
+
return message.includes('user not found') || message.includes('not found');
|
|
25
|
+
};
|
|
26
|
+
|
|
27
|
+
/**
|
|
28
|
+
* Manage the members of an account (invite by username/email, change roles,
|
|
29
|
+
* remove, transfer ownership). Gated on the caller's `callerMembership`
|
|
30
|
+
* permissions. Receives the target `accountId` via navigation props.
|
|
31
|
+
*/
|
|
32
|
+
const AccountMembersScreen = ({
|
|
33
|
+
onClose,
|
|
34
|
+
goBack,
|
|
35
|
+
accountId
|
|
36
|
+
}) => {
|
|
37
|
+
const bloomTheme = useTheme();
|
|
38
|
+
const colors = bloomTheme.colors;
|
|
39
|
+
const {
|
|
40
|
+
t
|
|
41
|
+
} = useI18n();
|
|
42
|
+
const {
|
|
43
|
+
oxyServices,
|
|
44
|
+
canUsePrivateApi
|
|
45
|
+
} = useOxy();
|
|
46
|
+
const queryClient = useQueryClient();
|
|
47
|
+
const id = typeof accountId === 'string' ? accountId : '';
|
|
48
|
+
const roleLabel = useCallback(role => {
|
|
49
|
+
return t(`accounts.roles.${role}.label`) || role.charAt(0).toUpperCase() + role.slice(1);
|
|
50
|
+
}, [t]);
|
|
51
|
+
const accountQuery = useQuery({
|
|
52
|
+
queryKey: ['accounts', 'detail', id],
|
|
53
|
+
queryFn: () => oxyServices.getAccount(id),
|
|
54
|
+
enabled: canUsePrivateApi && id.length > 0
|
|
55
|
+
});
|
|
56
|
+
const callerMembership = accountQuery.data?.callerMembership ?? null;
|
|
57
|
+
const permissions = callerMembership?.permissions ?? [];
|
|
58
|
+
// The owner of an account (relationship 'self'/'owner') gets an implicit
|
|
59
|
+
// full-permission set even when no explicit membership row exists.
|
|
60
|
+
const isImplicitOwner = accountQuery.data ? accountQuery.data.relationship !== 'member' : false;
|
|
61
|
+
const can = useCallback(permission => isImplicitOwner || permissions.includes(permission), [isImplicitOwner, permissions]);
|
|
62
|
+
const canRead = can('members:read');
|
|
63
|
+
const canInvite = can('members:invite');
|
|
64
|
+
const canUpdate = can('members:update');
|
|
65
|
+
const canRemove = can('members:remove');
|
|
66
|
+
const canTransfer = can('ownership:transfer');
|
|
67
|
+
const membersQuery = useQuery({
|
|
68
|
+
queryKey: ['accounts', 'members', id],
|
|
69
|
+
queryFn: () => oxyServices.listAccountMembers(id),
|
|
70
|
+
enabled: canUsePrivateApi && id.length > 0 && canRead
|
|
71
|
+
});
|
|
72
|
+
const members = useMemo(() => membersQuery.data ?? [], [membersQuery.data]);
|
|
73
|
+
const ownerCount = useMemo(() => members.filter(m => m.role === 'owner').length, [members]);
|
|
74
|
+
const invalidateMembers = useCallback(() => {
|
|
75
|
+
queryClient.invalidateQueries({
|
|
76
|
+
queryKey: ['accounts', 'members', id]
|
|
77
|
+
});
|
|
78
|
+
queryClient.invalidateQueries({
|
|
79
|
+
queryKey: ['accounts', 'detail', id]
|
|
80
|
+
});
|
|
81
|
+
}, [queryClient, id]);
|
|
82
|
+
|
|
83
|
+
// --- Invite form state ---
|
|
84
|
+
const [inviteIdentifier, setInviteIdentifier] = useState('');
|
|
85
|
+
const [inviteRole, setInviteRole] = useState('editor');
|
|
86
|
+
const [inviteError, setInviteError] = useState(null);
|
|
87
|
+
const inviteMutation = useMutation({
|
|
88
|
+
mutationKey: ['accounts', 'members', 'invite', id],
|
|
89
|
+
mutationFn: input => oxyServices.inviteAccountMember(id, input),
|
|
90
|
+
onSuccess: () => {
|
|
91
|
+
setInviteIdentifier('');
|
|
92
|
+
setInviteRole('editor');
|
|
93
|
+
setInviteError(null);
|
|
94
|
+
invalidateMembers();
|
|
95
|
+
toast.success(t('accounts.members.toasts.added') || 'Member added');
|
|
96
|
+
},
|
|
97
|
+
onError: error => {
|
|
98
|
+
if (isUserNotFound(error)) {
|
|
99
|
+
const message = t('accounts.members.errors.userNotFound') || 'User not found';
|
|
100
|
+
setInviteError(message);
|
|
101
|
+
toast.error(message);
|
|
102
|
+
return;
|
|
103
|
+
}
|
|
104
|
+
toast.error(errorMessage(error, t('accounts.members.toasts.addFailed') || 'Failed to add member'));
|
|
105
|
+
}
|
|
106
|
+
});
|
|
107
|
+
const updateMutation = useMutation({
|
|
108
|
+
mutationKey: ['accounts', 'members', 'update', id],
|
|
109
|
+
mutationFn: input => oxyServices.updateAccountMember(id, input.memberId, {
|
|
110
|
+
role: input.role
|
|
111
|
+
}),
|
|
112
|
+
onSuccess: () => {
|
|
113
|
+
invalidateMembers();
|
|
114
|
+
toast.success(t('accounts.members.toasts.roleUpdated') || 'Role updated');
|
|
115
|
+
},
|
|
116
|
+
onError: error => {
|
|
117
|
+
toast.error(errorMessage(error, t('accounts.members.toasts.roleFailed') || 'Failed to update role'));
|
|
118
|
+
}
|
|
119
|
+
});
|
|
120
|
+
const removeMutation = useMutation({
|
|
121
|
+
mutationKey: ['accounts', 'members', 'remove', id],
|
|
122
|
+
mutationFn: memberId => oxyServices.removeAccountMember(id, memberId),
|
|
123
|
+
onSuccess: () => {
|
|
124
|
+
invalidateMembers();
|
|
125
|
+
toast.success(t('accounts.members.toasts.removed') || 'Member removed');
|
|
126
|
+
},
|
|
127
|
+
onError: error => {
|
|
128
|
+
toast.error(errorMessage(error, t('accounts.members.toasts.removeFailed') || 'Failed to remove member'));
|
|
129
|
+
}
|
|
130
|
+
});
|
|
131
|
+
const transferMutation = useMutation({
|
|
132
|
+
mutationKey: ['accounts', 'members', 'transfer', id],
|
|
133
|
+
mutationFn: userId => oxyServices.transferAccountOwnership(id, {
|
|
134
|
+
userId
|
|
135
|
+
}),
|
|
136
|
+
onSuccess: () => {
|
|
137
|
+
invalidateMembers();
|
|
138
|
+
toast.success(t('accounts.members.toasts.transferred') || 'Ownership transferred');
|
|
139
|
+
},
|
|
140
|
+
onError: error => {
|
|
141
|
+
toast.error(errorMessage(error, t('accounts.members.toasts.transferFailed') || 'Failed to transfer ownership'));
|
|
142
|
+
}
|
|
143
|
+
});
|
|
144
|
+
const [memberToRemove, setMemberToRemove] = useState(null);
|
|
145
|
+
const [memberToPromote, setMemberToPromote] = useState(null);
|
|
146
|
+
const removeDialog = useDialogControl();
|
|
147
|
+
const transferDialog = useDialogControl();
|
|
148
|
+
const handleInvite = useCallback(() => {
|
|
149
|
+
const usernameOrEmail = inviteIdentifier.trim();
|
|
150
|
+
if (!usernameOrEmail) {
|
|
151
|
+
setInviteError(t('accounts.members.errors.identifierRequired') || 'Enter a username or email to invite');
|
|
152
|
+
return;
|
|
153
|
+
}
|
|
154
|
+
setInviteError(null);
|
|
155
|
+
inviteMutation.mutate({
|
|
156
|
+
usernameOrEmail,
|
|
157
|
+
role: inviteRole
|
|
158
|
+
});
|
|
159
|
+
}, [inviteIdentifier, inviteRole, inviteMutation, t]);
|
|
160
|
+
const handleChangeRole = useCallback((member, role) => {
|
|
161
|
+
if (role === member.role || role === 'owner') {
|
|
162
|
+
return;
|
|
163
|
+
}
|
|
164
|
+
updateMutation.mutate({
|
|
165
|
+
memberId: member._id,
|
|
166
|
+
role
|
|
167
|
+
});
|
|
168
|
+
}, [updateMutation]);
|
|
169
|
+
const confirmRemove = useCallback(member => {
|
|
170
|
+
setMemberToRemove(member);
|
|
171
|
+
removeDialog.open();
|
|
172
|
+
}, [removeDialog]);
|
|
173
|
+
const confirmTransfer = useCallback(member => {
|
|
174
|
+
setMemberToPromote(member);
|
|
175
|
+
transferDialog.open();
|
|
176
|
+
}, [transferDialog]);
|
|
177
|
+
const title = t('accounts.members.title') || 'Members';
|
|
178
|
+
if (!id) {
|
|
179
|
+
return /*#__PURE__*/_jsxs(View, {
|
|
180
|
+
className: "flex-1 bg-bg",
|
|
181
|
+
children: [/*#__PURE__*/_jsx(Header, {
|
|
182
|
+
title: title,
|
|
183
|
+
onBack: goBack,
|
|
184
|
+
onClose: onClose,
|
|
185
|
+
showBackButton: true,
|
|
186
|
+
showCloseButton: true,
|
|
187
|
+
elevation: "subtle"
|
|
188
|
+
}), /*#__PURE__*/_jsx(View, {
|
|
189
|
+
className: "flex-1 items-center justify-center px-screen-margin",
|
|
190
|
+
children: /*#__PURE__*/_jsx(Text, {
|
|
191
|
+
className: "text-body font-body text-text-secondary text-center",
|
|
192
|
+
children: t('accounts.members.errors.missingAccount') || 'No account selected.'
|
|
193
|
+
})
|
|
194
|
+
})]
|
|
195
|
+
});
|
|
196
|
+
}
|
|
197
|
+
return /*#__PURE__*/_jsxs(View, {
|
|
198
|
+
className: "flex-1 bg-bg",
|
|
199
|
+
children: [/*#__PURE__*/_jsx(Header, {
|
|
200
|
+
title: title,
|
|
201
|
+
onBack: goBack,
|
|
202
|
+
onClose: onClose,
|
|
203
|
+
showBackButton: true,
|
|
204
|
+
showCloseButton: true,
|
|
205
|
+
elevation: "subtle"
|
|
206
|
+
}), /*#__PURE__*/_jsx(KeyboardAvoidingView, {
|
|
207
|
+
className: "flex-1",
|
|
208
|
+
behavior: Platform.OS === 'ios' ? 'padding' : undefined,
|
|
209
|
+
keyboardVerticalOffset: Platform.OS === 'ios' ? 88 : 0,
|
|
210
|
+
children: /*#__PURE__*/_jsxs(ScrollView, {
|
|
211
|
+
className: "flex-1",
|
|
212
|
+
contentContainerClassName: "px-screen-margin pt-space-24 pb-space-32 gap-space-24",
|
|
213
|
+
showsVerticalScrollIndicator: false,
|
|
214
|
+
keyboardShouldPersistTaps: "handled",
|
|
215
|
+
children: [/*#__PURE__*/_jsxs(View, {
|
|
216
|
+
className: "gap-space-8",
|
|
217
|
+
children: [/*#__PURE__*/_jsx(H1, {
|
|
218
|
+
className: "text-headerBold font-headerBold text-text",
|
|
219
|
+
children: title
|
|
220
|
+
}), /*#__PURE__*/_jsx(Text, {
|
|
221
|
+
className: "text-body font-body text-text-secondary",
|
|
222
|
+
children: t('accounts.members.subtitle') || 'People with access to this account.'
|
|
223
|
+
})]
|
|
224
|
+
}), !accountQuery.isLoading && !canRead ? /*#__PURE__*/_jsx(Text, {
|
|
225
|
+
className: "text-body font-body text-text-secondary text-center py-space-24",
|
|
226
|
+
children: t('accounts.members.errors.noPermission') || 'You do not have permission to view members.'
|
|
227
|
+
}) : null, canInvite ? /*#__PURE__*/_jsxs(View, {
|
|
228
|
+
className: "gap-space-12 p-space-16 rounded-radius-20 bg-fill",
|
|
229
|
+
children: [/*#__PURE__*/_jsx(Text, {
|
|
230
|
+
className: "text-body font-bodyBold text-text",
|
|
231
|
+
children: t('accounts.members.invite.title') || 'Add a member'
|
|
232
|
+
}), /*#__PURE__*/_jsx(TextField, {
|
|
233
|
+
isInvalid: !!inviteError,
|
|
234
|
+
children: /*#__PURE__*/_jsx(TextFieldInput, {
|
|
235
|
+
floatingLabel: true,
|
|
236
|
+
label: t('accounts.members.invite.identifierLabel') || 'Username or email',
|
|
237
|
+
value: inviteIdentifier,
|
|
238
|
+
onChangeText: value => {
|
|
239
|
+
setInviteIdentifier(value);
|
|
240
|
+
if (inviteError) setInviteError(null);
|
|
241
|
+
},
|
|
242
|
+
isInvalid: !!inviteError,
|
|
243
|
+
autoCapitalize: "none",
|
|
244
|
+
autoCorrect: false,
|
|
245
|
+
autoComplete: "off"
|
|
246
|
+
})
|
|
247
|
+
}), inviteError ? /*#__PURE__*/_jsx(Text, {
|
|
248
|
+
className: "text-caption font-caption px-space-4",
|
|
249
|
+
style: {
|
|
250
|
+
color: colors.negative
|
|
251
|
+
},
|
|
252
|
+
children: inviteError
|
|
253
|
+
}) : null, /*#__PURE__*/_jsx(Text, {
|
|
254
|
+
className: "text-caption font-caption text-text-secondary px-space-4",
|
|
255
|
+
children: t('accounts.members.invite.roleLabel') || 'Role'
|
|
256
|
+
}), /*#__PURE__*/_jsx(View, {
|
|
257
|
+
className: "flex-row flex-wrap gap-space-8",
|
|
258
|
+
children: ASSIGNABLE_ROLES.map(role => {
|
|
259
|
+
const selected = role === inviteRole;
|
|
260
|
+
return /*#__PURE__*/_jsx(TouchableOpacity, {
|
|
261
|
+
accessibilityRole: "radio",
|
|
262
|
+
accessibilityState: {
|
|
263
|
+
selected
|
|
264
|
+
},
|
|
265
|
+
accessibilityLabel: roleLabel(role),
|
|
266
|
+
onPress: () => setInviteRole(role),
|
|
267
|
+
activeOpacity: 0.7,
|
|
268
|
+
className: "px-space-12 py-space-8 rounded-radius-full",
|
|
269
|
+
style: {
|
|
270
|
+
backgroundColor: selected ? colors.primary : colors.card,
|
|
271
|
+
borderWidth: 1,
|
|
272
|
+
borderColor: selected ? colors.primary : colors.border
|
|
273
|
+
},
|
|
274
|
+
children: /*#__PURE__*/_jsx(Text, {
|
|
275
|
+
className: "text-caption font-bodyBold",
|
|
276
|
+
style: {
|
|
277
|
+
color: selected ? colors.background : colors.text
|
|
278
|
+
},
|
|
279
|
+
children: roleLabel(role)
|
|
280
|
+
})
|
|
281
|
+
}, role);
|
|
282
|
+
})
|
|
283
|
+
}), /*#__PURE__*/_jsx(Button, {
|
|
284
|
+
variant: "primary",
|
|
285
|
+
onPress: handleInvite,
|
|
286
|
+
disabled: inviteMutation.isPending || !inviteIdentifier.trim(),
|
|
287
|
+
loading: inviteMutation.isPending,
|
|
288
|
+
accessibilityLabel: t('accounts.members.invite.submit') || 'Add member',
|
|
289
|
+
className: "w-full",
|
|
290
|
+
children: t('accounts.members.invite.submit') || 'Add member'
|
|
291
|
+
})]
|
|
292
|
+
}) : null, canRead ? /*#__PURE__*/_jsx(View, {
|
|
293
|
+
className: "gap-space-8",
|
|
294
|
+
children: membersQuery.isLoading ? /*#__PURE__*/_jsx(View, {
|
|
295
|
+
className: "items-center py-space-24",
|
|
296
|
+
children: /*#__PURE__*/_jsx(ActivityIndicator, {
|
|
297
|
+
color: colors.primary
|
|
298
|
+
})
|
|
299
|
+
}) : members.length === 0 ? /*#__PURE__*/_jsx(Text, {
|
|
300
|
+
className: "text-body font-body text-text-secondary text-center py-space-24",
|
|
301
|
+
children: t('accounts.members.empty') || 'No members yet.'
|
|
302
|
+
}) : /*#__PURE__*/_jsx(View, {
|
|
303
|
+
className: "rounded-radius-20 bg-fill overflow-hidden",
|
|
304
|
+
children: members.map((member, index) => {
|
|
305
|
+
const isOwner = member.role === 'owner';
|
|
306
|
+
const isLastOwner = isOwner && ownerCount <= 1;
|
|
307
|
+
const canEditThisRole = canUpdate && !isOwner;
|
|
308
|
+
const canRemoveThisMember = canRemove && !isLastOwner && (!isOwner || canTransfer);
|
|
309
|
+
const canTransferToThis = canTransfer && !isOwner && member.status === 'active';
|
|
310
|
+
return /*#__PURE__*/_jsxs(View, {
|
|
311
|
+
children: [index > 0 ? /*#__PURE__*/_jsx(Divider, {
|
|
312
|
+
color: colors.border,
|
|
313
|
+
spacing: 0
|
|
314
|
+
}) : null, /*#__PURE__*/_jsxs(View, {
|
|
315
|
+
className: "p-space-16 gap-space-8",
|
|
316
|
+
children: [/*#__PURE__*/_jsxs(View, {
|
|
317
|
+
className: "flex-row items-center gap-space-8",
|
|
318
|
+
children: [/*#__PURE__*/_jsx(Text, {
|
|
319
|
+
className: "text-body font-bodyBold text-text flex-1",
|
|
320
|
+
numberOfLines: 1,
|
|
321
|
+
children: member.memberUserId
|
|
322
|
+
}), isOwner ? /*#__PURE__*/_jsx(View, {
|
|
323
|
+
className: "px-space-8 py-space-4 rounded-radius-full",
|
|
324
|
+
style: {
|
|
325
|
+
backgroundColor: colors.primarySubtle
|
|
326
|
+
},
|
|
327
|
+
children: /*#__PURE__*/_jsx(Text, {
|
|
328
|
+
className: "text-caption font-bodyBold",
|
|
329
|
+
style: {
|
|
330
|
+
color: colors.primary
|
|
331
|
+
},
|
|
332
|
+
children: roleLabel('owner')
|
|
333
|
+
})
|
|
334
|
+
}) : null, member.status !== 'active' ? /*#__PURE__*/_jsx(View, {
|
|
335
|
+
className: "px-space-8 py-space-4 rounded-radius-full",
|
|
336
|
+
style: {
|
|
337
|
+
backgroundColor: colors.card
|
|
338
|
+
},
|
|
339
|
+
children: /*#__PURE__*/_jsx(Text, {
|
|
340
|
+
className: "text-caption font-caption capitalize text-text-secondary",
|
|
341
|
+
children: member.status
|
|
342
|
+
})
|
|
343
|
+
}) : null]
|
|
344
|
+
}), canEditThisRole ? /*#__PURE__*/_jsx(View, {
|
|
345
|
+
className: "flex-row flex-wrap gap-space-8",
|
|
346
|
+
children: ASSIGNABLE_ROLES.map(role => {
|
|
347
|
+
const selected = role === member.role;
|
|
348
|
+
return /*#__PURE__*/_jsx(TouchableOpacity, {
|
|
349
|
+
accessibilityRole: "radio",
|
|
350
|
+
accessibilityState: {
|
|
351
|
+
selected
|
|
352
|
+
},
|
|
353
|
+
accessibilityLabel: roleLabel(role),
|
|
354
|
+
onPress: () => handleChangeRole(member, role),
|
|
355
|
+
disabled: updateMutation.isPending,
|
|
356
|
+
activeOpacity: 0.7,
|
|
357
|
+
className: "px-space-12 py-space-4 rounded-radius-full",
|
|
358
|
+
style: {
|
|
359
|
+
backgroundColor: selected ? colors.primary : colors.card,
|
|
360
|
+
borderWidth: 1,
|
|
361
|
+
borderColor: selected ? colors.primary : colors.border
|
|
362
|
+
},
|
|
363
|
+
children: /*#__PURE__*/_jsx(Text, {
|
|
364
|
+
className: "text-caption font-bodyBold",
|
|
365
|
+
style: {
|
|
366
|
+
color: selected ? colors.background : colors.text
|
|
367
|
+
},
|
|
368
|
+
children: roleLabel(role)
|
|
369
|
+
})
|
|
370
|
+
}, role);
|
|
371
|
+
})
|
|
372
|
+
}) : !isOwner ? /*#__PURE__*/_jsx(Text, {
|
|
373
|
+
className: "text-caption font-caption text-text-secondary",
|
|
374
|
+
children: roleLabel(member.role)
|
|
375
|
+
}) : null, canTransferToThis || canRemoveThisMember ? /*#__PURE__*/_jsxs(View, {
|
|
376
|
+
className: "flex-row gap-space-16 pt-space-4",
|
|
377
|
+
children: [canTransferToThis ? /*#__PURE__*/_jsxs(TouchableOpacity, {
|
|
378
|
+
accessibilityRole: "button",
|
|
379
|
+
accessibilityLabel: t('accounts.members.actions.transfer') || 'Transfer ownership',
|
|
380
|
+
onPress: () => confirmTransfer(member),
|
|
381
|
+
activeOpacity: 0.7,
|
|
382
|
+
className: "flex-row items-center gap-space-4",
|
|
383
|
+
children: [/*#__PURE__*/_jsx(Ionicons, {
|
|
384
|
+
name: "swap-horizontal-outline",
|
|
385
|
+
size: 16,
|
|
386
|
+
color: colors.icon
|
|
387
|
+
}), /*#__PURE__*/_jsx(Text, {
|
|
388
|
+
className: "text-caption font-bodyBold text-text-secondary",
|
|
389
|
+
children: t('accounts.members.actions.transfer') || 'Transfer ownership'
|
|
390
|
+
})]
|
|
391
|
+
}) : null, canRemoveThisMember ? /*#__PURE__*/_jsxs(TouchableOpacity, {
|
|
392
|
+
accessibilityRole: "button",
|
|
393
|
+
accessibilityLabel: t('accounts.members.actions.remove') || 'Remove member',
|
|
394
|
+
onPress: () => confirmRemove(member),
|
|
395
|
+
activeOpacity: 0.7,
|
|
396
|
+
className: "flex-row items-center gap-space-4",
|
|
397
|
+
children: [/*#__PURE__*/_jsx(Ionicons, {
|
|
398
|
+
name: "trash-outline",
|
|
399
|
+
size: 16,
|
|
400
|
+
color: colors.error
|
|
401
|
+
}), /*#__PURE__*/_jsx(Text, {
|
|
402
|
+
className: "text-caption font-bodyBold",
|
|
403
|
+
style: {
|
|
404
|
+
color: colors.error
|
|
405
|
+
},
|
|
406
|
+
children: t('accounts.members.actions.remove') || 'Remove'
|
|
407
|
+
})]
|
|
408
|
+
}) : null]
|
|
409
|
+
}) : null]
|
|
410
|
+
})]
|
|
411
|
+
}, member._id);
|
|
412
|
+
})
|
|
413
|
+
})
|
|
414
|
+
}) : null]
|
|
415
|
+
})
|
|
416
|
+
}), /*#__PURE__*/_jsx(Dialog, {
|
|
417
|
+
control: removeDialog,
|
|
418
|
+
title: t('accounts.members.removeConfirm.title') || 'Remove member',
|
|
419
|
+
description: t('accounts.members.removeConfirm.description') || 'Remove this member from the account? They will lose all access.',
|
|
420
|
+
actions: [{
|
|
421
|
+
label: t('accounts.members.actions.remove') || 'Remove',
|
|
422
|
+
color: 'destructive',
|
|
423
|
+
onPress: () => {
|
|
424
|
+
const target = memberToRemove;
|
|
425
|
+
setMemberToRemove(null);
|
|
426
|
+
if (target) {
|
|
427
|
+
removeMutation.mutate(target._id);
|
|
428
|
+
} else {
|
|
429
|
+
loggerUtil.debug('Remove confirmed with no pending member', {
|
|
430
|
+
component: 'AccountMembersScreen'
|
|
431
|
+
});
|
|
432
|
+
}
|
|
433
|
+
}
|
|
434
|
+
}, {
|
|
435
|
+
label: t('common.cancel') || 'Cancel',
|
|
436
|
+
color: 'cancel'
|
|
437
|
+
}]
|
|
438
|
+
}), /*#__PURE__*/_jsx(Dialog, {
|
|
439
|
+
control: transferDialog,
|
|
440
|
+
title: t('accounts.members.transferConfirm.title') || 'Transfer ownership',
|
|
441
|
+
description: t('accounts.members.transferConfirm.description') || 'Transfer ownership of this account to this member? You will be demoted to admin. This cannot be undone.',
|
|
442
|
+
actions: [{
|
|
443
|
+
label: t('accounts.members.actions.transfer') || 'Transfer ownership',
|
|
444
|
+
color: 'destructive',
|
|
445
|
+
onPress: () => {
|
|
446
|
+
const target = memberToPromote;
|
|
447
|
+
setMemberToPromote(null);
|
|
448
|
+
if (target) {
|
|
449
|
+
transferMutation.mutate(target.memberUserId);
|
|
450
|
+
} else {
|
|
451
|
+
loggerUtil.debug('Transfer confirmed with no pending member', {
|
|
452
|
+
component: 'AccountMembersScreen'
|
|
453
|
+
});
|
|
454
|
+
}
|
|
455
|
+
}
|
|
456
|
+
}, {
|
|
457
|
+
label: t('common.cancel') || 'Cancel',
|
|
458
|
+
color: 'cancel'
|
|
459
|
+
}]
|
|
460
|
+
})]
|
|
461
|
+
});
|
|
462
|
+
};
|
|
463
|
+
export default AccountMembersScreen;
|
|
464
|
+
//# sourceMappingURL=AccountMembersScreen.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"names":["useCallback","useMemo","useState","View","ScrollView","TouchableOpacity","ActivityIndicator","Platform","KeyboardAvoidingView","Ionicons","useQuery","useMutation","useQueryClient","toast","Dialog","useDialogControl","useTheme","H1","Text","Button","TextField","TextFieldInput","Divider","logger","loggerUtil","Header","useOxy","useI18n","jsx","_jsx","jsxs","_jsxs","ASSIGNABLE_ROLES","errorMessage","error","fallback","Error","message","isUserNotFound","toLowerCase","includes","AccountMembersScreen","onClose","goBack","accountId","bloomTheme","colors","t","oxyServices","canUsePrivateApi","queryClient","id","roleLabel","role","charAt","toUpperCase","slice","accountQuery","queryKey","queryFn","getAccount","enabled","length","callerMembership","data","permissions","isImplicitOwner","relationship","can","permission","canRead","canInvite","canUpdate","canRemove","canTransfer","membersQuery","listAccountMembers","members","ownerCount","filter","m","invalidateMembers","invalidateQueries","inviteIdentifier","setInviteIdentifier","inviteRole","setInviteRole","inviteError","setInviteError","inviteMutation","mutationKey","mutationFn","input","inviteAccountMember","onSuccess","success","onError","updateMutation","updateAccountMember","memberId","removeMutation","removeAccountMember","transferMutation","userId","transferAccountOwnership","memberToRemove","setMemberToRemove","memberToPromote","setMemberToPromote","removeDialog","transferDialog","handleInvite","usernameOrEmail","trim","mutate","handleChangeRole","member","_id","confirmRemove","open","confirmTransfer","title","className","children","onBack","showBackButton","showCloseButton","elevation","behavior","OS","undefined","keyboardVerticalOffset","contentContainerClassName","showsVerticalScrollIndicator","keyboardShouldPersistTaps","isLoading","isInvalid","floatingLabel","label","value","onChangeText","autoCapitalize","autoCorrect","autoComplete","style","color","negative","map","selected","accessibilityRole","accessibilityState","accessibilityLabel","onPress","activeOpacity","backgroundColor","primary","card","borderWidth","borderColor","border","background","text","variant","disabled","isPending","loading","index","isOwner","isLastOwner","canEditThisRole","canRemoveThisMember","canTransferToThis","status","spacing","numberOfLines","memberUserId","primarySubtle","name","size","icon","control","description","actions","target","debug","component"],"sourceRoot":"../../../../src","sources":["ui/screens/AccountMembersScreen.tsx"],"mappings":"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","ignoreList":[]}
|