Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
4 changes: 3 additions & 1 deletion app/views/ForwardMessageView/SelectPersonOrChannel.tsx
Original file line number Diff line number Diff line change
Expand Up @@ -18,7 +18,8 @@ const SelectPersonOrChannel = ({
userId,
onRoomSelect,
blockUnauthenticatedAccess,
serverVersion
serverVersion,
disabled
}: IForwardMessageViewSelectRoom): React.ReactElement => {
const [rooms, setRooms] = useState<ISearchLocal[]>([]);
const { colors } = useTheme();
Expand Down Expand Up @@ -68,6 +69,7 @@ const SelectPersonOrChannel = ({
placeholder={{ text: `${I18n.t('Select')}` }}
context={BlockContext.FORM}
multiselect
disabled={disabled}
testID='select-person-or-channel'
/>
</View>
Expand Down
33 changes: 21 additions & 12 deletions app/views/ForwardMessageView/index.tsx
Original file line number Diff line number Diff line change
Expand Up @@ -2,6 +2,7 @@ import React, { useLayoutEffect, useState } from 'react';
import { Alert, ScrollView, View } from 'react-native';
import { type RouteProp, StackActions, useNavigation, useRoute } from '@react-navigation/native';

import ActivityIndicator from '../../containers/ActivityIndicator';
import { getPermalinkMessage } from '../../lib/methods/getPermalinks';
import KeyboardView from '../../containers/KeyboardView';
import scrollPersistTaps from '../../lib/methods/helpers/scrollPersistTaps';
Expand Down Expand Up @@ -42,31 +43,38 @@ const ForwardMessageView = () => {
title: I18n.t('Forward_message'),
headerRight: () => (
<HeaderButton.Container>
<HeaderButton.Item
title={I18n.t('Send')}
color={isSendButtonEnabled ? colors.fontHint : colors.fontSecondaryInfo}
disabled={!isSendButtonEnabled}
onPress={handlePostMessage}
testID='forward-message-view-send'
/>
{sending ? (
<View style={{ padding: 6 }}>
<ActivityIndicator />
</View>
) : (
<HeaderButton.Item
title={I18n.t('Send')}
color={isSendButtonEnabled ? colors.fontHint : colors.fontSecondaryInfo}
disabled={!isSendButtonEnabled}
onPress={handlePostMessage}
testID='forward-message-view-send'
/>
)}
</HeaderButton.Container>
),
headerLeft: () => <HeaderButton.CloseModal />
});
}, [rooms.length, navigation, sending]);
}, [rooms, navigation, sending, colors]);

const handlePostMessage = async () => {
setSending(true);
const permalink = await getPermalinkMessage(message);
const msg = `[ ](${permalink})\n`;
try {
const permalink = await getPermalinkMessage(message);
const msg = `[ ](${permalink})\n`;
await Promise.all(rooms.map(roomId => postMessage(roomId, msg)));
EventEmitter.emit(LISTENER, { message: I18n.t('Message_has_been_shared') });
navigation.dispatch(StackActions.pop());
} catch (e: any) {
Alert.alert(I18n.t('Oops'), e.message);
} finally {
setSending(false);
}
setSending(false);
};

const selectRooms = ({ value }: { value: string[] }) => {
Expand All @@ -76,14 +84,15 @@ const ForwardMessageView = () => {
return (
<KeyboardView backgroundColor={colors.surfaceHover}>
<SafeAreaView testID='forward-message-view' style={styles.container}>
<ScrollView {...scrollPersistTaps}>
<ScrollView {...scrollPersistTaps} pointerEvents={sending ? 'none' : 'auto'}>
<SelectPersonOrChannel
server={server}
userId={user.id}
token={user.token}
onRoomSelect={selectRooms}
blockUnauthenticatedAccess={blockUnauthenticatedAccess}
serverVersion={serverVersion}
disabled={sending}
/>
<View pointerEvents='none' style={[styles.messageContainer, { backgroundColor: colors.surfaceRoom }]}>
<MessagePreview message={message} />
Expand Down
1 change: 1 addition & 0 deletions app/views/ForwardMessageView/interfaces.ts
Original file line number Diff line number Diff line change
Expand Up @@ -5,6 +5,7 @@ export interface IForwardMessageViewSelectRoom {
onRoomSelect: ({ value }: { value: string[] }) => void;
blockUnauthenticatedAccess: boolean;
serverVersion: string;
disabled?: boolean;
}

export interface IForwardMessageViewSearchResult {
Expand Down