From 9cd597d1f1eb232540337d5f1e241ba00e6610fa Mon Sep 17 00:00:00 2001 From: Shravya Ramesh Date: Thu, 20 May 2021 10:10:58 -0700 Subject: Better generic radio button, Use button in cell --- src/components/common/TaggRadioButton.tsx | 3 --- src/components/common/TaggUserSelectionCell.tsx | 20 ++++++++++++-------- 2 files changed, 12 insertions(+), 11 deletions(-) (limited to 'src') diff --git a/src/components/common/TaggRadioButton.tsx b/src/components/common/TaggRadioButton.tsx index bd48bd5c..fc4008e5 100644 --- a/src/components/common/TaggRadioButton.tsx +++ b/src/components/common/TaggRadioButton.tsx @@ -3,12 +3,10 @@ import {StyleSheet, TouchableOpacity, View} from 'react-native'; interface TaggRadioButtonProps { pressed: boolean; - setPressed: Function; onPress: Function; } const TaggRadioButton: React.FC = ({ pressed, - setPressed, onPress, }) => { const activeOuterStyle = { @@ -22,7 +20,6 @@ const TaggRadioButton: React.FC = ({ { - setPressed(!pressed); onPress(); }}> {pressed && } diff --git a/src/components/common/TaggUserSelectionCell.tsx b/src/components/common/TaggUserSelectionCell.tsx index 88382119..a8564ddf 100644 --- a/src/components/common/TaggUserSelectionCell.tsx +++ b/src/components/common/TaggUserSelectionCell.tsx @@ -1,4 +1,4 @@ -import React, {useState} from 'react'; +import React, {useEffect, useState} from 'react'; import {StyleSheet, View} from 'react-native'; import {ProfilePreview} from '..'; import {ProfilePreviewType, ScreenType} from '../../types'; @@ -17,11 +17,20 @@ const TaggUserSelectionCell: React.FC = ({ }) => { const [pressed, setPressed] = useState(false); + useEffect(() => { + const updatePressed = () => { + const userSelected = selectedUsers.findIndex( + (selectedUser) => item.id === selectedUser.id, + ); + setPressed(userSelected !== -1); + }; + updatePressed(); + }); + const handlePress = () => { // Add to selected list pf users if (pressed === false) { setSelectedUsers([...selectedUsers, item]); - setPressed(true); } // Remove item from selected list of users else { @@ -29,7 +38,6 @@ const TaggUserSelectionCell: React.FC = ({ (user) => user.id !== item.id, ); setSelectedUsers(filteredSelection); - setPressed(false); } }; return ( @@ -41,11 +49,7 @@ const TaggUserSelectionCell: React.FC = ({ screenType={ScreenType.Profile} /> - + ); }; -- cgit v1.2.3-70-g09d2