// REQ0044/near_by_page import React, { useEffect, useRef, useState } from 'react'; import { IonHeader, IonToolbar, IonTitle, IonContent, IonPage, IonButtons, IonMenuButton, IonGrid, IonRow, IonCol, useIonRouter, IonButton, IonIcon, IonPopover, IonAvatar, IonImg, IonItem, IonLabel, IonList, IonModal, IonSearchbar, useIonModal, IonInput, RefresherEventDetail, IonRefresher, IonRefresherContent, } from '@ionic/react'; import SpeakerItem from '../../components/SpeakerItem'; import { Speaker } from '../../models/Speaker'; import { Session } from '../../models/Schedule'; import { connect } from '../../data/connect'; import * as selectors from '../../data/selectors'; import '../SpeakerList.scss'; import { getEvents } from '../../api/getEvents'; import { format } from 'date-fns'; import { Event } from './types'; import { chevronDownCircleOutline, heart, menuOutline } from 'ionicons/icons'; import AboutPopover from '../../components/AboutPopover'; import { SampleMember } from '../MemberProfile/SampleMember'; import { getMembers } from '../../api/getMembers'; import { Member } from '../MemberProfile/type'; import Loading from '../../components/Loading'; interface OwnProps {} interface StateProps { nearbyMembers: Member[]; } interface DispatchProps {} interface SpeakerListProps extends OwnProps, StateProps, DispatchProps {} function MemberCell({ member }: { member: Member }) { const router = useIonRouter(); return ( <>
Silhouette of a person's head
{member.name}
{member.age}
{member.rank}
{member.verified}
{member.hobbies[0]},
{member.hobbies[1]},
{member.hobbies[2]}
{SampleMember.distance}, {SampleMember.location_area}
); } const MembersNearByList: React.FC = ({ nearbyMembers }) => { const router = useIonRouter(); function handleMemberCellClick(id: string) { router.push(`/profile/${id}`); } function handleRefresh(event: CustomEvent) { setTimeout(() => { // Any calls to load data go here event.detail.complete(); }, 2000); } if (!nearbyMembers || nearbyMembers.length == 0) return ; return ( {/* */} My Nearby My Nearby {nearbyMembers.map((member, idx) => ( handleMemberCellClick(member.id.toString())}> ))} ); }; export default connect({ mapStateToProps: (state) => ({ nearbyMembers: selectors.getNearbyMembers(state), }), component: React.memo(MembersNearByList), });