diff --git a/src/components/Lists.tsx b/src/components/Lists.tsx index 721e877be6..8cbe2810e8 100644 --- a/src/components/Lists.tsx +++ b/src/components/Lists.tsx @@ -136,6 +136,7 @@ let ListMaybePlaceholder = ({ onGoBack, hideBackButton, sideBorders, + topBorder = true, }: { isLoading: boolean noEmpty?: boolean @@ -149,6 +150,7 @@ let ListMaybePlaceholder = ({ onGoBack?: () => void hideBackButton?: boolean sideBorders?: boolean + topBorder?: boolean }): React.ReactNode => { const t = useTheme() const {_} = useLingui() @@ -165,7 +167,7 @@ let ListMaybePlaceholder = ({ {paddingTop: 175, paddingBottom: 110}, ]} sideBorders={sideBorders ?? gtMobile} - topBorder={!gtTablet}> + topBorder={topBorder && !gtTablet}> diff --git a/src/components/dialogs/GifSelect.tsx b/src/components/dialogs/GifSelect.tsx index 57389ba2b7..4a3ce42aa9 100644 --- a/src/components/dialogs/GifSelect.tsx +++ b/src/components/dialogs/GifSelect.tsx @@ -197,6 +197,7 @@ function GifList({ onGoBack={onGoBack} emptyType="results" sideBorders={false} + topBorder={false} errorTitle={_(msg`Failed to load GIFs`)} errorMessage={_(msg`There was an issue connecting to Tenor.`)} emptyMessage={ diff --git a/src/components/dms/NewChat.tsx b/src/components/dms/NewChat.tsx index 5dde8628c1..3975c0c5d5 100644 --- a/src/components/dms/NewChat.tsx +++ b/src/components/dms/NewChat.tsx @@ -10,6 +10,7 @@ import {sanitizeHandle} from '#/lib/strings/handles' import {isWeb} from '#/platform/detection' import {useModerationOpts} from '#/state/preferences/moderation-opts' import {useGetConvoForMembers} from '#/state/queries/messages/get-convo-for-members' +import {useSession} from '#/state/session' import {useActorAutocompleteQuery} from 'state/queries/actor-autocomplete' import {FAB} from '#/view/com/util/fab/FAB' import * as Toast from '#/view/com/util/Toast' @@ -23,6 +24,7 @@ import {Button} from '../Button' import {Envelope_Stroke2_Corner0_Rounded as Envelope} from '../icons/Envelope' import {ListMaybePlaceholder} from '../Lists' import {Text} from '../Typography' +import {canBeMessaged} from './util' export function NewChat({ control, @@ -82,6 +84,7 @@ function SearchablePeopleList({ const moderationOpts = useModerationOpts() const control = Dialog.useDialogContext() const listRef = useRef(null) + const {currentAccount} = useSession() const [searchText, setSearchText] = useState('') @@ -95,12 +98,17 @@ function SearchablePeopleList({ const renderItem = useCallback( ({item: profile}: {item: AppBskyActorDefs.ProfileView}) => { if (!moderationOpts) return null + const moderation = moderateProfile(profile, moderationOpts) + + const disabled = !canBeMessaged(profile) + const handle = sanitizeHandle(profile.handle, '@') + return (