|
|
@@ -19,6 +19,7 @@ interface OptionsMenuProps {
|
|
|
handleOptionPress: (option: string) => void;
|
|
|
isGroup?: boolean;
|
|
|
isAdmin?: boolean;
|
|
|
+ isAnnouncement?: boolean;
|
|
|
}
|
|
|
|
|
|
const OptionsMenu: React.FC<OptionsMenuProps> = ({
|
|
|
@@ -26,7 +27,8 @@ const OptionsMenu: React.FC<OptionsMenuProps> = ({
|
|
|
selectedMessage,
|
|
|
handleOptionPress,
|
|
|
isGroup,
|
|
|
- isAdmin
|
|
|
+ isAdmin,
|
|
|
+ isAnnouncement
|
|
|
}) =>
|
|
|
selectedMessage &&
|
|
|
messagePosition && (
|
|
|
@@ -59,14 +61,14 @@ const OptionsMenu: React.FC<OptionsMenuProps> = ({
|
|
|
<MaterialCommunityIcons name="content-copy" size={20} color={Colors.DARK_BLUE} />
|
|
|
</TouchableOpacity>
|
|
|
|
|
|
- {!isGroup || (isGroup && messagePosition.isMine) ? (
|
|
|
+ {!isGroup || (isGroup && messagePosition.isMine) || (isAnnouncement && isAdmin) ? (
|
|
|
<TouchableOpacity style={styles.optionButton} onPress={() => handleOptionPress('delete')}>
|
|
|
<Text style={styles.optionText}>Delete</Text>
|
|
|
<MaterialCommunityIcons name="delete" size={20} color={Colors.DARK_BLUE} />
|
|
|
</TouchableOpacity>
|
|
|
) : null}
|
|
|
|
|
|
- {isGroup && messagePosition.isMine ? (
|
|
|
+ {(isGroup && messagePosition.isMine) || (isAnnouncement && isAdmin) ? (
|
|
|
<TouchableOpacity style={styles.optionButton} onPress={() => handleOptionPress('info')}>
|
|
|
<Text style={styles.optionText}>Info</Text>
|
|
|
<MaterialCommunityIcons name="information-outline" size={20} color={Colors.DARK_BLUE} />
|
|
|
@@ -79,7 +81,7 @@ const OptionsMenu: React.FC<OptionsMenuProps> = ({
|
|
|
</TouchableOpacity>
|
|
|
) : null}
|
|
|
|
|
|
- {messagePosition.isMine ? (
|
|
|
+ {messagePosition.isMine || (isAnnouncement && isAdmin) ? (
|
|
|
<TouchableOpacity style={styles.optionButton} onPress={() => handleOptionPress('edit')}>
|
|
|
<Text style={styles.optionText}>Edit</Text>
|
|
|
<MaterialCommunityIcons name="pencil" size={20} color={Colors.DARK_BLUE} />
|