import Button from '../../atoms/button/Button';
import ScrollView from '../../atoms/scroll/ScrollView';
import Input from '../../atoms/input/Input';
+import SegmentedControl from '../../atoms/segmented-controls/SegmentedControls';
import PeopleSelector from '../../molecules/people-selector/PeopleSelector';
import AddUserIC from '../../../../public/res/ic/outlined/add-user.svg';
const [itemCount, setItemCount] = useState(PER_PAGE_MEMBER);
const [membership, setMembership] = useState('join');
+ window.setMemberShip = setMembership;
const [memberList, setMemberList] = useState([]);
const [searchedMembers, setSearchedMembers] = useState(null);
const searchRef = useRef(null);
setItemCount(PER_PAGE_MEMBER);
asyncSearch.removeListener(asyncSearch.RESULT_SENT, handleSearchData);
};
+ }, [roomId, membership]);
+
+ useEffect(() => {
+ setMembership('join');
}, [roomId]);
const mList = searchedMembers !== null ? searchedMembers.data : memberList.slice(0, itemCount);
<div className="people-drawer__scrollable">
<ScrollView autoHide>
<div className="people-drawer__content">
+ <SegmentedControl
+ selected={
+ (() => {
+ const getSegmentIndex = {
+ join: 0,
+ invite: 1,
+ ban: 2,
+ };
+ return getSegmentIndex[membership];
+ })()
+ }
+ segments={[{ text: 'Joined' }, { text: 'Invited' }, { text: 'Banned' }]}
+ onSelect={(index) => {
+ const selectSegment = [
+ () => setMembership('join'),
+ () => setMembership('invite'),
+ () => setMembership('ban'),
+ ];
+ selectSegment[index]?.();
+ }}
+ />
{
mList.map((member) => (
<PeopleSelector
))
}
{
- searchedMembers?.data.length === 0
+ (searchedMembers?.data.length === 0 || memberList.length === 0)
&& (
<div className="people-drawer__noresult">
<Text variant="b2">No result found!</Text>
.people-drawer__content {
padding-top: var(--sp-extra-tight);
padding-bottom: calc(2 * var(--sp-normal));
+
+ & .segmented-controls {
+ display: flex;
+ margin-bottom: var(--sp-extra-tight);
+ margin-left: var(--sp-extra-tight);
+ [dir=rtl] & {
+ margin-left: unset;
+ margin-right: var(--sp-extra-tight);
+ }
+ }
+ & .segment-btn {
+ flex: 1;
+ padding: var(--sp-ultra-tight) 0;
+ }
}
.people-drawer__load-more {
padding: var(--sp-normal);