@oxyhq/services 27.0.0 → 27.1.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 +29 -0
- package/lib/commonjs/index.js.map +1 -1
- package/lib/commonjs/ui/components/FollowButton.js +3 -5
- package/lib/commonjs/ui/components/FollowButton.js.map +1 -1
- package/lib/commonjs/ui/components/FollowTargetButton.js +292 -0
- package/lib/commonjs/ui/components/FollowTargetButton.js.map +1 -0
- package/lib/commonjs/ui/hooks/useFollowTarget.js +140 -0
- package/lib/commonjs/ui/hooks/useFollowTarget.js.map +1 -0
- package/lib/commonjs/ui/screens/AccountMembersScreen.js +49 -6
- package/lib/commonjs/ui/screens/AccountMembersScreen.js.map +1 -1
- package/lib/commonjs/ui/stores/followTargetStore.js +113 -0
- package/lib/commonjs/ui/stores/followTargetStore.js.map +1 -0
- package/lib/commonjs/ui/stores/resetSessionScopedStores.js +2 -0
- package/lib/commonjs/ui/stores/resetSessionScopedStores.js.map +1 -1
- package/lib/module/index.js +4 -0
- package/lib/module/index.js.map +1 -1
- package/lib/module/ui/components/FollowButton.js +3 -5
- package/lib/module/ui/components/FollowButton.js.map +1 -1
- package/lib/module/ui/components/FollowTargetButton.js +287 -0
- package/lib/module/ui/components/FollowTargetButton.js.map +1 -0
- package/lib/module/ui/hooks/useFollowTarget.js +136 -0
- package/lib/module/ui/hooks/useFollowTarget.js.map +1 -0
- package/lib/module/ui/screens/AccountMembersScreen.js +49 -6
- package/lib/module/ui/screens/AccountMembersScreen.js.map +1 -1
- package/lib/module/ui/stores/followTargetStore.js +107 -0
- package/lib/module/ui/stores/followTargetStore.js.map +1 -0
- package/lib/module/ui/stores/resetSessionScopedStores.js +2 -0
- package/lib/module/ui/stores/resetSessionScopedStores.js.map +1 -1
- package/lib/typescript/commonjs/index.d.ts +5 -0
- package/lib/typescript/commonjs/index.d.ts.map +1 -1
- package/lib/typescript/commonjs/ui/components/FollowButton.d.ts.map +1 -1
- package/lib/typescript/commonjs/ui/components/FollowTargetButton.d.ts +119 -0
- package/lib/typescript/commonjs/ui/components/FollowTargetButton.d.ts.map +1 -0
- package/lib/typescript/commonjs/ui/hooks/useFollowTarget.d.ts +41 -0
- package/lib/typescript/commonjs/ui/hooks/useFollowTarget.d.ts.map +1 -0
- package/lib/typescript/commonjs/ui/screens/AccountMembersScreen.d.ts.map +1 -1
- package/lib/typescript/commonjs/ui/stores/followTargetStore.d.ts +70 -0
- package/lib/typescript/commonjs/ui/stores/followTargetStore.d.ts.map +1 -0
- package/lib/typescript/commonjs/ui/stores/resetSessionScopedStores.d.ts.map +1 -1
- package/lib/typescript/module/index.d.ts +5 -0
- package/lib/typescript/module/index.d.ts.map +1 -1
- package/lib/typescript/module/ui/components/FollowButton.d.ts.map +1 -1
- package/lib/typescript/module/ui/components/FollowTargetButton.d.ts +119 -0
- package/lib/typescript/module/ui/components/FollowTargetButton.d.ts.map +1 -0
- package/lib/typescript/module/ui/hooks/useFollowTarget.d.ts +41 -0
- package/lib/typescript/module/ui/hooks/useFollowTarget.d.ts.map +1 -0
- package/lib/typescript/module/ui/screens/AccountMembersScreen.d.ts.map +1 -1
- package/lib/typescript/module/ui/stores/followTargetStore.d.ts +70 -0
- package/lib/typescript/module/ui/stores/followTargetStore.d.ts.map +1 -0
- package/lib/typescript/module/ui/stores/resetSessionScopedStores.d.ts.map +1 -1
- package/package.json +3 -3
- package/src/index.ts +11 -0
- package/src/ui/components/FollowButton.tsx +3 -5
- package/src/ui/components/FollowTargetButton.tsx +326 -0
- package/src/ui/components/__tests__/followTargetButton.test.ts +132 -0
- package/src/ui/hooks/useFollowTarget.ts +194 -0
- package/src/ui/screens/AccountMembersScreen.tsx +62 -6
- package/src/ui/stores/__tests__/resetSessionScopedStores.test.ts +23 -0
- package/src/ui/stores/followTargetStore.ts +119 -0
- package/src/ui/stores/resetSessionScopedStores.ts +2 -0
|
@@ -0,0 +1,287 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
|
|
3
|
+
/**
|
|
4
|
+
* `FollowTargetButton` — one button for everything an Oxy user can follow.
|
|
5
|
+
*
|
|
6
|
+
* Follows a TARGET of any registered kind: a person, a topic, a channel, a
|
|
7
|
+
* store, an artist. Nothing in this file branches on what the target is, which
|
|
8
|
+
* is the property that lets an application this package has never heard of use
|
|
9
|
+
* it without a release.
|
|
10
|
+
*
|
|
11
|
+
* ## Two controls, not one
|
|
12
|
+
*
|
|
13
|
+
* The main press does the obvious thing. The chevron beside it opens the
|
|
14
|
+
* choices that a single press cannot express — follow for a while, stop showing
|
|
15
|
+
* this here without giving it up everywhere — and those belong behind a
|
|
16
|
+
* disclosure precisely because they are not what most people want most of the
|
|
17
|
+
* time. Bloom's `Menu` renders as a bottom sheet on native and a dropdown on
|
|
18
|
+
* web, so this is one component and not a platform fork.
|
|
19
|
+
*
|
|
20
|
+
* ## Verbs
|
|
21
|
+
*
|
|
22
|
+
* "Follow" is wrong for half the things in the ecosystem: you subscribe to a
|
|
23
|
+
* channel, you join a community, you watch a listing. The verb is a prop with a
|
|
24
|
+
* small vocabulary of defaults and a full override, rather than a lookup keyed
|
|
25
|
+
* on kind — a kind→verb table in this package would need a release every time
|
|
26
|
+
* an application invents a kind, which is exactly the coupling #809 removes.
|
|
27
|
+
*
|
|
28
|
+
* ## Relationship to the legacy `FollowButton`
|
|
29
|
+
*
|
|
30
|
+
* `FollowButton` follows a USER through the Mongo-backed social graph and
|
|
31
|
+
* remains the correct component for that until the user graph is migrated onto
|
|
32
|
+
* `/v2/follows`. When it is, that component is deleted and this one takes the
|
|
33
|
+
* name — not aliased, not deprecated in place.
|
|
34
|
+
*/
|
|
35
|
+
|
|
36
|
+
import { memo, useCallback, useMemo } from 'react';
|
|
37
|
+
import { View } from 'react-native';
|
|
38
|
+
import { Button } from '@oxyhq/bloom/button';
|
|
39
|
+
import { ChevronBottom_Stroke2_Corner0_Rounded as ChevronDown } from '@oxyhq/bloom/icons';
|
|
40
|
+
import { Menu, MenuContent, MenuItem, MenuItemText, MenuTrigger } from '@oxyhq/bloom/menu';
|
|
41
|
+
import { toast } from '@oxyhq/bloom/toast';
|
|
42
|
+
import { useFollowTarget } from "../hooks/useFollowTarget.js";
|
|
43
|
+
|
|
44
|
+
/**
|
|
45
|
+
* The small vocabulary of verbs the ecosystem actually uses. An application
|
|
46
|
+
* whose verb is not here passes `labels` instead — the escape hatch exists so
|
|
47
|
+
* this union never has to grow to accommodate one product's wording.
|
|
48
|
+
*/
|
|
49
|
+
import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
|
|
50
|
+
const VERB_LABELS = {
|
|
51
|
+
follow: {
|
|
52
|
+
idle: 'Follow',
|
|
53
|
+
active: 'Following',
|
|
54
|
+
pending: 'Requested',
|
|
55
|
+
disabled: 'Off here'
|
|
56
|
+
},
|
|
57
|
+
subscribe: {
|
|
58
|
+
idle: 'Subscribe',
|
|
59
|
+
active: 'Subscribed',
|
|
60
|
+
pending: 'Requested',
|
|
61
|
+
disabled: 'Off here'
|
|
62
|
+
},
|
|
63
|
+
join: {
|
|
64
|
+
idle: 'Join',
|
|
65
|
+
active: 'Joined',
|
|
66
|
+
pending: 'Requested',
|
|
67
|
+
disabled: 'Off here'
|
|
68
|
+
},
|
|
69
|
+
watch: {
|
|
70
|
+
idle: 'Watch',
|
|
71
|
+
active: 'Watching',
|
|
72
|
+
pending: 'Requested',
|
|
73
|
+
disabled: 'Off here'
|
|
74
|
+
}
|
|
75
|
+
};
|
|
76
|
+
|
|
77
|
+
/** A timed-follow choice offered in the menu. */
|
|
78
|
+
|
|
79
|
+
const HOUR = 60 * 60;
|
|
80
|
+
|
|
81
|
+
/**
|
|
82
|
+
* Defaults chosen for the cases a timed follow is actually for: a live event
|
|
83
|
+
* tonight, a story running this week. Not a general-purpose duration picker —
|
|
84
|
+
* an application that needs one passes its own.
|
|
85
|
+
*/
|
|
86
|
+
const DEFAULT_DURATIONS = [{
|
|
87
|
+
label: '24 hours',
|
|
88
|
+
seconds: 24 * HOUR
|
|
89
|
+
}, {
|
|
90
|
+
label: '72 hours',
|
|
91
|
+
seconds: 72 * HOUR
|
|
92
|
+
}, {
|
|
93
|
+
label: 'A week',
|
|
94
|
+
seconds: 7 * 24 * HOUR
|
|
95
|
+
}];
|
|
96
|
+
|
|
97
|
+
/** One line in the disclosure menu. */
|
|
98
|
+
|
|
99
|
+
/**
|
|
100
|
+
* Which choices exist, given the state.
|
|
101
|
+
*
|
|
102
|
+
* Pure and exported because this is the product decision, not a rendering
|
|
103
|
+
* detail: a timed follow is only offered before following, turning it off here
|
|
104
|
+
* is only offered while following, and NEITHER is offered before the server has
|
|
105
|
+
* answered — every one of them addresses a relationship that does not exist
|
|
106
|
+
* yet, so offering them mid-write would mean sending a guessed id.
|
|
107
|
+
*/
|
|
108
|
+
export function buildFollowMenuItems(input) {
|
|
109
|
+
const items = [];
|
|
110
|
+
if (!input.following) {
|
|
111
|
+
if (input.durations === false) return items;
|
|
112
|
+
for (const d of input.durations) {
|
|
113
|
+
items.push({
|
|
114
|
+
key: `for-${d.seconds}`,
|
|
115
|
+
label: `${input.idleVerb} for ${d.label.toLowerCase()}`,
|
|
116
|
+
action: {
|
|
117
|
+
type: 'follow-timed',
|
|
118
|
+
seconds: d.seconds,
|
|
119
|
+
durationLabel: d.label
|
|
120
|
+
}
|
|
121
|
+
});
|
|
122
|
+
}
|
|
123
|
+
return items;
|
|
124
|
+
}
|
|
125
|
+
if (!input.hasRelationship || input.isPending) return items;
|
|
126
|
+
items.push(input.applicationMode === 'disabled' ? {
|
|
127
|
+
key: 'enable-here',
|
|
128
|
+
label: `Show in ${input.applicationName}`,
|
|
129
|
+
action: {
|
|
130
|
+
type: 'enable-here'
|
|
131
|
+
}
|
|
132
|
+
} : {
|
|
133
|
+
key: 'disable-here',
|
|
134
|
+
label: `Don’t show in ${input.applicationName}`,
|
|
135
|
+
action: {
|
|
136
|
+
type: 'disable-here'
|
|
137
|
+
}
|
|
138
|
+
});
|
|
139
|
+
items.push({
|
|
140
|
+
// Named for what it does. "Unfollow" beside "don't show here" would read as
|
|
141
|
+
// the same action twice, and the user would pick the wrong one.
|
|
142
|
+
key: 'unfollow-everywhere',
|
|
143
|
+
label: 'Unfollow everywhere',
|
|
144
|
+
action: {
|
|
145
|
+
type: 'unfollow'
|
|
146
|
+
}
|
|
147
|
+
});
|
|
148
|
+
return items;
|
|
149
|
+
}
|
|
150
|
+
export const FollowTargetButton = /*#__PURE__*/memo(function FollowTargetButton({
|
|
151
|
+
targetId,
|
|
152
|
+
verb = 'follow',
|
|
153
|
+
labels,
|
|
154
|
+
size = 'medium',
|
|
155
|
+
style,
|
|
156
|
+
disabled = false,
|
|
157
|
+
showOptions = true,
|
|
158
|
+
durations = DEFAULT_DURATIONS,
|
|
159
|
+
applicationName,
|
|
160
|
+
onChange
|
|
161
|
+
}) {
|
|
162
|
+
const {
|
|
163
|
+
status,
|
|
164
|
+
isFollowing,
|
|
165
|
+
isUnknown,
|
|
166
|
+
isPending,
|
|
167
|
+
follow,
|
|
168
|
+
unfollow,
|
|
169
|
+
disableHere,
|
|
170
|
+
enableHere
|
|
171
|
+
} = useFollowTarget(targetId);
|
|
172
|
+
const text = useMemo(() => ({
|
|
173
|
+
...VERB_LABELS[verb],
|
|
174
|
+
...labels
|
|
175
|
+
}), [verb, labels]);
|
|
176
|
+
const label = useMemo(() => {
|
|
177
|
+
if (status.globalState === 'requested') return text.pending;
|
|
178
|
+
if (!isFollowing) return text.idle;
|
|
179
|
+
// Followed globally but switched off here. `effectiveState` reports
|
|
180
|
+
// `not_following` for this, correctly — the question it answers is "does
|
|
181
|
+
// this act here" — so the label has to be derived from the other two.
|
|
182
|
+
return status.applicationMode === 'disabled' ? text.disabled : text.active;
|
|
183
|
+
}, [isFollowing, status.globalState, status.applicationMode, text]);
|
|
184
|
+
const handlePrimary = useCallback(async () => {
|
|
185
|
+
if (isFollowing) {
|
|
186
|
+
await unfollow();
|
|
187
|
+
onChange?.(false);
|
|
188
|
+
return;
|
|
189
|
+
}
|
|
190
|
+
await follow();
|
|
191
|
+
onChange?.(true);
|
|
192
|
+
}, [isFollowing, follow, unfollow, onChange]);
|
|
193
|
+
const handleTimed = useCallback(async (seconds, durationLabel) => {
|
|
194
|
+
await follow({
|
|
195
|
+
expiresIn: seconds
|
|
196
|
+
});
|
|
197
|
+
onChange?.(true);
|
|
198
|
+
// The confirmation is the point: a follow that ends on its own is a
|
|
199
|
+
// promise, and a user who does not see it made will not believe it.
|
|
200
|
+
toast.success(`Following for ${durationLabel.toLowerCase()}`);
|
|
201
|
+
}, [follow, onChange]);
|
|
202
|
+
const menuItems = useMemo(() => buildFollowMenuItems({
|
|
203
|
+
following: isFollowing,
|
|
204
|
+
applicationMode: status.applicationMode,
|
|
205
|
+
hasRelationship: Boolean(status.relationshipId),
|
|
206
|
+
isPending,
|
|
207
|
+
durations,
|
|
208
|
+
idleVerb: text.idle,
|
|
209
|
+
applicationName: applicationName ?? 'this app'
|
|
210
|
+
}), [isFollowing, status.applicationMode, status.relationshipId, isPending, durations, text.idle, applicationName]);
|
|
211
|
+
const runItem = useCallback(item => {
|
|
212
|
+
switch (item.action.type) {
|
|
213
|
+
case 'follow-timed':
|
|
214
|
+
void handleTimed(item.action.seconds, item.action.durationLabel);
|
|
215
|
+
return;
|
|
216
|
+
case 'enable-here':
|
|
217
|
+
void enableHere();
|
|
218
|
+
return;
|
|
219
|
+
case 'disable-here':
|
|
220
|
+
void disableHere();
|
|
221
|
+
return;
|
|
222
|
+
case 'unfollow':
|
|
223
|
+
void unfollow();
|
|
224
|
+
onChange?.(false);
|
|
225
|
+
}
|
|
226
|
+
}, [handleTimed, enableHere, disableHere, unfollow, onChange]);
|
|
227
|
+
const primary = /*#__PURE__*/_jsx(Button, {
|
|
228
|
+
variant: isFollowing ? 'secondary' : 'primary',
|
|
229
|
+
size: size
|
|
230
|
+
// Unknown is not "not following": the button stays inert until the first
|
|
231
|
+
// read settles rather than inviting a follow that may already exist.
|
|
232
|
+
,
|
|
233
|
+
disabled: disabled || isUnknown,
|
|
234
|
+
loading: isPending,
|
|
235
|
+
onPress: () => void handlePrimary(),
|
|
236
|
+
accessibilityLabel: label,
|
|
237
|
+
children: label
|
|
238
|
+
});
|
|
239
|
+
if (!showOptions || menuItems.length === 0) {
|
|
240
|
+
return /*#__PURE__*/_jsx(View, {
|
|
241
|
+
style: style,
|
|
242
|
+
children: primary
|
|
243
|
+
});
|
|
244
|
+
}
|
|
245
|
+
return /*#__PURE__*/_jsxs(View, {
|
|
246
|
+
style: [{
|
|
247
|
+
flexDirection: 'row',
|
|
248
|
+
alignItems: 'center',
|
|
249
|
+
gap: 4
|
|
250
|
+
}, style],
|
|
251
|
+
children: [primary, /*#__PURE__*/_jsxs(Menu, {
|
|
252
|
+
children: [/*#__PURE__*/_jsx(MenuTrigger, {
|
|
253
|
+
label: `${label} options`,
|
|
254
|
+
hint: "Opens follow options",
|
|
255
|
+
children: ({
|
|
256
|
+
props
|
|
257
|
+
}) =>
|
|
258
|
+
/*#__PURE__*/
|
|
259
|
+
// The trigger's props are mapped rather than spread: `MenuTrigger`
|
|
260
|
+
// hands back a DOM-ish bag (focus handlers, an accessibility role)
|
|
261
|
+
// and `Button` accepts a different set, so a spread would pass
|
|
262
|
+
// props it silently drops.
|
|
263
|
+
_jsx(Button, {
|
|
264
|
+
variant: "secondary",
|
|
265
|
+
size: size === 'large' ? 'large' : 'small',
|
|
266
|
+
icon: /*#__PURE__*/_jsx(ChevronDown, {
|
|
267
|
+
width: 16
|
|
268
|
+
}),
|
|
269
|
+
disabled: disabled || isUnknown,
|
|
270
|
+
onPress: props.onPress,
|
|
271
|
+
accessibilityLabel: props.accessibilityLabel,
|
|
272
|
+
accessibilityHint: props.accessibilityHint
|
|
273
|
+
})
|
|
274
|
+
}), /*#__PURE__*/_jsx(MenuContent, {
|
|
275
|
+
showCancel: true,
|
|
276
|
+
children: menuItems.map(item => /*#__PURE__*/_jsx(MenuItem, {
|
|
277
|
+
label: item.label,
|
|
278
|
+
onPress: () => runItem(item),
|
|
279
|
+
children: /*#__PURE__*/_jsx(MenuItemText, {
|
|
280
|
+
children: item.label
|
|
281
|
+
})
|
|
282
|
+
}, item.key))
|
|
283
|
+
})]
|
|
284
|
+
})]
|
|
285
|
+
});
|
|
286
|
+
});
|
|
287
|
+
//# sourceMappingURL=FollowTargetButton.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"names":["memo","useCallback","useMemo","View","Button","ChevronBottom_Stroke2_Corner0_Rounded","ChevronDown","Menu","MenuContent","MenuItem","MenuItemText","MenuTrigger","toast","useFollowTarget","jsx","_jsx","jsxs","_jsxs","VERB_LABELS","follow","idle","active","pending","disabled","subscribe","join","watch","HOUR","DEFAULT_DURATIONS","label","seconds","buildFollowMenuItems","input","items","following","durations","d","push","key","idleVerb","toLowerCase","action","type","durationLabel","hasRelationship","isPending","applicationMode","applicationName","FollowTargetButton","targetId","verb","labels","size","style","showOptions","onChange","status","isFollowing","isUnknown","unfollow","disableHere","enableHere","text","globalState","handlePrimary","handleTimed","expiresIn","success","menuItems","Boolean","relationshipId","runItem","item","primary","variant","loading","onPress","accessibilityLabel","children","length","flexDirection","alignItems","gap","hint","props","icon","width","accessibilityHint","showCancel","map"],"sourceRoot":"../../../../src","sources":["ui/components/FollowTargetButton.tsx"],"mappings":"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","ignoreList":[]}
|
|
@@ -0,0 +1,136 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
|
|
3
|
+
/**
|
|
4
|
+
* `useFollowTarget` — the one hook every application uses to follow anything.
|
|
5
|
+
*
|
|
6
|
+
* Wraps the `/v2/follows` SDK methods with the store above, an optimistic
|
|
7
|
+
* update, and a rollback. Nothing in here knows what kind of thing it is
|
|
8
|
+
* following, which is the property that lets an application the SDK has never
|
|
9
|
+
* heard of use it without a release of this package.
|
|
10
|
+
*
|
|
11
|
+
* ## Optimism, and its one limit
|
|
12
|
+
*
|
|
13
|
+
* A follow flips the button immediately and rolls back if the server refuses,
|
|
14
|
+
* because the round trip is long enough to feel like a bug otherwise. But an
|
|
15
|
+
* optimistic follow has no relationship id until the server answers, and every
|
|
16
|
+
* other operation addresses the relationship — so those stay disabled for the
|
|
17
|
+
* width of one request rather than being sent with a guessed id.
|
|
18
|
+
*/
|
|
19
|
+
|
|
20
|
+
import { useCallback, useEffect } from 'react';
|
|
21
|
+
import { useOxy } from "../context/OxyContext.js";
|
|
22
|
+
import { isFollowedGlobally, UNKNOWN_FOLLOW_STATUS, useFollowTargetStore, withApplicationMode } from "../stores/followTargetStore.js";
|
|
23
|
+
export function useFollowTarget(targetId, options) {
|
|
24
|
+
const {
|
|
25
|
+
oxyServices,
|
|
26
|
+
canUsePrivateApi
|
|
27
|
+
} = useOxy();
|
|
28
|
+
const status = useFollowTargetStore(useCallback(s => targetId ? s.statuses[targetId] : undefined, [targetId]));
|
|
29
|
+
const isPending = useFollowTargetStore(useCallback(s => targetId ? s.pending[targetId] ?? false : false, [targetId]));
|
|
30
|
+
const error = useFollowTargetStore(useCallback(s => targetId ? s.errors[targetId] : undefined, [targetId]));
|
|
31
|
+
const initialStatus = options?.initialStatus;
|
|
32
|
+
|
|
33
|
+
// A caller that already knows the status — a follow list, a feed payload —
|
|
34
|
+
// seeds it rather than making this hook re-ask once per rendered row.
|
|
35
|
+
useEffect(() => {
|
|
36
|
+
if (!targetId || !initialStatus) return;
|
|
37
|
+
const store = useFollowTargetStore.getState();
|
|
38
|
+
if (!store.statuses[targetId]) store.setStatus(targetId, initialStatus);
|
|
39
|
+
}, [targetId, initialStatus]);
|
|
40
|
+
const refresh = useCallback(async () => {
|
|
41
|
+
// Gated on `canUsePrivateApi`, not on `isAuthenticated`: during the session
|
|
42
|
+
// cold boot the second is true well before the first, and a read sent in
|
|
43
|
+
// that window 401s and would leave the button stuck reporting an error the
|
|
44
|
+
// user cannot act on.
|
|
45
|
+
if (!targetId || !canUsePrivateApi) return;
|
|
46
|
+
try {
|
|
47
|
+
const next = await oxyServices.getFollowTargetStatus(targetId);
|
|
48
|
+
useFollowTargetStore.getState().setStatus(targetId, next);
|
|
49
|
+
useFollowTargetStore.getState().setError(targetId, undefined);
|
|
50
|
+
} catch (e) {
|
|
51
|
+
useFollowTargetStore.getState().setError(targetId, e instanceof Error ? e.message : 'Could not read follow status');
|
|
52
|
+
}
|
|
53
|
+
}, [targetId, canUsePrivateApi, oxyServices]);
|
|
54
|
+
useEffect(() => {
|
|
55
|
+
if (!targetId || !canUsePrivateApi) return;
|
|
56
|
+
if (useFollowTargetStore.getState().statuses[targetId]) return;
|
|
57
|
+
void refresh();
|
|
58
|
+
}, [targetId, canUsePrivateApi, refresh]);
|
|
59
|
+
|
|
60
|
+
/**
|
|
61
|
+
* Run a mutation optimistically: show `optimistic` at once, keep the previous
|
|
62
|
+
* value, and put it back if the server refuses. Every mutation below goes
|
|
63
|
+
* through this so the rollback cannot be forgotten in one of them.
|
|
64
|
+
*/
|
|
65
|
+
const mutate = useCallback(async (optimistic, run, failureMessage) => {
|
|
66
|
+
if (!targetId) return;
|
|
67
|
+
const store = useFollowTargetStore.getState();
|
|
68
|
+
const previous = store.statuses[targetId];
|
|
69
|
+
store.setStatus(targetId, optimistic);
|
|
70
|
+
store.setPending(targetId, true);
|
|
71
|
+
store.setError(targetId, undefined);
|
|
72
|
+
try {
|
|
73
|
+
const settled = await run();
|
|
74
|
+
if (settled) useFollowTargetStore.getState().setStatus(targetId, settled);
|
|
75
|
+
} catch (e) {
|
|
76
|
+
const s = useFollowTargetStore.getState();
|
|
77
|
+
// Back to what was true, not to a guess. Clearing the entry instead
|
|
78
|
+
// would make the next render ask again and flash the wrong state.
|
|
79
|
+
if (previous) s.setStatus(targetId, previous);
|
|
80
|
+
s.setError(targetId, e instanceof Error ? e.message : failureMessage);
|
|
81
|
+
} finally {
|
|
82
|
+
useFollowTargetStore.getState().setPending(targetId, false);
|
|
83
|
+
}
|
|
84
|
+
}, [targetId]);
|
|
85
|
+
const current = status ?? UNKNOWN_FOLLOW_STATUS;
|
|
86
|
+
const follow = useCallback(async opts => {
|
|
87
|
+
if (!targetId) return;
|
|
88
|
+
await mutate({
|
|
89
|
+
...withApplicationMode({
|
|
90
|
+
...current,
|
|
91
|
+
globalState: 'active'
|
|
92
|
+
}, current.applicationMode),
|
|
93
|
+
...(opts?.expiresIn ? {
|
|
94
|
+
expiresAt: new Date(Date.now() + opts.expiresIn * 1000).toISOString()
|
|
95
|
+
} : {})
|
|
96
|
+
},
|
|
97
|
+
// The server returns the whole resulting status, so store it rather
|
|
98
|
+
// than reconstructing one: `effectiveState`'s derivation lives there,
|
|
99
|
+
// and a client recomputing it is a second implementation of one rule.
|
|
100
|
+
async () => (await oxyServices.followTarget(targetId, opts)).status, 'Could not follow');
|
|
101
|
+
}, [targetId, current, mutate, oxyServices]);
|
|
102
|
+
const unfollow = useCallback(async () => {
|
|
103
|
+
const relationshipId = current.relationshipId;
|
|
104
|
+
if (!targetId || !relationshipId) return;
|
|
105
|
+
await mutate({
|
|
106
|
+
...UNKNOWN_FOLLOW_STATUS
|
|
107
|
+
}, async () => {
|
|
108
|
+
await oxyServices.unfollowTarget(relationshipId);
|
|
109
|
+
return {
|
|
110
|
+
...UNKNOWN_FOLLOW_STATUS
|
|
111
|
+
};
|
|
112
|
+
}, 'Could not unfollow');
|
|
113
|
+
}, [targetId, current.relationshipId, mutate, oxyServices]);
|
|
114
|
+
const setMode = useCallback(async mode => {
|
|
115
|
+
const relationshipId = current.relationshipId;
|
|
116
|
+
if (!targetId || !relationshipId) return;
|
|
117
|
+
await mutate(withApplicationMode(current, mode), async () => {
|
|
118
|
+
await oxyServices.setFollowApplicationMode(relationshipId, mode);
|
|
119
|
+
}, 'Could not change this app’s setting for this follow');
|
|
120
|
+
}, [targetId, current, mutate, oxyServices]);
|
|
121
|
+
const disableHere = useCallback(() => setMode('disabled'), [setMode]);
|
|
122
|
+
const enableHere = useCallback(() => setMode('enabled'), [setMode]);
|
|
123
|
+
return {
|
|
124
|
+
status: current,
|
|
125
|
+
isFollowing: isFollowedGlobally(current),
|
|
126
|
+
isUnknown: status === undefined,
|
|
127
|
+
isPending,
|
|
128
|
+
error,
|
|
129
|
+
follow,
|
|
130
|
+
unfollow,
|
|
131
|
+
disableHere,
|
|
132
|
+
enableHere,
|
|
133
|
+
refresh
|
|
134
|
+
};
|
|
135
|
+
}
|
|
136
|
+
//# sourceMappingURL=useFollowTarget.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"names":["useCallback","useEffect","useOxy","isFollowedGlobally","UNKNOWN_FOLLOW_STATUS","useFollowTargetStore","withApplicationMode","useFollowTarget","targetId","options","oxyServices","canUsePrivateApi","status","s","statuses","undefined","isPending","pending","error","errors","initialStatus","store","getState","setStatus","refresh","next","getFollowTargetStatus","setError","e","Error","message","mutate","optimistic","run","failureMessage","previous","setPending","settled","current","follow","opts","globalState","applicationMode","expiresIn","expiresAt","Date","now","toISOString","followTarget","unfollow","relationshipId","unfollowTarget","setMode","mode","setFollowApplicationMode","disableHere","enableHere","isFollowing","isUnknown"],"sourceRoot":"../../../../src","sources":["ui/hooks/useFollowTarget.ts"],"mappings":"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","ignoreList":[]}
|
|
@@ -11,6 +11,7 @@ import { Text } from '@oxyhq/bloom/typography';
|
|
|
11
11
|
import { Button } from '@oxyhq/bloom/button';
|
|
12
12
|
import { TextField, TextFieldInput } from '@oxyhq/bloom/text-field';
|
|
13
13
|
import { Divider } from '@oxyhq/bloom/divider';
|
|
14
|
+
import { getNormalizedUserHandle } from '@oxyhq/core';
|
|
14
15
|
import { useOxy } from "../context/OxyContext.js";
|
|
15
16
|
import { useI18n } from "../hooks/useI18n.js";
|
|
16
17
|
import { useSurfaceHeader } from "../hooks/useSurfaceHeader.js";
|
|
@@ -74,10 +75,36 @@ const AccountMembersScreen = ({
|
|
|
74
75
|
enabled: canUsePrivateApi && id.length > 0 && canRead
|
|
75
76
|
});
|
|
76
77
|
const members = useMemo(() => membersQuery.data ?? [], [membersQuery.data]);
|
|
77
|
-
const
|
|
78
|
+
const memberUserIds = useMemo(() => [...new Set(members.map(member => member.memberUserId).filter(id => id.length > 0))], [members]);
|
|
79
|
+
const memberProfilesQuery = useQuery({
|
|
80
|
+
queryKey: ['users', 'by-ids', memberUserIds],
|
|
81
|
+
queryFn: () => oxyServices.getUsersByIds(memberUserIds),
|
|
82
|
+
enabled: canUsePrivateApi && memberUserIds.length > 0
|
|
83
|
+
});
|
|
84
|
+
const memberLabelByUserId = useMemo(() => {
|
|
85
|
+
const labels = new Map();
|
|
86
|
+
for (const profile of memberProfilesQuery.data ?? []) {
|
|
87
|
+
// `getNormalizedUserHandle` answers null for an actor with no resolvable
|
|
88
|
+
// handle. Leaving that entry out is what lets `memberDisplayLabel`'s own
|
|
89
|
+
// fallback run, rather than storing a null the map is not typed to hold.
|
|
90
|
+
const handle = getNormalizedUserHandle(profile);
|
|
91
|
+
if (handle) labels.set(profile.id, handle);
|
|
92
|
+
}
|
|
93
|
+
return labels;
|
|
94
|
+
}, [memberProfilesQuery.data]);
|
|
95
|
+
const memberDisplayLabel = useCallback(memberUserId => memberLabelByUserId.get(memberUserId) ?? memberUserId, [memberLabelByUserId]);
|
|
96
|
+
// DIRECT owners only. The list also carries members whose row lives on an
|
|
97
|
+
// ancestor, and the last-owner rule this count feeds is about the rows on THIS
|
|
98
|
+
// account — the server's guard counts those. Including an inherited owner
|
|
99
|
+
// would make a child that has no owner of its own look like it has exactly
|
|
100
|
+
// one, and silently disable removing anybody.
|
|
101
|
+
const ownerCount = useMemo(() => members.filter(m => m.role === 'owner' && (m.source ?? 'direct') === 'direct').length, [members]);
|
|
78
102
|
const invalidateMembers = useCallback(() => {
|
|
103
|
+
// Inherited rows on descendant rosters derive from ancestor membership
|
|
104
|
+
// tables — mirror the SDK's per-account prefix sweep so every cached member
|
|
105
|
+
// list refetches, not only the account that was mutated.
|
|
79
106
|
queryClient.invalidateQueries({
|
|
80
|
-
queryKey: ['accounts', 'members'
|
|
107
|
+
queryKey: ['accounts', 'members']
|
|
81
108
|
});
|
|
82
109
|
queryClient.invalidateQueries({
|
|
83
110
|
queryKey: ['accounts', 'detail', id]
|
|
@@ -282,9 +309,16 @@ const AccountMembersScreen = ({
|
|
|
282
309
|
children: members.map((member, index) => {
|
|
283
310
|
const isOwner = member.role === 'owner';
|
|
284
311
|
const isLastOwner = isOwner && ownerCount <= 1;
|
|
285
|
-
|
|
286
|
-
|
|
287
|
-
|
|
312
|
+
// An INHERITED entry's row lives on an ancestor account, and
|
|
313
|
+
// every member mutation is scoped to rows on the account in
|
|
314
|
+
// the path — so offering to edit, remove or promote one would
|
|
315
|
+
// be offering a request the server answers 404. The row is
|
|
316
|
+
// changed where it lives, on that ancestor's own member
|
|
317
|
+
// screen.
|
|
318
|
+
const isEditableHere = (member.source ?? 'direct') === 'direct';
|
|
319
|
+
const canEditThisRole = canUpdate && isEditableHere && !isOwner;
|
|
320
|
+
const canRemoveThisMember = canRemove && isEditableHere && !isLastOwner && (!isOwner || canTransfer);
|
|
321
|
+
const canTransferToThis = canTransfer && isEditableHere && !isOwner && member.status === 'active';
|
|
288
322
|
return /*#__PURE__*/_jsxs(View, {
|
|
289
323
|
children: [index > 0 ? /*#__PURE__*/_jsx(Divider, {
|
|
290
324
|
color: colors.border,
|
|
@@ -296,7 +330,7 @@ const AccountMembersScreen = ({
|
|
|
296
330
|
children: [/*#__PURE__*/_jsx(Text, {
|
|
297
331
|
className: "text-body font-bodyBold text-text flex-1",
|
|
298
332
|
numberOfLines: 1,
|
|
299
|
-
children: member.memberUserId
|
|
333
|
+
children: memberDisplayLabel(member.memberUserId)
|
|
300
334
|
}), isOwner ? /*#__PURE__*/_jsx(View, {
|
|
301
335
|
className: "px-space-8 py-space-4 rounded-radius-full",
|
|
302
336
|
style: {
|
|
@@ -309,6 +343,15 @@ const AccountMembersScreen = ({
|
|
|
309
343
|
},
|
|
310
344
|
children: roleLabel('owner')
|
|
311
345
|
})
|
|
346
|
+
}) : null, !isEditableHere ? /*#__PURE__*/_jsx(View, {
|
|
347
|
+
className: "px-space-8 py-space-4 rounded-radius-full",
|
|
348
|
+
style: {
|
|
349
|
+
backgroundColor: colors.card
|
|
350
|
+
},
|
|
351
|
+
children: /*#__PURE__*/_jsx(Text, {
|
|
352
|
+
className: "text-caption font-caption text-text-secondary",
|
|
353
|
+
children: t('accounts.members.inherited') || 'Inherited'
|
|
354
|
+
})
|
|
312
355
|
}) : null, member.status !== 'active' ? /*#__PURE__*/_jsx(View, {
|
|
313
356
|
className: "px-space-8 py-space-4 rounded-radius-full",
|
|
314
357
|
style: {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["useCallback","useMemo","useState","View","TouchableOpacity","ActivityIndicator","Ionicons","useQuery","useMutation","useQueryClient","toast","surfaces","useTheme","Text","Button","TextField","TextFieldInput","Divider","useOxy","useI18n","useSurfaceHeader","jsx","_jsx","Fragment","_Fragment","jsxs","_jsxs","ASSIGNABLE_ROLES","errorMessage","error","fallback","Error","message","isUserNotFound","toLowerCase","includes","AccountMembersScreen","onClose","goBack","accountId","bloomTheme","colors","t","title","subtitle","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","handleInvite","usernameOrEmail","trim","mutate","handleChangeRole","member","_id","confirmRemove","confirmed","confirm","confirmLabel","cancelLabel","destructive","confirmTransfer","memberUserId","children","className","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","primarySubtle","name","size","icon"],"sourceRoot":"../../../../src","sources":["ui/screens/AccountMembersScreen.tsx"],"mappings":"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","ignoreList":[]}
|
|
1
|
+
{"version":3,"names":["useCallback","useMemo","useState","View","TouchableOpacity","ActivityIndicator","Ionicons","useQuery","useMutation","useQueryClient","toast","surfaces","useTheme","Text","Button","TextField","TextFieldInput","Divider","getNormalizedUserHandle","useOxy","useI18n","useSurfaceHeader","jsx","_jsx","Fragment","_Fragment","jsxs","_jsxs","ASSIGNABLE_ROLES","errorMessage","error","fallback","Error","message","isUserNotFound","toLowerCase","includes","AccountMembersScreen","onClose","goBack","accountId","bloomTheme","colors","t","title","subtitle","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","memberUserIds","Set","map","member","memberUserId","filter","memberProfilesQuery","getUsersByIds","memberLabelByUserId","labels","Map","profile","handle","set","memberDisplayLabel","get","ownerCount","m","source","invalidateMembers","invalidateQueries","inviteIdentifier","setInviteIdentifier","inviteRole","setInviteRole","inviteError","setInviteError","inviteMutation","mutationKey","mutationFn","input","inviteAccountMember","onSuccess","success","onError","updateMutation","updateAccountMember","memberId","removeMutation","removeAccountMember","transferMutation","userId","transferAccountOwnership","handleInvite","usernameOrEmail","trim","mutate","handleChangeRole","_id","confirmRemove","confirmed","confirm","confirmLabel","cancelLabel","destructive","confirmTransfer","children","className","isLoading","isInvalid","floatingLabel","label","value","onChangeText","autoCapitalize","autoCorrect","autoComplete","style","color","negative","selected","accessibilityRole","accessibilityState","accessibilityLabel","onPress","activeOpacity","backgroundColor","primary","card","borderWidth","borderColor","border","background","text","variant","disabled","isPending","loading","index","isOwner","isLastOwner","isEditableHere","canEditThisRole","canRemoveThisMember","canTransferToThis","status","spacing","numberOfLines","primarySubtle","name","size","icon"],"sourceRoot":"../../../../src","sources":["ui/screens/AccountMembersScreen.tsx"],"mappings":"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","ignoreList":[]}
|