diff --git a/src/locale/locales/en/messages.po b/src/locale/locales/en/messages.po index 6f357bf15..36b0c3160 100644 --- a/src/locale/locales/en/messages.po +++ b/src/locale/locales/en/messages.po @@ -8298,8 +8298,8 @@ msgstr "" msgid "Something wrong? Let us know." msgstr "" -#: src/App.native.tsx:125 -#: src/App.web.tsx:101 +#: src/App.native.tsx:128 +#: src/App.web.tsx:100 msgid "Sorry! Your session expired. Please sign in again." msgstr "" -- 2.51.2 From c7ce827bfef59db09d9c93d1fc1fddbebab8bade Mon Sep 17 00:00:00 2001 From: Samuel Newman Date: Tue, 30 Sep 2025 07:28:50 +0300 Subject: [PATCH 2/4] fix gap on profile (#9081) --- .../moderation/LabelsOnMeDialog.tsx | 4 ++- .../moderation/ModerationDetailsDialog.tsx | 4 ++- .../moderation/ProfileHeaderAlerts.tsx | 3 +- src/screens/Profile/Header/Shell.tsx | 34 +++++++++++++------ 4 files changed, 31 insertions(+), 14 deletions(-) diff --git a/src/components/moderation/LabelsOnMeDialog.tsx b/src/components/moderation/LabelsOnMeDialog.tsx index 5d9fd0074..c81743111 100644 --- a/src/components/moderation/LabelsOnMeDialog.tsx +++ b/src/components/moderation/LabelsOnMeDialog.tsx @@ -32,7 +32,9 @@ export interface LabelsOnMeDialogProps { export function LabelsOnMeDialog(props: LabelsOnMeDialogProps) { return ( - + diff --git a/src/components/moderation/ModerationDetailsDialog.tsx b/src/components/moderation/ModerationDetailsDialog.tsx index af48d3342..18cbe26fd 100644 --- a/src/components/moderation/ModerationDetailsDialog.tsx +++ b/src/components/moderation/ModerationDetailsDialog.tsx @@ -24,7 +24,9 @@ export interface ModerationDetailsDialogProps { export function ModerationDetailsDialog(props: ModerationDetailsDialogProps) { return ( - + diff --git a/src/components/moderation/ProfileHeaderAlerts.tsx b/src/components/moderation/ProfileHeaderAlerts.tsx index 21359a86e..f35bf14fe 100644 --- a/src/components/moderation/ProfileHeaderAlerts.tsx +++ b/src/components/moderation/ProfileHeaderAlerts.tsx @@ -6,6 +6,7 @@ import * as Pills from '#/components/Pills' export function ProfileHeaderAlerts({ moderation, + style, }: { moderation: ModerationDecision style?: StyleProp @@ -16,7 +17,7 @@ export function ProfileHeaderAlerts({ } return ( - + {modui.alerts.filter(unique).map(cause => ( - {isMe ? ( - - ) : ( - - )} - - )} + {!isPlaceholderProfile && + (isMe ? ( + + ) : ( + + ))} Date: Tue, 30 Sep 2025 05:27:19 -0700 Subject: [PATCH 3/4] Update admonition component (#9068) * update admonition component * fix linting, adominition alighment * design tweak * edge cases for admonition, update storybook * Update src/components/Admonition.tsx Co-authored-by: Samuel Newman * fix mobile version * change button style --------- Co-authored-by: Samuel Newman --- src/components/Admonition.tsx | 68 ++++++++++------ .../moderation/ReportDialog/index.tsx | 9 ++- .../components/ThreadItemAnchor.tsx | 2 +- src/screens/Settings/AppPasswords.tsx | 2 +- .../ActivityNotificationSettings.tsx | 4 +- .../Settings/PrivacyAndSecuritySettings.tsx | 5 +- src/view/screens/Storybook/Admonitions.tsx | 77 ++++++++++++++++++- 7 files changed, 130 insertions(+), 37 deletions(-) diff --git a/src/components/Admonition.tsx b/src/components/Admonition.tsx index ea6751955..961d94b37 100644 --- a/src/components/Admonition.tsx +++ b/src/components/Admonition.tsx @@ -3,17 +3,13 @@ import {type StyleProp, View, type ViewStyle} from 'react-native' import {atoms as a, useBreakpoints, useTheme} from '#/alf' import {Button as BaseButton, type ButtonProps} from '#/components/Button' -import {CircleInfo_Stroke2_Corner0_Rounded as ErrorIcon} from '#/components/icons/CircleInfo' -import {Eye_Stroke2_Corner0_Rounded as InfoIcon} from '#/components/icons/Eye' -import {Leaf_Stroke2_Corner0_Rounded as TipIcon} from '#/components/icons/Leaf' +import {CircleInfo_Stroke2_Corner0_Rounded as CircleInfoIcon} from '#/components/icons/CircleInfo' +import {CircleX_Stroke2_Corner0_Rounded as CircleXIcon} from '#/components/icons/CircleX' import {Warning_Stroke2_Corner0_Rounded as WarningIcon} from '#/components/icons/Warning' import {Text as BaseText, type TextProps} from '#/components/Typography' export const colors = { - warning: { - light: '#DFBC00', - dark: '#BFAF1F', - }, + warning: '#FFC404', } type Context = { @@ -29,29 +25,44 @@ export function Icon() { const t = useTheme() const {type} = useContext(Context) const Icon = { - info: InfoIcon, - tip: TipIcon, + info: CircleInfoIcon, + tip: CircleInfoIcon, warning: WarningIcon, - error: ErrorIcon, + error: CircleXIcon, }[type] const fill = { info: t.atoms.text_contrast_medium.color, tip: t.palette.primary_500, - warning: colors.warning.light, + warning: colors.warning, error: t.palette.negative_500, }[type] return } +export function Content({ + children, + style, + ...rest +}: { + children: React.ReactNode + style?: StyleProp +}) { + return ( + + {children} + + ) +} + export function Text({ children, style, ...rest }: Pick) { return ( - + {children} ) @@ -60,17 +71,23 @@ export function Text({ export function Button({ children, ...props -}: Omit) { +}: Omit) { return ( - + {children} ) } -export function Row({children}: {children: React.ReactNode}) { +export function Row({ + children, + style, +}: { + children: React.ReactNode + style?: StyleProp +}) { return ( - + {children} ) @@ -88,19 +105,20 @@ export function Outer({ const t = useTheme() const {gtMobile} = useBreakpoints() const borderColor = { - info: t.atoms.border_contrast_low.borderColor, - tip: t.atoms.border_contrast_low.borderColor, - warning: t.atoms.border_contrast_low.borderColor, - error: t.atoms.border_contrast_low.borderColor, + info: t.atoms.border_contrast_high.borderColor, + tip: t.palette.primary_500, + warning: colors.warning, + error: t.palette.negative_500, }[type] return ( @@ -123,7 +141,9 @@ export function Admonition({ - {children} + + {children} + ) diff --git a/src/components/moderation/ReportDialog/index.tsx b/src/components/moderation/ReportDialog/index.tsx index 9293f7530..ebfbe0dcd 100644 --- a/src/components/moderation/ReportDialog/index.tsx +++ b/src/components/moderation/ReportDialog/index.tsx @@ -219,10 +219,13 @@ function Inner(props: ReportDialogProps) { - - Something went wrong, please try again - + + + Something went wrong, please try again + + refetchLabelers()}> diff --git a/src/screens/PostThread/components/ThreadItemAnchor.tsx b/src/screens/PostThread/components/ThreadItemAnchor.tsx index f11748d6d..301124aaa 100644 --- a/src/screens/PostThread/components/ThreadItemAnchor.tsx +++ b/src/screens/PostThread/components/ThreadItemAnchor.tsx @@ -621,7 +621,7 @@ function BackdatedPostIndicator({post}: {post: AppBskyFeedDefs.PostView}) { if (!isBackdated) return null - const orange = t.name === 'light' ? colors.warning.dark : colors.warning.light + const orange = colors.warning return ( <> diff --git a/src/screens/Settings/AppPasswords.tsx b/src/screens/Settings/AppPasswords.tsx index ef7339073..9bacf67cb 100644 --- a/src/screens/Settings/AppPasswords.tsx +++ b/src/screens/Settings/AppPasswords.tsx @@ -195,7 +195,7 @@ function AppPasswordCard({ {appPassword.privileged && ( - + Allows access to direct messages diff --git a/src/screens/Settings/NotificationSettings/ActivityNotificationSettings.tsx b/src/screens/Settings/NotificationSettings/ActivityNotificationSettings.tsx index 3f2503bb8..73613c4c3 100644 --- a/src/screens/Settings/NotificationSettings/ActivityNotificationSettings.tsx +++ b/src/screens/Settings/NotificationSettings/ActivityNotificationSettings.tsx @@ -134,7 +134,7 @@ export function ActivityNotificationSettingsScreen({}: Props) { - + Enable notifications for an account by visiting their @@ -166,7 +166,7 @@ export function ActivityNotificationSettingsScreen({}: Props) { . - + ) : ( diff --git a/src/screens/Settings/PrivacyAndSecuritySettings.tsx b/src/screens/Settings/PrivacyAndSecuritySettings.tsx index 9cf83f479..2e8ffdd61 100644 --- a/src/screens/Settings/PrivacyAndSecuritySettings.tsx +++ b/src/screens/Settings/PrivacyAndSecuritySettings.tsx @@ -1,4 +1,3 @@ -import {View} from 'react-native' import {type AppBskyNotificationDeclaration} from '@atproto/api' import {msg, Trans} from '@lingui/macro' import {useLingui} from '@lingui/react' @@ -112,7 +111,7 @@ export function PrivacyAndSecuritySettingsScreen({}: Props) { - + Note: Bluesky is an open and public network. This setting @@ -131,7 +130,7 @@ export function PrivacyAndSecuritySettingsScreen({}: Props) { Learn more about what is public on Bluesky. - + diff --git a/src/view/screens/Storybook/Admonitions.tsx b/src/view/screens/Storybook/Admonitions.tsx index 988342f17..6badb9ddf 100644 --- a/src/view/screens/Storybook/Admonitions.tsx +++ b/src/view/screens/Storybook/Admonitions.tsx @@ -1,11 +1,27 @@ -import {View} from 'react-native' +import {Text as RNText, View} from 'react-native' +import {msg, Trans} from '@lingui/macro' +import {useLingui} from '@lingui/react' -import {atoms as a} from '#/alf' -import {Admonition} from '#/components/Admonition' +import {atoms as a, useTheme} from '#/alf' +import { + Admonition, + Button as AdmonitionButton, + Content as AdmonitionContent, + Icon as AdmonitionIcon, + Outer as AdmonitionOuter, + Row as AdmonitionRow, + Text as AdmonitionText, +} from '#/components/Admonition' +import {ButtonIcon, ButtonText} from '#/components/Button' +import {ArrowRotateCounterClockwise_Stroke2_Corner0_Rounded as Retry} from '#/components/icons/ArrowRotateCounterClockwise' +import {BellRinging_Filled_Corner0_Rounded as BellRingingFilledIcon} from '#/components/icons/BellRinging' import {InlineLinkText} from '#/components/Link' import {H1} from '#/components/Typography' export function Admonitions() { + const {_} = useLingui() + const t = useTheme() + return (

