// REQ0054/user-setting // // PURPOSE: // - Provides functionality view user profile // // RULES: // - T.B.A. // 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, IonNote, IonText, } 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 { alertCircleOutline, alertOutline, apps, appsOutline, car, cart, chatbubbleOutline, chevronBackOutline, chevronForward, chevronForwardOutline, createOutline, documentTextOutline, gift, giftOutline, heart, languageOutline, listCircle, menuOutline, settingsOutline, shareSocialOutline, sunny, trashOutline, } from 'ionicons/icons'; import AboutPopover from '../../components/AboutPopover'; import { OverlayEventDetail } from '@ionic/react/dist/types/components/react-component-lib/interfaces'; import paths from '../../paths'; import { logoutUser, setAccessToken, setIsLoggedIn } from '../../data/user/user.actions'; interface OwnProps {} interface StateProps { speakers: Speaker[]; speakerSessions: { [key: string]: Session[] }; } interface DispatchProps { logoutUser: typeof logoutUser; setAccessToken: typeof setAccessToken; setIsLoggedIn: typeof setIsLoggedIn; } interface SettingsProps extends OwnProps, StateProps, DispatchProps {} const SettingsPage: React.FC = ({ speakers, speakerSessions, logoutUser, setAccessToken, setIsLoggedIn, }) => { const [events, setEvents] = useState([]); const [showPopover, setShowPopover] = useState(false); const [popoverEvent, setPopoverEvent] = useState(); const modal = useRef(null); const router = useIonRouter(); useEffect(() => { getEvents().then(({ data }) => { console.log({ data }); setEvents(data); }); }, []); function handleBackButtonClick() { router.goBack(); } function handleLanguageClick() { router.push(paths.CHANGE_LANGUAGE); } function handleNotImplementedClick() { router.push(paths.NOT_IMPLEMENTED); } function handleDemoPageClick() { router.push(paths.DEMO_PAGE); } function handleServiceAgreementClick() { router.push(paths.SERVICE_AGREEMENT); } function handlePrivacyAgreementClick() { router.push(paths.PRIVACY_AGREEMENT); } const [showLogoutConfirmModal, setShowLogoutConfirmModal] = useState(false); function handleConfirmLogoutClick() { setShowLogoutConfirmModal(true); } function handleLogoutClick() { setAccessToken(); setIsLoggedIn(false); router.push('/tabs', 'forward', 'replace'); setShowLogoutConfirmModal(false); } function handleLogoutCancel() { setShowLogoutConfirmModal(false); } function handleDemoWeatherApp() { router.push(paths.DEMO_WEATHER_APP); } function handleDemoReactShopClick() { router.push(paths.DEMO_REACT_SHOP); } return ( {/* */} handleBackButtonClick()}>
Setting
Setting handleDemoWeatherApp()}> Weather App handleDemoReactShopClick()}> Demo React Shop { router.push(paths.DEMO_CLUB_HOUSE, 'forward'); }} > Demo Club house { router.push(paths.DEMO_SCORE_BOARD, 'forward'); }} > Demo Score Board
(IonCard problem)
{/* */} router.push(paths.DEMO_QUOTE_APP, 'forward')}> Demo Quote App router.push(paths.DEMO_QR_SCANNER, 'forward')}> Demo Qr scanner router.push(paths.DEMO_SHOP_APP_UI, 'forward')}> Demo Shop App UI router.push(paths.DEMO_DICTIONARY_APP, 'forward')}> Demo Dictionary App {/* */} router.push(paths.DEMO_RECIPE_APP, 'forward')}> Demo Recipe App
{/* REQ0058/logout */}
Logout
Unable to receive notifications after logging out
Cancel Logout
); }; export default connect({ mapStateToProps: (state) => ({ speakers: selectors.getSpeakers(state), speakerSessions: selectors.getSpeakerSessions(state), }), mapDispatchToProps: { logoutUser, setAccessToken, setIsLoggedIn, }, component: React.memo(SettingsPage), });