Bluesky app fork with some witchin' additions 💫

Add context for toast messages (#7902)

* add context for toast

* add

authored by quiple.dev and committed by

GitHub a7db0bac 29eef618

+64 -48
+1 -1
src/components/FeedCard.tsx
··· 269 269 }, 270 270 ]) 271 271 } 272 - Toast.show(_(msg`Feeds updated!`)) 272 + Toast.show(_(msg({message: 'Feeds updated!', context: 'toast'}))) 273 273 } catch (err: any) { 274 274 logger.error(err, {message: `FeedCard: failed to update feeds`, pin}) 275 275 Toast.show(_(msg`Failed to update feeds`), 'xmark')
+2 -2
src/components/dms/ConvoMenu.tsx
··· 173 173 const {mutate: muteConvo} = useMuteConvo(convoId, { 174 174 onSuccess: data => { 175 175 if (data.convo.muted) { 176 - Toast.show(_(msg`Chat muted`)) 176 + Toast.show(_(msg({message: 'Chat muted', context: 'toast'}))) 177 177 } else { 178 - Toast.show(_(msg`Chat unmuted`)) 178 + Toast.show(_(msg({message: 'Chat unmuted', context: 'toast'}))) 179 179 } 180 180 }, 181 181 onError: () => {
+3 -1
src/components/dms/MessageMenu.tsx
··· 69 69 LayoutAnimation.configureNext(LayoutAnimation.Presets.easeInEaseOut) 70 70 convo 71 71 .deleteMessage(message.id) 72 - .then(() => Toast.show(_(msg`Message deleted`))) 72 + .then(() => 73 + Toast.show(_(msg({message: 'Message deleted', context: 'toast'}))), 74 + ) 73 75 .catch(() => Toast.show(_(msg`Failed to delete message`))) 74 76 }, [_, convo, message.id]) 75 77
+3 -3
src/components/dms/ReportDialog.tsx
··· 315 315 let toastMsg: string | undefined 316 316 if (actions.includes('leave') && actions.includes('block')) { 317 317 btnText = _(msg`Block and Delete`) 318 - toastMsg = _(msg`Conversation deleted`) 318 + toastMsg = _(msg({message: 'Conversation deleted', context: 'toast'})) 319 319 } else if (actions.includes('leave')) { 320 320 btnText = _(msg`Delete Conversation`) 321 - toastMsg = _(msg`Conversation deleted`) 321 + toastMsg = _(msg({message: 'Conversation deleted', context: 'toast'})) 322 322 } else if (actions.includes('block')) { 323 323 btnText = _(msg`Block User`) 324 - toastMsg = _(msg`User blocked`) 324 + toastMsg = _(msg({message: 'User blocked', context: 'toast'})) 325 325 } 326 326 327 327 const onPressPrimaryAction = () => {
+1 -1
src/components/moderation/LabelsOnMeDialog.tsx
··· 255 255 }, 256 256 onSuccess: () => { 257 257 control.close() 258 - Toast.show(_(msg`Appeal submitted`)) 258 + Toast.show(_(msg({message: 'Appeal submitted', context: 'toast'}))) 259 259 }, 260 260 }) 261 261
+1 -1
src/screens/Messages/components/ChatDisabled.tsx
··· 88 88 }, 89 89 onSuccess: () => { 90 90 control.close() 91 - Toast.show(_(msg`Appeal submitted`)) 91 + Toast.show(_(msg({message: 'Appeal submitted', context: 'toast'}))) 92 92 }, 93 93 }) 94 94
+1 -1
src/screens/ModerationInteractionSettings/index.tsx
··· 99 99 threadgateAllowUISettingToAllowRecordValue(maybeEditedAllowUI), 100 100 postgateEmbeddingRules: maybeEditedPostgate.embeddingRules ?? [], 101 101 }) 102 - Toast.show(_(msg`Settings saved`)) 102 + Toast.show(_(msg({message: 'Settings saved', context: 'toast'}))) 103 103 } catch (e: any) { 104 104 logger.error(`Failed to save post interaction settings`, { 105 105 source: 'ModerationInteractionSettingsScreen',
+1 -1
src/screens/Profile/Header/EditProfileDialog.tsx
··· 188 188 }) 189 189 onUpdate?.() 190 190 control.close() 191 - Toast.show(_(msg`Profile updated`)) 191 + Toast.show(_(msg({message: 'Profile updated', context: 'toast'}))) 192 192 } catch (e: any) { 193 193 logger.error('Failed to update user profile', {message: String(e)}) 194 194 }
+1 -1
src/screens/Profile/Header/ProfileHeaderStandard.tsx
··· 134 134 const unblockAccount = React.useCallback(async () => { 135 135 try { 136 136 await queueUnblock() 137 - Toast.show(_(msg`Account unblocked`)) 137 + Toast.show(_(msg({message: 'Account unblocked', context: 'toast'}))) 138 138 } catch (e: any) { 139 139 if (e?.name !== 'AbortError') { 140 140 logger.error('Failed to unblock account', {message: e})
+12 -2
src/screens/Settings/AboutSettings.tsx
··· 77 77 setDevModeEnabled(newDevModeEnabled) 78 78 Toast.show( 79 79 newDevModeEnabled 80 - ? _(msg`Developer mode enabled`) 81 - : _(msg`Developer mode disabled`), 80 + ? _( 81 + msg({ 82 + message: 'Developer mode enabled', 83 + context: 'toast', 84 + }), 85 + ) 86 + : _( 87 + msg({ 88 + message: 'Developer mode disabled', 89 + context: 'toast', 90 + }), 91 + ), 82 92 ) 83 93 }} 84 94 onPress={() => {
+1 -1
src/screens/Settings/AppPasswords.tsx
··· 144 144 145 145 const onDelete = useCallback(async () => { 146 146 await deleteMutation({name: appPassword.name}) 147 - Toast.show(_(msg`App password deleted`)) 147 + Toast.show(_(msg({message: 'App password deleted', context: 'toast'}))) 148 148 }, [deleteMutation, appPassword.name, _]) 149 149 150 150 return (
+1 -1
src/screens/Settings/components/DisableEmail2FADialog.tsx
··· 61 61 emailAuthFactor: false, 62 62 }) 63 63 await agent.resumeSession(agent.session!) 64 - Toast.show(_(msg`Email 2FA disabled`)) 64 + Toast.show(_(msg({message: 'Email 2FA disabled', context: 'toast'}))) 65 65 } 66 66 control.close() 67 67 } catch (e) {
+1 -1
src/state/queries/notifications/settings.ts
··· 41 41 ) 42 42 }, 43 43 onSuccess: () => { 44 - Toast.show(_(msg`Preference saved`)) 44 + Toast.show(_(msg({message: 'Preference saved', context: 'toast'}))) 45 45 }, 46 46 onSettled: () => { 47 47 invalidateCachedUnreadPage()
+2 -2
src/state/queries/pinned-post.ts
··· 56 56 }) 57 57 58 58 if (pinCurrentPost) { 59 - Toast.show(_(msg`Post pinned`)) 59 + Toast.show(_(msg({message: 'Post pinned', context: 'toast'}))) 60 60 } else { 61 - Toast.show(_(msg`Post unpinned`)) 61 + Toast.show(_(msg({message: 'Post unpinned', context: 'toast'}))) 62 62 } 63 63 64 64 queryClient.invalidateQueries({
+2 -2
src/view/com/modals/ChangeEmail.tsx
··· 51 51 } else { 52 52 await agent.com.atproto.server.updateEmail({email: email.trim()}) 53 53 await agent.resumeSession(agent.session!) 54 - Toast.show(_(msg`Email updated`)) 54 + Toast.show(_(msg({message: 'Email updated', context: 'toast'}))) 55 55 setStage(Stages.Done) 56 56 } 57 57 } catch (e) { ··· 80 80 token: confirmationCode.trim(), 81 81 }) 82 82 await agent.resumeSession(agent.session!) 83 - Toast.show(_(msg`Email updated`)) 83 + Toast.show(_(msg({message: 'Email updated', context: 'toast'}))) 84 84 setStage(Stages.Done) 85 85 } catch (e) { 86 86 setError(cleanError(String(e)))
+4 -4
src/view/com/modals/CreateOrEditList.tsx
··· 159 159 }) 160 160 Toast.show( 161 161 isCurateList 162 - ? _(msg`User list updated`) 163 - : _(msg`Moderation list updated`), 162 + ? _(msg({message: 'User list updated', context: 'toast'})) 163 + : _(msg({message: 'Moderation list updated', context: 'toast'})), 164 164 ) 165 165 onSave?.(list.uri) 166 166 } else { ··· 173 173 }) 174 174 Toast.show( 175 175 isCurateList 176 - ? _(msg`User list created`) 177 - : _(msg`Moderation list created`), 176 + ? _(msg({message: 'User list created', context: 'toast'})) 177 + : _(msg({message: 'Moderation list created', context: 'toast'})), 178 178 ) 179 179 onSave?.(res.uri) 180 180 }
+1 -1
src/view/com/modals/EditProfile.tsx
··· 121 121 newUserAvatar, 122 122 newUserBanner, 123 123 }) 124 - Toast.show(_(msg`Profile updated`)) 124 + Toast.show(_(msg({message: 'Profile updated', context: 'toast'}))) 125 125 onUpdate?.() 126 126 closeModal() 127 127 } catch (e: any) {
+1 -1
src/view/com/modals/VerifyEmail.tsx
··· 82 82 token: confirmationCode.trim(), 83 83 }) 84 84 await agent.resumeSession(agent.session!) 85 - Toast.show(_(msg`Email verified`)) 85 + Toast.show(_(msg({message: 'Email verified', context: 'toast'}))) 86 86 closeModal() 87 87 onSuccess?.() 88 88 } catch (e) {
+6 -6
src/view/com/profile/ProfileMenu.tsx
··· 104 104 if (profile.viewer?.muted) { 105 105 try { 106 106 await queueUnmute() 107 - Toast.show(_(msg`Account unmuted`)) 107 + Toast.show(_(msg({message: 'Account unmuted', context: 'toast'}))) 108 108 } catch (e: any) { 109 109 if (e?.name !== 'AbortError') { 110 110 logger.error('Failed to unmute account', {message: e}) ··· 114 114 } else { 115 115 try { 116 116 await queueMute() 117 - Toast.show(_(msg`Account muted`)) 117 + Toast.show(_(msg({message: 'Account muted', context: 'toast'}))) 118 118 } catch (e: any) { 119 119 if (e?.name !== 'AbortError') { 120 120 logger.error('Failed to mute account', {message: e}) ··· 128 128 if (profile.viewer?.blocking) { 129 129 try { 130 130 await queueUnblock() 131 - Toast.show(_(msg`Account unblocked`)) 131 + Toast.show(_(msg({message: 'Account unblocked', context: 'toast'}))) 132 132 } catch (e: any) { 133 133 if (e?.name !== 'AbortError') { 134 134 logger.error('Failed to unblock account', {message: e}) ··· 138 138 } else { 139 139 try { 140 140 await queueBlock() 141 - Toast.show(_(msg`Account blocked`)) 141 + Toast.show(_(msg({message: 'Account blocked', context: 'toast'}))) 142 142 } catch (e: any) { 143 143 if (e?.name !== 'AbortError') { 144 144 logger.error('Failed to block account', {message: e}) ··· 151 151 const onPressFollowAccount = React.useCallback(async () => { 152 152 try { 153 153 await queueFollow() 154 - Toast.show(_(msg`Account followed`)) 154 + Toast.show(_(msg({message: 'Account followed', context: 'toast'}))) 155 155 } catch (e: any) { 156 156 if (e?.name !== 'AbortError') { 157 157 logger.error('Failed to follow account', {message: e}) ··· 163 163 const onPressUnfollowAccount = React.useCallback(async () => { 164 164 try { 165 165 await queueUnfollow() 166 - Toast.show(_(msg`Account unfollowed`)) 166 + Toast.show(_(msg({message: 'Account unfollowed', context: 'toast'}))) 167 167 } catch (e: any) { 168 168 if (e?.name !== 'AbortError') { 169 169 logger.error('Failed to unfollow account', {message: e})
+13 -9
src/view/com/util/forms/PostDropdownBtnMenuItems.tsx
··· 183 183 const onDeletePost = React.useCallback(() => { 184 184 deletePostMutate({uri: postUri}).then( 185 185 () => { 186 - Toast.show(_(msg`Post deleted`)) 186 + Toast.show(_(msg({message: 'Post deleted', context: 'toast'}))) 187 187 188 188 const route = getCurrentRoute(navigation.getState()) 189 189 if (route.name === 'PostThread') { ··· 274 274 item: postUri, 275 275 feedContext: postFeedContext, 276 276 }) 277 - Toast.show(_(msg`Feedback sent!`)) 277 + Toast.show(_(msg({message: 'Feedback sent!', context: 'toast'}))) 278 278 }, [feedFeedback, postUri, postFeedContext, _]) 279 279 280 280 const onPressShowLess = React.useCallback(() => { ··· 283 283 item: postUri, 284 284 feedContext: postFeedContext, 285 285 }) 286 - Toast.show(_(msg`Feedback sent!`)) 286 + Toast.show(_(msg({message: 'Feedback sent!', context: 'toast'}))) 287 287 }, [feedFeedback, postUri, postFeedContext, _]) 288 288 289 289 const onSelectChatToShareTo = React.useCallback( ··· 314 314 : _(msg`Quote post was re-attached`), 315 315 ) 316 316 } catch (e: any) { 317 - Toast.show(_(msg`Updating quote attachment failed`)) 317 + Toast.show( 318 + _(msg({message: 'Updating quote attachment failed', context: 'toast'})), 319 + ) 318 320 logger.error(`Failed to ${action} quote`, {safeMessage: e.message}) 319 321 } 320 322 }, [_, quoteEmbed, post, toggleQuoteDetachment]) ··· 341 343 Toast.show( 342 344 isHide 343 345 ? _(msg`Reply was successfully hidden`) 344 - : _(msg`Reply visibility updated`), 346 + : _(msg({message: 'Reply visibility updated', context: 'toast'})), 345 347 ) 346 348 } catch (e: any) { 347 - Toast.show(_(msg`Updating reply visibility failed`)) 349 + Toast.show( 350 + _(msg({message: 'Updating reply visibility failed', context: 'toast'})), 351 + ) 348 352 logger.error(`Failed to ${action} reply`, {safeMessage: e.message}) 349 353 } 350 354 }, [ ··· 368 372 const onBlockAuthor = useCallback(async () => { 369 373 try { 370 374 await queueBlock() 371 - Toast.show(_(msg`Account blocked`)) 375 + Toast.show(_(msg({message: 'Account blocked', context: 'toast'}))) 372 376 } catch (e: any) { 373 377 if (e?.name !== 'AbortError') { 374 378 logger.error('Failed to block account', {message: e}) ··· 381 385 if (postAuthor.viewer?.muted) { 382 386 try { 383 387 await queueUnmute() 384 - Toast.show(_(msg`Account unmuted`)) 388 + Toast.show(_(msg({message: 'Account unmuted', context: 'toast'}))) 385 389 } catch (e: any) { 386 390 if (e?.name !== 'AbortError') { 387 391 logger.error('Failed to unmute account', {message: e}) ··· 391 395 } else { 392 396 try { 393 397 await queueMute() 394 - Toast.show(_(msg`Account muted`)) 398 + Toast.show(_(msg({message: 'Account muted', context: 'toast'}))) 395 399 } catch (e: any) { 396 400 if (e?.name !== 'AbortError') { 397 401 logger.error('Failed to mute account', {message: e})
+5 -5
src/view/screens/ProfileList.tsx
··· 392 392 const onSubscribeMute = useCallback(async () => { 393 393 try { 394 394 await listMuteMutation.mutateAsync({uri: list.uri, mute: true}) 395 - Toast.show(_(msg`List muted`)) 395 + Toast.show(_(msg({message: 'List muted', context: 'toast'}))) 396 396 } catch { 397 397 Toast.show( 398 398 _( ··· 405 405 const onUnsubscribeMute = useCallback(async () => { 406 406 try { 407 407 await listMuteMutation.mutateAsync({uri: list.uri, mute: false}) 408 - Toast.show(_(msg`List unmuted`)) 408 + Toast.show(_(msg({message: 'List unmuted', context: 'toast'}))) 409 409 } catch { 410 410 Toast.show( 411 411 _( ··· 418 418 const onSubscribeBlock = useCallback(async () => { 419 419 try { 420 420 await listBlockMutation.mutateAsync({uri: list.uri, block: true}) 421 - Toast.show(_(msg`List blocked`)) 421 + Toast.show(_(msg({message: 'List blocked', context: 'toast'}))) 422 422 } catch { 423 423 Toast.show( 424 424 _( ··· 431 431 const onUnsubscribeBlock = useCallback(async () => { 432 432 try { 433 433 await listBlockMutation.mutateAsync({uri: list.uri, block: false}) 434 - Toast.show(_(msg`List unblocked`)) 434 + Toast.show(_(msg({message: 'List unblocked', context: 'toast'}))) 435 435 } catch { 436 436 Toast.show( 437 437 _( ··· 455 455 await removeSavedFeed(savedFeedConfig) 456 456 } 457 457 458 - Toast.show(_(msg`List deleted`)) 458 + Toast.show(_(msg({message: 'List deleted', context: 'toast'}))) 459 459 if (navigation.canGoBack()) { 460 460 navigation.goBack() 461 461 } else {
+1 -1
src/view/screens/SavedFeeds.tsx
··· 79 79 const onSaveChanges = React.useCallback(async () => { 80 80 try { 81 81 await overwriteSavedFeeds(currentFeeds) 82 - Toast.show(_(msg`Feeds updated!`)) 82 + Toast.show(_(msg({message: 'Feeds updated!', context: 'toast'}))) 83 83 navigation.navigate('Feeds') 84 84 } catch (e) { 85 85 Toast.show(_(msg`There was an issue contacting the server`), 'xmark')