@@ -19,6 +19,7 @@ import { cn } from "@renderer/lib/utils"
19
19
import type { SubscriptionModel } from "@renderer/models"
20
20
import { useUserSubscriptionsQuery } from "@renderer/modules/profile/hooks"
21
21
import { useSubscriptionStore } from "@renderer/store/subscription"
22
+ import { useUserById } from "@renderer/store/user"
22
23
import { useAnimationControls } from "framer-motion"
23
24
import { throttle } from "lodash-es"
24
25
import type { FC } from "react"
@@ -40,6 +41,21 @@ export const UserProfileModalContent: FC<{
40
41
return res . data
41
42
} ) ,
42
43
)
44
+ const storeUser = useUserById ( userId )
45
+
46
+ const userInfo = user . data ?
47
+ {
48
+ avatar : user . data . image ,
49
+ name : user . data . name ,
50
+ handle : user . data . handle ,
51
+ } :
52
+ storeUser ?
53
+ {
54
+ avatar : storeUser . image ,
55
+ name : storeUser . name ,
56
+ handle : storeUser . handle ,
57
+ } :
58
+ null
43
59
44
60
const subscriptions = useUserSubscriptionsQuery ( user . data ?. id )
45
61
const modal = useCurrentModal ( )
@@ -206,7 +222,7 @@ export const UserProfileModalContent: FC<{
206
222
</ ActionButton >
207
223
</ div >
208
224
209
- { user . data && (
225
+ { userInfo && (
210
226
< Fragment >
211
227
< div
212
228
className = { cn (
@@ -222,10 +238,10 @@ export const UserProfileModalContent: FC<{
222
238
) }
223
239
>
224
240
< m . span layout >
225
- < AvatarImage asChild src = { user . data . image || undefined } >
241
+ < AvatarImage asChild src = { userInfo . avatar || undefined } >
226
242
< m . img layout />
227
243
</ AvatarImage >
228
- < AvatarFallback > { user . data . name ?. slice ( 0 , 2 ) } </ AvatarFallback >
244
+ < AvatarFallback > { userInfo . name ?. slice ( 0 , 2 ) } </ AvatarFallback >
229
245
</ m . span >
230
246
</ Avatar >
231
247
< m . div
@@ -241,14 +257,18 @@ export const UserProfileModalContent: FC<{
241
257
isHeaderSimple ? "" : "mt-4" ,
242
258
) }
243
259
>
244
- < m . h1 layout > { user . data . name } </ m . h1 >
260
+ < m . h1 layout > { userInfo . name } </ m . h1 >
261
+ </ m . div >
262
+
263
+ < m . div
264
+ className = { cn (
265
+ "mb-0 text-sm text-zinc-500" ,
266
+ userInfo . handle ? "visible" : "invisible select-none" ,
267
+ ) }
268
+ layout
269
+ >
270
+ @{ userInfo . handle }
245
271
</ m . div >
246
- { ! ! user . data . handle && (
247
- < m . div className = "mb-0 text-sm text-zinc-500" layout >
248
- @
249
- { user . data . handle }
250
- </ m . div >
251
- ) }
252
272
</ m . div >
253
273
</ div >
254
274
< ScrollArea . ScrollArea
@@ -284,7 +304,7 @@ export const UserProfileModalContent: FC<{
284
304
</ Fragment >
285
305
) }
286
306
287
- { ! user . data && < LoadingCircle size = "large" className = "center h-full" /> }
307
+ { ! userInfo && < LoadingCircle size = "large" className = "center h-full" /> }
288
308
</ m . div >
289
309
</ div >
290
310
)
0 commit comments