Admonitions

@@ -30,6 +46,61 @@ export function Admonitions() { The quick brown fox jumps over the lazy dog. + + + + + + + Something went wrong, please try again + + + {}}> + + Retry + + + + + + + + + + + + + Enable notifications for an account by visiting their profile + and pressing the{' '} + + bell icon + {' '} + + . + + + + + If you want to restrict who can receive notifications for your + account's activity, you can change this in{' '} + + Settings → Privacy and Security + + . + + + + +
) } -- 2.51.2 From 3e55e52858de146e46e09b7126d6fbecd77718ed Mon Sep 17 00:00:00 2001 From: Eric Bailey Date: Tue, 30 Sep 2025 08:40:21 -0500 Subject: [PATCH 4/4] Button tweaks (#9106) * Tweak button colors * Semi bold only for tiny buttons --- src/components/Button.tsx | 50 +++++++-------------------------------- 1 file changed, 9 insertions(+), 41 deletions(-) diff --git a/src/components/Button.tsx b/src/components/Button.tsx index 758da701f..5e78c40e2 100644 --- a/src/components/Button.tsx +++ b/src/components/Button.tsx @@ -274,18 +274,10 @@ export const Button = React.forwardRef( } else if (color === 'primary_subtle') { if (!disabled) { baseStyles.push({ - backgroundColor: select(t.name, { - light: t.palette.primary_50, - dim: t.palette.primary_100, - dark: t.palette.primary_100, - }), + backgroundColor: t.palette.primary_50, }) hoverStyles.push({ - backgroundColor: select(t.name, { - light: t.palette.primary_100, - dim: t.palette.primary_200, - dark: t.palette.primary_200, - }), + backgroundColor: t.palette.primary_100, }) } else { baseStyles.push({ @@ -295,18 +287,10 @@ export const Button = React.forwardRef( } else if (color === 'negative_subtle') { if (!disabled) { baseStyles.push({ - backgroundColor: select(t.name, { - light: t.palette.negative_50, - dim: t.palette.negative_100, - dark: t.palette.negative_100, - }), + backgroundColor: t.palette.negative_50, }) hoverStyles.push({ - backgroundColor: select(t.name, { - light: t.palette.negative_100, - dim: t.palette.negative_200, - dark: t.palette.negative_200, - }), + backgroundColor: t.palette.negative_100, }) } else { baseStyles.push({ @@ -618,37 +602,21 @@ export function useSharedButtonTextStyles() { } else if (color === 'primary_subtle') { if (!disabled) { baseStyles.push({ - color: select(t.name, { - light: t.palette.primary_600, - dim: t.palette.primary_800, - dark: t.palette.primary_800, - }), + color: t.palette.primary_600, }) } else { baseStyles.push({ - color: select(t.name, { - light: t.palette.primary_200, - dim: t.palette.primary_200, - dark: t.palette.primary_200, - }), + color: t.palette.primary_200, }) } } else if (color === 'negative_subtle') { if (!disabled) { baseStyles.push({ - color: select(t.name, { - light: t.palette.negative_600, - dim: t.palette.negative_800, - dark: t.palette.negative_800, - }), + color: t.palette.negative_600, }) } else { baseStyles.push({ - color: select(t.name, { - light: t.palette.negative_200, - dim: t.palette.negative_200, - dark: t.palette.negative_200, - }), + color: t.palette.negative_200, }) } } @@ -755,7 +723,7 @@ export function useSharedButtonTextStyles() { } else if (size === 'small') { baseStyles.push(a.text_sm, a.leading_snug, a.font_medium) } else if (size === 'tiny') { - baseStyles.push(a.text_xs, a.leading_snug, a.font_medium) + baseStyles.push(a.text_xs, a.leading_snug, a.font_semi_bold) } return StyleSheet.flatten(baseStyles)