{"version":3,"file":"static/js/main.5f795838.js","mappings":"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","sources":["src/constants/Interfaces.ts","src/constants/Logger.ts","src/config/AuthConfig.ts","src/navigation/NavigationService.ts","src/reducers/commonActions.ts","src/constants/Utils.ts","src/store/configureStore.ts","src/config/ApiConfig.ts","src/constants/API.ts","src/reducers/authentication.slice.ts","src/reducers/region.slice.ts","src/reducers/user.slice.ts","src/reducers/activity.slice.ts","src/reducers/history.slice.ts","src/reducers/marae.slice.ts","src/reducers/review.slice.ts","src/reducers/rootReducer.ts","src/translations/index.ts","src/constants/Colors.ts","src/components/Themed.tsx","src/hooks/useColorScheme.web.ts","src/constants/Layout.ts","src/constants/Fonts.ts","src/components/buttons/PrimaryButton.tsx","src/components/StyledText.tsx","src/components/Carousel.tsx","src/components/TipModal.tsx","src/components/BottomBanner.tsx","src/screens/authentication/LandingScreen.tsx","src/components/ModalUI.tsx","src/screens/authentication/SocialMediaLogin.tsx","src/utils/RichTextResponse.tsx","src/components/TermsConditions.tsx","src/screens/termsandconditions/Terms.tsx","src/components/PrivacyPolicy.tsx","src/screens/termsandconditions/Privacy.tsx","src/navigation/AuthNavigator.tsx","src/components/inputs/TextInput.tsx","src/components/inputs/PickerInput.tsx","src/components/inputs/CalendarInput.tsx","src/screens/authentication/RegistrationCommonStyles.ts","src/constants/References.ts","src/screens/authentication/UserDetailsScreen.tsx","src/screens/authentication/AddMaraeScreen.tsx","src/components/SearchBar.tsx","src/components/HeaderBar.tsx","src/screens/home/ParticipationConfirmation.tsx","src/components/TipButton.tsx","src/screens/profile/SelectRegionScreen.tsx","src/components/EllipseBorderImage.tsx","src/screens/profile/SelectMaraeScreen.tsx","src/screens/profile/TipScreen.tsx","src/navigation/SignUpNavigator.tsx","src/components/HamburgerMenu.tsx","src/screens/ConfirmationScreen.tsx","src/components/HeadingItem.tsx","src/components/NoteInfo.tsx","src/screens/profile/fragments/MyMarae/MaraePointsFragment.tsx","src/screens/profile/fragments/MyMarae/MaraeDeleteFragment.tsx","src/screens/profile/fragments/MyMarae/MaraePartyFragment.tsx","src/components/Backbutton.tsx","src/components/buttons/SectionButton.tsx","src/screens/profile/fragments/MyMarae/MaraeDetailsFragment.tsx","src/screens/profile/fragments/MyMarae/MyMaraeListFragment.tsx","src/screens/profile/fragments/MyMarae/MyMaraeFragment.tsx","src/screens/profile/fragments/Profile/DetailsFragment.tsx","src/components/buttons/SecondaryButton.tsx","src/components/buttons/ButtonSwitch.tsx","src/components/PhotoCamera.tsx","src/components/EditPhoto.tsx","src/components/UserActivities.tsx","src/components/buttons/SplitButton.tsx","src/screens/profile/fragments/Profile/DeleteAccountFragment.tsx","src/screens/profile/fragments/Profile/ProfileFragment.tsx","src/screens/profile/fragments/MyWhanau/MyWhanauListFragment.tsx","src/screens/profile/fragments/MyWhanau/AddWhanauFragment.tsx","src/screens/profile/fragments/MyWhanau/WhanauDetailsFragment.tsx","src/screens/profile/fragments/MyWhanau/MyWhanauFragment.tsx","src/screens/profile/fragments/Language/LanguageFragment.tsx","src/hooks/useLogoutUser.ts","src/screens/profile/ProfileScreen.tsx","src/navigation/ProfileNavigator.tsx","src/components/ActivityTile.tsx","src/screens/activities/fragments/RegionFilterFragment.tsx","src/components/GridActivities.tsx","src/components/RefreshHolder.tsx","src/screens/activities/ActivitiesScreen.tsx","src/components/DetailItem.tsx","src/components/ActionModal.tsx","src/screens/activities/fragments/TakeWhanauFragment.tsx","src/screens/activities/fragments/ChooseMaraeFragment.tsx","src/screens/activities/fragments/WhanauTypeListFragment.tsx","src/screens/activities/fragments/ChooseWhanauTypeFragment.tsx","src/screens/activities/fragments/ActivityRegistrationFragment.tsx","src/screens/activities/fragments/ReviewFragment.tsx","src/components/SelectionItem.tsx","src/screens/home/fragments/ActivityScannerFragment.tsx","src/screens/activities/fragments/RegisteredFragment.tsx","src/components/RatingStars.tsx","src/screens/activities/fragments/ShowReviewFragment.tsx","src/components/ScreenHolder.tsx","src/screens/activities/ActivityDetailsScreen.tsx","src/navigation/ActivitiesNavigator.tsx","src/screens/home/UserConfirmationScreen.tsx","src/screens/home/fragments/CallOrganiserFragment.tsx","src/screens/home/fragments/EventCardFragment.tsx","src/screens/home/fragments/InsightsFragment.tsx","src/screens/home/fragments/ReviewFragment.tsx","src/screens/home/fragments/ReviewCardFragment.tsx","src/screens/home/fragments/AdminDashboardFragment.tsx","src/components/DonutChart.tsx","src/screens/home/fragments/EventStatsFragment.tsx","src/components/AgeStats.tsx","src/screens/home/fragments/ActivityStatsFragment.tsx","src/screens/home/fragments/OrganiserDashboardFragment.tsx","src/screens/home/fragments/MapsFragment.tsx","src/screens/home/fragments/UserDashboardFragment.tsx","src/screens/home/HomeScreen.tsx","src/navigation/HomeNavigator.tsx","src/screens/home/fragments/FavouriteActivityFragment.tsx","src/screens/faves/FavesScreen.tsx","src/navigation/FavesNavigation.tsx","src/components/HeroLeaderboard.tsx","src/components/ProgressBar.tsx","src/screens/leaderboard/ElevateContent.tsx","src/screens/leaderboard/LeaderboardScreen.tsx","src/navigation/LeaderboardNavigator.tsx","src/navigation/DrawerNavigation.tsx","src/web/DownloadStoreContainer.tsx","src/web/Utils/languageListener.ts","src/web/CarouselAds.tsx","src/web/Utils/contentfulUrlGenerator.ts","src/web/CarouselDownloadApp.tsx","src/web/SocialMediaBar.tsx","src/web/Footer.tsx","src/web/HamburgerMenu.tsx","src/web/MenuBar.tsx","src/web/Header.tsx","src/web/Clouds.tsx","src/web/LayoutWeb.tsx","src/web/LandingWeb.tsx","src/web/About/Fragments/RectanglesPattern.tsx","src/web/ActivityDetailsWeb.tsx","src/web/ActivityTile.tsx","src/web/ActivitiesListing.tsx","src/web/CommonStyles.tsx","src/web/About/Fragments/VideoPlayer.tsx","src/web/About/Fragments/VideoContainer.tsx","src/web/Utils/responsiveSytlingGenerators.ts","src/web/Utils/RichTextResponse.tsx","src/web/About/Fragments/CarouselKaupapa.tsx","src/web/About/Fragments/ActiveMarae.tsx","src/web/About/About.tsx","src/web/Policy.tsx","src/web/Terms.tsx","src/web/Delete.tsx","src/web/SignIn.tsx","src/web/AddWhanau.tsx","src/navigation/GuestDrawerNavigation.tsx","src/navigation/index.tsx","src/screens/SplashScreen.tsx","App.tsx","src/hooks/useCachedResources.ts","webpack/bootstrap","webpack/runtime/chunk loaded","webpack/runtime/compat get default export","webpack/runtime/create fake namespace object","webpack/runtime/define property getters","webpack/runtime/global","webpack/runtime/hasOwnProperty shorthand","webpack/runtime/make namespace object","webpack/runtime/node module decorator","webpack/runtime/publicPath","webpack/runtime/jsonp chunk loading","webpack/startup"],"sourcesContent":["import { Action } from 'redux';\r\nimport { TokenType } from 'expo-auth-session/src/TokenRequest.types';\r\n\r\n// Below are enums (A-Z)\r\nexport enum ActionType {\r\n PURGE,\r\n}\r\n\r\nexport enum Ethnicity {\r\n MAORI = 'Māori',\r\n EUROPEAN = 'European',\r\n PACIFIC = 'Pacific peoples',\r\n ASIAN = 'Asian',\r\n MELAA = 'MELAA (Middle Eastern / Latin American / African)',\r\n OTHER = 'Other',\r\n}\r\n\r\nexport enum Gender {\r\n MALE = 'Male',\r\n FEMALE = 'Female',\r\n NON_BINARY = 'Non-binary',\r\n TRANSGENDER = 'Transgender',\r\n INTERSEX = 'Intersex',\r\n NOT_TO_SAY = 'Not-to-say',\r\n}\r\n\r\nexport enum Role {\r\n USER = 'Whānau',\r\n USER_ADMIN = 'Kaiwhakahaere',\r\n ORGANISER = 'Organiser',\r\n ADMIN = 'Admin (SportNZ)',\r\n}\r\n\r\nexport enum Scope {\r\n API = 'api',\r\n ANONYMOUS = 'anonymous',\r\n}\r\n\r\nexport enum WhanauType {\r\n MARAE = 'Marae',\r\n HAPU = 'Hapu',\r\n IWI = 'Iwi',\r\n WHANAU = 'Whānau',\r\n KOHANGA_PUNA_REO = 'Kohanga / Puna Reo',\r\n KURA_KAUPAPA = 'Kura Kaupapa',\r\n WHARE_KURA = 'Whare Kura',\r\n WHARE_WANANGA = 'Whare Wananga',\r\n KAUPAPA_HAKINAKINA = 'Kaupapa Hākinakina',\r\n OTHER = 'Other',\r\n}\r\n\r\n// Below are interfaces (A-Z)\r\nexport interface AccessToken {\r\n token: string;\r\n expiry: string; // ISO-8201 date format\r\n}\r\n\r\nexport interface Activity {\r\n activityId: string;\r\n activityName?: string;\r\n location?: Location;\r\n organisation?: Organisation;\r\n organiser?: Organiser;\r\n description?: string;\r\n imageUrl?: string;\r\n startDate?: string;\r\n endDate?: string | null;\r\n kaiwhakahaereId?: string;\r\n created?: string;\r\n}\r\n\r\nexport interface ActivityParticipation {\r\n userId: string;\r\n activityId: string;\r\n password?: string;\r\n}\r\n\r\nexport interface ActivityStats {\r\n engagementTypeCheckedIn: Engagement;\r\n engagementTypeGoing: Engagement;\r\n}\r\n\r\nexport interface AppError {\r\n message: string;\r\n params?: [];\r\n}\r\n\r\nexport interface AuthState {\r\n accessToken: string;\r\n tokenType: TokenType;\r\n expiresIn?: number;\r\n refreshToken?: string;\r\n scope?: string;\r\n state?: string;\r\n idToken?: string;\r\n issuedAt: number;\r\n}\r\n\r\nexport interface CarouselCard {\r\n title?: string;\r\n paragraph: string;\r\n}\r\n\r\nexport interface Dictionary {\r\n [key: string]: T;\r\n}\r\n\r\nexport interface DropdownItem {\r\n label: string;\r\n value: string | number;\r\n}\r\n\r\nexport interface Engagement {\r\n pointsTotal: number;\r\n personTotal: number;\r\n ageOfParticipantsMokopuna: number;\r\n ageOfParticipantsRangatahi13_19: number;\r\n ageOfParticipantsMatua20_39: number;\r\n ageOfParticipantsPakeke40_59: number;\r\n ageOfParticipantsKaumatua: number;\r\n ageOfParticipantsTaiohi: number;\r\n ageOfParticipantsUnknown: number;\r\n genderOfParticipantsTane: number;\r\n genderOfParticipantsWahine: number;\r\n genderOfParticipantsNonBinary: number;\r\n genderOfParticipantsTransgender: number;\r\n genderOfParticipantsIntersex: number;\r\n genderOfParticipantsPreferNotToSay: number;\r\n ethnicityOfParticipantsMaori: number;\r\n ethnicityOfParticipantsEuropean: number;\r\n ethnicityOfParticipantsPasifika: number;\r\n ethnicityOfParticipantsAsian: number;\r\n ethnicityOfParticipantsMelaa: number;\r\n ethnicityOfParticipantsOther: number;\r\n}\r\n\r\nexport interface Hapu {\r\n hapuId?: number;\r\n iwiId?: number;\r\n hapuName?: string;\r\n}\r\n\r\nexport interface Iwi {\r\n iwiId?: number;\r\n regionId?: number;\r\n iwiName?: string;\r\n regionName?: string;\r\n}\r\n\r\nexport interface IwiActivityPoints {\r\n iwiId?: number;\r\n activityId?: number;\r\n points?: number;\r\n}\r\n\r\nexport interface IwiHapuMarae {\r\n maraeId?: number;\r\n iwiId?: number;\r\n hapuId?: number;\r\n}\r\n\r\nexport interface IwiMarae extends Marae {\r\n hapu?: Hapu;\r\n}\r\n\r\nexport interface Location {\r\n name?: string | null;\r\n regionName?: string;\r\n regionNameEnglish?: string;\r\n addressLine1?: string | null;\r\n addressLine2?: string | null;\r\n suburb?: string | null;\r\n city?: string;\r\n postcode?: string | null;\r\n geoLat?: number | null;\r\n geoLong?: number | null;\r\n}\r\n\r\nexport interface Marae {\r\n maraeId?: number;\r\n maraeName?: string;\r\n wharenui?: string;\r\n imageUrl?: string;\r\n maraeLocation?: MaraeLocation;\r\n}\r\n\r\nexport interface MaraeActivityPoints {\r\n maraeId?: number;\r\n activityId?: number;\r\n points?: number;\r\n}\r\n\r\nexport interface MaraeLocation {\r\n city?: string;\r\n regionName?: string;\r\n regionNameEnglish?: string;\r\n}\r\n\r\nexport interface Organisation {\r\n name?: string;\r\n}\r\n\r\nexport interface Organiser {\r\n firstName: string;\r\n lastName: string;\r\n userId: string | null;\r\n imageUrl: string | null;\r\n phone: string | null;\r\n email: string | null;\r\n}\r\n\r\nexport interface ReduxAction extends Action {\r\n payload?: any;\r\n error?: boolean;\r\n}\r\n\r\nexport interface Region {\r\n regionId?: number;\r\n regionName?: string;\r\n regionNameEnglish?: string;\r\n}\r\n\r\nexport interface Review {\r\n userId?: string;\r\n activityId?: string;\r\n activityName?: string; // required locally for ReviewCardFragment\r\n firstName?: string; // required locally for ReviewCardFragment\r\n lastName?: string; // required locally for ReviewCardFragment\r\n imageUrl?: string;\r\n score?: number;\r\n review?: string;\r\n lastUpdated?: string; // required locally for ReviewCardFragment\r\n gender?: string;\r\n}\r\nexport interface SearchTerm {\r\n title: string; // case insensitive, always stored as upper case\r\n count: number;\r\n}\r\nexport interface User {\r\n userId?: string;\r\n firstName?: string;\r\n lastName?: string;\r\n email?: string;\r\n phone?: string | null;\r\n doB?: string;\r\n gender?: string | null;\r\n ethnicity?: string | null;\r\n role?: Role;\r\n region?: Region;\r\n marae?: UserMarae[];\r\n imageUrl?: string | null;\r\n}\r\n\r\nexport interface UserActivity extends Activity {\r\n userId?: string;\r\n favourite: boolean;\r\n going: boolean;\r\n checkedIn?: boolean;\r\n maraeId?: number;\r\n whanauType?: string;\r\n}\r\n\r\nexport interface UserMarae extends Marae {\r\n default?: boolean | null;\r\n iwi?: Iwi | null;\r\n hapu?: Hapu | null;\r\n}\r\n\r\nexport interface WhanauMarae {\r\n userId?: string;\r\n maraeId?: number; // mandatory\r\n iwiId?: number; // mandatory\r\n hapuId?: number;\r\n default?: boolean;\r\n}\r\nexport interface MaraeStats {\r\n topActivities: [\r\n {\r\n activityId: string;\r\n activityName: string;\r\n endDate: string;\r\n pointsTotal: number;\r\n }\r\n ];\r\n connections: number;\r\n pointTotal: number;\r\n}\r\nexport interface UserStats {\r\n pointTotal: number;\r\n pointBreakdown: [\r\n {\r\n userId: string;\r\n maraeId: number;\r\n points: number;\r\n }\r\n ];\r\n}\r\nexport interface VisitItem {\r\n id: string | number;\r\n type: 'Activity';\r\n timestamp?: string; // ISO datetime string\r\n}\r\nexport interface WhanauParticipation {\r\n userId?: string;\r\n activityId?: number;\r\n maraeId?: number;\r\n iwiId?: number;\r\n favourite?: boolean | null;\r\n interested?: boolean | null;\r\n going?: boolean | null;\r\n checkedIn?: boolean | null;\r\n scoredPoints?: number | null;\r\n checkinDate?: string | null;\r\n}\r\n\r\nexport interface TicketActivity {\r\n activityId: string;\r\n userId?: string;\r\n name: string;\r\n}\r\nexport interface PaperQrCode {\r\n activityId: string;\r\n password: string;\r\n}\r\nexport interface MaraeLeaderboard {\r\n maraeId: number;\r\n maraeName: string;\r\n region: string;\r\n pointTotal: number;\r\n participationTotal: number;\r\n}\r\n// Below are types (A-Z)\r\nexport type BottomTabParamList = {\r\n Home: undefined;\r\n TabTwo: undefined;\r\n};\r\nexport type DrawerParamList = {\r\n ProfileStack: undefined;\r\n ActivitiesStack: undefined;\r\n FavesStack: undefined;\r\n LeaderboardStack: undefined;\r\n DashboardStack: undefined;\r\n ConfirmationScreen: undefined;\r\n openDrawer: Function;\r\n};\r\n\r\nexport type AuthParamList = {\r\n Landing: undefined;\r\n SocialMediaLogin: undefined;\r\n Terms: undefined;\r\n Privacy: undefined;\r\n};\r\n\r\nexport type SignUpParamList = {\r\n ParticipationConfirmation: undefined;\r\n UserDetails: undefined;\r\n AddMarae: undefined;\r\n SelectRegion: undefined;\r\n SelectMarae: undefined;\r\n TipScreen: undefined;\r\n};\r\n\r\nexport type ActivitiesParamList = {\r\n Activities: undefined;\r\n ActivityDetails: undefined;\r\n SelectRegion: undefined;\r\n TipScreen: undefined;\r\n};\r\n\r\nexport type ProfileParamList = {\r\n Profile: undefined;\r\n};\r\n\r\nexport type HomeParamList = {\r\n Home: undefined;\r\n ActivityDetails: undefined;\r\n SelectRegion: undefined;\r\n TipScreen: undefined;\r\n};\r\n\r\nexport type RootStackParamList = {\r\n LandingWeb: undefined;\r\n ActivityDetails: { id: string };\r\n About: undefined;\r\n Privacy: undefined;\r\n Terms: undefined;\r\n Contact: undefined;\r\n SignIn: undefined;\r\n AddWhanau: undefined;\r\n Root: DrawerParamList;\r\n AuthStack: AuthParamList;\r\n SignUpStack: SignUpParamList;\r\n ActivitiesListing: undefined;\r\n Delete: undefined;\r\n};\r\n\r\nexport type TabTwoParamList = {\r\n TabTwoScreen: undefined;\r\n};\r\n\r\nexport enum DomainHintList {\r\n google = 'google.com',\r\n facebook = 'facebook.com',\r\n apple = 'apple.com',\r\n}\r\n\r\nexport enum ProfileSection {\r\n details,\r\n photo,\r\n activities,\r\n delete,\r\n}\r\ndeclare global {\r\n namespace ReactNavigation {\r\n interface RootParamList extends RootStackParamList {}\r\n }\r\n}\r\n","import { DateTime } from 'luxon';\r\n\r\n/**\r\n * Singleton class containing methods for calling firebase crashlytics/ general logging.\r\n */\r\n\r\nexport default class Logger {\r\n static debug(message: any) {\r\n // eslint-disable-next-line no-console\r\n console.debug(`${DateTime.local().toISO()} ${message}`);\r\n }\r\n\r\n static info(message: string) {\r\n // eslint-disable-next-line no-console\r\n console.info(`${DateTime.local().toISO()} ${message}`);\r\n // crashlytics().log(message);\r\n }\r\n\r\n static warn(message: string) {\r\n // eslint-disable-next-line no-console\r\n console.warn(`${DateTime.local().toISO()} ${message}`);\r\n // crashlytics().log(message);\r\n }\r\n\r\n static error(message: string, e?: any) {\r\n // eslint-disable-next-line no-console\r\n console.warn(`${DateTime.local().toISO()} ${message}`);\r\n // eslint-disable-next-line no-console\r\n console.warn(`${DateTime.local().toISO()} ${e}`);\r\n let messageTitle: string = Logger.getErrorTitle(message);\r\n let messageContent: string = message;\r\n\r\n if (messageTitle.length > 50) {\r\n messageTitle = `${messageTitle.substr(0, 50)}...`;\r\n }\r\n\r\n if (e && e.message) {\r\n messageContent = `${message} Detail: ${e.message}`;\r\n } else if (e && e.code) {\r\n messageContent = `${message} Code: ${e.code}`;\r\n } else if (e) {\r\n messageContent = `${message} Detail: ${JSON.stringify(e)}`;\r\n }\r\n\r\n const jsError = new Error(messageContent);\r\n jsError.name = messageTitle;\r\n // crashlytics().recordError(jsError);\r\n }\r\n\r\n static getErrorTitle(message: string) {\r\n let errorTitle = message;\r\n if (message.indexOf(':')) {\r\n errorTitle = message.split(':')[0];\r\n } else if (message.indexOf('-')) {\r\n errorTitle = message.split('-')[0];\r\n } else if (message.indexOf(' ')) {\r\n errorTitle = message.split(' ')[0];\r\n }\r\n return errorTitle;\r\n }\r\n}\r\n","import {\r\n AuthRequestConfig,\r\n DiscoveryDocument,\r\n makeRedirectUri,\r\n Prompt,\r\n ResponseType,\r\n TokenRequestConfig,\r\n} from 'expo-auth-session';\r\nimport Constants from 'expo-constants';\r\nimport { DomainHintList } from '../constants/Interfaces';\r\n\r\nexport const redirectUri = makeRedirectUri({\r\n // For usage in bare and standalone\r\n native: `${Constants.expoConfig.scheme}://auth`,\r\n useProxy: false,\r\n});\r\n\r\n// @ts-ignore\r\nconst { clientId, b2cHost, b2cDirectory, signInSinUpFlow } = Constants.expoConfig.extra.azure;\r\n\r\nconst scopes: string[] = [`https://${b2cDirectory}/${clientId}/user_impersonation`, 'openid', 'offline_access'];\r\n\r\nexport const authRequestConfig: AuthRequestConfig = {\r\n redirectUri,\r\n clientId,\r\n scopes,\r\n responseType: ResponseType.Code,\r\n prompt: Prompt.Login,\r\n};\r\n\r\nexport const authRequestConfigGoogle: AuthRequestConfig = {\r\n ...authRequestConfig,\r\n extraParams: {\r\n domain_hint: DomainHintList.google,\r\n },\r\n};\r\nexport const authRequestConfigFacebook: AuthRequestConfig = {\r\n ...authRequestConfig,\r\n extraParams: {\r\n domain_hint: DomainHintList.facebook,\r\n },\r\n};\r\nexport const authRequestConfigApple: AuthRequestConfig = {\r\n ...authRequestConfig,\r\n extraParams: {\r\n domain_hint: DomainHintList.apple,\r\n },\r\n};\r\n\r\nexport const tokenRequestConfig: TokenRequestConfig = {\r\n clientId,\r\n scopes,\r\n};\r\n\r\nexport const discovery: DiscoveryDocument = {\r\n authorizationEndpoint: `${b2cHost}/${b2cDirectory}/oauth2/v2.0/authorize?p=${signInSinUpFlow}&nonce=defaultNonce`,\r\n tokenEndpoint: `${b2cHost}/${b2cDirectory}/${signInSinUpFlow}/oauth2/v2.0/token`,\r\n};\r\n","import { createNavigationContainerRef } from '@react-navigation/native';\r\n\r\nexport const navigationRef = createNavigationContainerRef();\r\n\r\nexport const navigate = (name, params?) => {\r\n if (navigationRef.isReady()) {\r\n navigationRef.navigate(name, params);\r\n }\r\n};\r\n","import { createAction } from '@reduxjs/toolkit';\r\n\r\nexport const purge = createAction('app/purge');\r\n","/**\r\n * This file contains static methods that are useful across the app.\r\n */\r\nimport { TextDecoder } from '@sinonjs/text-encoding';\r\nimport base64 from 'base64-js';\r\nimport { AuthSessionResult, TokenResponse } from 'expo-auth-session';\r\nimport { DateTime } from 'luxon';\r\nimport { AuthState } from './Interfaces';\r\nimport { Linking, Platform, Share } from 'react-native';\r\nimport Constants from 'expo-constants';\r\nimport * as FileSystem from 'expo-file-system';\r\nimport Logger from './Logger';\r\nimport { getStore } from '../store/configureStore';\r\nimport * as NavigationService from '../navigation/NavigationService';\r\nimport { purge } from '../reducers/commonActions';\r\n\r\nconst emailPattern: RegExp =\r\n /(([^<>()[\\]\\\\.,;:\\s@\"]+(\\.[^<>()[\\]\\\\.,;:\\s@\"]+)*)|(\".+\"))@((\\[[0-9]{1,3}\\.[0-9]{1,3}\\.[0-9]{1,3}\\.[0-9]{1,3}])|(([a-zA-Z\\-0-9]+\\.)+[a-zA-Z]{2,}))/g;\r\n\r\nexport function logOut() {\r\n getStore().dispatch(purge());\r\n NavigationService.navigate('Landing');\r\n}\r\n\r\n/**\r\n * Capitilise a string\r\n * @param inputString the string to edit\r\n */\r\nexport function capitalizeFirstLetter(inputString: string) {\r\n return inputString.charAt(0).toUpperCase() + inputString.slice(1);\r\n}\r\n\r\n/**\r\n * Determine if a string is a valid JSON or not.\r\n * @param input\r\n */\r\nexport function isValidJSON(input: string): boolean {\r\n try {\r\n JSON.parse(input);\r\n } catch (e) {\r\n return false;\r\n }\r\n return true;\r\n}\r\n\r\n/**\r\n * Sanitize sensitive user information. Used for preprocess before sending\r\n * the logs to external destinations.\r\n * @param input string any string.\r\n * @returns sanitized string.\r\n */\r\nexport function sanitizeUserInfo(input: string): string {\r\n // Return non-string values as-is\r\n if (!input) {\r\n return input;\r\n }\r\n\r\n // Clear email addresses\r\n return input.replace(emailPattern, '***');\r\n}\r\n\r\n/**\r\n * simple sleep promise\r\n */\r\nexport function sleep(ms: number) {\r\n return new Promise((resolve) => setTimeout(resolve, ms));\r\n}\r\n\r\n/**\r\n * Determine whether the user session should be terminated. This is based on the\r\n * standard OAuth response error invalid_grant, which results in error code 2002\r\n * in Android and error code -10 in iOS.\r\n * @param error\r\n */\r\nexport function shouldTerminateSession(error: any): boolean {\r\n return error && error.code && (error.code === '-10' || error.code === '2002');\r\n}\r\n\r\nexport function cleanAuthCode(code: string) {\r\n // Split invalid base64 hash char from end of authCode if it exists (as returned by B2C from social logins etc)\r\n const codeParts = code.split('#', 1);\r\n return codeParts[0];\r\n}\r\n\r\nexport function parseJwt(token: string) {\r\n const base64Url = token.split('.')[1];\r\n let base64String = base64Url.replace(/-/g, '+').replace(/_/g, '/');\r\n const remainder = base64String.length % 4;\r\n if (remainder > 0) {\r\n base64String = base64String.padEnd(base64String.length + (4 - remainder), '=');\r\n }\r\n const decodedBytes: Uint8Array = base64.toByteArray(base64String);\r\n const decodedString = new TextDecoder().decode(decodedBytes);\r\n const jsonPayload = decodeURIComponent(\r\n decodedString\r\n .split('')\r\n .map((c) => `%${`00${c.charCodeAt(0).toString(16)}`.slice(-2)}`)\r\n .join('')\r\n );\r\n return JSON.parse(jsonPayload);\r\n}\r\n\r\n/**\r\n * Translate TokenResponse to serializable AuthState\r\n * @param response\r\n */\r\nexport function getAuthState(response: TokenResponse): AuthState {\r\n return {\r\n accessToken: response.accessToken,\r\n tokenType: response.tokenType,\r\n expiresIn: response.expiresIn,\r\n refreshToken: response.refreshToken,\r\n scope: response.scope,\r\n state: response.state,\r\n idToken: response.idToken,\r\n issuedAt: response.issuedAt,\r\n };\r\n}\r\n\r\n/**\r\n * Match the input string against the source string, ignoring case and ascent.\r\n * @param source the original value\r\n * @param input the search query\r\n */\r\nexport function matchWild(source: string, input: string): boolean {\r\n return source\r\n .toLowerCase()\r\n .normalize('NFD')\r\n .replace(/[\\u0300-\\u036f]/g, '')\r\n .startsWith(input.toLowerCase());\r\n}\r\n\r\n/**\r\n * Normalize search term for storing as history\r\n * @param searchTerm the search term\r\n */\r\nexport function normalizeSearch(searchTerm: string): string {\r\n return searchTerm\r\n .trim()\r\n .normalize('NFD')\r\n .replace(/[\\u0300-\\u036f]/g, '')\r\n .toUpperCase();\r\n}\r\n\r\nexport const convertToNZ = ({ date, format }) =>\r\n DateTime.fromISO(date).toFormat(format).replace(':00', '').replace('PM', 'pm').replace('AM', 'am');\r\n\r\nexport async function shareContent(activityId?: string) {\r\n const website = Constants.expoConfig?.extra?.azure.website;\r\n const URL = activityId ? `${website}/activity/${activityId}` : website;\r\n\r\n try {\r\n if (Platform.OS === 'web') {\r\n const facebookURL = `https://www.facebook.com/sharer/sharer.php?u=${URL}`;\r\n Linking.openURL(facebookURL);\r\n return;\r\n }\r\n await Share.share({\r\n message: URL,\r\n });\r\n } catch (e) {\r\n console.warn(e);\r\n }\r\n}\r\n\r\nfunction hashCode(s: string): string | number {\r\n let h;\r\n // eslint-disable-next-line no-bitwise\r\n for (let i = 0; i < s.length; i += 1) h = (Math.imul(31, h) + s.charCodeAt(i)) | 0;\r\n return h;\r\n}\r\n\r\nexport async function saveCacheImage({ activityId, uri }) {\r\n const path = `${FileSystem.cacheDirectory}${activityId}${hashCode(uri)}`;\r\n // get cached Image\r\n try {\r\n const image = await FileSystem.getInfoAsync(path);\r\n if (image.exists) {\r\n return;\r\n }\r\n // store new Image in cache\r\n await FileSystem.downloadAsync(uri, path);\r\n } catch (e) {\r\n Logger.debug(`Utils -> saveCacheImage -> ${e}`);\r\n }\r\n}\r\n// eslint-disable-next-line consistent-return\r\nexport async function getCacheImage({ activityId, uri }) {\r\n const path = `${FileSystem.cacheDirectory}${activityId}${hashCode(uri)}`;\r\n // get cached Image\r\n try {\r\n const image = await FileSystem.getInfoAsync(path);\r\n // get stored Image\r\n if (image.exists) {\r\n return image.uri;\r\n }\r\n // store new Image in cache\r\n const newImage = await FileSystem.downloadAsync(uri, path);\r\n return newImage.uri;\r\n } catch (e) {\r\n Logger.debug(`Utils -> getCacheImage -> ${e}`);\r\n }\r\n}\r\n\r\nexport function getAuthResultFromUrl(url: string): AuthSessionResult {\r\n Logger.info('Authorization params passed in from another web page');\r\n Logger.debug(`Return url is: ${url}`);\r\n const urlParts = url.split('?');\r\n const queryString = urlParts[1];\r\n const params = {};\r\n queryString.split('&').forEach((part) => {\r\n const item = part.split('=');\r\n params[item[0]] = decodeURIComponent(item[1]);\r\n });\r\n return {\r\n url,\r\n params,\r\n type: 'success',\r\n errorCode: null,\r\n authentication: null,\r\n } as AuthSessionResult;\r\n}\r\n\r\nexport function getGenderPlaceholder(gender: string | null | undefined) {\r\n switch (gender) {\r\n case 'Male':\r\n return require('../../assets/images/male_placeholder.png');\r\n case 'Female':\r\n return require('../../assets/images/female_placeholder.png');\r\n default:\r\n return require('../../assets/images/other_gender_placeholder.png');\r\n }\r\n}\r\nexport function validatePastActivity(activityDate: string | null | undefined) {\r\n const endTime = activityDate?.substring(0, 11).concat('23:59:59');\r\n const isPastActivity = DateTime.fromISO(endTime!).toMillis() < DateTime.now().toMillis();\r\n return isPastActivity;\r\n}\r\n","import { configureStore, EnhancedStore } from '@reduxjs/toolkit';\r\nimport { persistStore, persistReducer, FLUSH, REHYDRATE, PAUSE, PERSIST, PURGE, REGISTER } from 'redux-persist';\r\nimport AsyncStorage from '@react-native-async-storage/async-storage';\r\nimport { rootReducer } from '../reducers/rootReducer';\r\nimport { useDispatch } from 'react-redux';\r\n\r\nconst persistConfig = {\r\n storage: AsyncStorage,\r\n key: 'root',\r\n blacklist: ['user', 'authentication', 'activity', 'history', 'region', 'marae', 'review'],\r\n};\r\n\r\nconst persistedReducer = persistReducer(persistConfig, rootReducer);\r\n\r\nlet store: EnhancedStore;\r\n\r\nexport function getStore() {\r\n return store;\r\n}\r\n\r\nexport default () => {\r\n store = configureStore({\r\n reducer: persistedReducer,\r\n devTools: process.env.NODE_ENV !== 'production',\r\n middleware: (getDefaultMiddleware) =>\r\n getDefaultMiddleware({\r\n serializableCheck: {\r\n ignoredActions: [FLUSH, REHYDRATE, PAUSE, PERSIST, PURGE, REGISTER],\r\n },\r\n }),\r\n });\r\n const persistor = persistStore(store);\r\n return { store, persistor };\r\n};\r\n\r\n// Infer the `RootState` and `AppDispatch` types from the store itself\r\nexport type RootState = ReturnType;\r\n// Inferred type: {posts: PostsState, comments: CommentsState, users: UsersState}\r\nexport type AppDispatch = typeof store.dispatch;\r\nexport const useAppDispatch = (): AppDispatch => useDispatch();\r\n","import Constants from 'expo-constants';\r\n\r\nconst { apiEndpoint, defaultTimeout } = Constants.expoConfig.extra.azure;\r\n\r\nexport default {\r\n apiEndpoint,\r\n defaultTimeout,\r\n};\r\n","import axios, { AxiosRequestConfig } from 'axios';\r\nimport Logger from './Logger';\r\nimport _ from 'lodash';\r\nimport { Platform } from 'react-native';\r\nimport * as WebBrowser from 'expo-web-browser';\r\nimport ApiConfig from '../config/ApiConfig';\r\nimport { AuthState, Scope } from './Interfaces';\r\nimport { DateTime } from 'luxon';\r\nimport { logOut, shouldTerminateSession } from './Utils';\r\nimport { getAuthenticatedUser } from '../reducers/authentication.slice';\r\nimport { TokenResponse } from 'expo-auth-session';\r\n\r\n/**\r\n * Use function to get common config in case it gets overwritten downstream\r\n */\r\nexport function getCommonConfig(): AxiosRequestConfig {\r\n return {\r\n baseURL: ApiConfig.apiEndpoint,\r\n timeout: ApiConfig.defaultTimeout * 1000,\r\n responseType: 'json',\r\n headers: {},\r\n };\r\n}\r\n\r\n/**\r\n * Singleton class containing common methods for calling MaraeFit API.\r\n */\r\n\r\nexport default class API {\r\n private static instance: API;\r\n\r\n readonly store;\r\n\r\n readonly accessTokens: { [key: string]: AuthState | null };\r\n\r\n private readonly urls: { [key: string]: string };\r\n\r\n private readonly tokenPromises: { [key: string]: Promise | null };\r\n\r\n private constructor(store?: any) {\r\n Logger.info(`API -> constructor: initializing now...`);\r\n this.accessTokens = {\r\n api: null,\r\n };\r\n this.store = store;\r\n this.urls = {};\r\n this.tokenPromises = {\r\n api: null,\r\n };\r\n }\r\n\r\n static getInstance(store?: any): API {\r\n if (!API.instance) {\r\n API.instance = new API(store);\r\n }\r\n return API.instance;\r\n }\r\n\r\n /**\r\n * Set access token for a particular scope\r\n * @param scope the name of the scope.\r\n * @param token the token response.\r\n */\r\n setToken(scope: Scope, token: AuthState) {\r\n if (!token.expiresIn) {\r\n return;\r\n }\r\n Logger.debug(\r\n `API -> setToken: Setting the access token for scope ${scope} now. Expiry date: ${DateTime.fromSeconds(\r\n token.issuedAt + token.expiresIn\r\n ).toLocaleString(DateTime.DATETIME_SHORT_WITH_SECONDS)}`\r\n );\r\n // Below logging is for debugging API related issues ONLY. DO NOT ENABLE ON PRODUCTION!!\r\n // Logger.debug(`API -> setToken: access token for scope ${scope} is: \\n${token}`);\r\n // Above logging is for debugging API related issues ONLY. DO NOT ENABLE ON PRODUCTION!!\r\n this.accessTokens[scope] = token;\r\n }\r\n\r\n /**\r\n * Clear token for a specific scope.\r\n * @param scope\r\n */\r\n clearToken(scope: Scope = Scope.API) {\r\n Logger.info(`API -> clearToken: Clearing token for scope ${scope}.`);\r\n this.accessTokens[scope] = null;\r\n }\r\n\r\n /**\r\n * Private: Get access token for a scope.\r\n * @param scope the scope for the access token.\r\n */\r\n async getToken(scope: Scope): Promise {\r\n const token: AuthState | null = this.accessTokens[scope];\r\n if (token && TokenResponse.isTokenFresh(token)) {\r\n return token;\r\n }\r\n\r\n // if token is expiring soon, renew it first.\r\n if (scope === Scope.API) {\r\n try {\r\n if (!this.tokenPromises[scope]) {\r\n this.tokenPromises[scope] = this.store.dispatch(getAuthenticatedUser());\r\n }\r\n await this.tokenPromises[scope];\r\n } catch (e) {\r\n if (shouldTerminateSession(e)) {\r\n Logger.info(`API -> getToken: Session terminated because the invalid_grant was received.`);\r\n logOut();\r\n } else {\r\n Logger.error(`API -> getToken: Error occurred when getting a new access token.`, e);\r\n }\r\n } finally {\r\n this.tokenPromises[scope] = null;\r\n }\r\n }\r\n\r\n const newToken: AuthState | null = this.accessTokens[scope];\r\n if (newToken && newToken.expiresIn && newToken.issuedAt && TokenResponse.isTokenFresh(newToken)) {\r\n Logger.debug(\r\n `API -> getToken: New token expiry is: ${DateTime.fromSeconds(\r\n newToken.issuedAt + newToken.expiresIn\r\n ).toLocaleString(DateTime.DATETIME_SHORT_WITH_SECONDS)}`\r\n );\r\n return newToken;\r\n }\r\n\r\n // if there is still no access token, return null\r\n return null;\r\n }\r\n\r\n /**\r\n * Private: Append access token to the request. This method MUTATES the config object passed in.\r\n * @param config the Axios request config\r\n * @param scope the scope of the request\r\n */\r\n async appendToken(config: AxiosRequestConfig, scope: Scope = Scope.API): Promise {\r\n if (scope !== Scope.ANONYMOUS) {\r\n // if a scope is given, we need to append the access token in the request header.\r\n const token = await this.getToken(scope);\r\n\r\n if (!token) {\r\n throw new Error(`API -> appendToken: NOT_AUTHORIZED No access token can be obtained for the scope: ${scope}`);\r\n }\r\n config.headers.Authorization = `Bearer ${token.accessToken}`;\r\n }\r\n }\r\n\r\n /**\r\n * Wrapper for API GET method for preventing caching in the donor API.\r\n * @param path the path of the API.\r\n * @param params the key-value pair parameters.\r\n * @param opts additional options for the donor API.\r\n * @param scope optional scope for the api. If null is passed in, the call won't attach any access token.\r\n */\r\n async get(path: string, params?: object, opts?: AxiosRequestConfig, scope?: Scope) {\r\n Logger.info(`API -> get: Getting data from ${path}`);\r\n const config: AxiosRequestConfig = {\r\n ...getCommonConfig(),\r\n ...opts,\r\n params,\r\n };\r\n\r\n try {\r\n await this.appendToken(config, scope);\r\n const response = await axios.get(path, config);\r\n return response.data;\r\n } catch (e) {\r\n Logger.error(`API -> get: Error in getting the data for ${path}`, e);\r\n // Logger.error(e.response?.data);\r\n throw e;\r\n }\r\n }\r\n\r\n /**\r\n * Wrapper for API PATCH method.\r\n * @param path the path of the API.\r\n * @param patch the key-value pair patch.\r\n * @param opts additional options for the donor API.\r\n * @param scope optional scope for the api. If null is passed in, the call won't attach any access token.\r\n */\r\n async patch(path: string, patch: object, opts?: AxiosRequestConfig, scope?: Scope) {\r\n Logger.info(`API -> patch: Patch data to ${path}`);\r\n const config: AxiosRequestConfig = {\r\n ...getCommonConfig(),\r\n ...opts,\r\n };\r\n\r\n try {\r\n await this.appendToken(config, scope);\r\n const response = await axios.patch(path, patch, config);\r\n return response.data;\r\n } catch (e) {\r\n Logger.error(`API -> patch: Error in patching the data`, e);\r\n throw e;\r\n }\r\n }\r\n\r\n /**\r\n * Wrapper for donor API POST method.\r\n * @param path the path of the API.\r\n * @param payload the payload of the post method.\r\n * @param opts additional options for the donor API.\r\n * @param scope optional scope for the api. If null is passed in, the call won't attach any access token.\r\n */\r\n async post(path: string, payload: object, opts?: AxiosRequestConfig, scope?: Scope) {\r\n Logger.info(`API -> post: Posting data to ${path}`);\r\n Logger.debug(`API -> post: Payload data ${JSON.stringify(payload)}`);\r\n const config: AxiosRequestConfig = {\r\n ...getCommonConfig(),\r\n ...opts,\r\n };\r\n\r\n try {\r\n await this.appendToken(config, scope);\r\n const response = await axios.post(path, payload, config);\r\n return response.data;\r\n } catch (e) {\r\n Logger.error(`API -> post: Error in posting the data`, e);\r\n // Logger.error(JSON.stringify(e.response?.data));\r\n throw e;\r\n }\r\n }\r\n\r\n /**\r\n * Wrapper for donor API DELETE method.\r\n * @param path the path of the API.\r\n * @param opts additional options for the donor API.\r\n * @param scope optional scope for the api. If null is passed in, the call won't attach any access token.\r\n */\r\n async delete(path: string, opts?: AxiosRequestConfig, scope?: Scope) {\r\n Logger.info(`API -> del: Deleting data from ${path}`);\r\n const config: AxiosRequestConfig = {\r\n ...getCommonConfig(),\r\n ...opts,\r\n };\r\n\r\n try {\r\n await this.appendToken(config, scope);\r\n const response = await axios.delete(path, config);\r\n return response.data;\r\n } catch (e) {\r\n Logger.error(`API -> del: Error in deleting the data`, e);\r\n throw e;\r\n }\r\n }\r\n\r\n /**\r\n * Set any global url in the API instance that can be persisted in multiple pages.\r\n * @param key the key of the url.\r\n * @param url the url of the web page.\r\n */\r\n setUrl(key: string, url: string) {\r\n Logger.debug(`API -> setUrl: Setting url for key ${key} to be ${url}`);\r\n this.urls[key] = url;\r\n }\r\n\r\n /**\r\n * Batch set urls from a dictionary\r\n * @param urls the key-value mapping of urls.\r\n */\r\n setUrls(urls: { [key: string]: string }) {\r\n _.map(urls, (url, key) => {\r\n this.setUrl(key, url);\r\n });\r\n }\r\n\r\n /**\r\n * Open a url or key in the Web browser\r\n * @param request the url or key to open. If a local key is defined, use the url mapped to the key instead.\r\n */\r\n async openUrl(request: string) {\r\n if (!request || request.length === 0) {\r\n Logger.error(`API -> openUrl: Cannot handle an empty request`);\r\n throw new Error('Request is empty');\r\n }\r\n let url: string;\r\n if (request.startsWith('http')) {\r\n // if the request starts with http, we directly treat it as url.\r\n url = request;\r\n } else {\r\n // tries to find the key in the url store.\r\n if (!this.urls[request] || this.urls[request].length === 0) {\r\n Logger.error(`API -> openUrl: Cannot find the url for the given key: ${request}`);\r\n throw new Error('No Url found for the key');\r\n }\r\n url = this.urls[request];\r\n }\r\n Logger.debug(`API -> openUrl: Opening the url ${url} in the in-app-browser`);\r\n if (Platform.OS === 'ios') {\r\n await WebBrowser.dismissBrowser();\r\n }\r\n try {\r\n await WebBrowser.openBrowserAsync(url);\r\n } catch (e) {\r\n Logger.error(`API -> openUrl: Error starting the browser`, e);\r\n throw e;\r\n }\r\n }\r\n}\r\n","import { AnyAction, AsyncThunk, createAsyncThunk, createSlice, PayloadAction, SerializedError } from '@reduxjs/toolkit';\r\nimport * as Crypto from 'expo-crypto';\r\nimport { RootState } from '../store/configureStore';\r\nimport Logger from '../constants/Logger';\r\nimport {\r\n AccessTokenRequestConfig,\r\n AuthRequest,\r\n AuthRequestConfig,\r\n AuthSessionResult,\r\n exchangeCodeAsync,\r\n refreshAsync,\r\n RefreshTokenRequestConfig,\r\n TokenResponse,\r\n} from 'expo-auth-session';\r\nimport {\r\n authRequestConfig,\r\n authRequestConfigApple,\r\n authRequestConfigFacebook,\r\n authRequestConfigGoogle,\r\n discovery,\r\n redirectUri,\r\n tokenRequestConfig,\r\n} from '../config/AuthConfig';\r\nimport { cleanAuthCode, getAuthState } from '../constants/Utils';\r\nimport { AuthState, DomainHintList } from '../constants/Interfaces';\r\nimport { RejectedAction } from '@reduxjs/toolkit/dist/query/core/buildThunks';\r\nimport { purge } from './commonActions';\r\nimport API from '../constants/API';\r\nimport { DateTime } from 'luxon';\r\n\r\ninterface AuthenticationState {\r\n authState: AuthState | null;\r\n lastLogin: Date | null;\r\n loading: boolean;\r\n error: SerializedError | null;\r\n}\r\n\r\n/* eslint-disable-next-line @typescript-eslint/no-explicit-any */\r\ntype GenericAsyncThunk = AsyncThunk;\r\ntype PendingAction = ReturnType;\r\n\r\nconst initialState: AuthenticationState = {\r\n authState: null,\r\n lastLogin: null,\r\n loading: false,\r\n error: null,\r\n};\r\n\r\nconst CHARSET = 'ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789';\r\n\r\n/**\r\n * Check if the current token is valid.\r\n * This does NOT check if the token can be renewed. So you may get false results on tokens that are still able to be used with the API class.\r\n * @param scope\r\n */\r\nexport const isAccessTokenValid = (authState: AuthState): boolean => {\r\n Logger.debug(`Reducer -> authentication -> isAccessTokenValid: Checking authentication state now`);\r\n if (!authState) {\r\n return false;\r\n }\r\n if (!authState.accessToken) {\r\n return false;\r\n }\r\n return TokenResponse.isTokenFresh(authState);\r\n};\r\n\r\nconst getAuthConfig = (provider?: string): AuthRequestConfig => {\r\n if (provider === 'google.com') {\r\n return authRequestConfigGoogle;\r\n }\r\n if (provider === 'facebook.com') {\r\n return authRequestConfigFacebook;\r\n }\r\n if (provider === 'apple.com') {\r\n return authRequestConfigApple;\r\n }\r\n return authRequestConfig;\r\n};\r\n\r\nconst convertBufferToString = (buffer: Uint8Array): string => {\r\n const state: string[] = [];\r\n for (let i = 0; i < buffer.byteLength; i += 1) {\r\n const index = buffer[i] % CHARSET.length;\r\n state.push(CHARSET[index]);\r\n }\r\n return state.join('');\r\n};\r\n\r\n/**\r\n * Same logic in PKCE patched for async calling method\r\n * @param input\r\n */\r\nconst getRandomValuesAsync = async (input: Uint8Array): Promise => {\r\n const output = input;\r\n // Get access to the underlying raw bytes\r\n if (input.byteLength !== input.length) input = new Uint8Array(input.buffer);\r\n\r\n const bytes = await Crypto.getRandomBytesAsync(input.length);\r\n\r\n // eslint-disable-next-line no-plusplus\r\n for (let i = 0; i < bytes.length; i++) {\r\n input[i] = bytes[i];\r\n }\r\n\r\n return output;\r\n};\r\n\r\nconst getState = async () => {\r\n const buffer = new Uint8Array(10);\r\n await getRandomValuesAsync(buffer);\r\n return convertBufferToString(buffer);\r\n};\r\n\r\n/**\r\n * Reducer function for login the user.\r\n */\r\nexport const loginUser = createAsyncThunk('authentication/loginUser', async (provider?: DomainHintList) => {\r\n Logger.info(`Reducer -> authentication -> loginUser: Start a new login request`);\r\n\r\n const authRequestConfig = getAuthConfig(provider);\r\n authRequestConfig.state = await getState();\r\n\r\n try {\r\n const authRequest = new AuthRequest(authRequestConfig);\r\n\r\n // obtain auth code\r\n const authCodeResult: AuthSessionResult = await authRequest.promptAsync(discovery, {\r\n windowName: '_self',\r\n });\r\n\r\n /**\r\n * - If the user cancelled the authentication session by closing the browser, the result is { type: 'cancel' }.\r\n * - If the authentication is dismissed manually with AuthSession.dismiss(), the result is { type: 'dismiss' }.\r\n * - If the authentication flow is successful, the result is {type: 'success', params: Object, event: Object }\r\n * - If the authentication flow is returns an error, the result is {type: 'error', params: Object, errorCode: string, event: Object }\r\n * - If you call AuthSession.startAsync more than once before the first call has returned, the result is {type: 'locked'}, because only one AuthSession can be in progress at any time.\r\n */\r\n\r\n // throw error if the login process was interrupted or abandoned\r\n if (authCodeResult.type === 'cancel' || authCodeResult.type === 'dismiss' || authCodeResult.type === 'locked') {\r\n Logger.warn('Reducer -> authentication -> loginUser: Login request was cancelled, dismissed, or locked');\r\n return null;\r\n }\r\n\r\n // throw error if the login process encountered technical errors\r\n if (authCodeResult.type === 'error') {\r\n Logger.error('Reducer -> authentication -> loginUser: Error occurred during the authentication process');\r\n console.warn(authCodeResult);\r\n throw new Error('Error occurred during the authentication process');\r\n }\r\n\r\n // @ts-ignore\r\n const { code } = authCodeResult.params;\r\n\r\n const accessTokenRequestConfig: AccessTokenRequestConfig = {\r\n ...tokenRequestConfig,\r\n code: cleanAuthCode(code),\r\n redirectUri,\r\n };\r\n\r\n // obtain access token and refresh token\r\n const response: TokenResponse = await exchangeCodeAsync(accessTokenRequestConfig, discovery);\r\n const authState: AuthState = getAuthState(response);\r\n // Logger.debug(`Reducer -> authentication -> loginUser: new authState now: ${JSON.stringify(authState)}`);\r\n\r\n return authState;\r\n } catch (e) {\r\n Logger.error(`Reducer -> authentication -> loginUser: Error occurred in login`, e);\r\n throw e;\r\n }\r\n});\r\n\r\n/**\r\n * Will refresh the token if required\r\n */\r\nexport const getAuthenticatedUser = createAsyncThunk('authentication/getAuthenticatedUser', async (param, thunkAPI) => {\r\n Logger.info(`Reducer -> authentication -> getAuthenticatedUser: Getting cached user token`);\r\n\r\n const state: RootState = thunkAPI.getState();\r\n const { authState } = state.authentication;\r\n // If no auth state is present, just quit the function\r\n if (!authState) {\r\n Logger.debug(`Reducer -> authentication -> getAuthenticatedUser: No auth state is present. Exit function.`);\r\n return null;\r\n }\r\n\r\n // If current token is valid, just quit the function and no need to refresh\r\n if (TokenResponse.isTokenFresh(authState)) {\r\n /*\r\n Logger.debug(\r\n `Reducer -> authentication -> getAuthenticatedUser: Current access token is ${JSON.stringify(\r\n authState\r\n )}. Exit function.`\r\n );\r\n */\r\n Logger.debug(`Reducer -> authentication -> getAuthenticatedUser: Current access token is fresh.`);\r\n return null;\r\n }\r\n\r\n // Refresh the token\r\n Logger.debug(\r\n `Reducer -> authentication -> getAuthenticatedUser: Current access token is expiring soon. Trying to refresh the token now.`\r\n );\r\n const refreshTokenRequestConfig: RefreshTokenRequestConfig = {\r\n ...tokenRequestConfig,\r\n refreshToken: authState.refreshToken,\r\n };\r\n const response: TokenResponse = await refreshAsync(refreshTokenRequestConfig, discovery);\r\n const newAuthState: AuthState = getAuthState(response);\r\n // Logger.debug(`Reducer -> authentication -> getAuthenticatedUser: New authState is ${JSON.stringify(newAuthState)}`);\r\n if (!newAuthState.expiresIn) {\r\n Logger.debug(`Reducer -> authentication -> getAuthenticatedUser: refreshed authState, no expiresIn.`);\r\n } else {\r\n Logger.debug(\r\n `Reducer -> authentication -> getAuthenticatedUser: refreshed authState. New expiry date: ${DateTime.fromSeconds(\r\n newAuthState.issuedAt + newAuthState.expiresIn\r\n ).toLocaleString(DateTime.DATETIME_SHORT_WITH_SECONDS)}`\r\n );\r\n }\r\n\r\n return newAuthState;\r\n});\r\n\r\nconst isPendingAction = (action: AnyAction): action is PendingAction =>\r\n action.type.startsWith('/authentication') && action.type.endsWith('/pending');\r\nconst isRejectedAction = (action: AnyAction): action is RejectedAction =>\r\n action.type.startsWith('/authentication') && action.type.endsWith('/rejected');\r\n\r\nconst authenticationSlice = createSlice({\r\n name: 'authentication',\r\n initialState,\r\n reducers: {\r\n setAuthState(state, action: PayloadAction) {\r\n Logger.debug(`Reducer -> authentication -> setAuthState: Setting setAuthState ${action.payload}`);\r\n state.authState = action.payload;\r\n },\r\n clearAuthState(state) {\r\n Logger.debug(`Reducer -> authentication -> setAuthState: Clearing auth state`);\r\n const api = API.getInstance();\r\n api.clearToken();\r\n state.authState = null;\r\n },\r\n },\r\n extraReducers: (builder) => {\r\n builder\r\n .addCase(loginUser.fulfilled, (state, action) => {\r\n const authState = action.payload;\r\n if (authState) {\r\n state.authState = authState;\r\n }\r\n state.loading = false;\r\n state.error = null;\r\n })\r\n .addCase(getAuthenticatedUser.fulfilled, (state, action) => {\r\n const authState = action.payload;\r\n if (authState) {\r\n state.authState = authState;\r\n }\r\n state.loading = false;\r\n state.error = null;\r\n })\r\n .addCase(purge, (state) => {\r\n Logger.debug(`Reducer -> authentication: Purge request received.`);\r\n const api = API.getInstance();\r\n api.clearToken();\r\n state.authState = null;\r\n state.lastLogin = null;\r\n state.loading = false;\r\n state.error = null;\r\n })\r\n .addMatcher(isPendingAction, (state) => {\r\n state.loading = true;\r\n state.error = null;\r\n })\r\n .addMatcher(isRejectedAction, (state, action) => {\r\n state.loading = false;\r\n state.error = action.error;\r\n });\r\n },\r\n});\r\nexport const { setAuthState, clearAuthState } = authenticationSlice.actions;\r\n\r\nexport default authenticationSlice.reducer;\r\n","import { createSlice, PayloadAction } from '@reduxjs/toolkit';\r\nimport Logger from '../constants/Logger';\r\nimport { purge } from './commonActions';\r\n\r\ninterface RegionState {\r\n selectedRegion: string;\r\n selectedRegionLeaderboard: string;\r\n regions: string[];\r\n}\r\nconst initialState: RegionState = {\r\n selectedRegion: '',\r\n selectedRegionLeaderboard: '',\r\n regions: [],\r\n};\r\n\r\nconst regionSlice = createSlice({\r\n name: 'region',\r\n initialState,\r\n reducers: {\r\n selectRegion(state, action: PayloadAction) {\r\n Logger.debug(`Reducer -> region -> selectRegion: Setting preferred region to ${action.payload}`);\r\n state.selectedRegion = action.payload;\r\n },\r\n selectRegionLeaderboard(state, action: PayloadAction) {\r\n Logger.debug(`Reducer -> region -> selectRegionLeaderboard: Setting preferred region to ${action.payload}`);\r\n state.selectedRegionLeaderboard = action.payload;\r\n },\r\n setDefaultRegionLeaderboard(state, action: PayloadAction) {\r\n Logger.debug(`Reducer -> region -> setDefaultRegion: Setting default region to ${action.payload}`);\r\n if (state.selectedRegionLeaderboard.length === 0) {\r\n state.selectedRegionLeaderboard = action.payload;\r\n }\r\n },\r\n setDefaultRegion(state, action: PayloadAction) {\r\n Logger.debug(`Reducer -> region -> setDefaultRegion: Setting default region to ${action.payload}`);\r\n if (state.selectedRegion.length === 0) {\r\n state.selectedRegion = action.payload;\r\n }\r\n },\r\n setRegions(state, action: PayloadAction) {\r\n Logger.debug(`Reducer -> region -> setRegions: Setting regions to ${JSON.stringify(action.payload)}`);\r\n state.regions = action.payload;\r\n },\r\n },\r\n extraReducers: (builder) => {\r\n builder.addCase(purge, (state) => {\r\n Logger.debug(`Reducer -> history: Purge request received.`);\r\n state.selectedRegion = '';\r\n state.selectedRegionLeaderboard = '';\r\n state.regions = [];\r\n });\r\n },\r\n});\r\n\r\nexport const { selectRegion, selectRegionLeaderboard, setDefaultRegion, setRegions } = regionSlice.actions;\r\nexport default regionSlice.reducer;\r\n","import { AnyAction, createAsyncThunk, createSlice, SerializedError } from '@reduxjs/toolkit';\r\nimport { MaraeStats, User, UserActivity, UserMarae, UserStats, WhanauMarae } from '../constants/Interfaces';\r\nimport Logger from '../constants/Logger';\r\nimport API from '../constants/API';\r\nimport { RejectedAction } from '@reduxjs/toolkit/dist/query/core/buildThunks';\r\nimport { purge } from './commonActions';\r\nimport { setDefaultRegion } from './region.slice';\r\nimport { clearAuthState } from './authentication.slice';\r\n\r\ninterface UserState {\r\n user: User | null;\r\n loading: boolean;\r\n backgroundLoading: boolean;\r\n userDetailsSkipped: boolean;\r\n maraeSkipped: boolean;\r\n needsConfirmation: boolean;\r\n isConfirmed: boolean;\r\n error: SerializedError | null;\r\n whanau: null | User[];\r\n whanauUser: User | null;\r\n tipModal: string | null;\r\n maraeStats: MaraeStats | null;\r\n userStats: UserStats | null;\r\n activitiesCompleted: UserActivity[] | null;\r\n}\r\n\r\nconst initialState: UserState = {\r\n user: null,\r\n loading: false,\r\n backgroundLoading: false,\r\n userDetailsSkipped: false,\r\n maraeSkipped: false,\r\n needsConfirmation: false,\r\n isConfirmed: false,\r\n error: null,\r\n whanau: null,\r\n whanauUser: null,\r\n tipModal: null,\r\n maraeStats: null,\r\n userStats: null,\r\n activitiesCompleted: null,\r\n};\r\n\r\n/**\r\n * Get the user data\r\n */\r\nexport const getUser = createAsyncThunk('user/getUser', async (param, thunkAPI) => {\r\n Logger.info(`Reducer -> user -> getUser: Getting user information`);\r\n const api: API = API.getInstance();\r\n try {\r\n const user: User = await api.get('/user');\r\n Logger.debug(`Reducer -> user -> getUser: User information received. ${user.userId}`);\r\n if (user.region && user.region.regionName) {\r\n thunkAPI.dispatch(setDefaultRegion(user.region.regionName));\r\n }\r\n return user;\r\n } catch (e: any) {\r\n Logger.warn(`Reducer -> user -> getUser: ${e.message}`);\r\n if (e.response && e.response.status === 404) {\r\n // if the get user returns 404, it definitely means the user is not in the db. (or was deleted)\r\n // in this case, post the user immediately.\r\n try {\r\n const newUser: User = await api.post('/user', {});\r\n return newUser;\r\n } catch (e: any) {\r\n // this could error with a 400 when the user is deleted\r\n Logger.warn(`Reducer -> user -> getUser: ${e.message}`);\r\n thunkAPI.dispatch(clearAuthState());\r\n throw e;\r\n }\r\n } else if (e.response && e.response.status === 400) {\r\n Logger.warn(`Reducer -> user -> getUser: no email on user`);\r\n }\r\n thunkAPI.dispatch(clearAuthState());\r\n throw e;\r\n }\r\n});\r\n\r\nexport const patchUser = createAsyncThunk('user/patchUser', async (user: User) => {\r\n Logger.info(`Reducer -> user -> patchUser: Patching user information: ${JSON.stringify(user)}`);\r\n const api: API = API.getInstance();\r\n try {\r\n await api.patch('/user', user);\r\n Logger.debug(`Reducer -> user -> patchUser: User information has been successfully updated.`);\r\n return user;\r\n } catch (e: any) {\r\n Logger.error(`Reducer -> user -> patchUser: Error occurred in patching the user`, e);\r\n throw new Error(e.message);\r\n }\r\n});\r\n\r\nexport const postUserMarae = createAsyncThunk('user/postUserMarae', async (whanauMarae: WhanauMarae) => {\r\n Logger.info(`Reducer -> user -> postUserMarae: Posting user marae information`);\r\n try {\r\n const api: API = API.getInstance();\r\n await api.post('/user/marae', whanauMarae);\r\n Logger.debug(`Reducer: user -> postUserMarae: User marae has been successfully uploaded.`);\r\n return whanauMarae;\r\n } catch (e) {\r\n Logger.error(`Reducer -> user -> postUserMarae: Error occurred in posting the user marae`, e);\r\n throw e;\r\n }\r\n});\r\nexport const deleteUserMarae = createAsyncThunk('user/deleteUserMarae', async (marae: UserMarae) => {\r\n Logger.info(`Reducer -> user -> deleteMarae: Delete user marae `);\r\n try {\r\n const api: API = API.getInstance();\r\n await api.delete(`/user/marae/${marae.maraeId}?iwiId=${marae.iwi?.iwiId}`);\r\n Logger.debug(`Reducer: user -> deleteUserMarae: User Marae has been successfully deleted.`);\r\n } catch (e) {\r\n Logger.error(`Reducer -> user -> deleteUserMarae Error occurred in deleting the user marae`, e);\r\n throw e;\r\n }\r\n});\r\n\r\nexport const getUserWhanau = createAsyncThunk('user/getUserWhanau', async (): Promise => {\r\n Logger.info(`Reducer -> user -> getUserWhanau: Getting userWhanau information`);\r\n const api: API = API.getInstance();\r\n try {\r\n const whanau: any = await api.get('/user/whanau');\r\n Logger.debug(`Reducer -> user -> getUserWhanau: UserWhanau information received.`);\r\n return whanau;\r\n } catch (e: any) {\r\n Logger.warn(`Reducer -> user -> getUserWhanau: ${e.message}`);\r\n throw e;\r\n }\r\n});\r\n\r\nexport const postUserWhanau = createAsyncThunk('user/postUserWhanau', async (user: User) => {\r\n Logger.info(`Reducer -> user -> postUserWhannu Posting user whanau information`);\r\n try {\r\n const api: API = API.getInstance();\r\n await api.post('/user/whanau', user);\r\n Logger.debug(`Reducer: user -> postUserWhannu User whanau has been successfully uploaded.`);\r\n const whanau: User[] = await api.get('/user/whanau');\r\n return whanau;\r\n } catch (e) {\r\n Logger.error(`Reducer -> user -> postUserWhannu Error occurred in posting the user whanau`, e);\r\n throw e;\r\n }\r\n});\r\nexport const patchUserWhanau = createAsyncThunk('user/patchUserWhanau', async (user: User) => {\r\n Logger.info(`Reducer -> user -> patchUser: Patching userWhanau information: ${JSON.stringify(user)}`);\r\n const api: API = API.getInstance();\r\n try {\r\n await api.patch(`/user/whanau/${user.userId}`, user);\r\n Logger.debug(`Reducer -> user -> patchUserWhanau: User information has been successfully updated.`);\r\n return await api.get('/user/whanau');\r\n } catch (e: any) {\r\n Logger.error(`Reducer -> user -> patchUserWhanau: Error occurred in patching the user`, e);\r\n throw new Error(e.message);\r\n }\r\n});\r\n\r\ninterface PostUserPhotoProps {\r\n userId: string;\r\n payload: {\r\n image: {\r\n mime: string;\r\n data: string;\r\n url: string;\r\n };\r\n };\r\n}\r\nexport const postUserPhoto = createAsyncThunk('user/postUserPhoto', async (obj: PostUserPhotoProps) => {\r\n Logger.info(`Reducer -> user -> postUserPhotoPosting user whanau information`);\r\n try {\r\n const api: API = API.getInstance();\r\n await api.post(`/user/${obj.userId}/photo`, obj.payload);\r\n Logger.debug(`Reducer: user -> postUserPhoto User photo has been successfully uploaded.`);\r\n return obj;\r\n } catch (e) {\r\n Logger.error(`Reducer -> user -> postUserPhoto Error occurred in posting the user photo`, e);\r\n throw e;\r\n }\r\n});\r\nexport const deleteUserPhoto = createAsyncThunk('user/deleteUserPhoto', async (userId: string) => {\r\n Logger.info(`Reducer -> user -> deleteUserPhoto user whanau information`);\r\n try {\r\n const api: API = API.getInstance();\r\n await api.delete(`/user/${userId}/photo`);\r\n Logger.debug(`Reducer: user -> deleteUserPhoto User photo has been successfully deleted.`);\r\n return userId;\r\n } catch (e: any) {\r\n Logger.error(`Reducer -> user -> deleteUserPhoto Error occurred in deleting the user photo`, e);\r\n throw e;\r\n }\r\n});\r\n\r\nexport const getMaraeStats = createAsyncThunk('user/getMaraeStats', async (marae: UserMarae) => {\r\n Logger.info(`Reducer -> user -> getUserWhanau: Getting getMaraeStats information`);\r\n const api: API = API.getInstance();\r\n try {\r\n const stats: MaraeStats = await api.get(`/marae/${marae.maraeId}/stats`);\r\n Logger.debug(`Reducer -> user -> getUserWhanau: getMaraeStats information received.`);\r\n return stats;\r\n } catch (e: any) {\r\n Logger.warn(`Reducer -> user -> getMaraeStats Completed: ${e.message}`);\r\n throw e;\r\n }\r\n});\r\n\r\nexport const getUserStats = createAsyncThunk('user/getUserStats', async () => {\r\n Logger.info(`Reducer -> user -> getUserStats: Getting userStats information`);\r\n const api: API = API.getInstance();\r\n try {\r\n const stats: UserStats = await api.get(`/user/stats`);\r\n Logger.debug(`Reducer -> user -> getUserStats: userStats information received.`);\r\n return stats;\r\n } catch (e: any) {\r\n Logger.warn(`Reducer -> user -> userStats error: ${e.message}`);\r\n throw e;\r\n }\r\n});\r\n\r\nexport const getUserActivitiesCompleted = createAsyncThunk('getUserActivityCompleted', async () => {\r\n Logger.info(`Reducer -> user -> getUserActivityCompleted: Getting getUserActivityCompleted information`);\r\n const api: API = API.getInstance();\r\n try {\r\n const stats: UserActivity[] = await api.get(`user/activity/completed`);\r\n Logger.debug(`Reducer -> user -> getUserActivityCompleted: UserActivityCompleted information received.`);\r\n return stats;\r\n } catch (e: any) {\r\n Logger.warn(`Reducer -> user -> getUserActivityCompleted Completed: ${e.message}`);\r\n throw e;\r\n }\r\n});\r\n\r\nconst isRejectedAction = (action: AnyAction): action is RejectedAction => action.type.endsWith('/rejected');\r\n\r\nconst userSlice = createSlice({\r\n name: 'user',\r\n initialState,\r\n reducers: {\r\n skipUserDetails(state) {\r\n Logger.debug(`Reducer -> user -> skipUserDetails: User details wizard skipped.`);\r\n state.userDetailsSkipped = true;\r\n },\r\n skipMarae(state) {\r\n Logger.debug(`Reducer -> user -> skipMarae: Marae wizard skipped.`);\r\n state.maraeSkipped = true;\r\n },\r\n confirmUser(state) {\r\n Logger.debug(`Reducer -> user -> confirmUser: User confirmed`);\r\n state.isConfirmed = true;\r\n },\r\n },\r\n extraReducers: (builder) => {\r\n builder\r\n .addCase(getUser.fulfilled, (state, action) => {\r\n const user = action.payload;\r\n if (user) {\r\n state.user = user;\r\n }\r\n if (!user.firstName) {\r\n // if the user doesn't have information, we need to display the confirmation screen\r\n state.needsConfirmation = true;\r\n }\r\n state.loading = false;\r\n state.error = null;\r\n })\r\n .addCase(getUser.pending, (state) => {\r\n state.loading = true;\r\n state.error = null;\r\n })\r\n .addCase(patchUser.fulfilled, (state, action) => {\r\n const user = action.payload;\r\n if (user) {\r\n state.user = { ...state.user, ...user };\r\n }\r\n state.backgroundLoading = false;\r\n state.error = null;\r\n })\r\n .addCase(patchUser.pending, (state) => {\r\n state.backgroundLoading = true;\r\n state.error = null;\r\n })\r\n .addCase(postUserMarae.fulfilled, (state, action) => {\r\n const whanauMarae = action.payload;\r\n if (whanauMarae && state.user) {\r\n if (state.user.marae) {\r\n state.user.marae.push(whanauMarae);\r\n } else {\r\n state.user.marae = [whanauMarae];\r\n }\r\n }\r\n state.backgroundLoading = false;\r\n state.error = null;\r\n })\r\n .addCase(postUserMarae.pending, (state) => {\r\n state.backgroundLoading = true;\r\n state.error = null;\r\n })\r\n .addCase(getUserWhanau.fulfilled, (state, action) => {\r\n const whanau = action.payload;\r\n if (whanau) {\r\n state.whanau = whanau;\r\n }\r\n state.backgroundLoading = false;\r\n state.error = null;\r\n })\r\n .addCase(getUserWhanau.pending, (state) => {\r\n state.backgroundLoading = true;\r\n state.error = null;\r\n })\r\n .addCase(postUserWhanau.fulfilled, (state, action) => {\r\n state.whanau = action.payload;\r\n state.backgroundLoading = false;\r\n state.loading = false;\r\n state.error = null;\r\n })\r\n .addCase(postUserWhanau.pending, (state) => {\r\n state.loading = true;\r\n state.backgroundLoading = true;\r\n state.error = null;\r\n })\r\n .addCase(patchUserWhanau.pending, (state) => {\r\n state.loading = true;\r\n state.error = null;\r\n })\r\n .addCase(patchUserWhanau.fulfilled, (state, action) => {\r\n state.whanau = action.payload;\r\n state.loading = false;\r\n state.error = null;\r\n })\r\n .addCase(postUserPhoto.fulfilled, (state, action) => {\r\n const { userId, payload } = action.payload;\r\n const { url } = payload.image;\r\n if (state.user?.userId === userId) {\r\n state.user.imageUrl = url;\r\n } else {\r\n const index = state.whanau?.findIndex((item) => item.userId === userId!);\r\n state.whanau![index!].imageUrl = url;\r\n }\r\n state.backgroundLoading = false;\r\n state.error = null;\r\n })\r\n .addCase(postUserPhoto.pending, (state) => {\r\n state.backgroundLoading = true;\r\n state.error = null;\r\n })\r\n .addCase(deleteUserPhoto.fulfilled, (state, action) => {\r\n const userId = action.payload;\r\n if (state.user?.userId === userId) {\r\n state.user.imageUrl = null;\r\n } else {\r\n const index = state.whanau?.findIndex((item) => item.userId === userId!);\r\n state.whanau![index!].imageUrl = null;\r\n }\r\n state.backgroundLoading = false;\r\n state.error = null;\r\n })\r\n .addCase(deleteUserPhoto.pending, (state) => {\r\n state.backgroundLoading = true;\r\n state.error = null;\r\n })\r\n .addCase(getMaraeStats.fulfilled, (state, action) => {\r\n state.maraeStats = action.payload;\r\n })\r\n .addCase(deleteUserMarae.pending, (state) => {\r\n state.backgroundLoading = true;\r\n state.error = null;\r\n })\r\n .addCase(deleteUserMarae.fulfilled, (state) => {\r\n state.backgroundLoading = false;\r\n state.error = null;\r\n })\r\n .addCase(getUserStats.fulfilled, (state, action) => {\r\n state.userStats = action.payload;\r\n state.loading = false;\r\n state.error = null;\r\n })\r\n .addCase(getUserStats.pending, (state) => {\r\n state.loading = true;\r\n state.error = null;\r\n })\r\n .addCase(getUserActivitiesCompleted.fulfilled, (state, action) => {\r\n state.activitiesCompleted = action.payload;\r\n state.loading = false;\r\n state.error = null;\r\n })\r\n .addCase(getUserActivitiesCompleted.pending, (state) => {\r\n state.loading = true;\r\n state.error = null;\r\n })\r\n .addCase(purge, (state) => {\r\n Logger.debug(`Reducer -> user: Purge request received.`);\r\n state.user = null;\r\n state.loading = false;\r\n state.backgroundLoading = false;\r\n state.userDetailsSkipped = false;\r\n state.maraeSkipped = false;\r\n state.needsConfirmation = false;\r\n state.isConfirmed = false;\r\n state.error = null;\r\n state.whanau = [];\r\n state.tipModal = null;\r\n state.maraeStats = null;\r\n state.userStats = null;\r\n state.activitiesCompleted = null;\r\n })\r\n .addMatcher(isRejectedAction, (state, action) => {\r\n state.loading = false;\r\n state.backgroundLoading = false;\r\n state.error = action.error;\r\n });\r\n },\r\n});\r\n\r\nexport const { skipMarae, skipUserDetails, confirmUser } = userSlice.actions;\r\nexport default userSlice.reducer;\r\n","import { AnyAction, createAsyncThunk, createSlice, SerializedError } from '@reduxjs/toolkit';\r\nimport {\r\n Activity,\r\n ActivityParticipation,\r\n ActivityStats,\r\n Dictionary,\r\n Scope,\r\n UserActivity,\r\n} from '../constants/Interfaces';\r\nimport Logger from '../constants/Logger';\r\nimport API from '../constants/API';\r\nimport { RejectedAction } from '@reduxjs/toolkit/dist/query/core/buildThunks';\r\nimport _ from 'lodash';\r\nimport { purge } from './commonActions';\r\nimport { saveCacheImage } from '../constants/Utils';\r\n\r\ninterface ActivityState {\r\n activities: Activity[];\r\n pastActivities: Activity[];\r\n myActivities: UserActivity[];\r\n stats: Dictionary; // key is the activity id, value is ActivityStats;\r\n loading: boolean;\r\n checkInProgress: boolean;\r\n backgroundLoading: boolean;\r\n error: SerializedError | null;\r\n}\r\n\r\nconst initialState: ActivityState = {\r\n activities: [],\r\n pastActivities: [],\r\n myActivities: [],\r\n stats: {},\r\n loading: false,\r\n checkInProgress: false,\r\n backgroundLoading: false,\r\n error: null,\r\n};\r\n\r\n/**\r\n * Get the public activities\r\n */\r\nexport const getActivities = createAsyncThunk('activity/getActivities', async (authState: object) => {\r\n Logger.info(`Reducer -> activity -> getActivities: Getting public activities`);\r\n const api: API = API.getInstance();\r\n try {\r\n const activities: Activity[] = await api.get(\r\n '/activity',\r\n undefined,\r\n undefined,\r\n authState ? Scope.API : Scope.ANONYMOUS\r\n );\r\n Logger.debug(`Reducer -> activity -> getActivities: Activities information received`);\r\n if (activities && activities.length > 0) {\r\n activities.map((activity) => saveCacheImage({ activityId: activity.activityId, uri: activity.imageUrl }));\r\n }\r\n return activities;\r\n } catch (e) {\r\n Logger.warn(`Reducer -> activity -> getActivities: ${e.message}`);\r\n throw e;\r\n }\r\n});\r\n\r\n/**\r\n * Get the past activities the user manages (only for event organisers or admins)\r\n */\r\nexport const getPastActivities = createAsyncThunk('activity/getPastActivities', async () => {\r\n Logger.info(`Reducer -> activity -> getPastActivities: Getting past activities under the user`);\r\n const api: API = API.getInstance();\r\n try {\r\n const activities: Activity[] = await api.get('/activity/completed');\r\n Logger.debug(`Reducer -> activity -> getPastActivities: Activities information received`);\r\n return activities;\r\n } catch (e) {\r\n Logger.warn(`Reducer -> activity -> getPastActivities: ${e.message}`);\r\n throw e;\r\n }\r\n});\r\n\r\n/**\r\n * Get user activities\r\n */\r\nexport const getUserActivities = createAsyncThunk('activity/getUserActivities', async () => {\r\n Logger.info(`Reducer -> activity -> getUserActivities: Getting user activities`);\r\n const api: API = API.getInstance();\r\n try {\r\n const activities: UserActivity[] = await api.get('/user/activity');\r\n Logger.debug(`Reducer -> activity -> getUserActivities: Activities information received`);\r\n return activities;\r\n } catch (e) {\r\n Logger.warn(`Reducer -> activity -> getUserActivities: ${e.message}`);\r\n throw e;\r\n }\r\n});\r\n\r\n/**\r\n * Post user (or whanau) activity\r\n */\r\nexport const postUserActivity = createAsyncThunk(\r\n 'activity/postUserActivity',\r\n async (payload: {\r\n userId?: string;\r\n activity: Pick;\r\n }) => {\r\n Logger.info(`Reducer -> activity -> postUserActivity: Posting user activity ${JSON.stringify(payload.activity)}`);\r\n const api: API = API.getInstance();\r\n const postPayload: UserActivity = {\r\n activityId: payload.activity.activityId,\r\n favourite: payload.activity.favourite,\r\n going: payload.activity.going,\r\n maraeId: payload.activity.maraeId,\r\n whanauType: payload.activity.whanauType,\r\n };\r\n\r\n try {\r\n await api.post(\r\n `/user${payload.userId ? `/whanau/${payload.userId}` : ''}/activity/${payload.activity.activityId}`,\r\n postPayload\r\n );\r\n Logger.debug(`Reducer -> activity -> postUserActivity: Activity posted`);\r\n return payload.activity;\r\n } catch (e) {\r\n Logger.warn(`Reducer -> activity -> postUserActivity: ${e.message}`);\r\n throw e;\r\n }\r\n }\r\n);\r\n\r\n/**\r\n * Post activity participation (checkin)\r\n */\r\nexport const postUserActivityParticipation = createAsyncThunk(\r\n 'activity/postUserActivityParticipation',\r\n async (payload: ActivityParticipation) => {\r\n const { userId, activityId, password } = payload;\r\n Logger.info(\r\n `Reducer -> activity -> postUserActivityParticipation: Checkin user ${userId} for activity ${activityId}`\r\n );\r\n const api: API = API.getInstance();\r\n\r\n try {\r\n const url = password\r\n ? `/activity/${activityId}/user/${userId}/participation?password=${password}`\r\n : `/activity/${activityId}/user/${userId}/participation`;\r\n await api.post(url, {});\r\n Logger.debug(`Reducer -> activity -> postUserActivityParticipation: Activity posted`);\r\n return {};\r\n } catch (e) {\r\n Logger.warn(`Reducer -> activity -> postUserActivityParticipation: ${e.message}`);\r\n throw e;\r\n }\r\n }\r\n);\r\n\r\n/**\r\n * Get stats for a particular activity\r\n */\r\nexport const getActivityStats = createAsyncThunk(\r\n 'activity/getActivityStats',\r\n async (activityId: string | undefined) => {\r\n if (!activityId) {\r\n return null;\r\n }\r\n Logger.info(`Reducer -> activity -> getActivityStats: Getting stats for activity ${activityId}`);\r\n const api: API = API.getInstance();\r\n try {\r\n const activityStats: ActivityStats = await api.get(\r\n `/activity/${activityId}/stats`,\r\n undefined,\r\n undefined,\r\n Scope.ANONYMOUS\r\n );\r\n Logger.debug(`Reducer -> activity -> getActivityStats: Activity stats received: ${activityId}`);\r\n return { activityId, activityStats };\r\n } catch (e) {\r\n Logger.warn(`Reducer -> activity -> getActivityStats: ${e.message}`);\r\n throw e;\r\n }\r\n }\r\n);\r\n\r\nconst isRejectedAction = (action: AnyAction): action is RejectedAction => action.type.endsWith('/rejected');\r\n\r\nconst activitySlice = createSlice({\r\n name: 'activity',\r\n initialState,\r\n reducers: {},\r\n extraReducers: (builder) => {\r\n builder\r\n .addCase(getActivities.fulfilled, (state, action) => {\r\n const activities: Activity[] = action.payload;\r\n if (activities && activities.length > 0) {\r\n state.activities = activities;\r\n }\r\n state.backgroundLoading = false;\r\n state.error = null;\r\n })\r\n .addCase(getActivities.pending, (state) => {\r\n state.backgroundLoading = true;\r\n state.error = null;\r\n })\r\n .addCase(getPastActivities.fulfilled, (state, action) => {\r\n const activities: Activity[] = action.payload;\r\n if (activities && activities.length > 0) {\r\n state.pastActivities = activities;\r\n }\r\n state.backgroundLoading = false;\r\n state.error = null;\r\n })\r\n .addCase(getPastActivities.pending, (state) => {\r\n state.backgroundLoading = true;\r\n state.error = null;\r\n })\r\n .addCase(getUserActivities.fulfilled, (state, action) => {\r\n const activities: UserActivity[] = action.payload;\r\n if (activities && activities.length > 0) {\r\n state.myActivities = activities;\r\n }\r\n state.backgroundLoading = false;\r\n state.error = null;\r\n })\r\n .addCase(getUserActivities.pending, (state) => {\r\n state.backgroundLoading = true;\r\n state.error = null;\r\n })\r\n .addCase(getActivityStats.fulfilled, (state, action) => {\r\n if (action.payload) {\r\n const { activityId, activityStats } = action.payload;\r\n if (activityStats) {\r\n state.stats[activityId] = activityStats;\r\n }\r\n }\r\n state.backgroundLoading = false;\r\n state.error = null;\r\n })\r\n .addCase(getActivityStats.pending, (state) => {\r\n state.backgroundLoading = true;\r\n state.error = null;\r\n })\r\n .addCase(postUserActivity.fulfilled, (state, action) => {\r\n const activity: UserActivity = action.payload;\r\n if (activity) {\r\n const index = _.findIndex(state.myActivities, ['activityId', activity.activityId]);\r\n if (index > -1) {\r\n state.myActivities[index] = { ...state.myActivities[index], ...activity };\r\n } else {\r\n state.myActivities.push(activity);\r\n }\r\n }\r\n state.backgroundLoading = false;\r\n state.error = null;\r\n })\r\n .addCase(postUserActivity.pending, (state) => {\r\n state.backgroundLoading = true;\r\n state.error = null;\r\n })\r\n .addCase(postUserActivityParticipation.fulfilled, (state) => {\r\n state.checkInProgress = false;\r\n })\r\n .addCase(postUserActivityParticipation.pending, (state) => {\r\n state.checkInProgress = true;\r\n state.error = null;\r\n })\r\n .addCase(purge, (state) => {\r\n Logger.debug(`Reducer -> activity: Purge request received.`);\r\n state.activities = [];\r\n state.pastActivities = [];\r\n state.myActivities = [];\r\n state.stats = {};\r\n state.loading = false;\r\n state.backgroundLoading = false;\r\n state.error = null;\r\n })\r\n .addMatcher(isRejectedAction, (state, action) => {\r\n state.loading = false;\r\n state.backgroundLoading = false;\r\n state.checkInProgress = false;\r\n state.error = action.error;\r\n });\r\n },\r\n});\r\n\r\nexport default activitySlice.reducer;\r\n","import { SearchTerm, VisitItem } from '../constants/Interfaces';\r\nimport { createSlice, PayloadAction } from '@reduxjs/toolkit';\r\nimport _ from 'lodash';\r\nimport Logger from '../constants/Logger';\r\nimport { DateTime } from 'luxon';\r\nimport { normalizeSearch } from '../constants/Utils';\r\nimport { purge } from './commonActions';\r\n\r\ninterface HistoryState {\r\n visits: VisitItem[]; // aggregated visits for activities. Update timestamp for the same activity for repeated visits.\r\n searches: SearchTerm[]; // aggregated searches for terms. Update count for the same term.\r\n}\r\n\r\nconst initialState: HistoryState = {\r\n visits: [],\r\n searches: [],\r\n};\r\n\r\nconst historySlice = createSlice({\r\n name: 'history',\r\n initialState,\r\n reducers: {\r\n addVisit(state, action: PayloadAction) {\r\n Logger.debug(`Reducer -> history -> addVisit: Adding another visit ${JSON.stringify(action.payload)}`);\r\n const newVisit: VisitItem = action.payload;\r\n const currentIndex = _.findIndex(state.visits, ['id', newVisit.id]);\r\n if (currentIndex > -1) {\r\n state.visits[currentIndex].timestamp = DateTime.now().toISO();\r\n } else {\r\n state.visits.push({ ...newVisit, timestamp: DateTime.now().toISO() });\r\n }\r\n },\r\n addSearch(state, action: PayloadAction) {\r\n Logger.debug(`Reducer -> history -> addSearch: Adding another search ${action.payload}`);\r\n const searchTerm: string = normalizeSearch(action.payload);\r\n const currentIndex = _.findIndex(state.searches, ['title', searchTerm]);\r\n if (currentIndex > -1) {\r\n state.searches[currentIndex].count += 1;\r\n } else {\r\n state.searches.push({\r\n title: searchTerm,\r\n count: 1,\r\n });\r\n }\r\n },\r\n },\r\n extraReducers: (builder) => {\r\n builder.addCase(purge, (state) => {\r\n Logger.debug(`Reducer -> history: Purge request received.`);\r\n state.visits = [];\r\n state.searches = [];\r\n });\r\n },\r\n});\r\n\r\nexport const { addVisit, addSearch } = historySlice.actions;\r\nexport default historySlice.reducer;\r\n","import { AnyAction, createAsyncThunk, createSlice, SerializedError } from '@reduxjs/toolkit';\r\nimport { MaraeLeaderboard, Marae } from '../constants/Interfaces';\r\nimport Logger from '../constants/Logger';\r\nimport API from '../constants/API';\r\nimport { RejectedAction } from '@reduxjs/toolkit/dist/query/core/buildThunks';\r\nimport { purge } from './commonActions';\r\nimport { setRegions } from './region.slice';\r\nimport _ from 'lodash';\r\n\r\ninterface MaraeState {\r\n maraes: Marae[];\r\n loading: boolean;\r\n backgroundLoading: boolean;\r\n error: SerializedError | null;\r\n leaderboard: MaraeLeaderboard[] | null;\r\n}\r\n\r\nconst initialState: MaraeState = {\r\n maraes: [],\r\n loading: false,\r\n backgroundLoading: false,\r\n error: null,\r\n leaderboard: [],\r\n};\r\n\r\nexport const getMaraes = createAsyncThunk('marae/getMaraes', async (param, thunkAPI) => {\r\n Logger.info(`Reducer -> marae -> getMaraes: Getting public maraes`);\r\n const api: API = API.getInstance();\r\n try {\r\n const maraes: Marae[] = await api.get('/marae');\r\n Logger.debug(`Reducer -> marae -> getMaraes: maraes information received`);\r\n if (maraes && maraes.length > 0) {\r\n const activitiesByRegion = _.groupBy(maraes, (maraes) => maraes.maraeLocation?.regionName);\r\n const regions: string[] = [];\r\n _.forOwn(activitiesByRegion, (value, key) => {\r\n regions.push(key);\r\n });\r\n thunkAPI.dispatch(setRegions(regions));\r\n }\r\n return maraes;\r\n } catch (e) {\r\n Logger.warn(`Reducer -> marae -> getMaraes: ${e.message}`);\r\n throw e;\r\n }\r\n});\r\n\r\nexport const getMaraeLeaderboard = createAsyncThunk('marae/getMaraeLeaderboard', async () => {\r\n Logger.info(`Reducer -> marae -> getMaraeLeaderboard: Getting Leaderboard`);\r\n const api: API = API.getInstance();\r\n try {\r\n const leaderboard: MaraeLeaderboard[] = await api.get(`/marae/leaderboard`);\r\n return leaderboard;\r\n } catch (e) {\r\n Logger.warn(`Reducer -> marae -> getMaraeLeaderboard: ${e.message}`);\r\n throw e;\r\n }\r\n});\r\n\r\nconst isRejectedAction = (action: AnyAction): action is RejectedAction => action.type.endsWith('/rejected');\r\n\r\nconst maraeSlice = createSlice({\r\n name: 'marae',\r\n initialState,\r\n reducers: {},\r\n extraReducers: (builder) => {\r\n builder\r\n .addCase(getMaraes.fulfilled, (state, action) => {\r\n const maraes: Marae[] = action.payload;\r\n state.maraes = maraes;\r\n state.backgroundLoading = false;\r\n state.error = null;\r\n })\r\n .addCase(getMaraes.pending, (state) => {\r\n state.backgroundLoading = true;\r\n state.error = null;\r\n })\r\n .addCase(getMaraeLeaderboard.fulfilled, (state, action) => {\r\n state.leaderboard = action.payload;\r\n state.backgroundLoading = true;\r\n state.error = null;\r\n })\r\n .addCase(getMaraeLeaderboard.pending, (state) => {\r\n state.backgroundLoading = true;\r\n state.error = null;\r\n })\r\n .addCase(purge, (state) => {\r\n Logger.debug(`Reducer -> marae: Purge request received.`);\r\n state.maraes = [];\r\n state.loading = false;\r\n state.backgroundLoading = false;\r\n state.error = null;\r\n state.leaderboard = [];\r\n })\r\n .addMatcher(isRejectedAction, (state, action) => {\r\n state.loading = false;\r\n state.backgroundLoading = false;\r\n state.error = action.error;\r\n });\r\n },\r\n});\r\n\r\nexport default maraeSlice.reducer;\r\n","import { AnyAction, createAsyncThunk, createSlice, SerializedError } from '@reduxjs/toolkit';\r\nimport { Review } from '../constants/Interfaces';\r\nimport Logger from '../constants/Logger';\r\nimport API from '../constants/API';\r\nimport { RejectedAction } from '@reduxjs/toolkit/dist/query/core/buildThunks';\r\nimport { purge } from './commonActions';\r\n\r\ninterface ReviewState {\r\n reviews: Review[];\r\n loading: boolean;\r\n backgroundLoading: boolean;\r\n error: SerializedError | null;\r\n}\r\n\r\nconst initialState: ReviewState = {\r\n reviews: [],\r\n loading: false,\r\n backgroundLoading: false,\r\n error: null,\r\n};\r\n\r\nexport const getReviews = createAsyncThunk('review/getReviews', async () => {\r\n Logger.info(`Reducer -> Review -> getReviews: Getting reviews`);\r\n const api: API = API.getInstance();\r\n try {\r\n const reviews: Review[] = await api.get('/review');\r\n Logger.debug(`Reducer -> Review -> getReviews: Reviews information received: ${JSON.stringify(reviews)}`);\r\n return reviews;\r\n } catch (e) {\r\n Logger.warn(`Reducer -> Review -> getReviews: ${e.message}`);\r\n throw e;\r\n }\r\n});\r\n\r\nexport const postUserActivityReview = createAsyncThunk('review/postUserActivityReview', async (payload: Review) => {\r\n const { activityId, review, score } = payload;\r\n Logger.info(`Reducer -> review -> postUserActivityReview: for activity ${activityId}`);\r\n const api: API = API.getInstance();\r\n try {\r\n await api.post(`/user/activity/${activityId}/review`, { review, score });\r\n Logger.debug(`Reducer -> review -> postUserActivityReview: Activity posted`);\r\n return payload;\r\n } catch (e) {\r\n Logger.warn(`Reducer -> review -> postUserActivityReview: ${e.message}`);\r\n throw e;\r\n }\r\n});\r\n\r\nconst isRejectedAction = (action: AnyAction): action is RejectedAction => action.type.endsWith('/rejected');\r\n\r\nconst reviewSlice = createSlice({\r\n name: 'review',\r\n initialState,\r\n reducers: {},\r\n extraReducers: (builder) => {\r\n builder\r\n .addCase(getReviews.fulfilled, (state, action) => {\r\n state.reviews = action.payload;\r\n state.backgroundLoading = false;\r\n state.error = null;\r\n })\r\n .addCase(getReviews.pending, (state) => {\r\n state.backgroundLoading = true;\r\n state.error = null;\r\n })\r\n .addCase(postUserActivityReview.fulfilled, (state, action) => {\r\n const review = action.payload;\r\n state.reviews.push(review);\r\n state.backgroundLoading = false;\r\n state.error = null;\r\n })\r\n .addCase(postUserActivityReview.pending, (state) => {\r\n state.backgroundLoading = true;\r\n state.error = null;\r\n })\r\n .addCase(purge, (state) => {\r\n Logger.debug(`Reducer -> Review: Purge request received.`);\r\n state.reviews = [];\r\n state.loading = false;\r\n state.backgroundLoading = false;\r\n state.error = null;\r\n })\r\n .addMatcher(isRejectedAction, (state, action) => {\r\n state.loading = false;\r\n state.backgroundLoading = false;\r\n state.error = action.error;\r\n });\r\n },\r\n});\r\n\r\nexport default reviewSlice.reducer;\r\n","import { combineReducers } from 'redux';\r\nimport { persistReducer } from 'redux-persist';\r\nimport AsyncStorage from '@react-native-async-storage/async-storage';\r\nimport authentication from './authentication.slice';\r\nimport user from './user.slice';\r\nimport activity from './activity.slice';\r\nimport history from './history.slice';\r\nimport region from './region.slice';\r\nimport marae from './marae.slice';\r\nimport review from './review.slice';\r\n\r\nconst basePersistConfig = {\r\n storage: AsyncStorage,\r\n blacklist: ['error', 'loading', 'backgroundLoading'],\r\n};\r\n\r\nconst userPersistConfig = { ...basePersistConfig, key: 'user' };\r\nconst authenticationPersistConfig = { ...basePersistConfig, key: 'authentication' };\r\nconst activityPersistConfig = { ...basePersistConfig, key: 'activity' };\r\nconst historyPersistConfig = { ...basePersistConfig, key: 'history' };\r\nconst regionPersistConfig = { ...basePersistConfig, key: 'region' };\r\nconst maraePersistConfig = { ...basePersistConfig, key: 'marae' };\r\nconst reviewPersistConfig = { ...basePersistConfig, key: 'review' };\r\n\r\nexport const rootReducer = combineReducers({\r\n user: persistReducer(userPersistConfig, user),\r\n authentication: persistReducer(authenticationPersistConfig, authentication),\r\n activity: persistReducer(activityPersistConfig, activity),\r\n history: persistReducer(historyPersistConfig, history),\r\n region: persistReducer(regionPersistConfig, region),\r\n marae: persistReducer(maraePersistConfig, marae),\r\n review: persistReducer(reviewPersistConfig, review),\r\n});\r\n","import i18n from 'i18n-js';\r\n\r\nimport en from './en.json';\r\nimport mi from './mi.json';\r\n\r\nconst translations = { en, mi };\r\n\r\ni18n.fallbacks = true;\r\ni18n.translations = translations;\r\n\r\nexport default i18n;\r\n","export const Colors = {\r\n yellow: '#FEBC2C',\r\n darkYellow: '#FDB813',\r\n backgroundYellow: '#FDBC00',\r\n orange: '#F7931D',\r\n darkOrange: '#F5821F',\r\n red: '#ED193A',\r\n darkRed: '#D1213E',\r\n burgundy: '#BE1D37',\r\n lightBurgundy: '#8e0b29',\r\n darkBurgundy: '#840A26',\r\n tileBurgundy: '#6B0C21',\r\n marron: '#620b1f',\r\n black: '#060606',\r\n white: '#FFFFFF',\r\n grey: '#5C5C5C',\r\n green: '#00e46b',\r\n lightGrey: '#DBDBDB',\r\n tintColorLight: '#2F95DC',\r\n handleBar: '#7D4F59',\r\n whiteOpacity: 'rgba(255,255,255, 0.37)',\r\n blackOpacity: 'rgba(0,0,0, 0.2)',\r\n transparent: 'transparent',\r\n pink: '#cc00cc',\r\n defaultGrey: '#cbd2dc',\r\n darkGrey: '#6f6f6f',\r\n palePink: '#e7d1d6',\r\n yellowOpacity: 'rgba(252, 187, 44, 0.16)',\r\n whiteOpacitiy70: 'rgba(252, 255,255, 0.77)',\r\n whiteOpacitiy40: 'rgba(252, 255,255, 0.40)',\r\n blackOpacity70: 'rgba(0,0,0, 0.7)',\r\n};\r\n\r\nexport default {\r\n light: {\r\n text: Colors.black,\r\n background: Colors.white,\r\n tint: Colors.tintColorLight,\r\n tabIconDefault: Colors.black,\r\n tabIconSelected: Colors.tintColorLight,\r\n },\r\n dark: {\r\n text: Colors.black,\r\n background: Colors.white,\r\n tint: Colors.tintColorLight,\r\n tabIconDefault: Colors.black,\r\n tabIconSelected: Colors.tintColorLight,\r\n },\r\n};\r\n","import * as React from 'react';\r\nimport { Text as DefaultText, View as DefaultView } from 'react-native';\r\n\r\nimport Colors from '../constants/Colors';\r\nimport useColorScheme from '../hooks/useColorScheme';\r\n\r\nexport function useThemeColor(\r\n props: { light?: string; dark?: string },\r\n colorName: keyof typeof Colors.light & keyof typeof Colors.dark\r\n) {\r\n const theme = useColorScheme();\r\n const colorFromProps = props[theme];\r\n\r\n if (colorFromProps) {\r\n return colorFromProps;\r\n }\r\n return Colors[theme][colorName];\r\n}\r\n\r\ntype ThemeProps = {\r\n lightColor?: string;\r\n darkColor?: string;\r\n transparent?: boolean;\r\n};\r\n\r\nexport type TextProps = ThemeProps & DefaultText['props'];\r\nexport type ViewProps = ThemeProps & DefaultView['props'];\r\n\r\nexport function Text(props: TextProps) {\r\n const { style, lightColor, darkColor, ...otherProps } = props;\r\n const color = useThemeColor({ light: lightColor, dark: darkColor }, 'text');\r\n\r\n return ;\r\n}\r\n\r\nexport function View(props: ViewProps) {\r\n const { style, lightColor, darkColor, transparent, ...otherProps } = props;\r\n const backgroundColor = transparent\r\n ? 'transparent'\r\n : useThemeColor({ light: lightColor, dark: darkColor }, 'background');\r\n\r\n return ;\r\n}\r\n","// useColorScheme from react-native does not support web currently. You can replace\r\n// this with react-native-appearance if you would like theme support on web.\r\n// react-native-appearance has been depreciated, expo recommends useColorScheme from react-core.\r\nexport default function useColorScheme() {\r\n return 'light';\r\n}\r\n","import { Dimensions, Platform } from 'react-native';\r\n\r\nconst { width } = Dimensions.get('window');\r\nconst { height } = Dimensions.get('window');\r\n\r\nconst DEFAULT_SCALE_CONSTANT = 1;\r\nconst SMALL_SCREEN_SCALE_CONSTANT = 0.85;\r\nconst SMALL_DEVICE_THRESHOLD = 375;\r\n\r\nconst scaleConstant = width < SMALL_DEVICE_THRESHOLD ? SMALL_SCREEN_SCALE_CONSTANT : DEFAULT_SCALE_CONSTANT;\r\n\r\nexport default {\r\n window: {\r\n width,\r\n height,\r\n },\r\n backgroundMarginNormal: {\r\n left: 20 * scaleConstant,\r\n right: 20 * scaleConstant,\r\n top: 26.67 * scaleConstant,\r\n bottom: 26.67 * scaleConstant,\r\n },\r\n backgroundMarginNarrow: {\r\n left: 13.33 * scaleConstant,\r\n right: 13.33 * scaleConstant,\r\n top: 13.33 * scaleConstant,\r\n bottom: 13.33 * scaleConstant,\r\n },\r\n isSmallDevice: width < 376 && height < 668,\r\n isLongDevice: height > 740,\r\n isWeb: Platform.OS === 'web',\r\n isPhone: height < 700 || width < 500,\r\n bigScreen: width > 1500,\r\n};\r\n","import { Colors } from './Colors';\r\n\r\nconst DEFAULT_FONT = 'Barlow Regular';\r\nconst BOLD_FONT = 'Barlow Bold';\r\nconst SEMI_BOLD_FONT = 'Barlow SemiBold';\r\n\r\nexport default {\r\n family: {\r\n regular: DEFAULT_FONT,\r\n bold: BOLD_FONT,\r\n semi: SEMI_BOLD_FONT,\r\n },\r\n sizes: {\r\n default: 17,\r\n paragraph: 17,\r\n button: 18,\r\n heading: 24,\r\n smallHeading: 20,\r\n bigHeading: 28,\r\n small: 13,\r\n medium: 14.5,\r\n mini: 11,\r\n },\r\n shadow: {\r\n textShadowColor: Colors.black,\r\n textShadowOffset: {\r\n width: 0,\r\n height: 1,\r\n },\r\n textShadowRadius: 2,\r\n },\r\n};\r\n","import React from 'react';\r\nimport { Button } from 'react-native-elements';\r\nimport { StyleProp, StyleSheet, TextStyle, ViewStyle } from 'react-native';\r\nimport { Colors } from '../../constants/Colors';\r\nimport Fonts from '../../constants/Fonts';\r\n\r\ninterface PrimaryButtonProps {\r\n containerStyle?: StyleProp;\r\n buttonStyle?: StyleProp;\r\n textStyle?: StyleProp;\r\n themeColor?: 'red' | 'yellow';\r\n title: string;\r\n onPress: () => void;\r\n disabled?: boolean;\r\n loading?: boolean;\r\n}\r\n\r\nexport default function PrimaryButton(props: PrimaryButtonProps) {\r\n const { containerStyle, title, onPress, disabled, loading, themeColor = 'red', buttonStyle, textStyle } = props;\r\n return (\r\n \r\n );\r\n}\r\n\r\nconst styles = StyleSheet.create({\r\n container: {\r\n alignItems: 'center',\r\n paddingVertical: 12,\r\n paddingHorizontal: 6,\r\n },\r\n button: {\r\n height: 48,\r\n width: 240,\r\n borderRadius: 28,\r\n },\r\n buttonText: {\r\n fontFamily: Fonts.family.bold,\r\n fontSize: Fonts.sizes.button,\r\n },\r\n});\r\n","import * as React from 'react';\r\nimport Fonts from '../constants/Fonts';\r\n\r\nimport { Text, TextProps } from './Themed';\r\nimport { StyleProp, TouchableHighlight, ViewStyle } from 'react-native';\r\nimport { Colors } from '../constants/Colors';\r\n\r\ninterface LinkProps {\r\n title: string;\r\n onPress: () => void;\r\n containerStyle?: StyleProp;\r\n}\r\n\r\nexport function MonoText(props: TextProps) {\r\n return ;\r\n}\r\n\r\nexport function Paragraph(props: TextProps) {\r\n return (\r\n \r\n );\r\n}\r\n\r\nexport function Heading(props: TextProps) {\r\n return (\r\n \r\n );\r\n}\r\n\r\nexport function UIText(props: TextProps) {\r\n return (\r\n \r\n );\r\n}\r\n\r\nexport function Link(props: LinkProps) {\r\n const { title, onPress, containerStyle } = props;\r\n return (\r\n \r\n \r\n {title}\r\n \r\n \r\n );\r\n}\r\n","import React, { useCallback, useRef, useState } from 'react';\r\nimport {\r\n StyleSheet,\r\n FlatList,\r\n StyleProp,\r\n ViewStyle,\r\n ListRenderItem,\r\n ViewToken,\r\n TouchableWithoutFeedback,\r\n} from 'react-native';\r\nimport { View } from './Themed';\r\nimport { CarouselCard } from '../constants/Interfaces';\r\nimport { Heading, Paragraph } from './StyledText';\r\nimport Layout from '../constants/Layout';\r\nimport { Colors } from '../constants/Colors';\r\n\r\ninterface CarouselProps {\r\n data: CarouselCard[];\r\n onIndexChange?: (currentIndex: number | null) => void;\r\n carouselStyle?: StyleProp;\r\n contentContainerStyle?: StyleProp;\r\n itemContainerStyle?: StyleProp;\r\n renderItem?: ListRenderItem;\r\n onScroll?: (x: number, y: number) => void;\r\n}\r\n\r\nexport default function Carousel(props: CarouselProps) {\r\n const { data, onIndexChange, renderItem, carouselStyle, contentContainerStyle, itemContainerStyle, onScroll } = props;\r\n\r\n const [currentIndex, setCurrentIndex] = useState(0);\r\n const carouselRef = useRef(null);\r\n\r\n const viewabilityConfig = useRef({\r\n itemVisiblePercentThreshold: 50,\r\n });\r\n\r\n const handleViewableItemsChanged = useCallback(({ viewableItems }: { viewableItems: ViewToken[] }) => {\r\n if (viewableItems && viewableItems.length === 1) {\r\n setCurrentIndex(viewableItems[0].index);\r\n if (onIndexChange) {\r\n onIndexChange(viewableItems[0].index);\r\n }\r\n }\r\n }, []);\r\n\r\n const handleIndexSelect = (index: number) => () => {\r\n if (carouselRef.current && index !== currentIndex) {\r\n carouselRef.current.scrollToIndex({\r\n index,\r\n });\r\n }\r\n };\r\n\r\n const defaultRenderItem = ({ item }: { item: CarouselCard }) => (\r\n \r\n {item.title}\r\n {item.paragraph}\r\n \r\n );\r\n\r\n const handleScroll = (event) => {\r\n if (onScroll) {\r\n onScroll(event.nativeEvent.contentOffset.x, event.nativeEvent.contentOffset.y);\r\n }\r\n };\r\n\r\n return (\r\n \r\n ({ length: Layout.window.width, offset: Layout.window.width * index, index })}\r\n keyExtractor={(item, index) => index.toString()}\r\n style={styles.carouselContainer}\r\n contentContainerStyle={[styles.contentContainer, contentContainerStyle]}\r\n />\r\n \r\n {data.map((item: CarouselCard, index) => (\r\n \r\n \r\n \r\n ))}\r\n \r\n \r\n );\r\n}\r\n\r\nconst styles = StyleSheet.create({\r\n container: {\r\n flex: 0,\r\n marginTop: 10,\r\n },\r\n carouselContainer: {\r\n flexGrow: 0,\r\n height: 300,\r\n },\r\n contentContainer: {\r\n height: 300,\r\n backgroundColor: Colors.transparent,\r\n },\r\n itemContainer: {\r\n flex: 0,\r\n height: 300,\r\n alignItems: 'center',\r\n justifyContent: 'flex-start',\r\n width: Layout.window.width,\r\n padding: Layout.backgroundMarginNormal.left,\r\n },\r\n navContainer: {\r\n flexDirection: 'row',\r\n justifyContent: 'center',\r\n alignItems: 'center',\r\n },\r\n dot: {\r\n width: 15,\r\n height: 15,\r\n backgroundColor: Colors.black,\r\n borderRadius: 15,\r\n marginHorizontal: 6,\r\n },\r\n paragraph: {\r\n marginTop: Layout.backgroundMarginNormal.top,\r\n textAlign: 'center',\r\n lineHeight: 22,\r\n },\r\n});\r\n","import * as React from 'react';\r\nimport { Image, Pressable, StyleSheet } from 'react-native';\r\nimport { View } from './Themed';\r\nimport Modal from 'react-native-modal';\r\nimport { AntDesign } from '@expo/vector-icons';\r\nimport { Colors } from '../constants/Colors';\r\nimport { Heading, Paragraph } from './StyledText';\r\nimport Layout from '../constants/Layout';\r\nimport i18n from '../translations';\r\nimport Fonts from '../constants/Fonts';\r\n\r\nexport const TipModal = ({ message }: { message: string }) => {\r\n const [active, setActive] = React.useState(false);\r\n\r\n const handleOpenModal = () => {\r\n setActive(true);\r\n };\r\n\r\n const handleCloseModal = () => {\r\n setActive(false);\r\n };\r\n\r\n return (\r\n <>\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n {message === 'addMarae' && (\r\n <>\r\n {i18n.t('components.AddNewMarae.tipTitle')}\r\n {i18n.t('components.AddNewMarae.tipBody')}\r\n \r\n )}\r\n {message === 'myWhanau' && (\r\n <>\r\n {i18n.t('components.MyWhanauFragment.tipTitle')}\r\n \r\n {i18n.t('components.MyWhanauFragment.tipBody')}\r\n \r\n {i18n.t('components.MyWhanauFragment.tipBodySub')}\r\n \r\n )}\r\n {message === 'language' && (\r\n <>\r\n {i18n.t('components.LanguageFragment.tipTitle')}\r\n {i18n.t('components.LanguageFragment.tipBody')}\r\n \r\n )}\r\n {message === 'activities' && (\r\n <>\r\n {i18n.t('components.MaraeParty.tipActivitiesTitle')}\r\n {i18n.t('components.MaraeParty.tipActivitiesBody')}\r\n \r\n )}\r\n {message === 'koha' && (\r\n <>\r\n {i18n.t('components.MaraeParty.tipKohaTitle')}\r\n {i18n.t('components.MaraeParty.tipKohaBody')}\r\n \r\n )}\r\n {message === 'koha' ? (\r\n <>\r\n {i18n.t('components.TipModal.tipKohaSystemTitle')}\r\n {i18n.t('components.TipModal.tipKohaSystemBody')}\r\n {i18n.t('components.TipModal.tipKohaPointsTitle')}\r\n {i18n.t('components.TipModal.tipKohaPointsBody')}\r\n \r\n ) : null}\r\n \r\n \r\n {!active ? (\r\n \r\n \r\n \r\n \r\n \r\n ) : null}\r\n \r\n );\r\n};\r\n\r\nconst styles = StyleSheet.create({\r\n modalContainer: {\r\n justifyContent: 'flex-end',\r\n margin: 0,\r\n zIndex: 1000,\r\n },\r\n modal: {\r\n width: '100%',\r\n minHeight: 300,\r\n backgroundColor: Colors.white,\r\n borderRadius: 20,\r\n paddingBottom: 70,\r\n paddingTop: 25,\r\n paddingHorizontal: 30,\r\n },\r\n close: {\r\n position: 'absolute',\r\n top: 20,\r\n right: 20,\r\n },\r\n heading: {\r\n marginTop: 80,\r\n marginBottom: 5,\r\n },\r\n tipOpenerContainer: {\r\n marginBottom: 60,\r\n justifyContent: 'center',\r\n alignItems: 'center',\r\n position: 'absolute',\r\n bottom: -25,\r\n right: Layout.window.width / 2.5,\r\n },\r\n tipImageContainer: {\r\n margin: -50,\r\n alignItems: 'center',\r\n },\r\n tipImage: {\r\n width: 50,\r\n height: 50,\r\n resizeMode: 'contain',\r\n },\r\n smallTitle: {\r\n fontSize: Fonts.sizes.smallHeading,\r\n marginTop: 20,\r\n marginBottom: 5,\r\n },\r\n paragraphWithBottomMargin: {\r\n marginBottom: 10,\r\n },\r\n});\r\n","import React from 'react';\r\nimport { Image, StyleSheet, View } from 'react-native';\r\nimport { Colors } from '../constants/Colors';\r\nimport Layout from '../constants/Layout';\r\nimport { TipModal } from './TipModal';\r\n\r\ninterface BottomBannerProps {\r\n themeColor?: 'red' | 'white' | string;\r\n tip?: string;\r\n}\r\n\r\nexport const getBackgroundColor = (themeColor: string) => {\r\n if (themeColor === 'red') {\r\n return Colors.darkBurgundy;\r\n }\r\n\r\n if (themeColor === 'white') {\r\n return Colors.white;\r\n }\r\n\r\n return themeColor;\r\n};\r\n\r\nexport default function BottomBanner(props: BottomBannerProps) {\r\n const { themeColor = 'red', tip } = props;\r\n\r\n return (\r\n <>\r\n \r\n \r\n \r\n \r\n {themeColor !== 'red' && (\r\n <>\r\n {tip && }\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n )}\r\n \r\n );\r\n}\r\nconst styles = StyleSheet.create({\r\n container: {\r\n position: 'absolute',\r\n bottom: 0,\r\n height: 70,\r\n flexDirection: 'row',\r\n alignItems: 'center',\r\n width: Layout.window.width,\r\n justifyContent: 'space-between',\r\n },\r\n\r\n image: {\r\n width: 80,\r\n height: 40,\r\n resizeMode: 'contain',\r\n },\r\n leftImage: {\r\n marginLeft: 10,\r\n },\r\n rightImage: {\r\n marginRight: 26,\r\n },\r\n cornersContainer: {\r\n backgroundColor: Colors.transparent,\r\n flexDirection: 'row',\r\n height: 15,\r\n width: Layout.window.width,\r\n position: 'absolute',\r\n alignItems: 'flex-start',\r\n justifyContent: 'space-between',\r\n bottom: 70,\r\n borderRadius: 35,\r\n pointerEvents: 'none',\r\n },\r\n corner: {\r\n backgroundColor: Colors.darkBurgundy,\r\n height: 15,\r\n width: Layout.backgroundMarginNarrow.left,\r\n left: 0,\r\n borderWidth: 1,\r\n borderColor: Colors.darkBurgundy,\r\n },\r\n});\r\n","import React, { useRef } from 'react';\r\nimport { StyleSheet, Image, Animated, ActivityIndicator } from 'react-native';\r\nimport { View } from '../../components/Themed';\r\nimport i18n from '../../translations';\r\nimport Layout from '../../constants/Layout';\r\nimport PrimaryButton from '../../components/buttons/PrimaryButton';\r\nimport { AuthState, CarouselCard, User } from '../../constants/Interfaces';\r\nimport Carousel from '../../components/Carousel';\r\nimport { Colors } from '../../constants/Colors';\r\nimport BottomBanner from '../../components/BottomBanner';\r\nimport { useDispatch, useSelector } from 'react-redux';\r\nimport { isAccessTokenValid } from '../../reducers/authentication.slice';\r\nimport { purge } from '../../reducers/commonActions';\r\n\r\nexport default function LandingScreen({ navigation }) {\r\n const authLoading: boolean = useSelector((state: any) => state.authentication.loading);\r\n const userLoading: boolean = useSelector((state: any) => state.user.loading);\r\n const user: User = useSelector((state: any) => state.user.user);\r\n const authState: AuthState = useSelector((state: any) => state.authentication.authState);\r\n // TODO: this does not check for if the current token can be refreshed.\r\n const isAuthenticated = user && isAccessTokenValid(authState);\r\n const highCloudsX = useRef(new Animated.Value(0)).current;\r\n const lowCloudsX = useRef(new Animated.Value(0)).current;\r\n const dispatch = useDispatch();\r\n\r\n const content: CarouselCard[] = [\r\n {\r\n title: i18n.t('pages.LandingScreen.heading1'),\r\n paragraph: i18n.t('pages.LandingScreen.paragraph1'),\r\n },\r\n {\r\n title: i18n.t('pages.LandingScreen.heading2'),\r\n paragraph: i18n.t('pages.LandingScreen.paragraph2'),\r\n },\r\n {\r\n title: i18n.t('pages.LandingScreen.heading3'),\r\n paragraph: i18n.t('pages.LandingScreen.paragraph3'),\r\n },\r\n {\r\n title: i18n.t('pages.LandingScreen.heading4'),\r\n paragraph: i18n.t('pages.LandingScreen.paragraph4'),\r\n },\r\n {\r\n title: i18n.t('pages.LandingScreen.heading5'),\r\n paragraph: i18n.t('pages.LandingScreen.paragraph5'),\r\n },\r\n {\r\n title: i18n.t('pages.LandingScreen.heading6'),\r\n paragraph: i18n.t('pages.LandingScreen.paragraph6'),\r\n },\r\n ];\r\n\r\n const handleScroll = (x: number) => {\r\n Animated.parallel([\r\n Animated.timing(highCloudsX, {\r\n toValue: x,\r\n duration: 0,\r\n useNativeDriver: true,\r\n }),\r\n Animated.timing(lowCloudsX, {\r\n toValue: x,\r\n duration: 0,\r\n useNativeDriver: true,\r\n }),\r\n ]).start();\r\n };\r\n\r\n return (\r\n \r\n {authLoading || userLoading ? (\r\n \r\n \r\n \r\n ) : null}\r\n \r\n \r\n \r\n \r\n \r\n {\r\n if (isAuthenticated) {\r\n navigation.navigate('Root');\r\n } else {\r\n dispatch(purge());\r\n navigation.navigate('Guest');\r\n }\r\n }}\r\n />\r\n \r\n \r\n \r\n \r\n );\r\n}\r\n\r\nconst styles = StyleSheet.create({\r\n container: {\r\n flex: 1,\r\n alignItems: 'center',\r\n justifyContent: 'center',\r\n backgroundColor: Colors.backgroundYellow,\r\n width: Layout.window.width,\r\n height: Layout.window.height,\r\n },\r\n authLoadingContainer: {\r\n flex: 1,\r\n width: '100%',\r\n height: '100%',\r\n zIndex: 10,\r\n elevation: 10,\r\n position: 'absolute',\r\n top: 0,\r\n left: 0,\r\n backgroundColor: Colors.white,\r\n opacity: 0.7,\r\n alignItems: 'center',\r\n justifyContent: 'center',\r\n },\r\n centralContainer: {\r\n flexDirection: 'row',\r\n zIndex: 2,\r\n },\r\n centralRightContainer: {\r\n alignItems: 'center',\r\n zIndex: 2,\r\n maxWidth: 500,\r\n },\r\n topImage: {\r\n position: 'absolute',\r\n top: 0,\r\n height: 160,\r\n resizeMode: 'contain',\r\n },\r\n bottomImage: {\r\n position: 'absolute',\r\n bottom: 0,\r\n width: Layout.window.width,\r\n height: '55%',\r\n resizeMode: 'cover',\r\n },\r\n logo: {\r\n marginTop: 80,\r\n width: 120,\r\n height: 120,\r\n resizeMode: 'contain',\r\n opacity: 1,\r\n zIndex: 2,\r\n },\r\n carousel: {\r\n zIndex: 3,\r\n },\r\n loginButtonContainer: {\r\n flexGrow: 1,\r\n zIndex: 3,\r\n justifyContent: 'flex-end',\r\n paddingBottom: 100,\r\n },\r\n highClouds: {\r\n position: 'absolute',\r\n top: Layout.window.height / 5,\r\n left: Layout.window.width / 2 - 30,\r\n width: 900,\r\n height: 190,\r\n resizeMode: 'contain',\r\n zIndex: 1,\r\n },\r\n lowClouds: {\r\n position: 'absolute',\r\n bottom: Layout.window.height / 3 + Layout.backgroundMarginNormal.bottom,\r\n left: Layout.window.width / 6,\r\n width: 800,\r\n height: 60,\r\n resizeMode: 'contain',\r\n zIndex: 1,\r\n },\r\n paragraph: {\r\n paddingTop: 20,\r\n },\r\n badgeContainer: {\r\n flexDirection: 'row',\r\n alignItems: 'center',\r\n justifyContent: 'center',\r\n },\r\n androidBadge: {\r\n width: 150,\r\n height: 120,\r\n resizeMode: 'contain',\r\n opacity: 1,\r\n zIndex: 2,\r\n },\r\n});\r\n","import React from 'react';\r\nimport { View, StyleSheet, Pressable, ViewStyle, StyleProp } from 'react-native';\r\nimport { AntDesign } from '@expo/vector-icons';\r\n\r\nimport Modal from 'react-native-modal';\r\nimport { Colors } from '../constants/Colors';\r\n\r\ninterface ModalUIProps {\r\n toggle: boolean;\r\n closeModal: () => void;\r\n children: any;\r\n contentContainerStyle?: StyleProp;\r\n}\r\n\r\nconst ModalUI = ({ toggle, closeModal, children, contentContainerStyle }: ModalUIProps) => (\r\n \r\n \r\n \r\n \r\n \r\n {children}\r\n \r\n \r\n);\r\nexport default ModalUI;\r\n\r\nconst styles = StyleSheet.create({\r\n modalContainer: {},\r\n close: {\r\n alignSelf: 'flex-end',\r\n marginBottom: 15,\r\n },\r\n mainModal: {\r\n backgroundColor: Colors.white,\r\n borderRadius: 13,\r\n paddingVertical: 15,\r\n paddingHorizontal: 20,\r\n },\r\n});\r\n","import React, { useState } from 'react';\r\nimport { View, Image, StyleSheet, Pressable, Platform, ActivityIndicator } from 'react-native';\r\nimport { useSelector } from 'react-redux';\r\nimport { Heading, Paragraph, UIText } from '../../components/StyledText';\r\nimport { Colors } from '../../constants/Colors';\r\nimport Fonts from '../../constants/Fonts';\r\nimport Layout from '../../constants/Layout';\r\nimport { getUser } from '../../reducers/user.slice';\r\nimport { isAccessTokenValid, loginUser } from '../../reducers/authentication.slice';\r\nimport { AuthState, DomainHintList } from '../../constants/Interfaces';\r\nimport i18n from '../../translations';\r\nimport ModalUI from '../../components/ModalUI';\r\nimport { SerializedError } from '@reduxjs/toolkit';\r\nimport Logger from '../../constants/Logger';\r\nimport { getUserActivities } from '../../reducers/activity.slice';\r\nimport { useAppDispatch } from '../../store/configureStore';\r\n\r\nconst SocialMediaLogin = ({ navigation }) => {\r\n const authState: AuthState = useSelector((state: any) => state.authentication.authState);\r\n const authLoading: boolean = useSelector((state: any) => state.authentication.loading);\r\n const userLoading: boolean = useSelector((state: any) => state.user.loading);\r\n const userError: SerializedError = useSelector((state: any) => state.user.error);\r\n const [termsConditions, setTermsConditions] = useState(false);\r\n const [openValidation, setOpenValidation] = useState(false);\r\n const [loading, setLoading] = useState(false);\r\n\r\n const dispatch = useAppDispatch();\r\n\r\n const isWeb = Platform.OS === 'web';\r\n\r\n const getGoingActivities = async () => {\r\n await dispatch(getUserActivities());\r\n navigation.navigate('Root');\r\n };\r\n\r\n React.useEffect(() => {\r\n if (authState) {\r\n // when the auth state is here, try to get the user\r\n // if that fails, try to create the user\r\n // if that fails, error\r\n\r\n setLoading(true);\r\n\r\n try {\r\n dispatch(getUser())\r\n .unwrap()\r\n .then((user) => {\r\n if (isAccessTokenValid(authState) && user) {\r\n if (\r\n user &&\r\n ((!user.firstName && !user.userDetailsSkipped) ||\r\n ((!user.marae || user.marae.length === 0) && !user.maraeSkipped))\r\n ) {\r\n Logger.debug('Navigator -> AppNavigator: User details missing. Navigate to the SignUp stack');\r\n navigation.navigate('SignUpStack');\r\n } else {\r\n Logger.debug('Navigator -> AppNavigator: User details complete. Navigate to the Root stack');\r\n if (!isWeb) getGoingActivities();\r\n }\r\n }\r\n })\r\n .catch((_e) => {\r\n setLoading(false);\r\n });\r\n } catch (e: any) {\r\n setLoading(false);\r\n }\r\n }\r\n }, [authState]);\r\n\r\n const errorMessage = () => {\r\n if (userError.message === 'Request failed with status code 400') {\r\n return 'An error occured finding the email address of your social login, please try another type of login';\r\n }\r\n return '';\r\n };\r\n\r\n const handleLogin = (domain) => {\r\n setLoading(true);\r\n dispatch(loginUser(domain))\r\n .unwrap()\r\n .then((result) => {\r\n if (!result) {\r\n // user dismissed the login window\r\n setLoading(false);\r\n }\r\n })\r\n .catch((e) => {\r\n setLoading(false);\r\n });\r\n };\r\n\r\n const handleLoginPress = (domain) => (termsConditions ? handleLogin(domain) : setOpenValidation(true));\r\n return (\r\n \r\n {authLoading || userLoading || loading ? (\r\n \r\n \r\n \r\n ) : null}\r\n \r\n \r\n \r\n \r\n {i18n.t('pages.SocialMediaLogin.title')}\r\n {i18n.t('pages.SocialMediaLogin.intro')}\r\n \r\n \r\n {\r\n handleLoginPress(DomainHintList.google);\r\n }}\r\n >\r\n \r\n Continue with Google \r\n \r\n {\r\n handleLoginPress(DomainHintList.facebook);\r\n }}\r\n >\r\n \r\n Continue with Facebook \r\n \r\n {Platform.OS === 'ios' && (\r\n {\r\n handleLoginPress(DomainHintList.apple);\r\n }}\r\n >\r\n \r\n Continue with Apple \r\n \r\n )}\r\n {\r\n handleLoginPress(null);\r\n }}\r\n >\r\n \r\n Continue with Email \r\n \r\n \r\n \r\n setTermsConditions(!termsConditions)}>\r\n {termsConditions && (\r\n setTermsConditions(!termsConditions)} />\r\n )}\r\n \r\n {i18n.t('pages.SocialMediaLogin.terms')}\r\n navigation.navigate('Terms')}>\r\n {i18n.t('pages.SocialMediaLogin.termsLink')}\r\n \r\n \r\n \r\n navigation.navigate('Privacy')}>\r\n {i18n.t('pages.SocialMediaLogin.privacyLink')}\r\n \r\n \r\n {userError && (\r\n \r\n {errorMessage()}\r\n \r\n )}\r\n \r\n \r\n {openValidation && (\r\n setOpenValidation(false)}>\r\n {i18n.t('pages.SocialMediaLogin.conditionsMessage')}\r\n \r\n )}\r\n \r\n );\r\n};\r\nexport default SocialMediaLogin;\r\n\r\nconst styles = StyleSheet.create({\r\n root: {\r\n flex: 1,\r\n backgroundColor: Colors.backgroundYellow,\r\n width: Layout.window.width,\r\n height: Layout.window.height,\r\n },\r\n topImage: {\r\n position: 'absolute',\r\n top: 0,\r\n height: 200,\r\n resizeMode: 'contain',\r\n opacity: 0.5,\r\n },\r\n logo: {\r\n position: 'absolute',\r\n top: 30,\r\n height: 50,\r\n resizeMode: 'contain',\r\n opacity: 1,\r\n zIndex: 2,\r\n },\r\n authLoadingContainer: {\r\n width: '100%',\r\n height: Layout.window.height,\r\n zIndex: 10,\r\n elevation: 10,\r\n position: 'absolute',\r\n top: 0,\r\n left: 0,\r\n backgroundColor: Colors.white,\r\n opacity: 0.7,\r\n alignItems: 'center',\r\n justifyContent: 'center',\r\n },\r\n body: {\r\n justifyContent: 'center',\r\n alignItems: 'center',\r\n marginHorizontal: '5%',\r\n paddingHorizontal: 10,\r\n paddingTop: Layout.isSmallDevice ? 100 : 150,\r\n },\r\n headerContainer: {\r\n justifyContent: 'center',\r\n alignItems: 'center',\r\n width: '100%',\r\n },\r\n titleHeader: {\r\n fontFamily: Fonts.family.bold,\r\n textAlign: 'center',\r\n },\r\n paragraph: {\r\n marginVertical: 20,\r\n alignItems: 'center',\r\n justifyContent: 'center',\r\n textAlign: 'center',\r\n fontWeight: 'bold',\r\n fontSize: Layout.isSmallDevice ? Fonts.sizes.medium : Fonts.sizes.paragraph,\r\n height: 50,\r\n },\r\n headerDividers: {\r\n width: '100%',\r\n height: 10,\r\n marginBottom: 20,\r\n },\r\n buttonsContainer: {\r\n width: Layout.window.width < 370 ? '85%' : '80%',\r\n justifyContent: 'center',\r\n alignItems: 'center',\r\n marginBottom: 15,\r\n },\r\n button: {\r\n flexDirection: 'row',\r\n height: 45,\r\n backgroundColor: 'white',\r\n borderRadius: 37,\r\n paddingVertical: 13,\r\n paddingHorizontal: 16,\r\n fontWeight: 'bold',\r\n alignItems: 'center',\r\n justifyContent: 'flex-start',\r\n width: '100%',\r\n marginVertical: 5,\r\n },\r\n buttonImg: {\r\n height: 25,\r\n width: 25,\r\n marginRight: 14.7,\r\n resizeMode: 'contain',\r\n },\r\n buttonText: {\r\n fontFamily: Fonts.family.bold,\r\n fontSize: Layout.isSmallDevice ? 15 : Fonts.sizes.paragraph,\r\n },\r\n bottomImage: {\r\n position: 'absolute',\r\n bottom: 0,\r\n width: Layout.window.width,\r\n height: 150,\r\n resizeMode: 'cover',\r\n zIndex: -1,\r\n },\r\n checkBoxContainer: {\r\n justifyContent: 'center',\r\n alignItems: 'center',\r\n flexDirection: 'row',\r\n marginVertical: 0,\r\n marginHorizontal: '18%',\r\n },\r\n termsLabel: {\r\n textAlign: 'left',\r\n fontSize: Fonts.sizes.medium,\r\n },\r\n checkBox: {\r\n marginTop: 4,\r\n width: 20,\r\n height: 20,\r\n backgroundColor: Colors.white,\r\n padding: 2,\r\n justifyContent: 'center',\r\n alignItems: 'center',\r\n borderRadius: 5,\r\n marginRight: 5,\r\n zIndex: 10,\r\n },\r\n checkBoxTick: {\r\n backgroundColor: Colors.darkBurgundy,\r\n width: 12,\r\n height: 12,\r\n borderRadius: 6,\r\n },\r\n link: {\r\n fontFamily: Fonts.family.bold,\r\n textDecorationLine: 'underline',\r\n fontSize: Fonts.sizes.medium,\r\n marginLeft: 3,\r\n },\r\n conditionsText: {\r\n fontSize: Fonts.sizes.small,\r\n marginBottom: 10,\r\n alignSelf: 'center',\r\n },\r\n});\r\n","import React from 'react';\r\nimport { documentToReactComponents } from '@contentful/rich-text-react-renderer';\r\nimport { BLOCKS, INLINES, MARKS } from '@contentful/rich-text-types';\r\nimport { StyleSheet, View, Text, Linking } from 'react-native';\r\nimport { Colors } from '../constants/Colors';\r\nimport Fonts from '../constants/Fonts';\r\nimport API from '../constants/API';\r\n\r\nconst contentfulToReactnative = {\r\n renderMark: {\r\n [MARKS.UNDERLINE]: (text) => text,\r\n [MARKS.BOLD]: (text) => {text},\r\n [MARKS.ITALIC]: (text) => {text},\r\n [MARKS.CODE]: (text) => {text},\r\n },\r\n renderNode: {\r\n [INLINES.HYPERLINK]: (node, children) => (\r\n openLink(node?.data?.uri)} style={styles.linkText}>\r\n {children}\r\n \r\n ),\r\n\r\n [BLOCKS.EMBEDDED_ENTRY]: () => null,\r\n [BLOCKS.EMBEDDED_ASSET]: () => null,\r\n [BLOCKS.PARAGRAPH]: (_node, children) => {children},\r\n [BLOCKS.HEADING_1]: (_node, children) => {children},\r\n [BLOCKS.HEADING_2]: (_node, children) => {children},\r\n [BLOCKS.HEADING_3]: (_node, children) => {children},\r\n [BLOCKS.HEADING_4]: (_node, children) => {children},\r\n [BLOCKS.HEADING_5]: (_node, children) => {children},\r\n [BLOCKS.HEADING_6]: (_node, children) => {children},\r\n [BLOCKS.UL_LIST]: (_node, children) => {children.map((child) => child)},\r\n [BLOCKS.OL_LIST]: (_node, children) => children.map((child) => child),\r\n [BLOCKS.LIST_ITEM]: (_node, child) => {child},\r\n [BLOCKS.QUOTE]: (_node, child) => {child},\r\n [BLOCKS.HR]: (_node, child) => {child},\r\n },\r\n};\r\n\r\nfunction openLink(url: string) {\r\n if (url.includes('mailto:')) {\r\n Linking.openURL(url);\r\n } else {\r\n const api: API = API.getInstance();\r\n api.openUrl(url);\r\n }\r\n}\r\n\r\nexport function RichTextResponseNative({ richTextResponse }) {\r\n return documentToReactComponents(richTextResponse, contentfulToReactnative);\r\n}\r\n\r\nconst styles = StyleSheet.create({\r\n image: {\r\n alignSelf: 'center',\r\n marginVertical: 15,\r\n alignItems: 'center',\r\n justifyContent: 'center',\r\n },\r\n whiteText: {\r\n color: Colors.whiteOpacitiy70,\r\n fontFamily: Fonts.family.regular,\r\n lineHeight: 24,\r\n fontSize: Fonts.sizes.default,\r\n textAlign: 'left',\r\n },\r\n blackText: {\r\n fontFamily: Fonts.family.regular,\r\n marginBottom: 15,\r\n lineHeight: 24,\r\n fontSize: Fonts.sizes.default,\r\n textAlign: 'left',\r\n },\r\n linkText: {\r\n color: 'blue',\r\n textDecorationLine: 'underline',\r\n fontFamily: Fonts.family.bold,\r\n lineHeight: 24,\r\n fontSize: Fonts.sizes.default,\r\n textAlign: 'left',\r\n },\r\n h1: {\r\n fontFamily: Fonts.family.bold,\r\n fontSize: Fonts.sizes.bigHeading,\r\n textAlign: 'left',\r\n marginVertical: 15,\r\n lineHeight: 37,\r\n },\r\n h2: {\r\n fontFamily: Fonts.family.bold,\r\n fontSize: Fonts.sizes.heading,\r\n textAlign: 'left',\r\n marginTop: 15,\r\n marginBottom: 25,\r\n lineHeight: 37,\r\n },\r\n h3: {\r\n fontFamily: Fonts.family.bold,\r\n fontSize: Fonts.sizes.smallHeading,\r\n lineHeight: 37,\r\n },\r\n center: {\r\n textAlign: 'left',\r\n marginVertical: 20,\r\n },\r\n});\r\n","import React, { useEffect, useState } from 'react';\r\nimport { View, StyleSheet } from 'react-native';\r\nimport Fonts from '../constants/Fonts';\r\nimport Constants from 'expo-constants';\r\nimport { RichTextResponseNative } from '../utils/RichTextResponse';\r\nimport axios from 'axios';\r\nimport _ from 'lodash';\r\n\r\nconst contentful = Constants.expoConfig?.extra?.contentful;\r\n\r\nconst TermsConditions = () => {\r\n const { baseURL, accessToken } = contentful;\r\n const URL = `${baseURL}access_token=${accessToken}&content_type=termsConditions&locale=en`;\r\n const [data, setData] = useState();\r\n\r\n useEffect(() => {\r\n const getData = async () => {\r\n const result = await axios(URL);\r\n const termsData = _.find(result.data.items, ['fields.title', 'Terms and Conditions']);\r\n setData(termsData);\r\n };\r\n getData();\r\n }, []);\r\n\r\n const termsRichText = () => RichTextResponseNative({ richTextResponse: data?.fields.content });\r\n\r\n return (\r\n \r\n <>{termsRichText()}\r\n \r\n );\r\n};\r\n\r\nexport default TermsConditions;\r\nconst styles = StyleSheet.create({\r\n termsContainer: {\r\n width: '100%',\r\n },\r\n conditionsTitle: {\r\n marginBottom: 20,\r\n },\r\n conditionsText: {\r\n fontSize: Fonts.sizes.small,\r\n marginBottom: 10,\r\n },\r\n});\r\n","import React from 'react';\r\nimport { View, Image, StyleSheet, ScrollView, Pressable } from 'react-native';\r\nimport TermsConditions from '../../components/TermsConditions';\r\nimport { Colors } from '../../constants/Colors';\r\nimport Fonts from '../../constants/Fonts';\r\nimport Layout from '../../constants/Layout';\r\nimport { AntDesign } from '@expo/vector-icons';\r\n\r\ninterface TermsProps {\r\n navigation: any;\r\n}\r\n\r\nconst Terms = ({ navigation }: TermsProps) => {\r\n function close() {\r\n navigation.goBack();\r\n }\r\n\r\n return (\r\n <>\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n close()}>\r\n \r\n \r\n \r\n \r\n );\r\n};\r\nexport default Terms;\r\n\r\nconst styles = StyleSheet.create({\r\n scrollContainer: {\r\n width: '100%',\r\n backgroundColor: Colors.backgroundYellow,\r\n },\r\n closeContainer: {\r\n top: 0,\r\n right: 0,\r\n position: 'absolute',\r\n },\r\n root: {\r\n flex: 1,\r\n justifyContent: 'center',\r\n alignItems: 'center',\r\n backgroundColor: Colors.backgroundYellow,\r\n minHeight: Layout.window.height,\r\n },\r\n topImage: {\r\n position: 'absolute',\r\n top: 10,\r\n height: 200,\r\n resizeMode: 'contain',\r\n opacity: 0.5,\r\n },\r\n logo: {\r\n width: 100,\r\n height: 100,\r\n resizeMode: 'contain',\r\n opacity: 1,\r\n zIndex: 2,\r\n marginTop: 40,\r\n marginBottom: 60,\r\n },\r\n body: {\r\n justifyContent: 'center',\r\n alignItems: 'center',\r\n marginHorizontal: '5%',\r\n paddingHorizontal: 10,\r\n marginBottom: 80,\r\n },\r\n headerContainer: {\r\n justifyContent: 'center',\r\n alignItems: 'center',\r\n width: '100%',\r\n },\r\n paragraph: {\r\n marginTop: 27,\r\n alignItems: 'center',\r\n justifyContent: 'center',\r\n textAlign: 'center',\r\n marginBottom: 20,\r\n },\r\n headerDividers: {\r\n width: '100%',\r\n height: 10,\r\n marginBottom: 20,\r\n },\r\n buttonsContainer: {\r\n width: '80%',\r\n justifyContent: 'center',\r\n alignItems: 'center',\r\n },\r\n button: {\r\n flexDirection: 'row',\r\n height: 45,\r\n backgroundColor: 'white',\r\n borderRadius: 37,\r\n paddingVertical: 13,\r\n paddingHorizontal: 16,\r\n fontWeight: 'bold',\r\n alignItems: 'center',\r\n justifyContent: 'flex-start',\r\n width: '100%',\r\n marginVertical: 10,\r\n },\r\n buttonImg: {\r\n height: 25,\r\n width: 25,\r\n marginRight: 14.7,\r\n resizeMode: 'contain',\r\n },\r\n buttonText: {\r\n fontFamily: Fonts.family.bold,\r\n },\r\n bottomImage: {\r\n position: 'absolute',\r\n bottom: 0,\r\n width: Layout.window.width,\r\n height: 150,\r\n resizeMode: 'cover',\r\n zIndex: -1,\r\n },\r\n icons: {\r\n position: 'absolute',\r\n width: '100%',\r\n top: 12,\r\n left: 0,\r\n zIndex: 100,\r\n },\r\n close: {\r\n justifyContent: 'center',\r\n alignItems: 'center',\r\n position: 'absolute',\r\n top: 30,\r\n right: 15,\r\n width: 50,\r\n height: 50,\r\n backgroundColor: Colors.whiteOpacitiy40,\r\n borderRadius: 45,\r\n },\r\n});\r\n","import React, { useEffect, useState } from 'react';\r\nimport { View, StyleSheet } from 'react-native';\r\nimport Fonts from '../constants/Fonts';\r\nimport Constants from 'expo-constants';\r\nimport { RichTextResponseNative } from '../utils/RichTextResponse';\r\nimport axios from 'axios';\r\nimport _ from 'lodash';\r\n\r\nconst { baseURL, accessToken } = Constants.expoConfig?.extra?.contentful;\r\n\r\nconst PrivacyPolicy = () => {\r\n const URL = `${baseURL}access_token=${accessToken}&content_type=privacyPolicy&locale=en`;\r\n const [data, setData] = useState();\r\n\r\n useEffect(() => {\r\n const getData = async () => {\r\n const result = await axios(URL);\r\n const termsData = _.find(result.data.items, ['fields.title', 'Privacy Policy']);\r\n setData(termsData);\r\n };\r\n getData();\r\n }, []);\r\n\r\n const privacyRichText = () => RichTextResponseNative({ richTextResponse: data?.fields.content });\r\n\r\n return (\r\n \r\n <>{privacyRichText()}\r\n \r\n );\r\n};\r\n\r\nexport default PrivacyPolicy;\r\nconst styles = StyleSheet.create({\r\n termsContainer: {\r\n width: '100%',\r\n },\r\n conditionsTitle: {\r\n marginBottom: 20,\r\n },\r\n conditionsText: {\r\n fontSize: Fonts.sizes.small,\r\n marginBottom: 10,\r\n },\r\n});\r\n","import React from 'react';\r\nimport { View, Image, StyleSheet, ScrollView, Pressable } from 'react-native';\r\nimport PrivacyPolicy from '../../components/PrivacyPolicy';\r\nimport { Colors } from '../../constants/Colors';\r\nimport Fonts from '../../constants/Fonts';\r\nimport Layout from '../../constants/Layout';\r\nimport { AntDesign } from '@expo/vector-icons';\r\n\r\ninterface PrivacyProps {\r\n navigation: any;\r\n}\r\n\r\nconst Privacy = ({ navigation }: PrivacyProps) => {\r\n function close() {\r\n navigation.goBack();\r\n }\r\n\r\n return (\r\n <>\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n close()}>\r\n \r\n \r\n \r\n \r\n );\r\n};\r\nexport default Privacy;\r\n\r\nconst styles = StyleSheet.create({\r\n scrollContainer: {\r\n width: '100%',\r\n backgroundColor: Colors.backgroundYellow,\r\n },\r\n closeContainer: {\r\n top: 0,\r\n right: 0,\r\n position: 'absolute',\r\n },\r\n root: {\r\n flex: 1,\r\n justifyContent: 'center',\r\n alignItems: 'center',\r\n backgroundColor: Colors.backgroundYellow,\r\n minHeight: Layout.window.height,\r\n },\r\n topImage: {\r\n position: 'absolute',\r\n top: 10,\r\n height: 200,\r\n resizeMode: 'contain',\r\n opacity: 0.5,\r\n },\r\n logo: {\r\n width: 100,\r\n height: 100,\r\n resizeMode: 'contain',\r\n opacity: 1,\r\n zIndex: 2,\r\n marginTop: 40,\r\n marginBottom: 60,\r\n },\r\n body: {\r\n justifyContent: 'center',\r\n alignItems: 'center',\r\n marginHorizontal: '5%',\r\n paddingHorizontal: 10,\r\n marginBottom: 80,\r\n },\r\n headerContainer: {\r\n justifyContent: 'center',\r\n alignItems: 'center',\r\n width: '100%',\r\n },\r\n paragraph: {\r\n marginTop: 27,\r\n alignItems: 'center',\r\n justifyContent: 'center',\r\n textAlign: 'center',\r\n marginBottom: 20,\r\n },\r\n headerDividers: {\r\n width: '100%',\r\n height: 10,\r\n marginBottom: 20,\r\n },\r\n buttonsContainer: {\r\n width: '80%',\r\n justifyContent: 'center',\r\n alignItems: 'center',\r\n },\r\n button: {\r\n flexDirection: 'row',\r\n height: 45,\r\n backgroundColor: 'white',\r\n borderRadius: 37,\r\n paddingVertical: 13,\r\n paddingHorizontal: 16,\r\n fontWeight: 'bold',\r\n alignItems: 'center',\r\n justifyContent: 'flex-start',\r\n width: '100%',\r\n marginVertical: 10,\r\n },\r\n buttonImg: {\r\n height: 25,\r\n width: 25,\r\n marginRight: 14.7,\r\n resizeMode: 'contain',\r\n },\r\n buttonText: {\r\n fontFamily: Fonts.family.bold,\r\n },\r\n bottomImage: {\r\n position: 'absolute',\r\n bottom: 0,\r\n width: Layout.window.width,\r\n height: 150,\r\n resizeMode: 'cover',\r\n zIndex: -1,\r\n },\r\n icons: {\r\n position: 'absolute',\r\n width: '100%',\r\n top: 12,\r\n left: 0,\r\n zIndex: 100,\r\n },\r\n close: {\r\n justifyContent: 'center',\r\n alignItems: 'center',\r\n position: 'absolute',\r\n top: 30,\r\n right: 15,\r\n width: 50,\r\n height: 50,\r\n backgroundColor: Colors.whiteOpacitiy40,\r\n borderRadius: 45,\r\n },\r\n});\r\n","import { createStackNavigator } from '@react-navigation/stack';\r\nimport { AuthParamList } from '../constants/Interfaces';\r\nimport * as React from 'react';\r\nimport LandingScreen from '../screens/authentication/LandingScreen';\r\nimport SocialMediaLogin from '../screens/authentication/SocialMediaLogin';\r\nimport Terms from '../screens/termsandconditions/Terms';\r\nimport Privacy from '../screens/termsandconditions/Privacy';\r\n\r\nconst AuthStack = createStackNavigator();\r\n\r\nexport default function AuthNavigator() {\r\n return (\r\n \r\n \r\n \r\n \r\n \r\n \r\n );\r\n}\r\n","import React, { useState } from 'react';\r\nimport { StyleProp, StyleSheet, TextInput as BaseInput } from 'react-native';\r\nimport { Colors } from '../../constants/Colors';\r\nimport Layout from '../../constants/Layout';\r\nimport Fonts from '../../constants/Fonts';\r\nimport { TextProps, View, ViewProps } from '../Themed';\r\nimport { UIText } from '../StyledText';\r\n\r\nexport interface TextInputProps {\r\n containerStyle?: StyleProp;\r\n inputContainerStyle?: StyleProp;\r\n labelContainerStyle?: StyleProp;\r\n errorContainerStyle?: StyleProp;\r\n placeholder?: string;\r\n value?: string | null;\r\n label?: string | null;\r\n errorMessage?: string;\r\n disabled?: boolean;\r\n onChangeText: (text: string) => void;\r\n validator?: (text: string) => string | null;\r\n inputStyle?: StyleProp;\r\n errorStyle?: StyleProp;\r\n labelStyle?: StyleProp;\r\n placeholderTextColor?: string;\r\n onFocus?: () => void;\r\n keyboardType?: 'numeric';\r\n}\r\n\r\nexport default function TextInput(props: TextInputProps) {\r\n const {\r\n containerStyle,\r\n inputContainerStyle,\r\n labelContainerStyle,\r\n errorContainerStyle,\r\n placeholder,\r\n value,\r\n label,\r\n errorMessage = '',\r\n disabled = false,\r\n onChangeText,\r\n validator,\r\n inputStyle,\r\n errorStyle,\r\n labelStyle,\r\n placeholderTextColor,\r\n onFocus,\r\n keyboardType = 'default',\r\n } = props;\r\n\r\n const [validatorErrorMessage, setValidatorErrorMessage] = useState();\r\n\r\n const handleChangeText = (text: string) => {\r\n if (validator) {\r\n const result = validator(text);\r\n if (result) {\r\n setValidatorErrorMessage(result);\r\n } else {\r\n setValidatorErrorMessage(undefined);\r\n }\r\n }\r\n onChangeText(text);\r\n };\r\n\r\n return (\r\n \r\n \r\n {label && value && value.length > 0 ? (\r\n \r\n {label}\r\n \r\n ) : null}\r\n \r\n \r\n \r\n {validatorErrorMessage || errorMessage}\r\n \r\n \r\n );\r\n}\r\n\r\nconst styles = StyleSheet.create({\r\n inputContainer: {\r\n backgroundColor: Colors.white,\r\n height: 60,\r\n paddingHorizontal: Layout.backgroundMarginNormal.left,\r\n paddingVertical: 8,\r\n borderRadius: 28,\r\n },\r\n label: {\r\n fontSize: Fonts.sizes.small,\r\n color: Colors.grey,\r\n },\r\n input: {\r\n flex: 1,\r\n fontFamily: Fonts.family.regular,\r\n fontSize: Fonts.sizes.default,\r\n },\r\n error: {\r\n color: Colors.red,\r\n },\r\n errorContainer: {\r\n height: 12,\r\n },\r\n});\r\n","import React, { forwardRef, useImperativeHandle, useState } from 'react';\r\nimport {\r\n StyleProp,\r\n StyleSheet,\r\n Keyboard,\r\n TextInput,\r\n TouchableHighlight,\r\n TouchableWithoutFeedback,\r\n ViewStyle,\r\n} from 'react-native';\r\nimport { View } from '../Themed';\r\nimport Logger from '../../constants/Logger';\r\nimport { UIText } from '../StyledText';\r\nimport { Colors } from '../../constants/Colors';\r\nimport Layout from '../../constants/Layout';\r\nimport { MaterialIcons } from '@expo/vector-icons';\r\nimport Fonts from '../../constants/Fonts';\r\nimport { DropdownItem } from '../../constants/Interfaces';\r\nimport i18n from '../../translations';\r\nimport _ from 'lodash';\r\nimport { matchWild } from '../../constants/Utils';\r\n\r\nexport interface PickerInputProps {\r\n containerStyle?: StyleProp;\r\n inputContainerStyle?: StyleProp;\r\n inputStyle?: StyleProp;\r\n dropdownIconStyle?: StyleProp;\r\n dropdownStyle?: StyleProp;\r\n itemStyle?: StyleProp;\r\n placeholderStyle?: StyleProp;\r\n placeholder?: string;\r\n data: DropdownItem[];\r\n value?: string | number;\r\n maxItems?: number;\r\n sortEnabled?: boolean;\r\n searchEnabled?: boolean;\r\n onSelect: (value: any) => void;\r\n onActive?: () => void;\r\n disabled?: boolean;\r\n}\r\n\r\nexport const PickerInput = forwardRef((props: PickerInputProps, ref) => {\r\n const {\r\n containerStyle,\r\n inputContainerStyle,\r\n inputStyle,\r\n dropdownIconStyle,\r\n dropdownStyle,\r\n itemStyle,\r\n placeholderStyle,\r\n placeholder,\r\n data,\r\n value,\r\n maxItems = 5,\r\n sortEnabled = false,\r\n searchEnabled = false,\r\n onSelect,\r\n onActive,\r\n disabled,\r\n } = props;\r\n const [active, setActive] = useState(false);\r\n const [searchQuery, setSearchQuery] = useState();\r\n useImperativeHandle(ref, () => ({\r\n hide: () => {\r\n setActive(false);\r\n },\r\n }));\r\n\r\n const toggleDropdown = () => {\r\n if (!disabled) {\r\n if (active) {\r\n setSearchQuery(undefined);\r\n }\r\n if (!active && onActive) {\r\n onActive();\r\n }\r\n setActive(!active);\r\n Keyboard.dismiss();\r\n }\r\n };\r\n\r\n const renderItems = (items: DropdownItem[]) => (\r\n \r\n {items.map((item: DropdownItem, index) => (\r\n {\r\n setActive(false);\r\n Logger.debug(`Setting value to: ${item.label}`);\r\n onSelect(item.value);\r\n }}\r\n >\r\n {item.label}\r\n \r\n ))}\r\n \r\n );\r\n\r\n const getItems = (data: DropdownItem[], maxItems: number, searchQuery?: string, sortEnabled?: boolean) => {\r\n let results: DropdownItem[] = data;\r\n if (searchQuery) {\r\n results = _.filter(data, (item) => matchWild(item.label, searchQuery));\r\n }\r\n if (sortEnabled) {\r\n results = _.sortBy(results, ['label']);\r\n }\r\n results = _.slice(results, 0, maxItems);\r\n return results;\r\n };\r\n\r\n const getLabelForValue = (value: string | number) => {\r\n const dropdownItem: DropdownItem | undefined = _.find(data, ['value', value]);\r\n if (dropdownItem) {\r\n return dropdownItem.label;\r\n }\r\n return '';\r\n };\r\n\r\n return (\r\n <>\r\n \r\n {\r\n if (searchEnabled && active) {\r\n // Do not toggle if search is enabled and active\r\n return;\r\n }\r\n toggleDropdown();\r\n }}\r\n >\r\n \r\n {active && searchEnabled && !disabled ? (\r\n setSearchQuery(text)}\r\n placeholder={i18n.t('components.PickerInput.searchPlaceholder')}\r\n value={searchQuery}\r\n style={[\r\n styles.inputInnerContainer,\r\n styles.searchInput,\r\n { color: !disabled ? Colors.black : Colors.grey },\r\n ]}\r\n />\r\n ) : (\r\n \r\n \r\n {value ? getLabelForValue(value) : placeholder}\r\n \r\n \r\n )}\r\n {!disabled ? (\r\n \r\n \r\n \r\n \r\n \r\n ) : null}\r\n \r\n \r\n \r\n \r\n {active ? (\r\n \r\n {renderItems(getItems(data, maxItems, searchQuery, sortEnabled))}\r\n \r\n ) : null}\r\n \r\n );\r\n});\r\n\r\nconst styles = StyleSheet.create({\r\n container: {\r\n zIndex: 1,\r\n },\r\n inputContainer: {\r\n backgroundColor: Colors.white,\r\n height: 60,\r\n borderRadius: 28,\r\n overflow: 'hidden',\r\n justifyContent: 'center',\r\n },\r\n inputInnerContainer: {\r\n padding: Layout.backgroundMarginNormal.left,\r\n paddingRight: 0,\r\n height: '100%',\r\n backgroundColor: Colors.transparent,\r\n justifyContent: 'center',\r\n overflow: 'hidden',\r\n },\r\n dropdownContainer: {\r\n position: 'absolute',\r\n // left: Layout.backgroundMarginNormal.left,\r\n backgroundColor: Colors.white,\r\n zIndex: 30,\r\n elevation: 5,\r\n shadowColor: Colors.grey,\r\n shadowOpacity: 0.5,\r\n shadowOffset: { width: 2, height: 2 },\r\n shadowRadius: 2,\r\n width: '100%',\r\n },\r\n dropdownItem: {\r\n height: 50,\r\n paddingHorizontal: Layout.backgroundMarginNormal.left,\r\n justifyContent: 'center',\r\n },\r\n placeholder: {\r\n paddingRight: 12,\r\n },\r\n searchInput: {\r\n fontFamily: Fonts.family.regular,\r\n fontSize: Fonts.sizes.default,\r\n },\r\n dropdownIconContainer: {\r\n position: 'absolute',\r\n right: 0,\r\n top: 0,\r\n width: 60,\r\n height: 60,\r\n backgroundColor: Colors.white,\r\n justifyContent: 'center',\r\n alignItems: 'center',\r\n },\r\n dropdownIcon: {},\r\n errorMessageContainer: {\r\n height: 12,\r\n },\r\n});\r\n","import React, { useState } from 'react';\r\nimport { Pressable, StyleSheet, View } from 'react-native';\r\nimport { MaterialCommunityIcons } from '@expo/vector-icons';\r\nimport Fonts from '../../constants/Fonts';\r\nimport { Colors } from '../../constants/Colors';\r\nimport DateTimePickerModal from 'react-native-modal-datetime-picker';\r\nimport { DateTime } from 'luxon';\r\nimport Layout from '../../constants/Layout';\r\nimport { UIText } from '../StyledText';\r\nimport Logger from '../../constants/Logger';\r\n\r\ninterface CalendarProps {\r\n onChange: (value: string) => void;\r\n value?: string;\r\n placeholder?: string;\r\n onActive?: () => void;\r\n}\r\nconst CalendarInput = (props: CalendarProps) => {\r\n const { onChange, value, placeholder, onActive } = props;\r\n const [active, setActive] = useState(false);\r\n const hideDatePicker = () => {\r\n setActive(false);\r\n };\r\n const handleConfirm = (date: Date) => {\r\n onChange(DateTime.fromJSDate(date).toISO());\r\n hideDatePicker();\r\n };\r\n const displayDate = (date: string) => {\r\n Logger.debug(`Date is: ${DateTime.fromISO(date).toString()}`);\r\n return DateTime.fromISO(date).toFormat('dd/MM/yyyy');\r\n };\r\n\r\n const handlePress = () => {\r\n if (!active && onActive) {\r\n onActive();\r\n }\r\n setActive(!active);\r\n };\r\n\r\n return (\r\n <>\r\n \r\n \r\n \r\n \r\n \r\n {value ? displayDate(value) : placeholder}\r\n \r\n \r\n\r\n \r\n \r\n \r\n \r\n \r\n {active && (\r\n \r\n \r\n \r\n )}\r\n \r\n );\r\n};\r\nexport default CalendarInput;\r\n\r\nconst styles = StyleSheet.create({\r\n container: {\r\n zIndex: 1,\r\n },\r\n inputContainer: {\r\n backgroundColor: Colors.white,\r\n height: 60,\r\n borderRadius: 28,\r\n justifyContent: 'center',\r\n },\r\n inputInnerContainer: {\r\n padding: Layout.backgroundMarginNormal.left,\r\n paddingRight: 0,\r\n height: '100%',\r\n justifyContent: 'center',\r\n overflow: 'hidden',\r\n },\r\n calendarContainer: {\r\n position: 'absolute',\r\n left: Layout.backgroundMarginNormal.left,\r\n backgroundColor: Colors.white,\r\n zIndex: 30,\r\n elevation: 5,\r\n shadowColor: Colors.grey,\r\n shadowOpacity: 0.5,\r\n shadowOffset: { width: 2, height: 2 },\r\n shadowRadius: 2,\r\n width: '100%',\r\n },\r\n calendarContainerWeb: {\r\n position: 'absolute',\r\n top: 60,\r\n left: 0,\r\n backgroundColor: Colors.white,\r\n zIndex: 30,\r\n shadowColor: Colors.grey,\r\n shadowOpacity: 0.5,\r\n shadowOffset: { width: 2, height: 2 },\r\n shadowRadius: 2,\r\n width: '100%',\r\n },\r\n placeholder: {\r\n paddingRight: 12,\r\n },\r\n calendarIcon: {\r\n position: 'absolute',\r\n right: 18,\r\n top: 18,\r\n },\r\n errorMessageContainer: {\r\n height: 12,\r\n },\r\n});\r\n","import { StyleSheet } from 'react-native';\r\nimport { Colors } from '../../constants/Colors';\r\nimport Fonts from '../../constants/Fonts';\r\nimport Layout from '../../constants/Layout';\r\n\r\nexport const styles = StyleSheet.create({\r\n container: {\r\n flex: 1,\r\n alignItems: 'center',\r\n justifyContent: 'flex-start',\r\n backgroundColor: Colors.backgroundYellow,\r\n },\r\n loadingContainer: {\r\n flex: 1,\r\n alignItems: 'center',\r\n justifyContent: 'center',\r\n backgroundColor: Colors.backgroundYellow,\r\n },\r\n loadingText: {\r\n color: Colors.black,\r\n marginTop: 8,\r\n fontSize: Fonts.sizes.default,\r\n },\r\n scrollContainer: {\r\n flexGrow: 1,\r\n paddingTop: 40,\r\n paddingBottom: 40,\r\n alignItems: 'center',\r\n justifyContent: 'flex-start',\r\n },\r\n headerContainer: {\r\n marginTop: 50,\r\n alignItems: 'center',\r\n },\r\n formContainer: {\r\n width: '100%',\r\n paddingHorizontal: Layout.backgroundMarginNormal.left,\r\n paddingTop: 15,\r\n },\r\n heading: {\r\n paddingTop: Layout.backgroundMarginNormal.top,\r\n color: Colors.black,\r\n },\r\n subtitle: {\r\n paddingTop: Layout.backgroundMarginNormal.top / 2,\r\n color: Colors.black,\r\n fontSize: Fonts.sizes.default,\r\n },\r\n introduction: {\r\n paddingTop: Layout.backgroundMarginNormal.top,\r\n color: Colors.black,\r\n paddingHorizontal: Layout.backgroundMarginNormal.left,\r\n textAlign: 'center',\r\n lineHeight: 22,\r\n },\r\n bottomImage: {\r\n width: Layout.window.width,\r\n bottom: 0,\r\n height: 250,\r\n resizeMode: 'cover',\r\n zIndex: -102,\r\n position: 'absolute',\r\n },\r\n topImage: {\r\n position: 'absolute',\r\n top: 0,\r\n height: 200,\r\n resizeMode: 'contain',\r\n opacity: 0.5,\r\n },\r\n topLogo: {\r\n position: 'absolute',\r\n top: 30,\r\n height: 50,\r\n resizeMode: 'contain',\r\n opacity: 1,\r\n },\r\n logo: {\r\n width: 60,\r\n height: 60,\r\n resizeMode: 'contain',\r\n },\r\n divider: {\r\n paddingTop: Layout.backgroundMarginNormal.top,\r\n width: Layout.window.width - 2 * Layout.backgroundMarginNormal.left,\r\n resizeMode: 'contain',\r\n },\r\n submitButton: {\r\n alignItems: 'center',\r\n marginTop: 4,\r\n zIndex: 3,\r\n },\r\n introText: {\r\n marginBottom: Layout.backgroundMarginNarrow.bottom,\r\n color: Colors.white,\r\n },\r\n formLeftContainer: {\r\n flex: 1,\r\n width: 400 - 1.5 * Layout.backgroundMarginNormal.left,\r\n paddingRight: Layout.backgroundMarginNormal.left,\r\n },\r\n formRightContainer: {\r\n flex: 1,\r\n width: 400 - 1.5 * Layout.backgroundMarginNormal.left,\r\n },\r\n skipCancelContainer: {\r\n flexDirection: 'row',\r\n width: '100%',\r\n paddingHorizontal: Layout.backgroundMarginNormal.left * 2,\r\n justifyContent: 'flex-start',\r\n alignItems: 'center',\r\n },\r\n filler: {\r\n flexGrow: 1,\r\n },\r\n});\r\n","import { DropdownItem, Ethnicity, Gender } from './Interfaces';\r\nimport i18n from '../translations';\r\n\r\nexport const listOfGenders: DropdownItem[] = [\r\n {\r\n label: i18n.t('references.gender.male'),\r\n value: Gender.MALE,\r\n },\r\n {\r\n label: i18n.t('references.gender.female'),\r\n value: Gender.FEMALE,\r\n },\r\n {\r\n label: i18n.t('references.gender.non-binary'),\r\n value: Gender.NON_BINARY,\r\n },\r\n {\r\n label: i18n.t('references.gender.transgender'),\r\n value: Gender.TRANSGENDER,\r\n },\r\n {\r\n label: i18n.t('references.gender.intersex'),\r\n value: Gender.INTERSEX,\r\n },\r\n {\r\n label: i18n.t('references.gender.not-to-say'),\r\n value: Gender.NOT_TO_SAY,\r\n },\r\n];\r\n\r\nexport const listOfEthnicities: DropdownItem[] = [\r\n {\r\n label: i18n.t('references.ethnicity.maori'),\r\n value: Ethnicity.MAORI,\r\n },\r\n {\r\n label: i18n.t('references.ethnicity.european'),\r\n value: Ethnicity.EUROPEAN,\r\n },\r\n {\r\n label: i18n.t('references.ethnicity.pacific'),\r\n value: Ethnicity.PACIFIC,\r\n },\r\n {\r\n label: i18n.t('references.ethnicity.asian'),\r\n value: Ethnicity.ASIAN,\r\n },\r\n {\r\n label: i18n.t('references.ethnicity.melaa'),\r\n value: Ethnicity.MELAA,\r\n },\r\n {\r\n label: i18n.t('references.ethnicity.other'),\r\n value: Ethnicity.OTHER,\r\n },\r\n];\r\n","import React, { useRef, useState } from 'react';\r\nimport { Image } from 'react-native';\r\nimport { useDispatch, useSelector } from 'react-redux';\r\nimport { KeyboardAwareScrollView } from 'react-native-keyboard-aware-scroll-view';\r\nimport Toast from 'react-native-toast-message';\r\nimport { View } from '../../components/Themed';\r\nimport { StackActions } from '@react-navigation/native';\r\nimport { Heading, Link } from '../../components/StyledText';\r\nimport i18n from '../../translations';\r\nimport TextInput from '../../components/inputs/TextInput';\r\nimport PrimaryButton from '../../components/buttons/PrimaryButton';\r\nimport Logger from '../../constants/Logger';\r\nimport { AppError, AuthState, User } from '../../constants/Interfaces';\r\nimport { PickerInput } from '../../components/inputs/PickerInput';\r\nimport CalendarInput from '../../components/inputs/CalendarInput';\r\nimport { logOut, parseJwt } from '../../constants/Utils';\r\nimport { styles } from './RegistrationCommonStyles';\r\nimport { patchUser, skipUserDetails } from '../../reducers/user.slice';\r\nimport { DateTime } from 'luxon';\r\nimport { listOfEthnicities, listOfGenders } from '../../constants/References';\r\nimport Layout from '../../constants/Layout';\r\nimport { purge } from '../../reducers/commonActions';\r\n\r\nexport default function UserDetailsScreen({ navigation }) {\r\n const dispatch = useDispatch();\r\n const userLoading: boolean = useSelector((state: any) => state.user.loading);\r\n const user: User = useSelector((state: any) => state.user.user);\r\n const userDetailsSkipped: boolean = useSelector((state: any) => state.user.userDetailsSkipped);\r\n const userBackgroundLoading: boolean = useSelector((state: any) => state.user.backgroundLoading);\r\n const userError: AppError = useSelector((state: any) => state.user.error);\r\n const authState: AuthState | null = useSelector((state: any) => state.authentication.authState);\r\n\r\n const [firstName, setFirstName] = useState();\r\n const [lastName, setLastName] = useState();\r\n const [gender, setGender] = useState();\r\n const [ethnicity, setEthnicity] = useState();\r\n const [doB, setDoB] = useState();\r\n const [phone, setPhone] = useState();\r\n const [email, setEmail] = useState();\r\n\r\n const refStub = {\r\n hide: () => {},\r\n };\r\n\r\n const genderRef = useRef(refStub);\r\n const ethnicityRef = useRef(refStub);\r\n\r\n let shouldCollectEmail: boolean = false;\r\n\r\n const submitForm = async () => {\r\n Logger.debug('Submitting the form now');\r\n const user: User = {\r\n firstName,\r\n lastName,\r\n phone,\r\n gender,\r\n ethnicity,\r\n doB: doB ? DateTime.fromISO(doB).toISODate() : undefined,\r\n };\r\n if (shouldCollectEmail && email) {\r\n user.email = email;\r\n }\r\n try {\r\n dispatch(await patchUser(user));\r\n } catch (e: any) {\r\n Logger.debug(`Error occurred: ${e.message}`);\r\n }\r\n };\r\n\r\n const handleSkip = async () => {\r\n dispatch(skipUserDetails());\r\n };\r\n\r\n /**\r\n * Handle the global clicking events and hide all dropdowns\r\n */\r\n const handleBlur = () => {\r\n genderRef.current.hide();\r\n ethnicityRef.current.hide();\r\n };\r\n\r\n const handleCancel = () => {\r\n logOut();\r\n };\r\n\r\n /**\r\n * Get the exact Y coordinate to display the dropdown.\r\n * @param position\r\n */\r\n const getDropdownY = (position: number) => 20 + 60 * position + 9 * (position - 1);\r\n\r\n const isFormValid = () => firstName && lastName && gender && ethnicity && doB;\r\n\r\n if (authState) {\r\n const { accessToken } = authState;\r\n const token = parseJwt(accessToken);\r\n shouldCollectEmail = !token || !token.emails || token.emails.length === 0;\r\n }\r\n\r\n React.useEffect(() => {\r\n if (user && user.firstName) {\r\n navigateToMarae();\r\n }\r\n }, [user]);\r\n\r\n React.useEffect(() => {\r\n if (userError) {\r\n Toast.show({\r\n type: 'error',\r\n position: 'bottom',\r\n autoHide: false,\r\n text1: userError.message,\r\n });\r\n }\r\n }, [userError]);\r\n\r\n React.useEffect(() => {\r\n if (userDetailsSkipped) {\r\n navigateToMarae();\r\n }\r\n }, [userDetailsSkipped]);\r\n\r\n const navigateToMarae = () => {\r\n navigation.dispatch(StackActions.replace('AddMarae'));\r\n };\r\n\r\n return (\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n {i18n.t('pages.UserDetailsScreen.title')}\r\n \r\n \r\n {shouldCollectEmail ? (\r\n setEmail(email)}\r\n label={i18n.t('pages.UserDetailsScreen.email')}\r\n />\r\n ) : null}\r\n setFirstName(firstName)}\r\n label={i18n.t('pages.UserDetailsScreen.firstName')}\r\n />\r\n setLastName(lastName)}\r\n label={i18n.t('pages.UserDetailsScreen.surname')}\r\n />\r\n {\r\n setGender(gender);\r\n }}\r\n onActive={handleBlur}\r\n dropdownStyle={{\r\n top: getDropdownY(3),\r\n marginHorizontal: Layout.backgroundMarginNormal.left,\r\n }}\r\n />\r\n {\r\n setEthnicity(ethnicity);\r\n }}\r\n onActive={handleBlur}\r\n dropdownStyle={{\r\n top: getDropdownY(4),\r\n marginHorizontal: Layout.backgroundMarginNormal.left,\r\n }}\r\n />\r\n setDoB(date)}\r\n value={doB}\r\n placeholder={i18n.t('pages.UserDetailsScreen.dob')}\r\n onActive={handleBlur}\r\n />\r\n setPhone(phone)}\r\n label={`${i18n.t('pages.UserDetailsScreen.mobile')}`}\r\n keyboardType=\"numeric\"\r\n />\r\n \r\n \r\n \r\n \r\n \r\n );\r\n}\r\n","import React from 'react';\r\nimport { Image, StyleSheet } from 'react-native';\r\nimport { KeyboardAwareScrollView } from 'react-native-keyboard-aware-scroll-view';\r\nimport { View } from '../../components/Themed';\r\nimport { Heading, Link, Paragraph } from '../../components/StyledText';\r\nimport i18n from '../../translations';\r\nimport { styles } from './RegistrationCommonStyles';\r\nimport { skipMarae } from '../../reducers/user.slice';\r\nimport Layout from '../../constants/Layout';\r\nimport { purge } from '../../reducers/commonActions';\r\nimport PrimaryButton from '../../components/buttons/PrimaryButton';\r\nimport { getUserActivities } from '../../reducers/activity.slice';\r\nimport { useAppDispatch } from '../../store/configureStore';\r\nimport { logOut } from '../../constants/Utils';\r\n\r\nexport default function AddMaraeScreen({ navigation }) {\r\n const dispatch = useAppDispatch();\r\n\r\n const handleSkip = async () => {\r\n await dispatch(skipMarae());\r\n navigateToRoot();\r\n };\r\n\r\n const handleCancel = () => {\r\n logOut();\r\n };\r\n\r\n const handleFind = () => {\r\n navigation.navigate('SelectRegion');\r\n };\r\n\r\n const navigateToRoot = async () => {\r\n await dispatch(getUserActivities());\r\n navigation.navigate('Root');\r\n };\r\n\r\n React.useEffect(\r\n () =>\r\n navigation.addListener('beforeRemove', (e) => {\r\n // Prevent default behavior of leaving the screen\r\n e.preventDefault();\r\n }),\r\n [navigation]\r\n );\r\n\r\n return (\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n {i18n.t('pages.AddMaraeScreen.title')}\r\n {i18n.t('pages.AddMaraeScreen.subtitle')}\r\n {i18n.t('pages.AddMaraeScreen.introduction')}\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n );\r\n}\r\n\r\nconst localStyles = StyleSheet.create({\r\n bottomImage: {\r\n position: 'absolute',\r\n bottom: 0,\r\n left: 0,\r\n width: Layout.window.width,\r\n height: 250,\r\n resizeMode: 'cover',\r\n zIndex: -1,\r\n },\r\n});\r\n","import React, { useState } from 'react';\r\nimport { View, StyleSheet, Pressable, Image, TextInput, FlatList } from 'react-native';\r\nimport { useSelector } from 'react-redux';\r\nimport { Colors } from '../constants/Colors';\r\nimport Fonts from '../constants/Fonts';\r\nimport { Activity } from '../constants/Interfaces';\r\nimport { UIText } from './StyledText';\r\nimport Layout from '../constants/Layout';\r\nimport { useNavigation } from '@react-navigation/native';\r\nimport Logger from '../constants/Logger';\r\nimport { TouchableWithoutFeedback } from 'react-native-gesture-handler';\r\nimport i18n from '../translations';\r\nimport { convertToNZ } from '../constants/Utils';\r\n\r\nconst SearchBar = ({ close }) => {\r\n const [search, setSearch] = useState('');\r\n const activities: Activity[] = useSelector((state: any) => state.activity.activities);\r\n const filterResults =\r\n search !== '' ? activities.filter((item) => item.activityName?.toLowerCase().includes(search.toLowerCase())) : [];\r\n const navigation = useNavigation();\r\n\r\n const handleOpenActivity = (activityId: string) => {\r\n close();\r\n Logger.debug(`Screen -> ActivitiesScreen -> handleOpenActivity: Navigating to activity ${activityId}`);\r\n navigation.navigate('ActivityDetails', {\r\n activityId,\r\n });\r\n };\r\n\r\n const renderItem = (item: Activity) => (\r\n handleOpenActivity(item.activityId)}>\r\n {item.activityName}\r\n {`${convertToNZ({ date: item.startDate!, format: 'MMMM dd' })}, ${item.location?.regionName}`}\r\n \r\n );\r\n\r\n return (\r\n \r\n \r\n \r\n setSearch(text)} />\r\n \r\n {search !== '' && (\r\n \r\n {filterResults.length > 0 ? (\r\n item.activityId}\r\n renderItem={({ item }) => renderItem(item)}\r\n />\r\n ) : (\r\n {i18n.t('components.SearchBar.nofound', { search })} \r\n )}\r\n \r\n )}\r\n \r\n \r\n );\r\n};\r\nexport default SearchBar;\r\n\r\nconst styles = StyleSheet.create({\r\n root: {\r\n width: '100%',\r\n top: 20,\r\n height: Layout.window.height,\r\n position: 'absolute',\r\n },\r\n barContainer: {\r\n marginHorizontal: '5%',\r\n backgroundColor: Colors.white,\r\n borderRadius: 20,\r\n height: 30,\r\n paddingLeft: 10,\r\n flexDirection: 'row',\r\n alignItems: 'center',\r\n },\r\n icon: {\r\n width: 20,\r\n height: 20,\r\n resizeMode: 'contain',\r\n marginRight: 5,\r\n },\r\n textInput: {\r\n flex: 1,\r\n height: '100%',\r\n },\r\n resultsContainer: {\r\n marginTop: 5,\r\n backgroundColor: Colors.white,\r\n marginHorizontal: '5%',\r\n maxHeight: 200,\r\n minHeight: 100,\r\n borderRadius: 10,\r\n paddingHorizontal: 35,\r\n justifyContent: 'center',\r\n },\r\n results: {\r\n borderBottomColor: Colors.defaultGrey,\r\n borderBottomWidth: 1,\r\n paddingVertical: 10,\r\n },\r\n titleLabel: {\r\n fontFamily: Fonts.family.bold,\r\n },\r\n});\r\n","import React, { useState } from 'react';\r\nimport { View, StyleSheet, Animated, Pressable, Image } from 'react-native';\r\nimport { useSelector } from 'react-redux';\r\nimport { Colors } from '../constants/Colors';\r\nimport SearchBar from './SearchBar';\r\nimport { DrawerParamList, User } from '../constants/Interfaces';\r\nimport { getGenderPlaceholder } from '../constants/Utils';\r\n\r\nexport interface HeaderBarProps {\r\n headerBarHeight?: Animated.AnimatedInterpolation;\r\n imagePosition?: Animated.AnimatedInterpolation;\r\n backgroundColorHeader?: Animated.AnimatedInterpolation;\r\n ellipseHeight?: Animated.AnimatedInterpolation;\r\n navigation: DrawerParamList;\r\n showIcon?: Boolean;\r\n opacityProfile?: Animated.AnimatedInterpolation;\r\n isRefreshHolder?: boolean;\r\n smallProfile?: boolean;\r\n}\r\n\r\nconst HeaderBar = (props: HeaderBarProps) => {\r\n const {\r\n headerBarHeight,\r\n imagePosition,\r\n backgroundColorHeader,\r\n ellipseHeight,\r\n navigation,\r\n showIcon = true,\r\n opacityProfile = 1,\r\n isRefreshHolder = false,\r\n smallProfile = false,\r\n } = props;\r\n const user: User = useSelector((state: any) => state.user.user);\r\n const [searchActive, setSearchActive] = useState(false);\r\n\r\n return (\r\n \r\n <>\r\n \r\n \r\n {user && showIcon && !searchActive ? (\r\n \r\n \r\n \r\n ) : (\r\n \r\n )}\r\n {!searchActive ? (\r\n \r\n setSearchActive(!searchActive)}>\r\n \r\n \r\n {navigation && navigation.openDrawer && (\r\n navigation.openDrawer()}>\r\n \r\n \r\n )}\r\n \r\n ) : (\r\n setSearchActive(false)} />\r\n )}\r\n \r\n \r\n \r\n \r\n );\r\n};\r\n\r\nexport default HeaderBar;\r\n\r\nconst styles = StyleSheet.create({\r\n root: {\r\n width: '100%',\r\n elevation: 5,\r\n zIndex: 100,\r\n },\r\n container: {\r\n paddingTop: 20,\r\n },\r\n barContainer: {\r\n flexDirection: 'row',\r\n justifyContent: 'space-between',\r\n alignItems: 'center',\r\n },\r\n profilePic: {\r\n zIndex: 100,\r\n marginVertical: 20,\r\n },\r\n iconsContainer: {\r\n flexDirection: 'row',\r\n height: 50,\r\n width: 80,\r\n justifyContent: 'space-between',\r\n alignItems: 'center',\r\n marginRight: 30,\r\n marginTop: 10,\r\n },\r\n pressableBg: {\r\n width: 30,\r\n height: 30,\r\n backgroundColor: Colors.whiteOpacity,\r\n justifyContent: 'center',\r\n alignItems: 'center',\r\n borderRadius: 15,\r\n },\r\n icon: {\r\n width: 20,\r\n height: 20,\r\n resizeMode: 'contain',\r\n },\r\n imageEllipse: {\r\n borderWidth: 2,\r\n justifyContent: 'center',\r\n alignItems: 'center',\r\n marginTop: 15,\r\n },\r\n placeholder: {\r\n flexGrow: 1,\r\n },\r\n searchBarContainer: {\r\n backgroundColor: Colors.white,\r\n },\r\n});\r\n","import React from 'react';\r\nimport { View, Image, StyleSheet } from 'react-native';\r\nimport PrimaryButton from '../../components/buttons/PrimaryButton';\r\nimport HeaderBar from '../../components/HeaderBar';\r\nimport { Heading, UIText } from '../../components/StyledText';\r\nimport { useSelector } from 'react-redux';\r\nimport { Colors } from '../../constants/Colors';\r\nimport Fonts from '../../constants/Fonts';\r\nimport { User } from '../../constants/Interfaces';\r\nimport Layout from '../../constants/Layout';\r\nimport i18n from '../../translations';\r\n\r\nconst ParticipationConfirmation = ({ navigation }) => {\r\n const user: User = useSelector((state: any) => state.user.user);\r\n\r\n return (\r\n \r\n \r\n \r\n {navigation?.openDrawer && }\r\n \r\n \r\n \r\n \r\n \r\n {i18n.t('pages.ParticipationConfirmation.welcome')} {user?.firstName}\r\n \r\n {i18n.t('pages.ParticipationConfirmation.ready')}\r\n \r\n \r\n navigation.navigate('UserDetails')}\r\n />\r\n \r\n \r\n );\r\n};\r\nexport default ParticipationConfirmation;\r\n\r\nconst styles = StyleSheet.create({\r\n root: {\r\n flex: 1,\r\n justifyContent: 'center',\r\n alignItems: 'center',\r\n backgroundColor: Colors.backgroundYellow,\r\n width: Layout.window.width,\r\n height: Layout.window.height,\r\n },\r\n topImage: {\r\n position: 'absolute',\r\n top: 0,\r\n height: 150,\r\n resizeMode: 'contain',\r\n },\r\n logo: {\r\n marginTop: -40,\r\n width: 150,\r\n height: 150,\r\n resizeMode: 'contain',\r\n opacity: 1,\r\n zIndex: 2,\r\n },\r\n body: {\r\n justifyContent: 'center',\r\n alignItems: 'center',\r\n marginHorizontal: '5%',\r\n paddingHorizontal: 10,\r\n marginBottom: 30,\r\n },\r\n headerContainer: {\r\n justifyContent: 'center',\r\n alignItems: 'center',\r\n width: '100%',\r\n },\r\n\r\n paragraph: {\r\n marginTop: 27,\r\n alignItems: 'center',\r\n justifyContent: 'center',\r\n textAlign: 'center',\r\n marginBottom: 20,\r\n },\r\n headerDividers: {\r\n width: '100%',\r\n height: 10,\r\n marginBottom: 20,\r\n },\r\n buttonsContainer: {\r\n width: '80%',\r\n justifyContent: 'center',\r\n alignItems: 'center',\r\n },\r\n button: {\r\n flexDirection: 'row',\r\n height: 45,\r\n backgroundColor: 'white',\r\n borderRadius: 37,\r\n paddingVertical: 13,\r\n paddingHorizontal: 16,\r\n fontWeight: 'bold',\r\n alignItems: 'center',\r\n justifyContent: 'flex-start',\r\n width: '100%',\r\n marginVertical: 10,\r\n },\r\n buttonImg: {\r\n height: 25,\r\n width: 25,\r\n marginRight: 14.7,\r\n resizeMode: 'contain',\r\n },\r\n buttonText: {\r\n fontFamily: Fonts.family.bold,\r\n },\r\n bottomImage: {\r\n position: 'absolute',\r\n bottom: 0,\r\n width: Layout.window.width,\r\n height: 150,\r\n resizeMode: 'cover',\r\n zIndex: -1,\r\n },\r\n icons: {\r\n position: 'absolute',\r\n width: '100%',\r\n top: 12,\r\n left: 0,\r\n zIndex: 100,\r\n },\r\n subtitle: {\r\n marginTop: 27,\r\n fontSize: Fonts.sizes.smallHeading,\r\n fontFamily: Fonts.family.bold,\r\n },\r\n});\r\n","import * as React from 'react';\r\nimport { Image, Pressable, StyleProp, StyleSheet, ViewStyle } from 'react-native';\r\nimport { View } from './Themed';\r\n\r\nexport const TipButton = ({\r\n navigation,\r\n message,\r\n style,\r\n}: {\r\n navigation;\r\n message: string;\r\n style?: StyleProp;\r\n}) => {\r\n const handleOpenTip = () => {\r\n navigation.navigate('TipScreen', { message });\r\n };\r\n\r\n return (\r\n \r\n \r\n \r\n \r\n \r\n \r\n );\r\n};\r\n\r\nconst styles = StyleSheet.create({\r\n tipOpenerContainer: {\r\n justifyContent: 'center',\r\n alignItems: 'center',\r\n position: 'absolute',\r\n flexDirection: 'row',\r\n },\r\n tipArrow: {\r\n marginTop: 30,\r\n height: 30,\r\n width: 30,\r\n resizeMode: 'contain',\r\n },\r\n tipImage: {\r\n width: 60,\r\n height: 60,\r\n resizeMode: 'contain',\r\n },\r\n});\r\n","import * as React from 'react';\r\nimport { FlatList, StyleSheet, TouchableOpacity, ActivityIndicator } from 'react-native';\r\nimport { View } from '../../components/Themed';\r\nimport Layout from '../../constants/Layout';\r\nimport { useDispatch } from 'react-redux';\r\nimport { Region, Scope } from '../../constants/Interfaces';\r\nimport { Colors } from '../../constants/Colors';\r\nimport { Heading, Paragraph } from '../../components/StyledText';\r\nimport { AntDesign } from '@expo/vector-icons';\r\nimport API from '../../constants/API';\r\nimport { useState } from 'react';\r\nimport Fonts from '../../constants/Fonts';\r\nimport { selectRegion, selectRegionLeaderboard } from '../../reducers/region.slice';\r\nimport { TipButton } from '../../components/TipButton';\r\n\r\ninterface SelectRegionScreenProps {\r\n navigation: any;\r\n route: {\r\n params: {\r\n regionFilter?: string;\r\n };\r\n };\r\n}\r\n\r\nconst allRegions: Region = { regionId: 0, regionName: 'Ngā rohe katoa', regionNameEnglish: 'All regions' };\r\n\r\nexport const SelectRegionScreen = ({ navigation, route }: SelectRegionScreenProps) => {\r\n const regionFilter = route?.params?.regionFilter;\r\n const [listOfRegions, setListOfRegions] = useState([]);\r\n const [loading, setLoading] = useState(false);\r\n const dispatch = useDispatch();\r\n\r\n const styles = StyleSheet.create({\r\n root: {\r\n flex: 1,\r\n alignItems: 'center',\r\n backgroundColor: Colors.white,\r\n width: Layout.window.width,\r\n height: Layout.window.height,\r\n },\r\n header: {\r\n width: '100%',\r\n height: 100,\r\n backgroundColor: Colors.white,\r\n padding: Layout.backgroundMarginNormal.left,\r\n marginTop: Layout.backgroundMarginNormal.top,\r\n borderBottomColor: Colors.grey,\r\n borderBottomWidth: 1,\r\n flexDirection: 'row',\r\n },\r\n\r\n closeContainer: { height: '100%', marginLeft: 'auto' },\r\n close: {\r\n justifyContent: 'center',\r\n alignItems: 'center',\r\n width: 50,\r\n height: 50,\r\n backgroundColor: Colors.whiteOpacitiy40,\r\n borderRadius: 45,\r\n zIndex: 999,\r\n },\r\n\r\n bold: {\r\n fontFamily: Fonts.family.bold,\r\n },\r\n regular: {\r\n fontFamily: Fonts.family.regular,\r\n },\r\n\r\n regionName: {\r\n fontFamily: Fonts.family.regular,\r\n fontSize: 19,\r\n },\r\n regionNameEnglish: {\r\n fontFamily: Fonts.family.bold,\r\n fontSize: 15,\r\n },\r\n\r\n loadingContainer: {\r\n position: 'absolute',\r\n marginVertical: Layout.window.height / 2,\r\n },\r\n });\r\n\r\n function close() {\r\n navigation.goBack();\r\n filterRegion('');\r\n }\r\n\r\n function filterRegion(value) {\r\n if (regionFilter === 'activities') {\r\n dispatch(selectRegion(value));\r\n } else if (regionFilter === 'leaderboard') {\r\n dispatch(selectRegionLeaderboard(value));\r\n }\r\n }\r\n\r\n function selectRegionFromList(region: Region) {\r\n if (regionFilter) {\r\n const filterString = region.regionName! === allRegions.regionName! ? '' : region.regionName!;\r\n filterRegion(filterString);\r\n navigation.goBack();\r\n return;\r\n }\r\n navigation.navigate('SelectMarae', { region });\r\n }\r\n\r\n React.useEffect(() => {\r\n setLoading(true);\r\n const api: API = API.getInstance();\r\n api\r\n .get('/regions', undefined, undefined, Scope.ANONYMOUS)\r\n .then((regions: Region[]) => {\r\n if (regionFilter) {\r\n regions.push(allRegions);\r\n }\r\n setListOfRegions(regions);\r\n setLoading(false);\r\n })\r\n .catch(() => {\r\n setLoading(false);\r\n });\r\n }, []);\r\n\r\n const defaultRenderItem = ({ item }: { item: Region }) => (\r\n \r\n selectRegionFromList(item)}>\r\n {item.regionName}\r\n {item.regionNameEnglish}\r\n \r\n \r\n );\r\n\r\n return (\r\n \r\n \r\n \r\n Rohe Pōtae\r\n Select your marae region\r\n \r\n \r\n close()}>\r\n \r\n \r\n \r\n \r\n `${item.regionId}`}\r\n ItemSeparatorComponent={() => (\r\n \r\n )}\r\n style={{ width: '100%', padding: Layout.backgroundMarginNormal.left }}\r\n contentContainerStyle={{ paddingBottom: 40 }}\r\n />\r\n \r\n {loading && (\r\n \r\n \r\n \r\n )}\r\n \r\n );\r\n};\r\n","import React, { Dispatch, SetStateAction } from 'react';\r\nimport { StyleSheet, Pressable, Image, ImageSourcePropType } from 'react-native';\r\nimport { Colors } from '../constants/Colors';\r\nimport { User, UserMarae } from '../constants/Interfaces';\r\nimport { View } from './Themed';\r\nimport { MaterialIcons } from '@expo/vector-icons';\r\n\r\ninterface EllipseBorderImageProps {\r\n item?: User | UserMarae;\r\n borderStyle?: {};\r\n imageStyle?: { width: number };\r\n img: ImageSourcePropType;\r\n openDetails?: Dispatch>;\r\n onSelect?: (item: any) => void;\r\n selected?: boolean;\r\n color: 'yellow' | 'red';\r\n}\r\n\r\nconst EllipseBorderImage = ({\r\n item,\r\n borderStyle,\r\n imageStyle,\r\n openDetails,\r\n onSelect,\r\n selected = false,\r\n img,\r\n color,\r\n}: EllipseBorderImageProps) => {\r\n const width = imageStyle?.width;\r\n return (\r\n {\r\n // eslint-disable-next-line @typescript-eslint/no-unused-expressions\r\n item && onSelect ? onSelect!(item!) : null;\r\n // eslint-disable-next-line @typescript-eslint/no-unused-expressions\r\n openDetails ? openDetails!(true) : null;\r\n }}\r\n >\r\n \r\n {selected ? (\r\n \r\n \r\n \r\n ) : null}\r\n \r\n );\r\n};\r\nexport default EllipseBorderImage;\r\n\r\nconst styles = StyleSheet.create({\r\n ellipseContainer: {\r\n borderRadius: 100,\r\n borderWidth: 2,\r\n justifyContent: 'center',\r\n alignItems: 'center',\r\n padding: 4,\r\n },\r\n image: {\r\n borderRadius: 100,\r\n },\r\n selectedContainer: {\r\n position: 'absolute',\r\n top: 0,\r\n right: 0,\r\n height: 20,\r\n width: 20,\r\n alignItems: 'center',\r\n justifyContent: 'center',\r\n borderRadius: 20,\r\n backgroundColor: Colors.green,\r\n zIndex: 5,\r\n elevation: 5,\r\n },\r\n});\r\n","import * as React from 'react';\r\nimport { FlatList, StyleSheet, TouchableOpacity, ActivityIndicator } from 'react-native';\r\nimport { View } from '../../components/Themed';\r\nimport i18n from '../../translations';\r\nimport Layout from '../../constants/Layout';\r\nimport { useDispatch, useSelector } from 'react-redux';\r\nimport { Iwi, Marae, Region, Scope, User, WhanauMarae } from '../../constants/Interfaces';\r\nimport { Colors } from '../../constants/Colors';\r\nimport { Heading, Paragraph } from '../../components/StyledText';\r\nimport { AntDesign } from '@expo/vector-icons';\r\nimport API from '../../constants/API';\r\nimport { useState } from 'react';\r\nimport Logger from '../../constants/Logger';\r\nimport { getUser, postUserMarae } from '../../reducers/user.slice';\r\nimport Fonts from '../../constants/Fonts';\r\nimport { TipButton } from '../../components/TipButton';\r\nimport EllipseBorderImage from '../../components/EllipseBorderImage';\r\n\r\ninterface SelectMaraeScreenProps {\r\n navigation: any;\r\n route: {\r\n params: {\r\n region: Region;\r\n };\r\n };\r\n}\r\n\r\nexport const SelectMaraeScreen = ({ navigation, route }: SelectMaraeScreenProps) => {\r\n const { region } = route.params;\r\n const user: User = useSelector((state: any) => state?.user?.user);\r\n const [listOfMaraes, setListOfMaraes] = useState([]);\r\n const [selectedMarae, setSelectedMarae] = useState();\r\n const [listOfIwis, setListOfIwis] = useState([]);\r\n const [loading, setLoading] = useState(false);\r\n const dispatch = useDispatch();\r\n\r\n const styles = StyleSheet.create({\r\n root: {\r\n flex: 1,\r\n alignItems: 'center',\r\n backgroundColor: Colors.white,\r\n width: Layout.window.width,\r\n height: Layout.window.height,\r\n },\r\n header: {\r\n width: '100%',\r\n height: 100,\r\n backgroundColor: Colors.white,\r\n padding: Layout.backgroundMarginNormal.left,\r\n marginTop: Layout.backgroundMarginNormal.top,\r\n borderBottomColor: Colors.grey,\r\n borderBottomWidth: 1,\r\n flexDirection: 'row',\r\n },\r\n\r\n closeContainer: { height: '100%', marginLeft: 'auto' },\r\n close: {\r\n justifyContent: 'center',\r\n alignItems: 'center',\r\n width: 50,\r\n height: 50,\r\n backgroundColor: Colors.whiteOpacitiy40,\r\n borderRadius: 45,\r\n zIndex: 999,\r\n },\r\n\r\n bold: {\r\n fontFamily: Fonts.family.bold,\r\n },\r\n regular: {\r\n fontFamily: Fonts.family.regular,\r\n },\r\n selected: {\r\n fontFamily: Fonts.family.bold,\r\n color: Colors.burgundy,\r\n },\r\n\r\n loadingContainer: {\r\n position: 'absolute',\r\n marginVertical: Layout.window.height / 2,\r\n },\r\n\r\n maraeImage: {\r\n width: 30,\r\n height: 30,\r\n },\r\n });\r\n\r\n function close() {\r\n navigation.goBack();\r\n }\r\n\r\n React.useEffect(() => {\r\n setLoading(true);\r\n const api: API = API.getInstance();\r\n api\r\n .get(`/region/${region.regionId}/marae`, undefined, undefined, Scope.ANONYMOUS)\r\n .then((maraes: Marae[]) => {\r\n setListOfMaraes(maraes);\r\n setLoading(false);\r\n })\r\n .catch(() => {\r\n setLoading(false);\r\n });\r\n }, []);\r\n\r\n const handleMaraeSelected = (marae: Marae) => {\r\n if (selectedMarae === marae) {\r\n setSelectedMarae(undefined);\r\n return;\r\n }\r\n if (loading) {\r\n return;\r\n }\r\n\r\n setListOfIwis([]);\r\n setSelectedMarae(marae);\r\n setLoading(true);\r\n\r\n const api: API = API.getInstance();\r\n api\r\n .get(`/marae/${marae.maraeId}/iwi`, undefined, undefined, Scope.ANONYMOUS)\r\n .then((iwis: Iwi[]) => {\r\n // If there is only one iwi, directly set its id\r\n if (iwis.length === 1) {\r\n submitMarae(marae, iwis[0]);\r\n return;\r\n }\r\n // If there are 0 Iwi, then select the marae\r\n if (iwis.length === 0) {\r\n console.error(`This marae has no Iwis, it can't be used`);\r\n return;\r\n }\r\n\r\n setLoading(false);\r\n setListOfIwis(iwis);\r\n })\r\n .catch(() => {\r\n setLoading(false);\r\n });\r\n };\r\n\r\n const handleIwiSelected = (iwi: Iwi) => {\r\n if (selectedMarae) {\r\n submitMarae(selectedMarae, iwi);\r\n }\r\n };\r\n\r\n const submitMarae = async (marae: Marae, iwi: Iwi) => {\r\n if (loading) {\r\n return;\r\n }\r\n Logger.debug('SelectMaraeScreen -> submitMarae -> Submitting the user marae now');\r\n setLoading(true);\r\n const userMarae: WhanauMarae = {\r\n maraeId: marae.maraeId,\r\n iwiId: iwi?.iwiId,\r\n };\r\n try {\r\n await dispatch(postUserMarae(userMarae));\r\n await dispatch(getUser());\r\n setLoading(false);\r\n // if in the users profile, go to confirmation screen\r\n if (navigation.getParent('ProfileNavigator')) {\r\n navigation.navigate('ConfirmationScreen', {\r\n title: i18n.t('components.AddMaraeForm.confirmTitle', { userName: user?.firstName || '' }),\r\n message: i18n.t('components.AddMaraeForm.confirmMessage', { maraeName: marae.maraeName }),\r\n buttonText: i18n.t('components.AddMaraeForm.confirmButtonText'),\r\n nextScreenName: 'Profile',\r\n });\r\n } else {\r\n // if in the sign up flow, go to the root navigator\r\n navigation.navigate('Root');\r\n }\r\n } catch (e) {\r\n Logger.error(`SelectMaraeScreen -> submitMarae -> Error occurred: ${e}`);\r\n }\r\n };\r\n\r\n const IwiItem = ({ item }: { item: Iwi }) => (\r\n handleIwiSelected(item)}>\r\n \r\n \r\n {item.iwiName}\r\n \r\n \r\n );\r\n\r\n const MaraeItem = ({ item }: { item: Marae }) => {\r\n const isSelected = item.maraeId === selectedMarae?.maraeId;\r\n return (\r\n \r\n handleMaraeSelected(item)}>\r\n \r\n \r\n {item.maraeName}\r\n \r\n \r\n {isSelected && listOfIwis.length > 0 && (\r\n `iwi-${item.iwiId}`}\r\n style={{ width: '100%' }}\r\n contentContainerStyle={{ marginTop: Layout.backgroundMarginNormal.top }}\r\n />\r\n )}\r\n \r\n );\r\n };\r\n\r\n return (\r\n \r\n \r\n \r\n Select your marae\r\n {`${region.regionName} region`}\r\n \r\n \r\n close()}>\r\n \r\n \r\n \r\n \r\n `mar-${item.maraeId}`}\r\n ItemSeparatorComponent={() => (\r\n \r\n )}\r\n style={{ width: '100%', padding: Layout.backgroundMarginNormal.left }}\r\n contentContainerStyle={{ paddingBottom: 40 }}\r\n />\r\n \r\n {loading && (\r\n \r\n \r\n \r\n )}\r\n \r\n );\r\n};\r\n","import * as React from 'react';\r\nimport { StyleSheet, Pressable, Image, ScrollView } from 'react-native';\r\nimport { View } from '../../components/Themed';\r\nimport Layout from '../../constants/Layout';\r\nimport { Colors } from '../../constants/Colors';\r\nimport { Heading, Paragraph } from '../../components/StyledText';\r\nimport { AntDesign } from '@expo/vector-icons';\r\nimport Fonts from '../../constants/Fonts';\r\nimport i18n from '../../translations';\r\n\r\ninterface TipScreenProps {\r\n navigation: any;\r\n route: {\r\n params: {\r\n message: string;\r\n };\r\n };\r\n}\r\n\r\nexport const TipScreen = ({ navigation, route }: TipScreenProps) => {\r\n const message = route?.params?.message;\r\n\r\n const styles = StyleSheet.create({\r\n root: {\r\n flex: 1,\r\n alignItems: 'center',\r\n backgroundColor: Colors.yellow,\r\n width: Layout.window.width,\r\n height: Layout.window.height,\r\n },\r\n header: {\r\n width: '100%',\r\n height: 150,\r\n backgroundColor: Colors.yellow,\r\n padding: Layout.backgroundMarginNormal.left,\r\n marginTop: Layout.backgroundMarginNormal.top,\r\n borderBottomColor: Colors.grey,\r\n // borderBottomWidth: 1,\r\n flexDirection: 'row',\r\n },\r\n\r\n body: {\r\n paddingHorizontal: Layout.backgroundMarginNormal.left,\r\n },\r\n\r\n close: {\r\n justifyContent: 'center',\r\n alignItems: 'center',\r\n position: 'absolute',\r\n top: 20,\r\n right: 20,\r\n width: 50,\r\n height: 50,\r\n backgroundColor: Colors.whiteOpacitiy40,\r\n borderRadius: 45,\r\n },\r\n heading: {\r\n fontSize: Fonts.sizes.bigHeading,\r\n marginTop: 40,\r\n marginBottom: 5,\r\n textAlign: 'center',\r\n },\r\n headingSmall: {\r\n fontSize: Fonts.sizes.smallHeading,\r\n marginTop: 5,\r\n marginBottom: 5,\r\n textAlign: 'center',\r\n },\r\n headingSmallDoubleMarginBottom: {\r\n fontSize: Fonts.sizes.smallHeading,\r\n marginTop: 5,\r\n marginBottom: 10,\r\n textAlign: 'center',\r\n },\r\n tipImageContainer: {\r\n alignItems: 'center',\r\n width: '100%',\r\n },\r\n tipImage: {\r\n width: 150,\r\n height: 150,\r\n resizeMode: 'contain',\r\n },\r\n smallTitle: {\r\n fontSize: Fonts.sizes.smallHeading,\r\n marginTop: 20,\r\n marginBottom: 5,\r\n },\r\n smallTitleWithNoMarginTopAndDoubleMarginBottom: {\r\n fontSize: Fonts.sizes.smallHeading,\r\n marginBottom: 10,\r\n },\r\n\r\n bold: {\r\n fontFamily: Fonts.family.bold,\r\n },\r\n regular: {\r\n fontFamily: Fonts.family.regular,\r\n },\r\n });\r\n\r\n function close() {\r\n navigation.goBack();\r\n }\r\n\r\n return (\r\n \r\n \r\n \r\n \r\n \r\n close()}>\r\n \r\n \r\n \r\n \r\n {message === 'region' && (\r\n <>\r\n {i18n.t('components.MaraeRegions.tipTitle')}\r\n \r\n {i18n.t('components.MaraeRegions.tipSubtitle')}\r\n \r\n {i18n.t('components.MaraeRegions.tipBody')}\r\n {i18n.t('components.MaraeRegions.featureAppTitle')}\r\n \r\n {i18n.t('components.MaraeRegions.featureAppSubtitle')}\r\n \r\n {i18n.t('components.MaraeRegions.featureAppBody')}\r\n \r\n )}\r\n {message === 'marae' && (\r\n <>\r\n {i18n.t('components.Marae.tipTitle')}\r\n {i18n.t('components.Marae.tipSubtitle')}\r\n {i18n.t('components.Marae.tipBody')}\r\n {i18n.t('components.Marae.featureAppTitle')}\r\n \r\n {i18n.t('components.Marae.featureAppSubtitle')}\r\n \r\n {i18n.t('components.Marae.featureAppBody')}\r\n \r\n )}\r\n {message === 'addMarae' && (\r\n <>\r\n {i18n.t('components.AddNewMarae.tipTitle')}\r\n {i18n.t('components.AddNewMarae.tipBody')}\r\n {i18n.t('components.AddNewMarae.featureAppTitle')}\r\n {i18n.t('components.AddNewMarae.featureAppBody')}\r\n {i18n.t('components.AddNewMarae.maxMaraeTitle')}\r\n {i18n.t('components.AddNewMarae.maxMaraeBody')}\r\n \r\n )}\r\n {message === 'myWhanau' && (\r\n <>\r\n {i18n.t('components.MyWhanauFragment.tipTitle')}\r\n {i18n.t('components.MyWhanauFragment.tipBody')}\r\n {i18n.t('components.MyWhanauFragment.mostActiveTitle')}\r\n {i18n.t('components.MyWhanauFragment.mostActiveBody')}\r\n \r\n )}\r\n {message === 'language' && (\r\n <>\r\n {i18n.t('components.LanguageFragment.tipTitle')}\r\n {i18n.t('components.LanguageFragment.tipBody')}\r\n \r\n )}\r\n {message === 'activities' && (\r\n <>\r\n {i18n.t('components.MaraeParty.tipActivitiesTitle')}\r\n {i18n.t('components.MaraeParty.tipActivitiesBody')}\r\n \r\n )}\r\n {message === 'koha' && (\r\n <>\r\n {i18n.t('components.MaraeParty.tipKohaTitle')}\r\n {i18n.t('components.MaraeParty.tipKohaBody')}\r\n \r\n )}\r\n {message === 'koha' || message === 'myWhanau' ? (\r\n <>\r\n {i18n.t('components.TipModal.tipKohaSystemTitle')}\r\n {i18n.t('components.TipModal.tipKohaSystemBody')}\r\n {i18n.t('components.TipModal.tipKohaPointsTitle')}\r\n {i18n.t('components.TipModal.tipKohaPointsBody')}\r\n \r\n ) : null}\r\n \r\n \r\n \r\n );\r\n};\r\n","import { createStackNavigator } from '@react-navigation/stack';\r\nimport { SignUpParamList } from '../constants/Interfaces';\r\nimport * as React from 'react';\r\nimport UserDetailsScreen from '../screens/authentication/UserDetailsScreen';\r\nimport AddMaraeScreen from '../screens/authentication/AddMaraeScreen';\r\nimport ParticipationConfirmation from '../screens/home/ParticipationConfirmation';\r\nimport { SelectRegionScreen } from '../screens/profile/SelectRegionScreen';\r\nimport { SelectMaraeScreen } from '../screens/profile/SelectMaraeScreen';\r\nimport { TipScreen } from '../screens/profile/TipScreen';\r\n\r\nconst SignUpStack = createStackNavigator();\r\n\r\nexport default function SignUpNavigator() {\r\n return (\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n );\r\n}\r\n","import React, { useEffect } from 'react';\r\nimport { View, Image, StyleSheet, Pressable, Platform, Text } from 'react-native';\r\nimport { Colors } from '../constants/Colors';\r\nimport { Paragraph, UIText } from './StyledText';\r\nimport { AuthState, User } from '../constants/Interfaces';\r\nimport { AntDesign } from '@expo/vector-icons';\r\nimport Layout from '../constants/Layout';\r\nimport { useDispatch, useSelector } from 'react-redux';\r\nimport { getUserStats, getUserWhanau } from '../reducers/user.slice';\r\nimport i18n from '../translations';\r\nimport Fonts from '../constants/Fonts';\r\nimport { getActivities } from '../reducers/activity.slice';\r\nimport { getMaraeLeaderboard, getMaraes } from '../reducers/marae.slice';\r\nimport { getReviews } from '../reducers/review.slice';\r\nimport { getGenderPlaceholder, logOut } from '../constants/Utils';\r\nimport Constants from 'expo-constants';\r\n\r\nconst HamburgerMenu = ({ state, navigation }) => {\r\n const isLoggedIn = navigation.getParent('Drawer');\r\n const user: User = useSelector((state: any) => state.user.user);\r\n const authState: AuthState = useSelector((state: any) => state.authentication.authState);\r\n const dispatch = useDispatch();\r\n const appName = Constants.manifest?.name;\r\n const formattedName = appName?.replaceAll(' MaraeFit', '');\r\n\r\n useEffect(() => {\r\n if (user) {\r\n dispatch(getUserWhanau());\r\n dispatch(getUserStats());\r\n dispatch(getMaraes());\r\n dispatch(getMaraeLeaderboard());\r\n dispatch(getReviews());\r\n }\r\n dispatch(getActivities(authState));\r\n }, []);\r\n\r\n return (\r\n \r\n \r\n \r\n navigation.closeDrawer()}>\r\n \r\n \r\n \r\n {!isLoggedIn || !user || !user.firstName ? 'Nau mai' : `Nau mai ${user.firstName} ${user.lastName}`}\r\n \r\n \r\n \r\n \r\n \r\n \r\n {`${formattedName}${Constants.manifest?.version}`}\r\n {isLoggedIn && (\r\n {\r\n navigation.navigate('ProfileStack');\r\n }}\r\n >\r\n \r\n {i18n.t('components.HamburgerMenu.profile')}\r\n \r\n )}\r\n {\r\n navigation.navigate('ActivitiesStack', { screen: 'Activities' });\r\n }}\r\n >\r\n \r\n {i18n.t('components.HamburgerMenu.activities')}\r\n \r\n {isLoggedIn && (\r\n {\r\n navigation.navigate('FavesStack', {\r\n screen: 'Faves',\r\n });\r\n }}\r\n >\r\n \r\n {i18n.t('components.HamburgerMenu.faves')}\r\n \r\n )}\r\n\r\n {isLoggedIn && (\r\n {\r\n navigation.navigate('LeaderboardStack');\r\n }}\r\n >\r\n \r\n {i18n.t('components.HamburgerMenu.leaderboard')}\r\n \r\n )}\r\n\r\n {isLoggedIn && (\r\n {\r\n navigation.navigate('DashboardStack', { screen: 'Home' });\r\n }}\r\n >\r\n \r\n {i18n.t('components.HamburgerMenu.dashboard')}\r\n \r\n )}\r\n\r\n {isLoggedIn ? (\r\n \r\n \r\n {i18n.t('components.HamburgerMenu.logOff')}\r\n \r\n ) : (\r\n navigation.navigate('SocialMediaLogin')}>\r\n \r\n {i18n.t('components.HamburgerMenu.register')}\r\n \r\n )}\r\n \r\n \r\n );\r\n};\r\nexport default HamburgerMenu;\r\n\r\nconst styles = StyleSheet.create({\r\n hamburger: {\r\n flex: 1,\r\n },\r\n closeButton: {\r\n alignSelf: 'flex-end',\r\n justifyContent: 'flex-start',\r\n top: -60,\r\n marginRight: Layout.backgroundMarginNormal.right,\r\n },\r\n backgroundImage: {\r\n backgroundColor: Colors.defaultGrey,\r\n alignItems: 'center',\r\n height: Layout.window.height > 667 ? 200 : 175,\r\n },\r\n defaultImage: {\r\n width: 180,\r\n height: 100,\r\n },\r\n title: {\r\n color: Colors.white,\r\n fontFamily: Fonts.family.bold,\r\n },\r\n imageEllipse: {\r\n width: 70,\r\n height: 70,\r\n borderColor: Colors.yellow,\r\n borderWidth: 2,\r\n borderRadius: 70,\r\n bottom: Layout.window.height > 667 ? -20 : -5,\r\n justifyContent: 'center',\r\n alignItems: 'center',\r\n },\r\n profilePic: {\r\n width: 60,\r\n height: 60,\r\n borderRadius: 60,\r\n },\r\n menuContainer: {\r\n flex: 1,\r\n alignItems: 'center',\r\n paddingTop:\r\n Layout.window.height > 740\r\n ? Layout.backgroundMarginNormal.bottom + 40\r\n : Layout.backgroundMarginNormal.bottom + 20,\r\n backgroundColor: Colors.white,\r\n zIndex: -1,\r\n elevation: -1,\r\n },\r\n\r\n menuOption: {\r\n justifyContent: 'center',\r\n alignItems: 'center',\r\n // eslint-disable-next-line no-nested-ternary\r\n marginBottom: Layout.isLongDevice ? (Platform.OS === 'ios' ? 20 : 10) : 5,\r\n },\r\n optionImage: {\r\n height: Layout.isLongDevice ? 40 : 30,\r\n width: Layout.isLongDevice ? 40 : 30,\r\n borderRadius: Layout.isLongDevice ? 40 : 30,\r\n margin: 8,\r\n },\r\n optionLabel: {\r\n fontSize: Fonts.sizes.medium,\r\n },\r\n versionNumber: {\r\n position: 'absolute',\r\n bottom: 5,\r\n right: 5,\r\n color: Colors.defaultGrey,\r\n fontSize: Fonts.sizes.small,\r\n },\r\n});\r\n","import React from 'react';\r\nimport { View, Image, StyleSheet } from 'react-native';\r\nimport BottomBanner from '../components/BottomBanner';\r\nimport PrimaryButton from '../components/buttons/PrimaryButton';\r\nimport HeaderBar from '../components/HeaderBar';\r\nimport { Heading, Paragraph } from '../components/StyledText';\r\nimport { Colors } from '../constants/Colors';\r\nimport Fonts from '../constants/Fonts';\r\nimport Layout from '../constants/Layout';\r\n\r\ninterface ConfirmationProps {\r\n navigation: any;\r\n route: { params: NavParams };\r\n}\r\n\r\ninterface NavParams {\r\n title: string;\r\n message: string;\r\n buttonText: string;\r\n nextScreenName: string;\r\n screenParams?: any;\r\n}\r\n\r\nconst ConfirmationScreen = ({ navigation, route }: ConfirmationProps) => {\r\n const { title, message, buttonText, nextScreenName, screenParams } = route.params;\r\n\r\n return (\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n {title}\r\n {message}\r\n \r\n \r\n navigation.navigate(nextScreenName, screenParams)} />\r\n \r\n \r\n \r\n );\r\n};\r\nexport default ConfirmationScreen;\r\n\r\nconst styles = StyleSheet.create({\r\n root: {\r\n flex: 1,\r\n justifyContent: 'center',\r\n alignItems: 'center',\r\n backgroundColor: Colors.backgroundYellow,\r\n width: Layout.window.width,\r\n height: Layout.window.height,\r\n },\r\n topImage: {\r\n position: 'absolute',\r\n top: 0,\r\n height: 150,\r\n resizeMode: 'contain',\r\n },\r\n logo: {\r\n marginTop: -40,\r\n width: 150,\r\n height: 150,\r\n resizeMode: 'contain',\r\n opacity: 1,\r\n zIndex: 2,\r\n },\r\n body: {\r\n justifyContent: 'center',\r\n alignItems: 'center',\r\n marginHorizontal: '5%',\r\n paddingHorizontal: 10,\r\n },\r\n headerContainer: {\r\n justifyContent: 'center',\r\n alignItems: 'center',\r\n width: '100%',\r\n },\r\n paragraph: {\r\n marginTop: 27,\r\n alignItems: 'center',\r\n justifyContent: 'center',\r\n textAlign: 'center',\r\n marginBottom: 20,\r\n },\r\n headerDividers: {\r\n width: '100%',\r\n height: 10,\r\n marginBottom: 20,\r\n },\r\n buttonsContainer: {\r\n width: '80%',\r\n justifyContent: 'center',\r\n alignItems: 'center',\r\n },\r\n button: {\r\n flexDirection: 'row',\r\n height: 45,\r\n backgroundColor: 'white',\r\n borderRadius: 37,\r\n paddingVertical: 13,\r\n paddingHorizontal: 16,\r\n fontWeight: 'bold',\r\n alignItems: 'center',\r\n justifyContent: 'flex-start',\r\n width: '100%',\r\n marginVertical: 10,\r\n },\r\n buttonImg: {\r\n height: 25,\r\n width: 25,\r\n marginRight: 14.7,\r\n resizeMode: 'contain',\r\n },\r\n buttonText: {\r\n fontFamily: Fonts.family.bold,\r\n },\r\n bottomImage: {\r\n position: 'absolute',\r\n bottom: 70,\r\n width: Layout.window.width,\r\n height: 150,\r\n resizeMode: 'cover',\r\n zIndex: -1,\r\n },\r\n icons: {\r\n position: 'absolute',\r\n width: '100%',\r\n top: 12,\r\n left: 0,\r\n zIndex: 100,\r\n },\r\n});\r\n","import React from 'react';\r\nimport { Pressable, StyleSheet, View } from 'react-native';\r\nimport { UIText } from './StyledText';\r\nimport { Colors } from '../constants/Colors';\r\nimport Fonts from '../constants/Fonts';\r\n\r\ninterface HeadingItemProps {\r\n title: string;\r\n count?: number;\r\n showCount?: boolean;\r\n selected: boolean;\r\n onSelect: () => void;\r\n}\r\n\r\nexport const HeadingItem = (props: HeadingItemProps) => {\r\n const { title, count, showCount = false, selected = false, onSelect } = props;\r\n return (\r\n \r\n \r\n {title}\r\n \r\n {showCount ? (\r\n \r\n {count}\r\n \r\n ) : null}\r\n \r\n );\r\n};\r\n\r\nconst styles = StyleSheet.create({\r\n container: {\r\n backgroundColor: Colors.transparent,\r\n height: 36,\r\n justifyContent: 'flex-end',\r\n alignItems: 'center',\r\n paddingHorizontal: 8,\r\n },\r\n countContainer: {\r\n position: 'absolute',\r\n top: 0,\r\n right: 4,\r\n height: 14,\r\n width: 14,\r\n borderRadius: 12,\r\n backgroundColor: Colors.white,\r\n alignItems: 'center',\r\n justifyContent: 'center',\r\n margin: 0,\r\n padding: 0,\r\n },\r\n count: {\r\n fontSize: 10,\r\n fontFamily: Fonts.family.bold,\r\n color: Colors.burgundy,\r\n },\r\n});\r\n","import React from 'react';\r\nimport { View, Image, StyleSheet } from 'react-native';\r\nimport { Colors } from '../constants/Colors';\r\nimport { UIText } from './StyledText';\r\nimport i18n from '../translations';\r\nimport Fonts from '../constants/Fonts';\r\n\r\ninterface NoteInfoProps {\r\n message: 'addMarae' | 'points' | 'removeMarae' | 'tapPlusWhanau' | 'tapPlusMarae';\r\n bgcolor?: 'red' | 'white';\r\n maraeName?: string;\r\n}\r\n\r\nconst NoteInfo = ({ message, bgcolor, maraeName }: NoteInfoProps) => (\r\n \r\n {message !== 'removeMarae' && message !== 'tapPlusWhanau' && message !== 'tapPlusMarae' && (\r\n \r\n \r\n \r\n )}\r\n \r\n \r\n {message === 'addMarae' && i18n.t('components.NoteInfo.addMarae')}\r\n {message === 'points' && `${maraeName} ${i18n.t('components.NoteInfo.points')}`}\r\n {message === 'removeMarae' &&\r\n `${i18n.t('components.NoteInfo.removeMarae1')} ${maraeName} ${i18n.t('components.NoteInfo.removeMarae2')}`}\r\n {message === 'tapPlusMarae' && `${i18n.t('components.NoteInfo.tapPlusMarae')}`}\r\n {message === 'tapPlusWhanau' && `${i18n.t('components.NoteInfo.tapPlusWhanau')}`}\r\n \r\n \r\n \r\n);\r\n\r\nexport default NoteInfo;\r\n\r\nconst styles = StyleSheet.create({\r\n note: {\r\n flexDirection: 'row',\r\n justifyContent: 'center',\r\n alignSelf: 'center',\r\n borderRadius: 5,\r\n width: '100%',\r\n padding: 5,\r\n },\r\n noteIconContainer: {\r\n backgroundColor: Colors.white,\r\n borderRadius: 20,\r\n width: 30,\r\n height: 30,\r\n justifyContent: 'center',\r\n alignItems: 'center',\r\n marginLeft: 10,\r\n },\r\n noteIcon: {\r\n height: 20,\r\n width: 20,\r\n },\r\n noteLabel: {\r\n paddingHorizontal: 10,\r\n paddingVertical: 5,\r\n width: '90%',\r\n },\r\n noteText: {\r\n color: Colors.white,\r\n fontSize: Fonts.sizes.medium,\r\n },\r\n});\r\n","import React from 'react';\r\nimport { View, StyleSheet, Image } from 'react-native';\r\nimport { Colors } from '../../../../constants/Colors';\r\nimport { FlatList } from 'react-native-gesture-handler';\r\nimport NoteInfo from '../../../../components/NoteInfo';\r\nimport { Paragraph } from '../../../../components/StyledText';\r\nimport Fonts from '../../../../constants/Fonts';\r\nimport { UserMarae } from '../../../../constants/Interfaces';\r\nimport { useSelector } from 'react-redux';\r\nimport { DateTime } from 'luxon';\r\n\r\ninterface MaraePointsProps {\r\n marae: UserMarae;\r\n}\r\nconst dateFortmat = (date: string) => DateTime.fromISO(date).toFormat('MMMM dd');\r\n\r\nconst MaraePointsFragment = ({ marae }: MaraePointsProps) => {\r\n const maraeStats: any = useSelector((state: any) => state.user.maraeStats);\r\n\r\n return (\r\n \r\n (\r\n \r\n )}\r\n keyExtractor={(item) => `${item.activityName}-${item.endDate}`}\r\n ListHeaderComponent={NoteInfo({ message: 'points', bgcolor: 'white', maraeName: marae.maraeName })}\r\n ListFooterComponent={}\r\n />\r\n \r\n );\r\n};\r\n\r\nconst MaraeEvents = ({ name, date, points }) => (\r\n \r\n \r\n \r\n {name}\r\n {`${dateFortmat(date)}, ${points} Points`}\r\n \r\n \r\n);\r\n\r\nexport default MaraePointsFragment;\r\nconst styles = StyleSheet.create({\r\n root: {\r\n width: '93%',\r\n alignSelf: 'center',\r\n flexDirection: 'column',\r\n justifyContent: 'space-between',\r\n alignItems: 'center',\r\n },\r\n list: {\r\n width: '100%',\r\n marginTop: 20,\r\n height: 500,\r\n },\r\n eventsContainer: {\r\n width: '100%',\r\n flexDirection: 'row',\r\n marginBottom: 5,\r\n },\r\n badgeIcon: {\r\n width: 70,\r\n height: 70,\r\n },\r\n descriptionContainer: {\r\n width: '80%',\r\n justifyContent: 'center',\r\n alignContent: 'center',\r\n },\r\n activityLabel: {\r\n fontFamily: Fonts.family.bold,\r\n color: Colors.white,\r\n fontSize: Fonts.sizes.button,\r\n },\r\n dateLabel: {\r\n color: Colors.whiteOpacity,\r\n },\r\n});\r\n","import AntDesign from '@expo/vector-icons/build/AntDesign';\r\nimport React, { Dispatch, SetStateAction } from 'react';\r\nimport { View, StyleSheet, Image, Pressable } from 'react-native';\r\nimport { Colors } from '../../../../constants/Colors';\r\nimport Fonts from '../../../../constants/Fonts';\r\nimport NoteInfo from '../../../../components/NoteInfo';\r\nimport { UIText } from '../../../../components/StyledText';\r\nimport i18n from '../../../../translations';\r\nimport Logger from '../../../../constants/Logger';\r\nimport { useDispatch, useSelector } from 'react-redux';\r\nimport { deleteUserMarae, getUser } from '../../../../reducers/user.slice';\r\nimport { UserMarae, UserStats } from '../../../../constants/Interfaces';\r\nimport { Ellipse, Svg } from 'react-native-svg';\r\n\r\ninterface MareaDeleteProps {\r\n marae: UserMarae;\r\n\r\n openDetails: Dispatch>;\r\n}\r\n\r\nconst MaraeDeleteFragment = ({ marae, openDetails }: MareaDeleteProps) => {\r\n const userStats: UserStats = useSelector((state: any) => state.user.userStats);\r\n const { maraeId } = marae;\r\n\r\n const pointBreakDown = userStats?.pointBreakdown;\r\n const pointsMarae = pointBreakDown ? pointBreakDown.find((item) => item.maraeId === maraeId) : null;\r\n const hasPoints = pointsMarae && pointsMarae?.points ? pointsMarae!.points > 0 : false;\r\n\r\n const dispatch = useDispatch();\r\n\r\n const handleDelete = async () => {\r\n Logger.debug('Deleting marae now');\r\n try {\r\n await dispatch(deleteUserMarae(marae));\r\n dispatch(getUser());\r\n openDetails(false);\r\n } catch (e) {\r\n Logger.debug(`Error occurred: ${e}`);\r\n }\r\n };\r\n return (\r\n \r\n \r\n \r\n \r\n {!hasPoints && (\r\n \r\n \r\n \r\n \r\n {i18n.t('components.MaraeDelete.remove')}\r\n \r\n )}\r\n {hasPoints && (\r\n <>\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n )}\r\n \r\n );\r\n};\r\n\r\nexport default MaraeDeleteFragment;\r\n\r\nconst styles = StyleSheet.create({\r\n root: {\r\n alignSelf: 'center',\r\n alignItems: 'center',\r\n height: 500,\r\n width: 300,\r\n paddingTop: 35,\r\n },\r\n maraeContainer: {\r\n width: 120,\r\n height: 120,\r\n backgroundColor: Colors.darkBurgundy,\r\n borderColor: Colors.yellow,\r\n borderWidth: 2,\r\n borderRadius: 60,\r\n justifyContent: 'center',\r\n alignItems: 'center',\r\n },\r\n maraeImage: {\r\n height: 100,\r\n width: 100,\r\n borderRadius: 50,\r\n resizeMode: 'cover',\r\n },\r\n removeContainer: {\r\n width: '70%',\r\n flexDirection: 'row',\r\n alignItems: 'center',\r\n justifyContent: 'flex-start',\r\n padding: 10,\r\n borderWidth: 3,\r\n borderColor: Colors.yellow,\r\n height: 50,\r\n borderRadius: 25,\r\n marginTop: 30,\r\n },\r\n closeContainer: {\r\n backgroundColor: Colors.yellow,\r\n justifyContent: 'center',\r\n alignItems: 'center',\r\n height: 35,\r\n width: 35,\r\n borderRadius: 20,\r\n marginRight: 10,\r\n },\r\n buttonText: {\r\n color: Colors.white,\r\n fontSize: Fonts.sizes.button,\r\n fontFamily: Fonts.family.bold,\r\n },\r\n noteContainer: {\r\n marginTop: 30,\r\n width: 273,\r\n padding: 3,\r\n borderColor: Colors.yellow,\r\n borderWidth: 1,\r\n borderStyle: 'dashed',\r\n borderRadius: 1,\r\n },\r\n curveLine: {\r\n left: 200,\r\n bottom: 300,\r\n zIndex: -1,\r\n position: 'absolute',\r\n },\r\n});\r\n","import { DateTime } from 'luxon';\r\nimport React, { useEffect } from 'react';\r\nimport { View, StyleSheet } from 'react-native';\r\nimport { useDispatch, useSelector } from 'react-redux';\r\nimport { Paragraph } from '../../../../components/StyledText';\r\nimport { Colors } from '../../../../constants/Colors';\r\nimport { MaraeStats, UserMarae, UserStats } from '../../../../constants/Interfaces';\r\nimport { getMaraeStats } from '../../../../reducers/user.slice';\r\nimport i18n from '../../../../translations';\r\n\r\ninterface MaraePartyProps {\r\n marae: UserMarae;\r\n section: 'activities' | 'koha';\r\n}\r\n\r\nconst MaraePartyFragment = ({ marae, section }: MaraePartyProps) => {\r\n const maraeStats: MaraeStats = useSelector((state: any) => state.user.maraeStats);\r\n const today = DateTime.now();\r\n const year = today.month > 3 ? today.year : today.year - 1;\r\n const userStats: UserStats = useSelector((state: any) => state.user.userStats);\r\n const { maraeId } = marae;\r\n\r\n const pointBreakDown = userStats ? userStats?.pointBreakdown : null;\r\n const pointsMarae = pointBreakDown\r\n ? pointBreakDown.filter((item) => item.maraeId === maraeId).map((item) => item.points)\r\n : null;\r\n const koha = pointsMarae && pointsMarae.length > 0 ? pointsMarae.reduce((acc, current) => acc + current) : 0;\r\n const connections = maraeStats?.connections || 0;\r\n const dispatch = useDispatch();\r\n\r\n useEffect(() => {\r\n dispatch(getMaraeStats(marae));\r\n }, [marae]);\r\n\r\n return (\r\n \r\n \r\n \r\n {section === 'activities' && maraeStats?.connections}\r\n {section === 'koha' && koha}\r\n \r\n \r\n \r\n {section === 'activities' &&\r\n `${i18n.t('components.MaraeParty.activities', {\r\n conections: connections,\r\n marae: marae.maraeName,\r\n year,\r\n })} `}\r\n {section === 'koha' &&\r\n `${i18n.t('components.MaraeParty.koha', {\r\n koha,\r\n marae: marae.maraeName,\r\n totalPoints: maraeStats?.pointTotal,\r\n })} `}\r\n \r\n \r\n );\r\n};\r\n\r\nexport default MaraePartyFragment;\r\n\r\nconst styles = StyleSheet.create({\r\n root: {\r\n width: 300,\r\n height: 300,\r\n alignSelf: 'center',\r\n flexDirection: 'column',\r\n alignItems: 'center',\r\n },\r\n ellipse: {\r\n borderColor: Colors.yellow,\r\n width: '50%',\r\n height: '50%',\r\n borderWidth: 10,\r\n borderRadius: 150,\r\n justifyContent: 'center',\r\n alignItems: 'center',\r\n marginTop: 30,\r\n marginBottom: 25,\r\n },\r\n valueLabel: {\r\n color: Colors.white,\r\n fontSize: 60,\r\n },\r\n message: {\r\n color: Colors.white,\r\n marginTop: 0,\r\n textAlign: 'center',\r\n },\r\n});\r\n","import { Ionicons } from '@expo/vector-icons';\r\nimport React from 'react';\r\nimport { StyleSheet, Pressable } from 'react-native';\r\nimport { Colors } from '../constants/Colors';\r\n\r\nconst Backbutton = ({ onPress }) => (\r\n \r\n \r\n \r\n);\r\nexport default Backbutton;\r\n\r\nconst styles = StyleSheet.create({\r\n backButton: {\r\n justifyContent: 'center',\r\n alignItems: 'center',\r\n backgroundColor: Colors.whiteOpacity,\r\n height: 22,\r\n borderRadius: 8,\r\n },\r\n});\r\n","import * as React from 'react';\r\nimport { Pressable, StyleSheet } from 'react-native';\r\nimport { UIText } from '../StyledText';\r\nimport { Colors } from '../../constants/Colors';\r\nimport Fonts from '../../constants/Fonts';\r\n\r\ninterface SectionButtonProps {\r\n title: string;\r\n selected?: boolean;\r\n onPress: () => void;\r\n}\r\n\r\nexport default function SectionButton(props: SectionButtonProps) {\r\n const { title, selected = false, onPress } = props;\r\n return (\r\n \r\n {title}\r\n \r\n );\r\n}\r\n\r\nconst styles = StyleSheet.create({\r\n container: {\r\n backgroundColor: Colors.white,\r\n borderRadius: 13,\r\n paddingHorizontal: 10,\r\n paddingVertical: 4,\r\n marginHorizontal: 4,\r\n alignItems: 'center',\r\n justifyContent: 'center',\r\n },\r\n title: {\r\n color: Colors.darkBurgundy,\r\n fontSize: Fonts.sizes.medium,\r\n },\r\n});\r\n","import React, { Dispatch, SetStateAction, useState } from 'react';\r\nimport { View, StyleSheet } from 'react-native';\r\nimport MaraePointsFragment from './MaraePointsFragment';\r\nimport MaraeDeleteFragment from './MaraeDeleteFragment';\r\nimport MaraePartyFragment from './MaraePartyFragment';\r\nimport { Heading } from '../../../../components/StyledText';\r\nimport { Colors } from '../../../../constants/Colors';\r\nimport Backbutton from '../../../../components/Backbutton';\r\nimport { UserMarae } from '../../../../constants/Interfaces';\r\nimport SectionButton from '../../../../components/buttons/SectionButton';\r\nimport i18n from '../../../../translations';\r\n\r\ninterface MaraeDetailsProps {\r\n marae: UserMarae;\r\n openDetails: Dispatch>;\r\n setTip: Function;\r\n}\r\n\r\nconst MaraeDetailsFragment = ({ openDetails, marae, setTip }: MaraeDetailsProps) => {\r\n const [active, setActive] = useState(1);\r\n\r\n const getTip = () => {\r\n if (active === 1) setTip('activities');\r\n if (active === 2) setTip('koha');\r\n if (active === 3 || active === 4) setTip(undefined);\r\n };\r\n React.useEffect(() => {\r\n getTip();\r\n }, [active]);\r\n\r\n return (\r\n \r\n \r\n \r\n openDetails(false)} />\r\n \r\n {`${marae.maraeName} Marae`}\r\n \r\n \r\n \r\n \r\n {active === 1 && }\r\n {active === 2 && }\r\n {active === 3 && }\r\n {active === 4 && }\r\n \r\n );\r\n};\r\n\r\nconst MaraeDetailsNav = ({ active, setActive }) => (\r\n \r\n setActive(1)}\r\n />\r\n setActive(2)}\r\n />\r\n {false && (\r\n setActive(3)}\r\n />\r\n )}\r\n setActive(4)}\r\n />\r\n \r\n);\r\n\r\nexport default MaraeDetailsFragment;\r\nconst styles = StyleSheet.create({\r\n root: {\r\n width: '100%',\r\n alignContent: 'center',\r\n justifyContent: 'center',\r\n },\r\n headerContainer: {\r\n flexDirection: 'column',\r\n width: '100%',\r\n justifyContent: 'center',\r\n alignContent: 'center',\r\n },\r\n header: {\r\n flexDirection: 'row',\r\n alignItems: 'center',\r\n width: '100%',\r\n paddingVertical: 10,\r\n },\r\n titleContainer: {\r\n width: '100%',\r\n alignItems: 'center',\r\n },\r\n headerTitle: {\r\n color: Colors.white,\r\n },\r\n navbar: {\r\n width: '100%',\r\n alignSelf: 'center',\r\n flexDirection: 'row',\r\n justifyContent: 'space-evenly',\r\n alignItems: 'center',\r\n },\r\n navItem: {\r\n justifyContent: 'center',\r\n alignItems: 'center',\r\n backgroundColor: Colors.whiteOpacity,\r\n borderRadius: 20,\r\n padding: 2,\r\n paddingHorizontal: 10,\r\n minWidth: 65,\r\n },\r\n navItemText: {\r\n color: Colors.darkBurgundy,\r\n },\r\n});\r\n","import { MaterialIcons } from '@expo/vector-icons';\r\nimport _ from 'lodash';\r\nimport React, { Dispatch, SetStateAction } from 'react';\r\nimport { View, StyleSheet, Pressable } from 'react-native';\r\nimport { Colors } from '../../../../constants/Colors';\r\nimport { useSelector } from 'react-redux';\r\nimport EllipseBorderImage from '../../../../components/EllipseBorderImage';\r\nimport { UIText } from '../../../../components/StyledText';\r\nimport { Marae, User } from '../../../../constants/Interfaces';\r\n\r\ninterface MyMaraeListProps {\r\n openDetails: Dispatch>;\r\n onSelect: (marae: Marae) => void;\r\n selectedMarae?: User[];\r\n selection?: boolean;\r\n}\r\nconst MyMaraeuListFragment = ({ openDetails, onSelect, selectedMarae = [], selection }: MyMaraeListProps) => {\r\n const maraes: Marae[] = useSelector((state: any) => state?.user?.user?.marae);\r\n\r\n const renderItem = ({ item }: { item: Marae }) => {\r\n const selected = _.findIndex(selectedMarae, ['maraeId', item.maraeId]) > -1;\r\n return (\r\n \r\n true}\r\n onMoveShouldSetResponderCapture={() => true}\r\n style={styles.maraeContainer}\r\n onPress={() => {\r\n // eslint-disable-next-line @typescript-eslint/no-unused-expressions\r\n item && onSelect ? onSelect!(item!) : null;\r\n // eslint-disable-next-line @typescript-eslint/no-unused-expressions\r\n openDetails ? openDetails!(true) : null;\r\n }}\r\n >\r\n \r\n \r\n \r\n \r\n \r\n {item.maraeName}\r\n \r\n \r\n {selected ? (\r\n \r\n \r\n \r\n ) : null}\r\n \r\n \r\n \r\n \r\n );\r\n };\r\n return {maraes?.map((item) => renderItem({ item }))};\r\n};\r\n\r\nexport default MyMaraeuListFragment;\r\nconst styles = StyleSheet.create({\r\n root: {\r\n width: '100%',\r\n },\r\n maraeList: {\r\n flexDirection: 'row',\r\n alignItems: 'center',\r\n justifyContent: 'flex-start',\r\n width: '100%',\r\n },\r\n maraeContainer: {\r\n flexDirection: 'row',\r\n alignItems: 'center',\r\n width: '100%',\r\n justifyContent: 'center',\r\n },\r\n maraeImage: {\r\n width: 30,\r\n height: 30,\r\n marginRight: 10,\r\n },\r\n maraeName: {\r\n marginLeft: 15,\r\n },\r\n selectedContainer: {\r\n backgroundColor: Colors.green,\r\n justifyContent: 'center',\r\n alignItems: 'center',\r\n width: 20,\r\n height: 20,\r\n borderRadius: 15,\r\n },\r\n});\r\n","import React, { useState, useEffect } from 'react';\r\nimport { View, StyleSheet } from 'react-native';\r\nimport { useSelector } from 'react-redux';\r\nimport PrimaryButton from '../../../../components/buttons/PrimaryButton';\r\nimport { Colors } from '../../../../constants/Colors';\r\nimport { Marae, UserMarae } from '../../../../constants/Interfaces';\r\nimport Layout from '../../../../constants/Layout';\r\nimport i18n from '../../../../translations';\r\nimport MaraeDetailsFragment from './MaraeDetailsFragment';\r\nimport MyMaraeListFragment from './MyMaraeListFragment';\r\n\r\nconst MyMaraeFragment = ({ navigation, setTip }: { navigation: any; setTip: Function }) => {\r\n const [maraeDetails, setMaraeDetails] = useState(false);\r\n const [maraeSelected, setMaraeSelected] = useState({});\r\n const maraes: Marae[] = useSelector((state: any) => state.user?.user?.marae || []);\r\n\r\n const handleMaraeSelected = (userMarae: UserMarae) => {\r\n setMaraeSelected(userMarae);\r\n };\r\n\r\n useEffect(() => {\r\n setTip('addMarae');\r\n }, []);\r\n\r\n return (\r\n \r\n {!maraeDetails && (\r\n <>\r\n {maraes.length < 4 && (\r\n navigation.navigate('SelectRegion')}\r\n textStyle={{ color: Colors.white }}\r\n buttonStyle={styles.button}\r\n />\r\n )}\r\n \r\n \r\n )}\r\n {maraeDetails && }\r\n \r\n );\r\n};\r\nexport default MyMaraeFragment;\r\n\r\nconst styles = StyleSheet.create({\r\n root: {\r\n alignItems: 'center',\r\n width: Layout.window.width,\r\n paddingHorizontal: '6%',\r\n },\r\n button: {\r\n height: 45,\r\n width: 200,\r\n borderRadius: 28,\r\n },\r\n});\r\n","import * as React from 'react';\r\nimport { View } from '../../../../components/Themed';\r\nimport Logger from '../../../../constants/Logger';\r\nimport { User } from '../../../../constants/Interfaces';\r\nimport { DateTime } from 'luxon';\r\nimport { getUser, patchUser } from '../../../../reducers/user.slice';\r\nimport { useDispatch, useSelector } from 'react-redux';\r\nimport TextInput from '../../../../components/inputs/TextInput';\r\nimport i18n from '../../../../translations';\r\nimport { PickerInput } from '../../../../components/inputs/PickerInput';\r\nimport { listOfEthnicities, listOfGenders } from '../../../../constants/References';\r\nimport CalendarInput from '../../../../components/inputs/CalendarInput';\r\nimport { StyleSheet } from 'react-native';\r\nimport PrimaryButton from '../../../../components/buttons/PrimaryButton';\r\nimport { Colors } from '../../../../constants/Colors';\r\nimport ModalUI from '../../../../components/ModalUI';\r\nimport { UIText } from '../../../../components/StyledText';\r\nimport { useFocusEffect } from '@react-navigation/native';\r\nimport BottomBanner from '../../../../components/BottomBanner';\r\n\r\nexport const DetailsFragment = ({ hideFooter }: { hideFooter: Function }) => {\r\n const dispatch = useDispatch();\r\n\r\n const user: User = useSelector((state: any) => state.user.user);\r\n const userLoading: boolean = useSelector((state: any) => state.user.loading);\r\n const userBackgroundLoading: boolean = useSelector((state: any) => state.user.backgroundLoading);\r\n\r\n const [firstName, setFirstName] = React.useState(user?.firstName ? user.firstName : '');\r\n const [lastName, setLastName] = React.useState(user?.lastName ? user.lastName : '');\r\n const [gender, setGender] = React.useState(user?.gender ? user.gender : '');\r\n const [ethnicity, setEthnicity] = React.useState(user?.ethnicity ? user.ethnicity : '');\r\n const [doB, setDoB] = React.useState(user?.doB ? user.doB : '');\r\n const [phone, setPhone] = React.useState(user?.phone ? user.phone : '');\r\n const [email, setEmail] = React.useState(user?.email ? user.email : '');\r\n const [isDefaultDoB, setIsDefaultDoB] = React.useState(false);\r\n\r\n const refStub = {\r\n hide: () => {},\r\n };\r\n const genderRef = React.useRef(refStub);\r\n const ethnicityRef = React.useRef(refStub);\r\n\r\n const getDropdownY = (position: number) => 4 + 60 * position + 10 * (position - 1);\r\n\r\n useFocusEffect(\r\n React.useCallback(() => {\r\n hideFooter(true);\r\n return () => {\r\n hideFooter(false);\r\n };\r\n }, [])\r\n );\r\n /**\r\n * Handle the global clicking events and hide all dropdowns\r\n */\r\n const handleBlur = () => {\r\n genderRef.current.hide();\r\n ethnicityRef.current.hide();\r\n };\r\n\r\n const isFormValid = () => firstName && lastName && gender && ethnicity && doB;\r\n\r\n const submitForm = async () => {\r\n Logger.debug('Submitting the form now');\r\n const user: User = {\r\n firstName,\r\n lastName,\r\n phone,\r\n gender,\r\n ethnicity,\r\n doB: doB ? DateTime.fromISO(doB).toFormat('yyyy-MM-dd') : undefined,\r\n };\r\n if (email && email.length > 0) {\r\n user.email = email;\r\n }\r\n if (doB && doB === '0001-01-01T00:00:00') {\r\n setIsDefaultDoB(true);\r\n } else {\r\n try {\r\n await dispatch(patchUser(user));\r\n dispatch(getUser());\r\n } catch (e) {\r\n Logger.debug(`Error occurred: ${e.message}`);\r\n }\r\n }\r\n };\r\n\r\n return (\r\n \r\n \r\n setFirstName(firstName)}\r\n label={i18n.t('components.DetailsFragment.firstName')}\r\n />\r\n setLastName(lastName)}\r\n label={i18n.t('components.DetailsFragment.surname')}\r\n />\r\n {\r\n setGender(gender);\r\n }}\r\n onActive={handleBlur}\r\n dropdownStyle={{\r\n left: 32,\r\n top: getDropdownY(3),\r\n }}\r\n />\r\n {\r\n setEthnicity(ethnicity);\r\n }}\r\n onActive={handleBlur}\r\n dropdownStyle={{\r\n left: 32,\r\n top: getDropdownY(4),\r\n }}\r\n />\r\n setDoB(date)}\r\n value={doB}\r\n placeholder={i18n.t('components.DetailsFragment.dob')}\r\n onActive={handleBlur}\r\n />\r\n\r\n setEmail(email)}\r\n label={i18n.t('components.DetailsFragment.email')}\r\n />\r\n setPhone(phone)}\r\n label={`${i18n.t('components.DetailsFragment.mobile')} (${i18n.t('components.DetailsFragment.optional')})`}\r\n keyboardType=\"numeric\"\r\n />\r\n submitForm()}\r\n containerStyle={styles.submitButton}\r\n />\r\n \r\n \r\n \r\n \r\n \r\n setIsDefaultDoB(false)}>\r\n {i18n.t('components.DetailsFragment.invalidDoB')}\r\n \r\n \r\n );\r\n};\r\n\r\nconst styles = StyleSheet.create({\r\n scrollContainer: {\r\n width: '100%',\r\n paddingHorizontal: 15,\r\n backgroundColor: Colors.darkBurgundy,\r\n height: 880,\r\n },\r\n container: {\r\n marginTop: 24,\r\n paddingHorizontal: 32,\r\n },\r\n submitButton: {\r\n alignItems: 'center',\r\n marginTop: 4,\r\n zIndex: 3,\r\n },\r\n footerContainer: {\r\n left: -15,\r\n marginTop: 15,\r\n },\r\n});\r\n","import React from 'react';\r\nimport { StyleSheet, Pressable, Image, ImageSourcePropType } from 'react-native';\r\nimport { Colors } from '../../constants/Colors';\r\nimport Fonts from '../../constants/Fonts';\r\nimport { UIText } from '../StyledText';\r\n\r\ninterface SecondaryButtonProps {\r\n icon?: ImageSourcePropType;\r\n title: string;\r\n bgColor?: 'yellow' | 'white';\r\n onPress: () => void;\r\n styleButton?: {};\r\n styleText?: {};\r\n styleIcon?: {};\r\n iconRight?: any;\r\n}\r\n\r\nconst SecondaryButton = ({\r\n icon,\r\n title,\r\n bgColor = 'yellow',\r\n onPress,\r\n styleButton,\r\n styleText,\r\n styleIcon,\r\n iconRight,\r\n}: SecondaryButtonProps) => (\r\n \r\n {icon ? : null}\r\n {title}\r\n {iconRight || null}\r\n \r\n);\r\n\r\nexport default SecondaryButton;\r\n\r\nconst styles = StyleSheet.create({\r\n container: {\r\n flexDirection: 'row',\r\n justifyContent: 'center',\r\n alignItems: 'center',\r\n width: '50%',\r\n height: 45,\r\n borderRadius: 50,\r\n },\r\n icon: {\r\n width: 15,\r\n height: 15,\r\n marginRight: 10,\r\n },\r\n label: {\r\n fontFamily: Fonts.family.bold,\r\n fontSize: Fonts.sizes.default,\r\n },\r\n});\r\n","import React from 'react';\r\nimport { View, StyleSheet, Image, Pressable } from 'react-native';\r\nimport { Colors } from '../../constants/Colors';\r\nimport Fonts from '../../constants/Fonts';\r\nimport { UIText } from '../StyledText';\r\nimport i18n from '../../translations';\r\n\r\ninterface ButtonSwitchProps {\r\n leftButton: () => void;\r\n rightButton: () => void;\r\n}\r\n\r\nconst ButtonSwitch = ({ leftButton, rightButton }: ButtonSwitchProps) => (\r\n \r\n \r\n {i18n.t('components.ButtonSwitch.delete')}\r\n \r\n \r\n \r\n {i18n.t('components.ButtonSwitch.changePhoto')}\r\n \r\n \r\n);\r\n\r\nexport default ButtonSwitch;\r\nconst styles = StyleSheet.create({\r\n root: {\r\n height: 45,\r\n width: 240,\r\n flexDirection: 'row',\r\n borderWidth: 2,\r\n borderColor: Colors.yellow,\r\n borderRadius: 25,\r\n justifyContent: 'space-between',\r\n alignItems: 'center',\r\n },\r\n leftLabel: {\r\n color: Colors.yellow,\r\n fontFamily: Fonts.family.bold,\r\n fontSize: Fonts.sizes.default,\r\n },\r\n leftButton: {\r\n justifyContent: 'center',\r\n alignItems: 'center',\r\n width: '40%',\r\n },\r\n rigthButton: {\r\n flexDirection: 'row',\r\n backgroundColor: Colors.yellow,\r\n height: '100%',\r\n borderRadius: 25,\r\n width: '60%',\r\n justifyContent: 'space-evenly',\r\n alignItems: 'center',\r\n },\r\n rightIcon: {\r\n height: 18,\r\n width: 18,\r\n },\r\n rigthLabel: {\r\n fontFamily: Fonts.family.bold,\r\n fontSize: Fonts.sizes.default,\r\n },\r\n});\r\n","import React, { useState } from 'react';\r\nimport { TouchableOpacity, View, StyleSheet, Pressable } from 'react-native';\r\nimport { Camera, CameraCapturedPicture, CameraType } from 'expo-camera';\r\nimport { AntDesign, MaterialIcons } from '@expo/vector-icons';\r\nimport { Colors } from '../constants/Colors';\r\nimport Layout from '../constants/Layout';\r\n\r\nconst PhotoCamera = ({ setImage, openCamera }) => {\r\n const [type, setType] = useState(CameraType.back);\r\n\r\n let camera: Camera | null;\r\n\r\n const handleCloseModal = () => {\r\n openCamera(false);\r\n };\r\n\r\n const onSnap = async () => {\r\n if (camera) {\r\n const options = { quality: 0.7, base64: true };\r\n const data: CameraCapturedPicture = await camera.takePictureAsync(options);\r\n setImage(data);\r\n }\r\n openCamera(false);\r\n };\r\n const handleCamera = () => {\r\n setType(type === CameraType.back ? CameraType.front : CameraType.back);\r\n };\r\n return (\r\n \r\n {\r\n camera = r;\r\n }}\r\n type={type}\r\n />\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n );\r\n};\r\n\r\nexport default PhotoCamera;\r\nconst styles = StyleSheet.create({\r\n cameraContainer: {\r\n ...StyleSheet.absoluteFillObject,\r\n marginHorizontal: 15,\r\n },\r\n text: {\r\n color: 'white',\r\n },\r\n frame: {\r\n height: '100%',\r\n width: '100%',\r\n },\r\n togglePicture: {\r\n position: 'absolute',\r\n width: 70,\r\n height: 70,\r\n bottom: 20,\r\n left: Layout.window.width / 2 - 35,\r\n zIndex: 1000,\r\n borderRadius: 50,\r\n backgroundColor: '#fff',\r\n },\r\n close: {\r\n position: 'absolute',\r\n justifyContent: 'center',\r\n alignItems: 'center',\r\n width: 42,\r\n height: 42,\r\n right: 25,\r\n top: 10,\r\n zIndex: 1000,\r\n backgroundColor: Colors.yellow,\r\n borderRadius: 25,\r\n },\r\n flipIcon: {\r\n position: 'absolute',\r\n width: 27,\r\n height: 27,\r\n top: 18,\r\n zIndex: 1000,\r\n left: 30,\r\n },\r\n});\r\n","import React, { useEffect, useState } from 'react';\r\nimport { View, StyleSheet, Pressable, Image } from 'react-native';\r\nimport SecondaryButton from './buttons/SecondaryButton';\r\nimport ButtonSwitch from './buttons/ButtonSwitch';\r\nimport EllipseBorderImage from './EllipseBorderImage';\r\nimport Layout from '../constants/Layout';\r\nimport i18n from '../translations';\r\nimport Modal from 'react-native-modal';\r\nimport { Colors } from '../constants/Colors';\r\nimport { UIText } from './StyledText';\r\nimport Fonts from '../constants/Fonts';\r\nimport * as ImagePicker from 'expo-image-picker';\r\nimport { User } from '../constants/Interfaces';\r\nimport PhotoCamera from './PhotoCamera';\r\nimport { deleteUserPhoto, postUserPhoto } from '../reducers/user.slice';\r\nimport Logger from '../constants/Logger';\r\nimport { useDispatch, useSelector } from 'react-redux';\r\nimport { Camera } from 'expo-camera';\r\nimport PrimaryButton from './buttons/PrimaryButton';\r\nimport { openSettings } from 'expo-linking';\r\nimport { getGenderPlaceholder } from '../constants/Utils';\r\n\r\ninterface EditPhotoProps {\r\n user: User;\r\n}\r\n\r\ninterface ImageResult {\r\n uri: string;\r\n base64: string | null | undefined;\r\n}\r\n\r\nconst EditPhoto = ({ user }: EditPhotoProps) => {\r\n const [activeMenu, setActiveMenu] = useState(false);\r\n const [openCamera, setOpenCamera] = useState(false);\r\n const dispatch = useDispatch();\r\n const userRedux: User =\r\n useSelector((state: any) => state.user.whanau)?.find((item) => item.userId === user.userId) || user;\r\n\r\n const handleCloseMenu = () => setActiveMenu(false);\r\n const userId = userRedux?.userId;\r\n const imageUrl = userRedux?.imageUrl;\r\n const [image, setImage] = useState({ uri: imageUrl });\r\n\r\n const [galleryPermission, setGalleryPermission] = useState(null);\r\n const [cameraPermission, setCameraPermission] = useState(null);\r\n\r\n const onHandleCamera = async () => {\r\n try {\r\n const { status } = await Camera.requestCameraPermissionsAsync();\r\n if (status !== 'granted') {\r\n setCameraPermission(false);\r\n setActiveMenu(false);\r\n return;\r\n }\r\n setCameraPermission(true);\r\n setOpenCamera(true);\r\n setActiveMenu(false);\r\n } catch (e) {\r\n Logger.debug(e);\r\n }\r\n };\r\n\r\n const handleDelete = async (userId: string) => {\r\n try {\r\n await dispatch(deleteUserPhoto(userId));\r\n } catch (e) {\r\n Logger.debug(`Error occurred: ${e}`);\r\n }\r\n };\r\n\r\n const handleGalleryPicture = async () => {\r\n try {\r\n const { status } = await ImagePicker.requestMediaLibraryPermissionsAsync();\r\n if (status !== 'granted') {\r\n setGalleryPermission(false);\r\n setActiveMenu(false);\r\n return;\r\n }\r\n setGalleryPermission(true);\r\n\r\n const result = await ImagePicker.launchImageLibraryAsync({\r\n mediaTypes: ImagePicker.MediaTypeOptions.Images,\r\n allowsEditing: true,\r\n aspect: [4, 3],\r\n quality: 0.7,\r\n base64: true,\r\n });\r\n if (!result.canceled) {\r\n const formattedResult = {\r\n uri: result.assets[0].uri,\r\n base64: result.assets[0].base64,\r\n };\r\n setImage(formattedResult);\r\n }\r\n } catch (e) {\r\n Logger.debug(e);\r\n }\r\n setActiveMenu(false);\r\n };\r\n\r\n const uploadPhoto = async (userId, image) => {\r\n try {\r\n const imageSuccess: ImageResult = image;\r\n const imageFormat = imageSuccess.uri.split('.').pop();\r\n const payload = {\r\n image: {\r\n mime: `image/${imageFormat}`,\r\n data: imageSuccess.base64,\r\n url: imageSuccess.uri,\r\n },\r\n };\r\n await dispatch(postUserPhoto({ userId, payload }));\r\n } catch (e) {\r\n Logger.debug(`Error occurred: ${e}`);\r\n }\r\n };\r\n const handleMenu = () => {\r\n setActiveMenu(true);\r\n };\r\n\r\n const getPermissions = async () => {\r\n let status;\r\n try {\r\n status = await (await ImagePicker.requestMediaLibraryPermissionsAsync()).status;\r\n setGalleryPermission(status === 'granted');\r\n status = await (await Camera.requestCameraPermissionsAsync()).status;\r\n setCameraPermission(status === 'granted');\r\n } catch (e) {\r\n Logger.debug(e);\r\n }\r\n };\r\n useEffect(() => {\r\n getPermissions();\r\n }, []);\r\n\r\n useEffect(() => {\r\n if (image) {\r\n uploadPhoto(userId, image);\r\n }\r\n }, [image]);\r\n\r\n return (\r\n <>\r\n {openCamera ? (\r\n \r\n \r\n \r\n ) : (\r\n \r\n \r\n {imageUrl && handleDelete(user?.userId!)} rightButton={handleMenu} />}\r\n {!imageUrl && (\r\n \r\n )}\r\n \r\n )}\r\n\r\n \r\n \r\n \r\n \r\n \r\n \r\n Select from your gallery\r\n \r\n \r\n \r\n Take new photo\r\n \r\n \r\n {!cameraPermission && (\r\n {i18n.t('components.EditPhoto.noCameraPermission')}\r\n )}\r\n {!galleryPermission && (\r\n {i18n.t('components.EditPhoto.noGaleryPermission')}\r\n )}\r\n {!cameraPermission || !galleryPermission ? (\r\n openSettings()} />\r\n ) : null}\r\n \r\n \r\n \r\n );\r\n};\r\n\r\nexport default EditPhoto;\r\n\r\nconst styles = StyleSheet.create({\r\n root: {\r\n alignItems: 'center',\r\n justifyContent: 'space-evenly',\r\n width: '100%',\r\n height: Layout.window.width,\r\n },\r\n imageStyle: {\r\n height: 120,\r\n width: 120,\r\n },\r\n modalContainer: {\r\n justifyContent: 'flex-end',\r\n margin: 0,\r\n },\r\n modal: {\r\n width: '100%',\r\n backgroundColor: Colors.white,\r\n borderRadius: 13,\r\n paddingVertical: 15,\r\n paddingHorizontal: 30,\r\n alignItems: 'center',\r\n },\r\n optionsContainer: {\r\n flex: 1,\r\n alignItems: 'center',\r\n marginTop: 20,\r\n },\r\n\r\n modalOption: {\r\n width: 200,\r\n height: 50,\r\n flexDirection: 'row',\r\n justifyContent: 'flex-start',\r\n alignItems: 'center',\r\n marginTop: 10,\r\n },\r\n handleBar: {\r\n alignSelf: 'center',\r\n width: 60,\r\n height: 5,\r\n borderRadius: 5,\r\n backgroundColor: Colors.lightGrey,\r\n },\r\n iconModal: {\r\n height: 17,\r\n width: 17,\r\n marginRight: 10,\r\n },\r\n optionLabel: {\r\n fontFamily: Fonts.family.bold,\r\n },\r\n settingsLabel: {\r\n alignSelf: 'center',\r\n },\r\n});\r\n","import React, { useEffect, useState } from 'react';\r\nimport { View, StyleSheet, FlatList, Image, ActivityIndicator } from 'react-native';\r\nimport { useSelector } from 'react-redux';\r\nimport Layout from '../constants/Layout';\r\nimport API from '../constants/API';\r\nimport { Colors } from '../constants/Colors';\r\nimport Fonts from '../constants/Fonts';\r\nimport { User, UserActivity } from '../constants/Interfaces';\r\nimport Logger from '../constants/Logger';\r\nimport { Paragraph, UIText } from './StyledText';\r\nimport { convertToNZ } from '../constants/Utils';\r\nimport i18n from '../translations';\r\n\r\nconst UserActivities = ({ user }) => {\r\n const [activities, setActivities] = useState([]);\r\n const mainUser: User = useSelector((state: any) => state.user.user);\r\n const isWhanau = user && user.userId !== mainUser?.userId;\r\n const [loading, setLoading] = useState(false);\r\n\r\n useEffect(() => {\r\n const getActivities = async (userId?: string, isWhanau?: boolean) => {\r\n Logger.info(`Reducer -> activity -> getUserWhanauActivitiesCompleted : Getting user activities`);\r\n const api: API = API.getInstance();\r\n\r\n try {\r\n setLoading(true);\r\n const activities: UserActivity[] = await api.get(\r\n isWhanau ? `/user/whanau/${userId}/activity/completed` : 'user/activity/completed'\r\n );\r\n Logger.debug(\r\n `Reducer -> activity -> getUserWhanauActivitiesCompleted : Activities information received: ${JSON.stringify(\r\n activities\r\n )}`\r\n );\r\n setActivities(activities);\r\n } catch (e) {\r\n Logger.warn(`Reducer -> activity -> getUserWhanauActivitiesCompleted : ${e}`);\r\n throw e;\r\n } finally {\r\n setLoading(false);\r\n }\r\n };\r\n getActivities(user.userId, isWhanau);\r\n }, []);\r\n\r\n return (\r\n \r\n \r\n \r\n \r\n \r\n {`${user?.firstName} ${i18n.t(\r\n 'components.UserActivities.attended'\r\n )}`}\r\n \r\n {loading && }\r\n \r\n (\r\n \r\n {item.activityName}\r\n \r\n {convertToNZ({ date: item.startDate!, format: 'MMMM dd, yyyy, h:mma' })}\r\n \r\n \r\n )}\r\n ListFooterComponent={() => }\r\n ListFooterComponentStyle={{ height: 80 }}\r\n keyExtractor={(item, index) => `${index}-${item.endDate}`}\r\n ItemSeparatorComponent={() => (\r\n <>\r\n \r\n \r\n \r\n )}\r\n />\r\n \r\n \r\n );\r\n};\r\n\r\nexport default UserActivities;\r\nconst styles = StyleSheet.create({\r\n root: {\r\n marginHorizontal: '4%',\r\n },\r\n note: {\r\n backgroundColor: Colors.white,\r\n paddingHorizontal: 8,\r\n paddingVertical: 15,\r\n justifyContent: 'center',\r\n alignItems: 'center',\r\n borderWidth: 2,\r\n borderColor: Colors.white,\r\n borderRadius: 5,\r\n marginBottom: 15,\r\n },\r\n noteText: {\r\n textAlign: 'center',\r\n fontSize: Fonts.sizes.medium,\r\n },\r\n listContainer: {\r\n height: Layout.window.height * 0.7 - 172,\r\n },\r\n activityLabel: {\r\n color: Colors.white,\r\n fontFamily: Fonts.family.bold,\r\n },\r\n dateLabel: {\r\n color: Colors.white,\r\n },\r\n noteIcon: {\r\n height: 30,\r\n width: 30,\r\n },\r\n noteIconContainer: {\r\n backgroundColor: Colors.white,\r\n borderRadius: 45,\r\n width: 45,\r\n height: 45,\r\n justifyContent: 'center',\r\n alignItems: 'center',\r\n marginLeft: 10,\r\n alignSelf: 'center',\r\n bottom: -15,\r\n zIndex: 10,\r\n borderWidth: 2,\r\n borderColor: Colors.black,\r\n },\r\n});\r\n","import * as React from 'react';\r\nimport { Colors } from '../../constants/Colors';\r\nimport { View } from '../Themed';\r\nimport { Pressable, StyleProp, StyleSheet, ViewStyle } from 'react-native';\r\nimport { UIText } from '../StyledText';\r\nimport Fonts from '../../constants/Fonts';\r\n\r\ninterface SplitButtonProps {\r\n iconLeft?: {\r\n left?: any;\r\n right?: any;\r\n };\r\n iconRight?: {\r\n left?: any;\r\n right?: any;\r\n };\r\n labelLeft: string;\r\n labelRight: string;\r\n onPressLeft: () => void;\r\n onPressRight: () => void;\r\n backgroundColorLeft?: string;\r\n backgroundColorRight?: string;\r\n labelColorLeft?: string;\r\n labelColorRight?: string;\r\n borderColor?: string;\r\n leftRightRatio?: number; // left width / right width\r\n containerStyles?: StyleProp;\r\n leftContainerStyles?: StyleProp;\r\n rigthContainerStyles?: StyleProp;\r\n mainButton?: 'right' | 'left';\r\n}\r\n\r\nexport const SplitButton = ({\r\n iconLeft,\r\n iconRight,\r\n labelLeft,\r\n labelRight,\r\n onPressLeft,\r\n onPressRight,\r\n backgroundColorLeft = Colors.backgroundYellow,\r\n backgroundColorRight = Colors.darkBurgundy,\r\n labelColorLeft = Colors.darkBurgundy,\r\n labelColorRight = Colors.white,\r\n borderColor = Colors.darkBurgundy,\r\n leftRightRatio = 1.4,\r\n containerStyles,\r\n leftContainerStyles,\r\n rigthContainerStyles,\r\n mainButton = 'right',\r\n}: SplitButtonProps) => (\r\n \r\n \r\n {iconLeft && iconLeft.left ? iconLeft.left : null}\r\n {labelLeft}\r\n {iconLeft && iconLeft.right ? iconLeft.right : null}\r\n \r\n \r\n {iconRight && iconRight.left ? iconRight.left : null}\r\n {labelRight}\r\n {iconRight && iconRight.right ? iconRight.right : null}\r\n \r\n \r\n);\r\n\r\nconst styles = StyleSheet.create({\r\n container: {\r\n flexDirection: 'row',\r\n alignItems: 'center',\r\n },\r\n buttonContainer: {\r\n flexDirection: 'row',\r\n alignItems: 'center',\r\n height: 45.6,\r\n borderWidth: 2,\r\n },\r\n leftContainer: {\r\n paddingLeft: 24,\r\n borderRadius: 37,\r\n flex: 1,\r\n },\r\n rightContainer: {\r\n position: 'absolute',\r\n right: 0,\r\n top: 0,\r\n justifyContent: 'center',\r\n borderRadius: 37,\r\n zIndex: 5,\r\n },\r\n label: {\r\n fontFamily: Fonts.family.bold,\r\n },\r\n});\r\n","import { View, StyleSheet } from 'react-native';\r\nimport React, { useState } from 'react';\r\nimport { UIText } from '../../../../components/StyledText';\r\nimport i18n from '../../../../translations';\r\nimport { Colors } from '../../../../constants/Colors';\r\nimport Fonts from '../../../../constants/Fonts';\r\nimport { SplitButton } from '../../../../components/buttons/SplitButton';\r\nimport ModalUI from '../../../../components/ModalUI';\r\nimport Logger from '../../../../constants/Logger';\r\nimport API from '../../../../constants/API';\r\nimport { useDispatch, useSelector } from 'react-redux';\r\nimport { purge } from '../../../../reducers/commonActions';\r\nimport { useNavigation } from '@react-navigation/native';\r\nimport PrimaryButton from '../../../../components/buttons/PrimaryButton';\r\nimport { logOut } from '../../../../constants/Utils';\r\n\r\nconst DeleteAccountFragment = () => {\r\n const navigation = useNavigation();\r\n const [active, setActive] = useState(false);\r\n const userId: any = useSelector((state: any) => state.user.user?.userId) ?? null;\r\n const dispatch = useDispatch();\r\n\r\n const deleteUser = async () => {\r\n Logger.info(`Reducer -> user -> deleteUser: deleting user init`);\r\n const api: API = API.getInstance();\r\n try {\r\n await api.delete(`/user`, userId);\r\n Logger.debug(`Reducer -> user -> deleteUser: userDeleted.`);\r\n } catch (e) {\r\n Logger.warn(`Reducer -> user -> deleteUser: couldn't delete user ${e.message}`);\r\n throw e;\r\n }\r\n };\r\n\r\n const handleLogout = () => {\r\n logOut();\r\n };\r\n\r\n const deleteConfirmed = () => {\r\n deleteUser();\r\n handleLogout();\r\n };\r\n\r\n return (\r\n \r\n \r\n \r\n {i18n.t('components.DeleteAccountFragment.deleteMessage')}\r\n \r\n \r\n setActive(true)}\r\n themeColor=\"yellow\"\r\n />\r\n setActive(false)}>\r\n {i18n.t('components.DeleteAccountFragment.confirmDelete')}\r\n setActive(false)}\r\n onPressRight={deleteConfirmed}\r\n />\r\n \r\n \r\n );\r\n};\r\n\r\nexport default DeleteAccountFragment;\r\n\r\nconst styles = StyleSheet.create({\r\n root: {\r\n paddingHorizontal: '8%',\r\n paddingVertical: 15,\r\n },\r\n noteLabel: {\r\n flexDirection: 'row',\r\n justifyContent: 'center',\r\n alignItems: 'center',\r\n backgroundColor: Colors.white,\r\n borderRadius: 5,\r\n width: '100%',\r\n paddingHorizontal: 5,\r\n paddingVertical: 15,\r\n marginTop: 20,\r\n marginBottom: 25,\r\n },\r\n noteText: {\r\n color: Colors.white,\r\n fontSize: Fonts.sizes.medium,\r\n paddingHorizontal: 12,\r\n },\r\n modalMessage: {\r\n marginBottom: 15,\r\n alignSelf: 'center',\r\n },\r\n});\r\n","import * as React from 'react';\r\nimport { View } from '../../../../components/Themed';\r\nimport { StyleSheet, ScrollView } from 'react-native';\r\nimport SectionButton from '../../../../components/buttons/SectionButton';\r\nimport i18n from '../../../../translations';\r\nimport { DetailsFragment } from './DetailsFragment';\r\nimport EditPhoto from '../../../../components/EditPhoto';\r\nimport Layout from '../../../../constants/Layout';\r\nimport { useSelector } from 'react-redux';\r\nimport { ProfileSection, User } from '../../../../constants/Interfaces';\r\nimport UserActivities from '../../../../components/UserActivities';\r\nimport DeleteAccountFragment from './DeleteAccountFragment';\r\n\r\nexport const ProfileFragment = ({ hideFooter }: { hideFooter: Function }) => {\r\n const [index, setIndex] = React.useState(ProfileSection.details);\r\n const user: User = useSelector((state: any) => state.user.user);\r\n\r\n const getFragment = () => {\r\n switch (index) {\r\n case ProfileSection.details: {\r\n return ;\r\n }\r\n case ProfileSection.photo: {\r\n return ;\r\n }\r\n case ProfileSection.activities: {\r\n return (\r\n \r\n \r\n \r\n );\r\n }\r\n case ProfileSection.delete: {\r\n return setIndex(ProfileSection.details)} />;\r\n }\r\n default: {\r\n return null;\r\n }\r\n }\r\n };\r\n\r\n return (\r\n <>\r\n \r\n \r\n setIndex(0)}\r\n />\r\n setIndex(1)}\r\n />\r\n setIndex(2)}\r\n />\r\n setIndex(3)}\r\n />\r\n \r\n \r\n {getFragment()}\r\n \r\n );\r\n};\r\n\r\nconst styles = StyleSheet.create({\r\n root: {\r\n width: Layout.window.width,\r\n },\r\n sectionHeaderContainer: {\r\n paddingVertical: 8,\r\n flexDirection: 'row',\r\n justifyContent: 'center',\r\n alignItems: 'center',\r\n },\r\n activitiesContainer: {\r\n paddingHorizontal: '4%',\r\n },\r\n});\r\n","import { MaterialIcons } from '@expo/vector-icons';\r\nimport _ from 'lodash';\r\nimport React, { Dispatch, SetStateAction } from 'react';\r\nimport { View, StyleSheet, Pressable, FlatList } from 'react-native';\r\nimport { Colors } from '../../../../constants/Colors';\r\nimport { useSelector } from 'react-redux';\r\nimport EllipseBorderImage from '../../../../components/EllipseBorderImage';\r\nimport { UIText } from '../../../../components/StyledText';\r\nimport { User } from '../../../../constants/Interfaces';\r\nimport { getGenderPlaceholder } from '../../../../constants/Utils';\r\n\r\ninterface MyWhanauListProps {\r\n openDetails: Dispatch>;\r\n onSelect: (user: User) => void;\r\n selectedWhanaus?: User[];\r\n selection?: boolean;\r\n}\r\nconst MyWhanauListFragment = ({ openDetails, onSelect, selectedWhanaus = [], selection }: MyWhanauListProps) => {\r\n const whanau: User[] = useSelector((state: any) => state.user.whanau);\r\n\r\n const renderItem = ({ item }: { item: User }) => {\r\n const selected = _.findIndex(selectedWhanaus, ['userId', item.userId]) > -1;\r\n return (\r\n \r\n true}\r\n onMoveShouldSetResponderCapture={() => true}\r\n style={styles.whanauContainer}\r\n onPress={() => {\r\n // eslint-disable-next-line @typescript-eslint/no-unused-expressions\r\n item && onSelect ? onSelect!(item!) : null;\r\n // eslint-disable-next-line @typescript-eslint/no-unused-expressions\r\n openDetails ? openDetails!(true) : null;\r\n }}\r\n >\r\n \r\n {`${item.firstName} ${item.lastName}`}\r\n \r\n {selected ? (\r\n \r\n \r\n \r\n ) : null}\r\n \r\n );\r\n };\r\n return index.toString()} />;\r\n};\r\n\r\nexport default MyWhanauListFragment;\r\nconst styles = StyleSheet.create({\r\n whanauList: {\r\n flexDirection: 'row',\r\n alignItems: 'center',\r\n justifyContent: 'flex-start',\r\n width: '100%',\r\n height: 60,\r\n borderBottomColor: Colors.blackOpacity,\r\n borderBottomWidth: 1,\r\n },\r\n whanauContainer: {\r\n flexDirection: 'row',\r\n alignItems: 'center',\r\n width: '90%',\r\n height: '100%',\r\n },\r\n whanauImage: {\r\n width: 30,\r\n height: 30,\r\n marginRight: 10,\r\n },\r\n whanauName: {\r\n marginLeft: 15,\r\n },\r\n selectedContainer: {\r\n backgroundColor: Colors.green,\r\n justifyContent: 'center',\r\n alignItems: 'center',\r\n width: 20,\r\n height: 20,\r\n borderRadius: 15,\r\n },\r\n});\r\n","import * as React from 'react';\r\nimport { View } from '../../../../components/Themed';\r\nimport Logger from '../../../../constants/Logger';\r\nimport { User } from '../../../../constants/Interfaces';\r\nimport { DateTime } from 'luxon';\r\nimport { getUserWhanau, patchUserWhanau, postUserWhanau } from '../../../../reducers/user.slice';\r\nimport { useDispatch, useSelector } from 'react-redux';\r\nimport TextInput from '../../../../components/inputs/TextInput';\r\nimport i18n from '../../../../translations';\r\nimport { PickerInput } from '../../../../components/inputs/PickerInput';\r\nimport { listOfEthnicities, listOfGenders } from '../../../../constants/References';\r\nimport CalendarInput from '../../../../components/inputs/CalendarInput';\r\nimport { ScrollView, StyleSheet } from 'react-native';\r\nimport PrimaryButton from '../../../../components/buttons/PrimaryButton';\r\nimport { Colors } from '../../../../constants/Colors';\r\nimport ModalUI from '../../../../components/ModalUI';\r\nimport { UIText } from '../../../../components/StyledText';\r\nimport { useNavigation } from '@react-navigation/core';\r\nimport BottomBanner from '../../../../components/BottomBanner';\r\nimport { useFocusEffect } from '@react-navigation/native';\r\n\r\ninterface AddWhanauProps {\r\n user?: User;\r\n openDetails: (arg: boolean) => void;\r\n activityId?: string;\r\n hideFooter: Function;\r\n isAddWhanau?: boolean;\r\n}\r\n\r\nconst AddWhanauFragment = ({ user, openDetails, activityId, hideFooter, isAddWhanau = false }: AddWhanauProps) => {\r\n const dispatch = useDispatch();\r\n const userLoading: boolean = useSelector((state: any) => state.user.loading);\r\n const userBackgroundLoading: boolean = useSelector((state: any) => state.user.backgroundLoading);\r\n const [firstName, setFirstName] = React.useState(user?.firstName ? user?.firstName : '');\r\n const [lastName, setLastName] = React.useState(user?.lastName ? user?.lastName : '');\r\n const [gender, setGender] = React.useState(user?.gender ? user?.gender : '');\r\n const [ethnicity, setEthnicity] = React.useState(user?.ethnicity ? user?.ethnicity : '');\r\n const [doB, setDoB] = React.useState(user?.doB ? user?.doB : '');\r\n const [phone, setPhone] = React.useState(user?.phone ? user?.phone : null);\r\n const [email, setEmail] = React.useState(user?.email ? user?.email : null);\r\n const [badEmail, setBadEmail] = React.useState(false);\r\n\r\n const styles = StyleSheet.create({\r\n scrollContainer: {\r\n width: '100%',\r\n backgroundColor: Colors.darkBurgundy,\r\n },\r\n container: {\r\n marginTop: 24,\r\n height: isAddWhanau ? 975 : 965,\r\n },\r\n formContainer: {\r\n paddingHorizontal: 47,\r\n },\r\n submitButton: {\r\n alignItems: 'center',\r\n marginTop: 4,\r\n zIndex: 3,\r\n },\r\n footerContainer: {\r\n marginTop: 15,\r\n },\r\n });\r\n\r\n const navigation = useNavigation();\r\n const refStub = {\r\n hide: () => {},\r\n };\r\n const userId = user?.userId;\r\n\r\n useFocusEffect(\r\n React.useCallback(() => {\r\n hideFooter(true);\r\n return () => {\r\n hideFooter(false);\r\n };\r\n }, [])\r\n );\r\n const genderRef = React.useRef(refStub);\r\n const ethnicityRef = React.useRef(refStub);\r\n\r\n const getDropdownY = (position: number) => 4 + 60 * position + 10 * (position - 1);\r\n /**\r\n * Handle the global clicking events and hide all dropdowns\r\n */\r\n const handleBlur = () => {\r\n genderRef.current.hide();\r\n ethnicityRef.current.hide();\r\n };\r\n\r\n const isFormValid = () => firstName && lastName && gender && ethnicity && doB;\r\n\r\n const emailValidation = (email: string | null) => {\r\n // eslint-disable-next-line no-useless-escape\r\n const reg =\r\n /^(([^<>()[\\]\\\\.,;:\\s@\"]+(\\.[^<>()[\\]\\\\.,;:\\s@\"]+)*)|(\".+\"))@((\\[[0-9]{1,3}\\.[0-9]{1,3}\\.[0-9]{1,3}\\.[0-9]{1,3}\\])|(([a-zA-Z\\-0-9]+\\.)+[a-zA-Z]{2,}))$/;\r\n if (email && !reg.test(email!)) {\r\n Logger.debug('Email is Not Correct');\r\n setBadEmail(true);\r\n } else {\r\n submitForm();\r\n }\r\n };\r\n\r\n const handleOpenActivity = (activityId: string) => {\r\n Logger.debug(`Screen -> ActivitiesScreen -> handleOpenActivity: Navigating to activity ${activityId}`);\r\n setFirstName('');\r\n setLastName('');\r\n setGender('');\r\n setEthnicity('');\r\n setDoB('');\r\n setPhone(null);\r\n setEmail(null);\r\n navigation.navigate('ActivitiesStack', {\r\n screen: 'ActivityDetails',\r\n params: { activityId },\r\n });\r\n };\r\n const submitForm = async () => {\r\n Logger.debug('Submitting the form now');\r\n const user: User = userId\r\n ? {\r\n userId,\r\n firstName,\r\n lastName,\r\n phone,\r\n gender,\r\n ethnicity,\r\n doB: doB ? DateTime.fromISO(doB).toFormat('yyyy-MM-dd') : undefined,\r\n }\r\n : {\r\n firstName,\r\n lastName,\r\n phone,\r\n gender,\r\n ethnicity,\r\n doB: doB ? DateTime.fromISO(doB).toFormat('yyyy-MM-dd') : undefined,\r\n };\r\n\r\n if (email && email.length > 0) {\r\n user.email = email;\r\n }\r\n try {\r\n userId ? await dispatch(patchUserWhanau(user)) : await dispatch(postUserWhanau(user));\r\n dispatch(getUserWhanau());\r\n activityId ? handleOpenActivity(activityId) : openDetails(false);\r\n } catch (e) {\r\n Logger.debug(`Error occurred: ${e.message}`);\r\n }\r\n };\r\n\r\n return (\r\n \r\n \r\n \r\n setFirstName(firstName)}\r\n label={i18n.t('components.DetailsFragment.firstName')}\r\n />\r\n setLastName(lastName)}\r\n label={i18n.t('components.DetailsFragment.surname')}\r\n />\r\n {\r\n setGender(gender);\r\n }}\r\n onActive={handleBlur}\r\n dropdownStyle={{\r\n left: 32,\r\n top: getDropdownY(3),\r\n }}\r\n />\r\n {\r\n setEthnicity(ethnicity);\r\n }}\r\n onActive={handleBlur}\r\n dropdownStyle={{\r\n left: 32,\r\n top: getDropdownY(4),\r\n }}\r\n />\r\n setDoB(date)}\r\n value={doB}\r\n placeholder={i18n.t('components.DetailsFragment.dob')}\r\n onActive={handleBlur}\r\n />\r\n setEmail(email)}\r\n label={`${i18n.t('components.DetailsFragment.email')} (${i18n.t('components.DetailsFragment.optional')})`}\r\n />\r\n setPhone(phone)}\r\n label={`${i18n.t('components.DetailsFragment.mobile')} (${i18n.t('components.DetailsFragment.optional')})`}\r\n keyboardType=\"numeric\"\r\n />\r\n emailValidation(email)}\r\n containerStyle={styles.submitButton}\r\n />\r\n \r\n \r\n \r\n \r\n \r\n \r\n setBadEmail(false)}>\r\n Email not valid\r\n \r\n \r\n );\r\n};\r\nexport default AddWhanauFragment;\r\n","import React, { Dispatch, SetStateAction, useState } from 'react';\r\nimport { View, StyleSheet } from 'react-native';\r\nimport { Colors } from '../../../../constants/Colors';\r\nimport Backbutton from '../../../../components/Backbutton';\r\nimport AddWhanauFragment from './AddWhanauFragment';\r\nimport { User } from '../../../../constants/Interfaces';\r\nimport Layout from '../../../../constants/Layout';\r\nimport SectionButton from '../../../../components/buttons/SectionButton';\r\nimport i18n from '../../../../translations';\r\nimport EditPhoto from '../../../../components/EditPhoto';\r\nimport UserActivities from '../../../../components/UserActivities';\r\nimport { Heading } from '../../../../components/StyledText';\r\n\r\ninterface WhanauDetailsProps {\r\n user?: User;\r\n openDetails: Dispatch>;\r\n activityId?: string;\r\n hideFooter: Function;\r\n isAddWhanau?: boolean;\r\n}\r\nconst whanauDetailsFragment = ({\r\n openDetails,\r\n user,\r\n activityId = undefined,\r\n hideFooter,\r\n isAddWhanau = false,\r\n}: WhanauDetailsProps) => {\r\n const [active, setActive] = useState(1);\r\n\r\n return (\r\n \r\n \r\n \r\n openDetails(false)} />\r\n {!user?.userId && (\r\n {i18n.t('components.ProfileFragment.addWhanau')}\r\n )}\r\n {user?.userId && (\r\n \r\n \r\n \r\n )}\r\n \r\n \r\n {active === 1 && (\r\n \r\n )}\r\n {active === 2 && }\r\n {active === 3 && }\r\n \r\n );\r\n};\r\n\r\nconst WhanauDetailsNav = ({ active, setActive }) => (\r\n \r\n setActive(1)}\r\n />\r\n setActive(2)}\r\n />\r\n setActive(3)}\r\n />\r\n \r\n);\r\n\r\nexport default whanauDetailsFragment;\r\n\r\nconst styles = StyleSheet.create({\r\n root: {\r\n width: Layout.window.width,\r\n alignContent: 'center',\r\n },\r\n headerContainer: {\r\n paddingHorizontal: '6%',\r\n flexDirection: 'column',\r\n width: '100%',\r\n justifyContent: 'center',\r\n alignContent: 'center',\r\n },\r\n header: {\r\n flexDirection: 'row',\r\n alignItems: 'center',\r\n width: '100%',\r\n paddingVertical: 5,\r\n paddingHorizontal: 15,\r\n },\r\n titleContainer: {\r\n width: '100%',\r\n alignItems: 'center',\r\n },\r\n headerTitle: {\r\n textAlign: 'center',\r\n color: Colors.white,\r\n marginHorizontal: Layout.window.width / 5 - 15,\r\n },\r\n\r\n navbar: {\r\n width: '100%',\r\n alignSelf: 'center',\r\n flexDirection: 'row',\r\n justifyContent: 'center',\r\n alignItems: 'center',\r\n },\r\n});\r\n","import React, { useState } from 'react';\r\nimport { View, StyleSheet } from 'react-native';\r\nimport { Colors } from '../../../../constants/Colors';\r\nimport PrimaryButton from '../../../../components/buttons/PrimaryButton';\r\nimport { User } from '../../../../constants/Interfaces';\r\nimport Layout from '../../../../constants/Layout';\r\nimport MyWhanauListFragment from './MyWhanauListFragment';\r\nimport WhanauDetailsFragment from './WhanauDetailsFragment';\r\nimport i18n from '../../../../translations';\r\n\r\ninterface MyWhanauFragmentProps {\r\n activityId?: string;\r\n hideFooter: Function;\r\n}\r\n\r\nconst MyWhanauFragment = ({ activityId = undefined, hideFooter }: MyWhanauFragmentProps) => {\r\n const [showNewWhanau, setShowNewWhanau] = useState(!!activityId || false);\r\n const [whanauDetails, setWhanauDetails] = useState(false);\r\n const [whanauSelected, setWhanauSelected] = useState({});\r\n\r\n const handleWhanauSelected = (user: User) => {\r\n setWhanauSelected(user);\r\n };\r\n\r\n return (\r\n \r\n {!showNewWhanau && !whanauDetails && (\r\n <>\r\n setShowNewWhanau(true)}\r\n textStyle={{ color: Colors.white }}\r\n buttonStyle={styles.button}\r\n />\r\n \r\n \r\n \r\n \r\n )}\r\n {showNewWhanau && (\r\n \r\n )}\r\n\r\n {whanauDetails && (\r\n \r\n )}\r\n \r\n );\r\n};\r\nexport default MyWhanauFragment;\r\n\r\nconst styles = StyleSheet.create({\r\n root: {\r\n alignItems: 'center',\r\n width: Layout.window.width,\r\n },\r\n button: {\r\n height: 45,\r\n width: 200,\r\n borderRadius: 28,\r\n },\r\n listContainer: {\r\n height: Layout.window.height - 346,\r\n width: '100%',\r\n paddingHorizontal: '6%',\r\n },\r\n});\r\n","import React, { useState } from 'react';\r\nimport { View, StyleSheet, Image } from 'react-native';\r\nimport { SplitButton } from '../../../../components/buttons/SplitButton';\r\nimport { UIText } from '../../../../components/StyledText';\r\nimport { Colors } from '../../../../constants/Colors';\r\nimport Fonts from '../../../../constants/Fonts';\r\nimport i18n from '../../../../translations';\r\nimport * as Updates from 'expo-updates';\r\nimport AsyncStorage from '@react-native-async-storage/async-storage';\r\nimport Logger from '../../../../constants/Logger';\r\nimport ModalUI from '../../../../components/ModalUI';\r\n\r\nconst LanguageFragment = () => {\r\n const language = i18n.locale;\r\n const [active, setActive] = useState(false);\r\n\r\n const saveLanguage = async (language: string) => {\r\n try {\r\n await AsyncStorage.setItem('language', language);\r\n } catch (e) {\r\n Logger.error(`Error changing the language`, e);\r\n throw e;\r\n }\r\n };\r\n\r\n const handleEnglish = async () => {\r\n if (language !== 'en') {\r\n await saveLanguage('en');\r\n setActive(true);\r\n }\r\n };\r\n\r\n const handleMaori = async () => {\r\n if (language !== 'mi') {\r\n await saveLanguage('mi');\r\n setActive(true);\r\n }\r\n };\r\n\r\n return (\r\n <>\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n {i18n.t('components.LanguageFragment.language')}\r\n \r\n \r\n \r\n \r\n ),\r\n }}\r\n iconRight={{\r\n left: (\r\n \r\n \r\n \r\n ),\r\n }}\r\n backgroundColorLeft={Colors.darkBurgundy}\r\n backgroundColorRight={Colors.yellow}\r\n labelLeft={i18n.t('components.LanguageFragment.english')}\r\n labelRight={i18n.t('components.LanguageFragment.maori')}\r\n labelColorRight={Colors.darkBurgundy}\r\n labelColorLeft={Colors.yellow}\r\n borderColor={Colors.yellow}\r\n onPressLeft={handleEnglish}\r\n onPressRight={handleMaori}\r\n leftRightRatio={0.85}\r\n leftContainerStyles={{ paddingLeft: 10 }}\r\n rigthContainerStyles={{ justifyContent: 'flex-start', paddingLeft: 10 }}\r\n />\r\n \r\n setActive(false)}>\r\n {i18n.t('components.LanguageFragment.confirmReset')}\r\n setActive(false)}\r\n onPressRight={() => Updates.reloadAsync()}\r\n />\r\n \r\n \r\n );\r\n};\r\n\r\nexport default LanguageFragment;\r\n\r\nconst styles = StyleSheet.create({\r\n root: {\r\n marginHorizontal: '6%',\r\n },\r\n note: {\r\n flexDirection: 'row',\r\n justifyContent: 'center',\r\n alignItems: 'center',\r\n backgroundColor: Colors.white,\r\n borderRadius: 5,\r\n width: '100%',\r\n paddingHorizontal: 5,\r\n paddingVertical: 15,\r\n marginTop: 20,\r\n marginBottom: 25,\r\n },\r\n noteIconContainer: {\r\n backgroundColor: Colors.white,\r\n borderRadius: 20,\r\n width: 30,\r\n height: 30,\r\n justifyContent: 'center',\r\n alignItems: 'center',\r\n marginLeft: 10,\r\n borderWidth: 2,\r\n borderColor: Colors.black,\r\n },\r\n noteIcon: {\r\n height: 20,\r\n width: 20,\r\n },\r\n noteLabel: {\r\n paddingHorizontal: 10,\r\n width: '90%',\r\n },\r\n noteText: {\r\n color: Colors.white,\r\n fontSize: Fonts.sizes.medium,\r\n },\r\n buttonLeftIcon: {\r\n width: 30,\r\n height: 30,\r\n marginRight: 5,\r\n },\r\n iconContainer: {\r\n width: 25,\r\n height: 25,\r\n justifyContent: 'center',\r\n alignItems: 'center',\r\n borderWidth: 2,\r\n borderColor: Colors.black,\r\n borderRadius: 25,\r\n paddingBottom: 5,\r\n marginRight: 5,\r\n },\r\n buttonRightIcon: {\r\n width: 30,\r\n height: 30,\r\n resizeMode: 'contain',\r\n },\r\n modalMessage: {\r\n marginBottom: 15,\r\n alignSelf: 'center',\r\n },\r\n});\r\n","import { useFocusEffect } from '@react-navigation/native';\r\nimport { useCallback } from 'react';\r\nimport { useDispatch, useSelector } from 'react-redux';\r\nimport { AuthState, User } from '../constants/Interfaces';\r\nimport { isAccessTokenValid } from '../reducers/authentication.slice';\r\nimport { getUser } from '../reducers/user.slice';\r\n\r\nexport default function useLogoutUser() {\r\n // token\r\n const authState: AuthState = useSelector((state: any) => state.authentication.authState);\r\n // if user exists, considered logged in\r\n const user: User = useSelector((state: any) => state.user.user);\r\n const dispatch = useDispatch();\r\n\r\n useFocusEffect(\r\n useCallback(() => {\r\n const isAuthenticated = isAccessTokenValid(authState);\r\n const isLoggedOut = !authState;\r\n if (user && !isAuthenticated && !isLoggedOut) {\r\n console.debug('useLogoutUser: User token has expired, trying token refresh.');\r\n // fire an api call. If the token is unusable this will trigger a logout within refreshToken\r\n dispatch(getUser());\r\n }\r\n }, [])\r\n );\r\n}\r\n","import * as React from 'react';\r\nimport { Image, ImageBackground, StyleSheet } from 'react-native';\r\nimport HeaderBar from '../../components/HeaderBar';\r\nimport { View } from '../../components/Themed';\r\nimport { HeadingItem } from '../../components/HeadingItem';\r\nimport i18n from '../../translations';\r\nimport Layout from '../../constants/Layout';\r\nimport MyMaraeFragment from './fragments/MyMarae/MyMaraeFragment';\r\nimport { useSelector } from 'react-redux';\r\nimport { User } from '../../constants/Interfaces';\r\nimport { Colors } from '../../constants/Colors';\r\nimport BottomBanner from '../../components/BottomBanner';\r\nimport { ProfileFragment } from './fragments/Profile/ProfileFragment';\r\nimport MyWhanauFragment from './fragments/MyWhanau/MyWhanauFragment';\r\nimport LanguageFragment from './fragments/Language/LanguageFragment';\r\nimport useLogoutUser from '../../hooks/useLogoutUser';\r\n\r\nexport const ProfileScreen = ({ navigation, route }) => {\r\n const [index, setIndex] = React.useState(0);\r\n const user: User = useSelector((state: any) => state.user.user);\r\n const whanau: User[] = useSelector((state: any) => state.user.whanau);\r\n const [tip, setTip] = React.useState(undefined);\r\n const [hideFooter, setHideFooter] = React.useState(false);\r\n\r\n useLogoutUser();\r\n const styles = StyleSheet.create({\r\n root: {\r\n flex: 1,\r\n alignItems: 'center',\r\n backgroundColor: hideFooter ? Colors.white : Colors.darkBurgundy,\r\n width: Layout.window.width,\r\n height: Layout.window.height,\r\n },\r\n header: {\r\n width: '100%',\r\n height: 100,\r\n backgroundColor: Colors.yellow,\r\n },\r\n headingContainer: {\r\n flexDirection: 'row',\r\n alignItems: 'center',\r\n justifyContent: 'space-around',\r\n paddingHorizontal: 25,\r\n paddingBottom: 8,\r\n width: Layout.window.width,\r\n },\r\n body: {\r\n justifyContent: 'center',\r\n alignItems: 'center',\r\n backgroundColor: Colors.darkBurgundy,\r\n },\r\n content: {\r\n backgroundColor: Colors.darkBurgundy,\r\n },\r\n divider: {\r\n paddingTop: Layout.backgroundMarginNormal.top,\r\n width: Layout.window.width - 2 * Layout.backgroundMarginNormal.left,\r\n height: 12,\r\n resizeMode: 'contain',\r\n opacity: 0.2,\r\n },\r\n imageBackground: {\r\n top: 50,\r\n height: 50,\r\n width: '100%',\r\n resizeMode: 'cover',\r\n },\r\n headerBar: {\r\n width: '100%',\r\n position: 'absolute',\r\n maxHeight: Layout.window.height,\r\n minHeight: 80,\r\n zIndex: 10,\r\n },\r\n footerContainer: {\r\n backgroundColor: 'red',\r\n height: 150,\r\n bottom: Layout.isSmallDevice || !Layout.isLongDevice ? -10 : 150,\r\n position: 'absolute',\r\n zIndex: 100,\r\n },\r\n });\r\n\r\n React.useEffect(() => {\r\n if (route?.params?.index) setIndex(route?.params?.index);\r\n }, [route?.params?.index]);\r\n\r\n const getFragment = () => {\r\n switch (index) {\r\n case 0: {\r\n return ;\r\n }\r\n case 1: {\r\n return ;\r\n }\r\n case 2: {\r\n return ;\r\n }\r\n case 3: {\r\n return ;\r\n }\r\n\r\n default: {\r\n return null;\r\n }\r\n }\r\n };\r\n const getTip = () => {\r\n if (index === 0) setTip(undefined);\r\n if (index === 2) setTip('myWhanau');\r\n if (index === 3) setTip('language');\r\n };\r\n React.useEffect(() => {\r\n getTip();\r\n }, [index]);\r\n\r\n return (\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n {\r\n setIndex(0);\r\n }}\r\n />\r\n {\r\n setIndex(1);\r\n }}\r\n />\r\n {\r\n setIndex(2);\r\n }}\r\n />\r\n {\r\n setIndex(3);\r\n }}\r\n />\r\n \r\n \r\n \r\n {getFragment()}\r\n {!hideFooter && }\r\n \r\n );\r\n};\r\n","import { ProfileScreen } from '../screens/profile/ProfileScreen';\r\nimport { SelectRegionScreen } from '../screens/profile/SelectRegionScreen';\r\nimport * as React from 'react';\r\nimport { createStackNavigator } from '@react-navigation/stack';\r\nimport { useNavigation } from '@react-navigation/native';\r\nimport { SelectMaraeScreen } from '../screens/profile/SelectMaraeScreen';\r\nimport { TipScreen } from '../screens/profile/TipScreen';\r\n\r\nconst ProfileStack = createStackNavigator();\r\n\r\nexport const ProfileNavigator = () => {\r\n const navigation = useNavigation();\r\n\r\n React.useEffect(\r\n () =>\r\n navigation.addListener('beforeRemove', () => {\r\n navigation.navigate('DashboardStack');\r\n }),\r\n []\r\n );\r\n\r\n return (\r\n \r\n \r\n \r\n \r\n \r\n \r\n );\r\n};\r\n","import * as React from 'react';\r\nimport { Activity, ActivityStats } from '../constants/Interfaces';\r\nimport { Pressable, StyleSheet, Image } from 'react-native';\r\nimport { Colors } from '../constants/Colors';\r\nimport { UIText } from './StyledText';\r\nimport Fonts from '../constants/Fonts';\r\nimport { View } from './Themed';\r\nimport i18n from '../translations';\r\nimport { useDispatch, useSelector } from 'react-redux';\r\nimport { getActivityStats } from '../reducers/activity.slice';\r\nimport { getCacheImage, validatePastActivity } from '../constants/Utils';\r\nimport Logger from '../constants/Logger';\r\nimport { useNavigation } from '@react-navigation/native';\r\n\r\ninterface ActivityTileProps {\r\n activity: Activity;\r\n onPress: (activityId: string) => void;\r\n background?: 'white' | 'red';\r\n whiteWidth?;\r\n}\r\n\r\nexport const ActivityTile = ({ activity, onPress, background = 'red', whiteWidth }: ActivityTileProps) => {\r\n const dispatch = useDispatch();\r\n const navigation = useNavigation();\r\n const activityStats: ActivityStats = useSelector((state: any) => state.activity.stats[activity.activityId]);\r\n const [activityImage, setActivityImage] = React.useState(activity?.imageUrl);\r\n const handlePress = () => {\r\n onPress(activity.activityId);\r\n };\r\n const isFocused = navigation.isFocused();\r\n React.useEffect(() => {\r\n if (isFocused) {\r\n dispatch(getActivityStats(activity?.activityId));\r\n }\r\n }, [isFocused]);\r\n const goingCount = activityStats ? activityStats.engagementTypeGoing.personTotal : 0;\r\n const isPastActivity = validatePastActivity(activity.endDate);\r\n const cacheImage = async () => {\r\n try {\r\n const uri = await getCacheImage({ activityId: activity.activityId, uri: activity.imageUrl });\r\n setActivityImage(uri);\r\n } catch (e) {\r\n Logger.debug(e);\r\n }\r\n };\r\n const participantsLabel = () => {\r\n if (isPastActivity) {\r\n return `Completed - ${goingCount} Whānau attended`;\r\n }\r\n return i18n.t('components.ActivityTile.whanaugoing', { goingCount });\r\n };\r\n React.useEffect(() => {\r\n cacheImage();\r\n }, [activity]);\r\n\r\n return (\r\n \r\n {activity && activityImage ? (\r\n \r\n ) : (\r\n \r\n )}\r\n \r\n {activity.location?.addressLine1}\r\n \r\n \r\n {activity.activityName}\r\n \r\n \r\n \r\n \r\n {participantsLabel()}\r\n \r\n \r\n \r\n );\r\n};\r\n\r\nconst styles = StyleSheet.create({\r\n container: {\r\n borderRadius: 5,\r\n padding: 8,\r\n },\r\n coverImage: {\r\n borderRadius: 5,\r\n alignSelf: 'center',\r\n resizeMode: 'cover',\r\n },\r\n imageDefaultSize: {\r\n width: 214,\r\n height: 102,\r\n marginBottom: 12,\r\n },\r\n imageAlternateSize: {\r\n width: '100%',\r\n height: 80,\r\n marginBottom: 4,\r\n },\r\n addressLabel: {\r\n color: Colors.white,\r\n marginBottom: 4,\r\n },\r\n activityName: {\r\n color: Colors.white,\r\n fontFamily: Fonts.family.bold,\r\n marginBottom: 8,\r\n flexWrap: 'wrap',\r\n overflow: 'hidden',\r\n },\r\n goingContainer: {\r\n flexDirection: 'row',\r\n alignItems: 'center',\r\n },\r\n goingLabel: {\r\n marginLeft: 6,\r\n fontSize: Fonts.sizes.mini,\r\n opacity: 0.5,\r\n },\r\n dot: {\r\n marginTop: 1,\r\n height: 4,\r\n width: 4,\r\n borderRadius: 4,\r\n },\r\n});\r\n","import * as React from 'react';\r\nimport { View } from '../../../components/Themed';\r\nimport { UIText } from '../../../components/StyledText';\r\nimport i18n from '../../../translations';\r\nimport { StyleSheet, Pressable } from 'react-native';\r\nimport Fonts from '../../../constants/Fonts';\r\n\r\ninterface RegionFilterFragmentProps {\r\n regions: string[];\r\n onSelect: (regionName: string) => void;\r\n resetOption?: Boolean;\r\n}\r\n\r\nexport const RegionFilterFragment = ({ regions, onSelect, resetOption }: RegionFilterFragmentProps) => {\r\n const handlePress = (regionName: string) => () => {\r\n onSelect(regionName);\r\n };\r\n const handleResetFilter = () => {\r\n onSelect('');\r\n };\r\n return (\r\n \r\n {i18n.t('components.RegionFilterFragment.filter')}\r\n\r\n \r\n {regions.map((region, index) => (\r\n \r\n {region}\r\n \r\n ))}\r\n {resetOption && (\r\n \r\n {i18n.t('components.RegionFilterFragment.reset')}\r\n \r\n )}\r\n \r\n \r\n );\r\n};\r\n\r\nconst styles = StyleSheet.create({\r\n container: {},\r\n title: {\r\n fontFamily: Fonts.family.bold,\r\n marginBottom: 20,\r\n },\r\n regionContainer: {\r\n flexWrap: 'wrap',\r\n maxHeight: 300,\r\n },\r\n regionItem: {\r\n width: '50%',\r\n marginBottom: 12,\r\n },\r\n regionLabel: {},\r\n resetLabel: { fontFamily: Fonts.family.bold },\r\n});\r\n","import React from 'react';\r\nimport { View, StyleSheet } from 'react-native';\r\nimport { Activity } from '../constants/Interfaces';\r\nimport Logger from '../constants/Logger';\r\nimport { ActivityTile } from './ActivityTile';\r\n\r\ninterface GridActivitiesProps {\r\n activities: Activity[];\r\n navigation;\r\n}\r\n\r\nconst GridActivities = ({ activities, navigation }: GridActivitiesProps) => {\r\n const sortedActivities = [...activities].sort(() => Math.random() - 0.5);\r\n\r\n const handleOpenActivity = (activityId: string) => {\r\n Logger.debug(`Screen -> ActivitiesScreen -> handleOpenActivity: Navigating to activity ${activityId}`);\r\n navigation.navigate('ActivityDetails', {\r\n activityId,\r\n });\r\n };\r\n\r\n return (\r\n \r\n {sortedActivities.map((item) => (\r\n \r\n ))}\r\n \r\n );\r\n};\r\n\r\nexport default GridActivities;\r\nconst styles = StyleSheet.create({\r\n grid: {\r\n flexDirection: 'row',\r\n width: '100%',\r\n overflow: 'hidden',\r\n flexWrap: 'wrap',\r\n justifyContent: 'space-between',\r\n },\r\n});\r\n","import React, { useEffect, useRef } from 'react';\r\nimport { View, StyleSheet, Animated, ImageBackground, RefreshControl, Image, Platform } from 'react-native';\r\nimport { Colors } from '../constants/Colors';\r\nimport HeaderBar from './HeaderBar';\r\nimport BottomBanner from './BottomBanner';\r\nimport Layout from '../constants/Layout';\r\n\r\ninterface RefreshHolderProps {\r\n children;\r\n navigation;\r\n refresh;\r\n footerColor?: 'red';\r\n backgroundColorContent?: 'white';\r\n footerOff?: boolean;\r\n}\r\n\r\nconst RefreshHolder = ({\r\n children,\r\n navigation,\r\n refresh,\r\n footerColor,\r\n backgroundColorContent,\r\n footerOff = false,\r\n}: RefreshHolderProps) => {\r\n const { yellow, darkBurgundy } = Colors;\r\n const scrollPosition = useRef(new Animated.Value(0)).current;\r\n const [refreshing, setRefreshing] = React.useState(false);\r\n const isIOS = Platform.OS === 'ios';\r\n const animatedValues = () => (isIOS ? 5 * 18 : 5 * 16);\r\n const minHeaderHeight = 60;\r\n\r\n const headerHeight = scrollPosition.interpolate({\r\n inputRange: [-100, 0, 200],\r\n outputRange: [300, 300, 10],\r\n extrapolate: 'extend',\r\n });\r\n\r\n const headerBarHeight = scrollPosition.interpolate({\r\n inputRange: [-100, 0, 200, 2000],\r\n outputRange: [80, 80, minHeaderHeight, minHeaderHeight],\r\n extrapolate: 'extend',\r\n });\r\n const ellipseHeight = scrollPosition.interpolate({\r\n inputRange: [-2000, 0, 200, 2000],\r\n outputRange: [60, 60, 30, 30],\r\n extrapolateLeft: 'identity',\r\n extrapolateRight: 'extend',\r\n });\r\n const imagePosition = scrollPosition.interpolate({\r\n inputRange: [-2000, 0, 200, 2000],\r\n outputRange: [10, 10, 20, 20],\r\n extrapolateLeft: 'identity',\r\n extrapolateRight: 'extend',\r\n });\r\n const backgroundColorHeader = scrollPosition.interpolate({\r\n inputRange: [-2000, 0, 100, 2000],\r\n outputRange: [yellow, yellow, darkBurgundy, darkBurgundy],\r\n extrapolateLeft: 'identity',\r\n extrapolateRight: 'clamp',\r\n });\r\n\r\n const opacityImage = scrollPosition.interpolate({\r\n inputRange: [0, 100, 2000],\r\n outputRange: [1, 0, 0],\r\n extrapolateRight: 'clamp',\r\n });\r\n const opacityProfileFetch = scrollPosition.interpolate({\r\n inputRange: [-200, 0, animatedValues()],\r\n outputRange: [1, 1, 1],\r\n extrapolateRight: 'clamp',\r\n });\r\n\r\n useEffect(() => {\r\n const unsubscribe = navigation.addListener('focus', () => {\r\n onRefresh();\r\n });\r\n return unsubscribe;\r\n }, [navigation]);\r\n\r\n const onRefresh = React.useCallback(async () => {\r\n setRefreshing(true);\r\n await refresh();\r\n setRefreshing(false);\r\n }, []);\r\n\r\n const showFooter = () => {\r\n if (footerOff) {\r\n return <>;\r\n }\r\n if (footerColor) {\r\n return (\r\n <>\r\n \r\n \r\n \r\n );\r\n }\r\n return ;\r\n };\r\n return (\r\n <>\r\n \r\n \r\n \r\n }\r\n onScroll={Animated.event(\r\n [\r\n {\r\n nativeEvent: {\r\n contentOffset: {\r\n y: scrollPosition,\r\n },\r\n },\r\n },\r\n ],\r\n {\r\n useNativeDriver: false,\r\n }\r\n )}\r\n >\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n {children}\r\n \r\n \r\n \r\n \r\n {showFooter()}\r\n \r\n );\r\n};\r\n\r\nexport default RefreshHolder;\r\n\r\nconst styles = StyleSheet.create({\r\n scrollView: {\r\n backgroundColor: Colors.darkBurgundy,\r\n },\r\n heroImage: {\r\n backgroundColor: Colors.darkBurgundy,\r\n },\r\n imageBackground: {\r\n flex: 1,\r\n },\r\n ViewContainer: {\r\n minHeight: '100%',\r\n backgroundColor: Colors.darkBurgundy,\r\n },\r\n scrollViewContainer: {\r\n backgroundColor: Colors.darkBurgundy,\r\n minHeight: Layout.window.height + 150,\r\n },\r\n handleBar: {\r\n backgroundColor: Colors.handleBar,\r\n height: 4,\r\n width: 80,\r\n borderRadius: 50,\r\n alignSelf: 'center',\r\n marginVertical: 10,\r\n },\r\n\r\n bottomImage: {\r\n position: 'absolute',\r\n bottom: 20,\r\n width: Layout.window.width,\r\n height: 105,\r\n resizeMode: 'contain',\r\n backgroundColor: Colors.white,\r\n },\r\n});\r\n","import * as React from 'react';\r\nimport { FlatList, Image, Pressable, StyleSheet } from 'react-native';\r\nimport { Activity, AuthState, User } from '../../constants/Interfaces';\r\nimport { useSelector } from 'react-redux';\r\nimport Logger from '../../constants/Logger';\r\nimport { Heading, UIText } from '../../components/StyledText';\r\nimport { View } from '../../components/Themed';\r\nimport i18n from '../../translations';\r\nimport { Colors } from '../../constants/Colors';\r\nimport Fonts from '../../constants/Fonts';\r\nimport { MaterialCommunityIcons } from '@expo/vector-icons';\r\nimport Layout from '../../constants/Layout';\r\nimport { ActivityTile } from '../../components/ActivityTile';\r\nimport ModalUI from '../../components/ModalUI';\r\nimport { RegionFilterFragment } from './fragments/RegionFilterFragment';\r\nimport { selectRegion } from '../../reducers/region.slice';\r\nimport GridActivities from '../../components/GridActivities';\r\nimport { getActivities, getUserActivities } from '../../reducers/activity.slice';\r\nimport RefreshHolder from '../../components/RefreshHolder';\r\nimport useLogoutUser from '../../hooks/useLogoutUser';\r\nimport { validatePastActivity } from '../../constants/Utils';\r\nimport { useAppDispatch } from '../../store/configureStore';\r\n\r\nexport const ActivitiesScreen = ({ navigation }) => {\r\n const dispatch = useAppDispatch();\r\n const filterRegion: string = useSelector((state: any) => state.region.selectedRegion);\r\n const regions: string[] = useSelector((state: any) => state.region.regions);\r\n const activities: Activity[] = useSelector((state: any) => state.activity.activities);\r\n const user: User = useSelector((state: any) => state.user.user);\r\n const authState: AuthState = useSelector((state: any) => state.authentication.authState);\r\n const [showModal, setShowModal] = React.useState(false);\r\n const filteredActivities = filterRegion\r\n ? activities.filter((activity) => activity?.location?.regionName === filterRegion)\r\n : activities;\r\n\r\n const sortedActivities: Activity[] = [...filteredActivities]\r\n // eslint-disable-next-line no-nested-ternary\r\n .sort((a, b) => (a.created! < b.created! ? 1 : b.created! < a.created! ? -1 : 0))\r\n .filter((activity) => !validatePastActivity(activity.endDate));\r\n\r\n const handleOpenActivity = (activityId: string) => {\r\n Logger.debug(`Screen -> ActivitiesScreen -> handleOpenActivity: Navigating to activity ${activityId}`);\r\n navigation.navigate('ActivityDetails', {\r\n activityId,\r\n });\r\n };\r\n\r\n const handleRegionToggle = () => {\r\n Logger.debug(`Region toggle clicked. `);\r\n navigation.navigate('SelectRegion', {\r\n regionFilter: 'activities',\r\n });\r\n };\r\n\r\n const handleRegionSelection = (regionName: string) => {\r\n dispatch(selectRegion(regionName));\r\n setShowModal(false);\r\n };\r\n\r\n useLogoutUser();\r\n\r\n const renderItem = ({ item }: { item: Activity }) => ;\r\n\r\n const handleRefresh = async () => {\r\n await dispatch(getActivities(authState));\r\n if (user) {\r\n await dispatch(getUserActivities());\r\n }\r\n };\r\n return (\r\n \r\n \r\n \r\n {i18n.t('pages.ActivitiesScreen.title')}\r\n \r\n \r\n {filterRegion || i18n.t('pages.ActivitiesScreen.noRegion')}\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n {i18n.t('pages.ActivitiesScreen.recentlyListed')}\r\n \r\n \r\n ({ length: 200, offset: 200 * index, index })}\r\n keyExtractor={(item) => item.activityId}\r\n />\r\n \r\n \r\n {i18n.t('pages.ActivitiesScreen.roheActivities')}\r\n {activities && (\r\n Math.random() - 0.5)}\r\n navigation={navigation}\r\n />\r\n )}\r\n \r\n \r\n\r\n setShowModal(false)} toggle={showModal} contentContainerStyle={styles.modal}>\r\n \r\n \r\n \r\n );\r\n};\r\n\r\nconst styles = StyleSheet.create({\r\n root: {\r\n minHeight: Layout.window.height + 180,\r\n backgroundColor: Colors.transparent,\r\n paddingHorizontal: Layout.backgroundMarginNarrow.left,\r\n paddingBottom: 150,\r\n },\r\n title: {\r\n color: Colors.white,\r\n fontSize: Fonts.sizes.smallHeading,\r\n },\r\n regionContainer: {\r\n flexDirection: 'row',\r\n alignItems: 'center',\r\n justifyContent: 'space-between',\r\n borderBottomWidth: 1,\r\n paddingBottom: 8,\r\n borderBottomColor: Colors.yellow,\r\n },\r\n region: {\r\n color: Colors.white,\r\n fontSize: Fonts.sizes.smallHeading,\r\n },\r\n filterIconContainer: {\r\n backgroundColor: Colors.yellow,\r\n justifyContent: 'center',\r\n alignItems: 'center',\r\n borderRadius: 100,\r\n width: 30,\r\n height: 30,\r\n },\r\n filterIcon: {\r\n width: 20,\r\n height: 20,\r\n resizeMode: 'contain',\r\n },\r\n recentActivitiesContainer: {\r\n marginVertical: 12,\r\n },\r\n recentTitle: {\r\n color: Colors.yellow,\r\n marginBottom: 12,\r\n },\r\n subTitle: {\r\n color: Colors.white,\r\n },\r\n recentTitleContainer: {\r\n flexDirection: 'row',\r\n justifyContent: 'space-between',\r\n alignItems: 'center',\r\n marginBottom: 12,\r\n },\r\n bottomHalfContainer: {},\r\n searchContainer: {\r\n width: '45%',\r\n },\r\n searchInnerContainer: {\r\n height: 200,\r\n marginRight: 12,\r\n marginTop: 12,\r\n backgroundColor: Colors.white,\r\n borderRadius: 5,\r\n paddingTop: 16,\r\n paddingHorizontal: Layout.backgroundMarginNarrow.left,\r\n },\r\n searchItemContainer: {\r\n flexDirection: 'row',\r\n marginBottom: 18,\r\n },\r\n countContainer: {\r\n backgroundColor: Colors.yellow,\r\n width: 18,\r\n height: 18,\r\n borderRadius: 18,\r\n alignItems: 'center',\r\n justifyContent: 'center',\r\n },\r\n count: {\r\n fontSize: Fonts.sizes.mini,\r\n fontFamily: Fonts.family.bold,\r\n color: Colors.darkBurgundy,\r\n },\r\n modal: {\r\n maxHeight: 400,\r\n },\r\n});\r\n","import * as React from 'react';\r\nimport { StyleSheet } from 'react-native';\r\nimport { View } from './Themed';\r\nimport { UIText } from './StyledText';\r\nimport Fonts from '../constants/Fonts';\r\nimport Layout from '../constants/Layout';\r\n\r\ninterface DetailItemProps {\r\n label: string;\r\n description?: string | any | null;\r\n}\r\n\r\nexport const DetailItem = ({ label, description = '' }: DetailItemProps) => (\r\n \r\n \r\n {label}\r\n \r\n \r\n {typeof description === 'string' ? {description} : description}\r\n \r\n \r\n);\r\n\r\nconst styles = StyleSheet.create({\r\n container: {\r\n paddingHorizontal: Layout.backgroundMarginNormal.left,\r\n paddingBottom: 24,\r\n },\r\n labelContainer: {\r\n flexDirection: 'row',\r\n alignItems: 'center',\r\n },\r\n label: {\r\n fontFamily: Fonts.family.bold,\r\n },\r\n iconContainer: {\r\n width: 28,\r\n },\r\n descriptionContainer: {\r\n paddingTop: 4,\r\n },\r\n});\r\n","import * as React from 'react';\r\nimport { Pressable, StyleSheet } from 'react-native';\r\nimport { View } from './Themed';\r\nimport Modal from 'react-native-modal';\r\nimport { MaterialIcons } from '@expo/vector-icons';\r\nimport { Colors } from '../constants/Colors';\r\n\r\ninterface ActionModalProps {\r\n children: any;\r\n visible: boolean;\r\n onModalClose: () => void;\r\n height?: number;\r\n bgColor?: 'yellow' | 'white';\r\n closeIcon?: boolean;\r\n propagateSwipe?: boolean;\r\n}\r\n\r\nexport const ActionModal = ({\r\n children,\r\n visible = false,\r\n onModalClose,\r\n height = 600,\r\n bgColor = 'white',\r\n closeIcon = true,\r\n propagateSwipe = false,\r\n}: ActionModalProps) => {\r\n const handleCloseModal = () => {\r\n onModalClose();\r\n };\r\n\r\n return (\r\n \r\n \r\n \r\n \r\n \r\n {closeIcon && (\r\n \r\n \r\n \r\n )}\r\n \r\n {children}\r\n \r\n \r\n \r\n );\r\n};\r\n\r\nconst styles = StyleSheet.create({\r\n modalContainer: {\r\n justifyContent: 'flex-end',\r\n margin: 0,\r\n zIndex: 1000,\r\n },\r\n modal: {\r\n width: '100%',\r\n borderTopStartRadius: 50,\r\n borderTopEndRadius: 50,\r\n paddingVertical: 15,\r\n },\r\n modalContentContainer: {\r\n marginTop: 20,\r\n flex: 1,\r\n },\r\n close: {\r\n position: 'absolute',\r\n top: 20,\r\n right: 20,\r\n },\r\n heading: {\r\n marginTop: 50,\r\n marginBottom: 20,\r\n },\r\n grabHandleContainer: {\r\n height: 12,\r\n alignItems: 'center',\r\n justifyContent: 'center',\r\n },\r\n grabHandle: {\r\n width: 80,\r\n height: 5,\r\n borderRadius: 2.5,\r\n backgroundColor: Colors.lightGrey,\r\n },\r\n});\r\n","import * as React from 'react';\r\nimport { StyleSheet } from 'react-native';\r\nimport { View } from '../../../components/Themed';\r\nimport { Heading, Paragraph, UIText } from '../../../components/StyledText';\r\nimport i18n from '../../../translations';\r\nimport Fonts from '../../../constants/Fonts';\r\nimport { MaterialIcons } from '@expo/vector-icons';\r\nimport { Colors } from '../../../constants/Colors';\r\nimport Layout from '../../../constants/Layout';\r\nimport { User } from '../../../constants/Interfaces';\r\nimport MyWhanauListFragment from '../../profile/fragments/MyWhanau/MyWhanauListFragment';\r\nimport { useNavigation } from '@react-navigation/native';\r\nimport SecondaryButton from '../../../components/buttons/SecondaryButton';\r\nimport PrimaryButton from '../../../components/buttons/PrimaryButton';\r\n\r\ninterface TakeWhanauFragmentProps {\r\n onNext: () => void;\r\n onBack: () => void;\r\n toggleWhanau: (user: User) => void;\r\n selectedWhanaus: User[];\r\n activityId?: string;\r\n}\r\n\r\nexport const TakeWhanauFragment = ({\r\n onNext,\r\n onBack,\r\n toggleWhanau,\r\n selectedWhanaus = [],\r\n activityId,\r\n}: TakeWhanauFragmentProps) => {\r\n const handleSelected = (user: User) => {\r\n toggleWhanau(user);\r\n };\r\n const navigation = useNavigation();\r\n\r\n return (\r\n \r\n \r\n {i18n.t('components.TakeWhanauFragment.step', {\r\n currentStep: 1,\r\n totalSteps: 3,\r\n })}\r\n \r\n {i18n.t('components.TakeWhanauFragment.title')}\r\n {i18n.t('components.TakeWhanauFragment.instruction')}\r\n\r\n {\r\n onBack();\r\n navigation.navigate('ProfileStack', {\r\n screen: 'Profile',\r\n params: { index: 2, activityId },\r\n });\r\n }}\r\n title={i18n.t('components.TakeWhanauFragment.addWhanau')}\r\n />\r\n \r\n }\r\n title={i18n.t('components.TakeWhanauFragment.next')}\r\n />\r\n\r\n \r\n {}}\r\n onSelect={handleSelected}\r\n selectedWhanaus={selectedWhanaus}\r\n selection\r\n />\r\n \r\n \r\n );\r\n};\r\n\r\nconst styles = StyleSheet.create({\r\n container: {\r\n alignItems: 'center',\r\n paddingHorizontal: Layout.backgroundMarginNormal.left,\r\n },\r\n actionButtonContainer: {\r\n marginHorizontal: 20,\r\n marginBottom: 15,\r\n },\r\n step: {\r\n fontSize: Fonts.sizes.small,\r\n },\r\n title: {\r\n paddingVertical: 14,\r\n fontSize: Fonts.sizes.smallHeading,\r\n },\r\n instruction: {\r\n fontSize: Fonts.sizes.medium,\r\n textAlign: 'center',\r\n paddingBottom: 15,\r\n },\r\n buttonIcon: {\r\n paddingTop: 2,\r\n },\r\n buttonIconLeft: {\r\n paddingRight: 8,\r\n },\r\n buttonIconRight: {\r\n paddingLeft: 8,\r\n },\r\n listContainer: {\r\n width: '90%',\r\n height: 400,\r\n },\r\n});\r\n","/* eslint-disable no-nested-ternary */\r\nimport * as React from 'react';\r\nimport { View } from '../../../components/Themed';\r\nimport { Heading, Paragraph, UIText } from '../../../components/StyledText';\r\nimport i18n from '../../../translations';\r\nimport { Colors } from '../../../constants/Colors';\r\nimport { MaterialIcons } from '@expo/vector-icons';\r\nimport { SplitButton } from '../../../components/buttons/SplitButton';\r\nimport { StyleSheet } from 'react-native';\r\nimport Layout from '../../../constants/Layout';\r\nimport Fonts from '../../../constants/Fonts';\r\nimport { Activity, User, UserMarae } from '../../../constants/Interfaces';\r\nimport ModalUI from '../../../components/ModalUI';\r\nimport MyMaraeListFragment from '../../profile/fragments/MyMarae/MyMaraeListFragment';\r\n\r\ninterface ChooseMaraeFragmentProps {\r\n onNext: () => void;\r\n onBack: () => void;\r\n toggleMarae: (userMarae: UserMarae) => void;\r\n selectedWhanaus: User[];\r\n selectedMaraes: UserMarae[];\r\n activity: Activity;\r\n}\r\n\r\nexport const ChooseMaraeFragment = ({\r\n onNext,\r\n onBack,\r\n selectedWhanaus,\r\n selectedMaraes,\r\n toggleMarae,\r\n activity,\r\n}: ChooseMaraeFragmentProps) => {\r\n const [modalVisible, setModalVisible] = React.useState(false);\r\n const language = i18n.locale;\r\n\r\n const handleSelected = (userMarae: UserMarae) => {\r\n toggleMarae(userMarae);\r\n };\r\n\r\n const handleNext = () => {\r\n if (selectedMaraes.length !== 1) {\r\n setModalVisible(true);\r\n return;\r\n }\r\n onNext();\r\n };\r\n\r\n const getWhanauNames = (whanaus: User[]) => {\r\n const whanauList = whanaus.slice(0, 6);\r\n if (whanaus.length === 1) {\r\n return language === 'en' ? whanauList[0].firstName : `kōrua ko ${whanauList[0].firstName} `;\r\n }\r\n if (whanaus.length === 2) {\r\n return i18n.t('components.ChooseMaraeFragment.twoWhanau', {\r\n first: whanaus[0].firstName,\r\n second: whanaus[1].firstName,\r\n });\r\n }\r\n let result = '';\r\n\r\n for (let i = 0; i < whanauList.length; i += 1) {\r\n if (language === 'mi' && i === 0) {\r\n result += `koutou ko `;\r\n }\r\n if (i < whanauList.length - 2) {\r\n result +=\r\n language === 'en'\r\n ? `${whanauList[i].firstName}, `\r\n : i === 0\r\n ? `${whanauList[i].firstName}, `\r\n : `ko ${whanauList[i].firstName}, `;\r\n }\r\n if (i === whanauList.length - 2 && whanauList.length < 6) {\r\n result +=\r\n language === 'en'\r\n ? `${whanauList[i].firstName} ${i18n.t('components.ChooseMaraeFragment.threeWhanau')} `\r\n : ` ko ${whanauList[i].firstName}, `;\r\n }\r\n if (i === whanauList.length - 1 && whanauList.length < 6) {\r\n result += language === 'en' ? whanauList[i].firstName : `ko ${whanauList[i].firstName}`;\r\n }\r\n if (i === whanauList.length - 1 && whanauList.length > 5) {\r\n result += ` ko ${whanauList[i].firstName} ${i18n.t('components.ChooseMaraeFragment.otherWhanau', {\r\n whanaus: whanaus.length - whanauList.length + 1,\r\n })}`;\r\n }\r\n }\r\n return result;\r\n };\r\n\r\n return (\r\n \r\n \r\n {i18n.t('components.ChooseMaraeFragment.step', {\r\n currentStep: 2,\r\n totalSteps: 3,\r\n })}\r\n \r\n {i18n.t('components.ChooseMaraeFragment.title')}\r\n \r\n {selectedWhanaus.length > 0\r\n ? i18n.t('components.ChooseMaraeFragment.someoneettending', {\r\n whanauNames: getWhanauNames(selectedWhanaus),\r\n isAre: selectedWhanaus.length === 1 ? 'is' : 'are',\r\n activityName: activity.activityName,\r\n })\r\n : ''}\r\n {i18n.t('components.ChooseMaraeFragment.instruction')}\r\n \r\n\r\n {}} onSelect={handleSelected} selectedMarae={selectedMaraes} selection />\r\n\r\n \r\n ),\r\n }}\r\n iconRight={{\r\n right: (\r\n \r\n ),\r\n }}\r\n />\r\n setModalVisible(false)} toggle={modalVisible}>\r\n \r\n You must select a marae\r\n \r\n \r\n \r\n );\r\n};\r\n\r\nconst styles = StyleSheet.create({\r\n container: {\r\n alignItems: 'center',\r\n paddingHorizontal: Layout.backgroundMarginNormal.left,\r\n },\r\n actionButtonContainer: {\r\n marginHorizontal: 20,\r\n marginTop: 40,\r\n },\r\n step: {\r\n fontSize: Fonts.sizes.small,\r\n },\r\n title: {\r\n paddingVertical: 14,\r\n fontSize: Fonts.sizes.smallHeading,\r\n },\r\n instruction: {\r\n fontSize: Fonts.sizes.medium,\r\n textAlign: 'center',\r\n paddingBottom: 32,\r\n },\r\n buttonIcon: {\r\n paddingTop: 2,\r\n },\r\n buttonIconLeft: {\r\n paddingRight: 8,\r\n },\r\n buttonIconRight: {\r\n paddingLeft: 8,\r\n },\r\n});\r\n","import { MaterialIcons } from '@expo/vector-icons';\r\nimport _ from 'lodash';\r\nimport React, { Dispatch, SetStateAction } from 'react';\r\nimport { View, StyleSheet, Pressable, FlatList } from 'react-native';\r\nimport { Colors } from '../../../constants/Colors';\r\nimport { UIText } from '../../../components/StyledText';\r\nimport { WhanauType } from '../../../constants/Interfaces';\r\n\r\ninterface WhanauTypeListProps {\r\n openDetails: Dispatch>;\r\n onSelect: (whanauType: WhanauType) => void;\r\n selectedWhanauType?: WhanauType[];\r\n selection?: boolean;\r\n}\r\nconst WhanauTypeListFragment = ({ openDetails, onSelect, selectedWhanauType = [], selection }: WhanauTypeListProps) => {\r\n const renderItem = ({ item }: { item: WhanauType }) => {\r\n const selected = _.findIndex(selectedWhanauType, (type) => type === item) > -1;\r\n return (\r\n \r\n true}\r\n onMoveShouldSetResponderCapture={() => true}\r\n style={styles.whanauContainer}\r\n onPress={() => {\r\n // eslint-disable-next-line @typescript-eslint/no-unused-expressions\r\n item && onSelect ? onSelect!(item!) : null;\r\n // eslint-disable-next-line @typescript-eslint/no-unused-expressions\r\n openDetails ? openDetails!(true) : null;\r\n }}\r\n >\r\n {`${item}`}\r\n \r\n {selected ? (\r\n \r\n \r\n \r\n ) : null}\r\n \r\n );\r\n };\r\n return (\r\n index.toString()}\r\n />\r\n );\r\n};\r\n\r\nexport default WhanauTypeListFragment;\r\nconst styles = StyleSheet.create({\r\n whanauList: {\r\n flexDirection: 'row',\r\n alignItems: 'center',\r\n justifyContent: 'flex-start',\r\n width: '100%',\r\n height: 60,\r\n borderBottomColor: Colors.blackOpacity,\r\n borderBottomWidth: 1,\r\n },\r\n whanauContainer: {\r\n flexDirection: 'row',\r\n alignItems: 'center',\r\n width: '90%',\r\n height: '100%',\r\n },\r\n whanauImage: {\r\n width: 30,\r\n height: 30,\r\n marginRight: 10,\r\n },\r\n whanauName: {\r\n marginLeft: 15,\r\n },\r\n selectedContainer: {\r\n backgroundColor: Colors.green,\r\n justifyContent: 'center',\r\n alignItems: 'center',\r\n width: 20,\r\n height: 20,\r\n borderRadius: 15,\r\n },\r\n});\r\n","/* eslint-disable no-nested-ternary */\r\nimport * as React from 'react';\r\nimport { View } from '../../../components/Themed';\r\nimport { Heading, Paragraph, UIText } from '../../../components/StyledText';\r\nimport i18n from '../../../translations';\r\nimport { Colors } from '../../../constants/Colors';\r\nimport { MaterialCommunityIcons, MaterialIcons } from '@expo/vector-icons';\r\nimport { SplitButton } from '../../../components/buttons/SplitButton';\r\nimport { StyleSheet } from 'react-native';\r\nimport Layout from '../../../constants/Layout';\r\nimport Fonts from '../../../constants/Fonts';\r\nimport { Activity, User, UserActivity, UserMarae, WhanauType } from '../../../constants/Interfaces';\r\nimport { getUserActivities, postUserActivity } from '../../../reducers/activity.slice';\r\nimport Logger from '../../../constants/Logger';\r\nimport { useDispatch } from 'react-redux';\r\nimport ModalUI from '../../../components/ModalUI';\r\nimport _ from 'lodash';\r\nimport { useNavigation } from '@react-navigation/native';\r\nimport WhanauTypeListFragment from './WhanauTypeListFragment';\r\n\r\ninterface ChooseWhanauTypeFragmentProps {\r\n onComplete: () => void;\r\n onBack: () => void;\r\n toggleWhanauType: (whanauType: WhanauType) => void;\r\n selectedWhanaus: User[];\r\n selectedMaraes: UserMarae[];\r\n selectedWhanauType: WhanauType[];\r\n activity: Activity;\r\n myActivity: UserActivity | null;\r\n}\r\n\r\nexport const ChooseWhanauTypeFragment = ({\r\n onComplete,\r\n onBack,\r\n selectedWhanaus,\r\n selectedMaraes,\r\n selectedWhanauType,\r\n toggleWhanauType,\r\n activity,\r\n myActivity,\r\n}: ChooseWhanauTypeFragmentProps) => {\r\n const dispatch = useDispatch();\r\n const [modalVisible, setModalVisible] = React.useState(false);\r\n const navigation = useNavigation();\r\n const language = i18n.locale;\r\n\r\n const handleOnComplete = async () => {\r\n Logger.debug(\r\n `Fragments -> ChooseWhanauTypeFragment -> handleOnComplete: Selected whanaus: ${selectedWhanaus.length}`\r\n );\r\n Logger.debug(\r\n `Fragments -> ChooseWhanauTypeFragment -> handleOnComplete: Selected maraes: ${selectedMaraes.length}`\r\n );\r\n Logger.debug(\r\n `Fragments -> ChooseWhanauTypeFragment -> handleOnComplete: Selected whanau type: ${selectedWhanauType}`\r\n );\r\n\r\n if (selectedWhanauType.length !== 1) {\r\n setModalVisible(true);\r\n } else {\r\n const promises: any[] = [];\r\n // Post main user's activity\r\n promises.push(\r\n dispatch(\r\n postUserActivity({\r\n activity: {\r\n activityId: activity.activityId.trim(),\r\n favourite: myActivity ? myActivity.favourite : false,\r\n going: true,\r\n maraeId: selectedMaraes[0].maraeId,\r\n whanauType: selectedWhanauType[0],\r\n },\r\n })\r\n )\r\n );\r\n\r\n _.each(selectedWhanaus, (whanau) => {\r\n promises.push(\r\n dispatch(\r\n postUserActivity({\r\n userId: whanau.userId,\r\n activity: {\r\n activityId: activity.activityId.trim(),\r\n favourite: false,\r\n going: true,\r\n maraeId: selectedMaraes[0].maraeId,\r\n },\r\n })\r\n )\r\n );\r\n });\r\n\r\n await Promise.all(promises);\r\n dispatch(getUserActivities());\r\n onComplete();\r\n\r\n // navigate to the confirmation screen now\r\n navigation.navigate('ConfirmationScreen', {\r\n title: i18n.t('components.ChooseWhanauTypeFragment.confirmTitle'),\r\n message: i18n.t('components.ChooseWhanauTypeFragment.confirmMessage', {\r\n activityName: activity.activityName,\r\n participants: getWhanauNames(selectedWhanaus),\r\n }),\r\n buttonText: i18n.t('components.ChooseWhanauTypeFragment.confirmButtonText'),\r\n nextScreenName: 'ActivityDetails',\r\n screenParams: {\r\n activityId: activity.activityId,\r\n },\r\n });\r\n }\r\n };\r\n\r\n const handleSelected = (whanauType: WhanauType) => {\r\n toggleWhanauType(whanauType);\r\n };\r\n\r\n const getWhanauNames = (whanaus: User[]) => {\r\n const whanauList = whanaus.slice(0, 6);\r\n if (whanaus.length === 1) {\r\n return language === 'en' ? whanauList[0].firstName : `kōrua ko ${whanauList[0].firstName} `;\r\n }\r\n if (whanaus.length === 2) {\r\n return i18n.t('components.ChooseWhanauTypeFragment.twoWhanau', {\r\n first: whanaus[0].firstName,\r\n second: whanaus[1].firstName,\r\n });\r\n }\r\n let result = '';\r\n\r\n for (let i = 0; i < whanauList.length; i += 1) {\r\n if (language === 'mi' && i === 0) {\r\n result += `koutou ko `;\r\n }\r\n if (i < whanauList.length - 2) {\r\n result +=\r\n language === 'en'\r\n ? `${whanauList[i].firstName}, `\r\n : i === 0\r\n ? `${whanauList[i].firstName}, `\r\n : `ko ${whanauList[i].firstName}, `;\r\n }\r\n if (i === whanauList.length - 2 && whanauList.length < 6) {\r\n result +=\r\n language === 'en'\r\n ? `${whanauList[i].firstName} ${i18n.t('components.ChooseWhanauTypeFragment.threeWhanau')} `\r\n : ` ko ${whanauList[i].firstName}, `;\r\n }\r\n if (i === whanauList.length - 1 && whanauList.length < 6) {\r\n result += language === 'en' ? whanauList[i].firstName : `ko ${whanauList[i].firstName}`;\r\n }\r\n if (i === whanauList.length - 1 && whanauList.length > 5) {\r\n result += ` ko ${whanauList[i].firstName} ${i18n.t('components.ChooseWhanauTypeFragment.otherWhanau', {\r\n whanaus: whanaus.length - whanauList.length + 1,\r\n })}`;\r\n }\r\n }\r\n return result;\r\n };\r\n\r\n return (\r\n \r\n \r\n {i18n.t('components.ChooseWhanauTypeFragment.step', {\r\n currentStep: 3,\r\n totalSteps: 3,\r\n })}\r\n \r\n {i18n.t('components.ChooseWhanauTypeFragment.title')}\r\n \r\n {selectedWhanaus.length > 0\r\n ? i18n.t('components.ChooseWhanauTypeFragment.someoneettending', {\r\n whanauNames: getWhanauNames(selectedWhanaus),\r\n isAre: selectedWhanaus.length === 1 ? 'is' : 'are',\r\n activityName: activity.activityName,\r\n })\r\n : ''}\r\n {i18n.t('components.ChooseWhanauTypeFragment.instruction')}\r\n \r\n\r\n \r\n ),\r\n }}\r\n iconRight={{\r\n left: (\r\n \r\n ),\r\n }}\r\n />\r\n\r\n \r\n {}}\r\n onSelect={handleSelected}\r\n selectedWhanauType={selectedWhanauType}\r\n selection\r\n />\r\n \r\n\r\n setModalVisible(false)} toggle={modalVisible}>\r\n \r\n You must select a whanau type\r\n \r\n \r\n \r\n );\r\n};\r\n\r\nconst styles = StyleSheet.create({\r\n container: {\r\n alignItems: 'center',\r\n paddingHorizontal: Layout.backgroundMarginNormal.left,\r\n },\r\n actionButtonContainer: {\r\n marginHorizontal: 20,\r\n marginBottom: 15,\r\n },\r\n step: {\r\n fontSize: Fonts.sizes.small,\r\n },\r\n title: {\r\n paddingVertical: 14,\r\n fontSize: Fonts.sizes.smallHeading,\r\n },\r\n instruction: {\r\n fontSize: Fonts.sizes.medium,\r\n textAlign: 'center',\r\n paddingBottom: 32,\r\n },\r\n buttonIcon: {\r\n paddingTop: 2,\r\n },\r\n buttonIconLeft: {\r\n paddingRight: 8,\r\n },\r\n buttonIconRight: {\r\n paddingLeft: 8,\r\n },\r\n listContainer: { width: '90%', height: 400 },\r\n});\r\n","import * as React from 'react';\r\nimport { TakeWhanauFragment } from './TakeWhanauFragment';\r\nimport { ChooseMaraeFragment } from './ChooseMaraeFragment';\r\nimport Logger from '../../../constants/Logger';\r\nimport { Activity, User, UserActivity, UserMarae, WhanauType } from '../../../constants/Interfaces';\r\nimport _ from 'lodash';\r\nimport { ChooseWhanauTypeFragment } from './ChooseWhanauTypeFragment';\r\n\r\ninterface ActivityRegistrationFragmentProps {\r\n onDismiss: () => void;\r\n activity: Activity;\r\n myActivity: UserActivity | null;\r\n}\r\n\r\nexport const ActivityRegistrationFragment = ({\r\n onDismiss,\r\n activity,\r\n myActivity,\r\n}: ActivityRegistrationFragmentProps) => {\r\n const [index, setIndex] = React.useState(0);\r\n const [selectedWhanaus, setSelectedWhanaus] = React.useState([]);\r\n const [selectedMaraes, setSelectedMaraes] = React.useState([]);\r\n const [selectedWhanauType, setSelectedWhanauType] = React.useState([]);\r\n\r\n const handleToggleWhanau = (user: User) => {\r\n Logger.debug(`Toggling whanau for participation: ${user.userId}`);\r\n setSelectedWhanaus((whanaus) => {\r\n const itemIndex = _.findIndex(whanaus, ['userId', user.userId]);\r\n if (itemIndex > -1) {\r\n whanaus.splice(itemIndex, 1);\r\n return [...whanaus];\r\n }\r\n return [...whanaus, user];\r\n });\r\n };\r\n\r\n // Only one marae can be selected at a given time\r\n const handleToggleMarae = (userMarae: UserMarae) => {\r\n Logger.debug(`Toggling marae for participation: ${userMarae.maraeName}`);\r\n setSelectedMaraes((maraes) => {\r\n const itemIndex = _.findIndex(maraes, ['maraeId', userMarae.maraeId]);\r\n if (itemIndex > -1) {\r\n return [];\r\n }\r\n return [userMarae];\r\n });\r\n };\r\n\r\n // Only one marae can be selected at a given time\r\n const handleToggleWhanauType = (whanauType: WhanauType) => {\r\n Logger.debug(`Toggling whanau type for participation: ${whanauType}`);\r\n setSelectedWhanauType((whanauTypes) => {\r\n const itemIndex = _.findIndex(whanauTypes, (type) => type === whanauType);\r\n if (itemIndex > -1) {\r\n return [];\r\n }\r\n return [whanauType];\r\n });\r\n };\r\n\r\n switch (index) {\r\n case 0: {\r\n return (\r\n setIndex(1)}\r\n onBack={onDismiss}\r\n selectedWhanaus={selectedWhanaus}\r\n toggleWhanau={handleToggleWhanau}\r\n activityId={activity.activityId}\r\n />\r\n );\r\n }\r\n case 1: {\r\n return (\r\n setIndex(0)}\r\n onNext={() => setIndex(2)}\r\n selectedWhanaus={selectedWhanaus}\r\n selectedMaraes={selectedMaraes}\r\n toggleMarae={handleToggleMarae}\r\n activity={activity}\r\n myActivity={myActivity}\r\n />\r\n );\r\n }\r\n case 2: {\r\n return (\r\n setIndex(1)}\r\n onComplete={onDismiss}\r\n selectedWhanaus={selectedWhanaus}\r\n selectedMaraes={selectedMaraes}\r\n selectedWhanauType={selectedWhanauType}\r\n toggleWhanauType={handleToggleWhanauType}\r\n activity={activity}\r\n myActivity={myActivity}\r\n />\r\n );\r\n }\r\n default: {\r\n return null;\r\n }\r\n }\r\n};\r\n","import React, { useState } from 'react';\r\nimport { MaterialCommunityIcons, MaterialIcons } from '@expo/vector-icons';\r\nimport { View, StyleSheet, Image, Pressable, TextInput } from 'react-native';\r\nimport { SplitButton } from '../../../components/buttons/SplitButton';\r\nimport { Heading, Paragraph, UIText } from '../../../components/StyledText';\r\nimport { Colors } from '../../../constants/Colors';\r\nimport Fonts from '../../../constants/Fonts';\r\nimport Layout from '../../../constants/Layout';\r\nimport i18n from '../../../translations';\r\nimport { DateTime } from 'luxon';\r\nimport { postUserActivityReview } from '../../../reducers/review.slice';\r\nimport { Activity, Review, User } from '../../../constants/Interfaces';\r\nimport { useDispatch, useSelector } from 'react-redux';\r\nimport _ from 'lodash';\r\n\r\ninterface ReviewFragmentProps {\r\n handleGoback: () => void;\r\n handleDone: () => void;\r\n activityId: string;\r\n}\r\n\r\nconst ReviewFragment = ({ handleGoback, handleDone, activityId }: ReviewFragmentProps) => {\r\n const user: User = useSelector((state: any) => state.user.user);\r\n const activity: Activity = useSelector((state: any) =>\r\n _.find(state.activity.activities.concat(state.activity.activity), ['activityId', activityId])\r\n );\r\n const dispatch = useDispatch();\r\n const [score, setScore] = useState(0);\r\n const handleRate = (score: number) => {\r\n setScore(score + 1);\r\n };\r\n const [review, setReview] = React.useState('');\r\n const date = DateTime.now().toFormat('MMM dd, yyyy');\r\n\r\n const handlesubmit = () => {\r\n if (review === '') {\r\n handleDone();\r\n return;\r\n }\r\n const payload: Review = {\r\n activityId,\r\n userId: user.userId,\r\n score,\r\n review,\r\n firstName: user.firstName,\r\n lastName: user.lastName,\r\n lastUpdated: DateTime.now().toISO(),\r\n activityName: activity.activityName,\r\n };\r\n dispatch(postUserActivityReview(payload));\r\n handleDone();\r\n };\r\n\r\n return (\r\n \r\n {i18n.t('components.ReviewFragment.review')}\r\n {i18n.t('components.ReviewFragment.rateActivity')}\r\n \r\n {[...new Array(9)].map((item, index: number) => (\r\n index} key={`rating-${index}`} />\r\n ))}\r\n \r\n \r\n setReview(text)}\r\n placeholder=\"Write review\"\r\n multiline\r\n />\r\n \r\n _\r\n {date}\r\n \r\n \r\n \r\n ,\r\n }}\r\n iconRight={{\r\n left: ,\r\n }}\r\n labelLeft={i18n.t('pages.ActivityDetailsScreen.goBack')}\r\n labelRight={i18n.t('pages.ActivityDetailsScreen.done')}\r\n onPressLeft={handleGoback}\r\n onPressRight={handlesubmit}\r\n leftRightRatio={0.85}\r\n />\r\n \r\n \r\n );\r\n};\r\nconst StarCard = ({ score, setScore, onSelect }) => (\r\n setScore(score)}>\r\n \r\n \r\n);\r\n\r\nexport default ReviewFragment;\r\n\r\nconst styles = StyleSheet.create({\r\n root: {\r\n margin: 0,\r\n zIndex: 1000,\r\n backgroundColor: Colors.yellow,\r\n borderTopStartRadius: 45,\r\n borderTopEndRadius: 45,\r\n paddingHorizontal: Layout.backgroundMarginNormal.left,\r\n justifyContent: 'flex-start',\r\n alignItems: 'center',\r\n },\r\n paragraphModal: {\r\n marginVertical: 15,\r\n textAlign: 'center',\r\n fontSize: Fonts.sizes.medium,\r\n width: '90%',\r\n },\r\n subTitle: {\r\n fontFamily: Fonts.family.bold,\r\n fontSize: Fonts.sizes.default,\r\n marginTop: 20,\r\n },\r\n rateContainer: {\r\n justifyContent: 'center',\r\n alignItems: 'center',\r\n flexDirection: 'row',\r\n },\r\n starContainer: {\r\n backgroundColor: Colors.whiteOpacity,\r\n justifyContent: 'center',\r\n alignItems: 'center',\r\n height: 45,\r\n width: 35,\r\n marginHorizontal: 1,\r\n borderRadius: 10,\r\n },\r\n starRate: {\r\n height: 30,\r\n width: 25,\r\n },\r\n reviewContainer: {\r\n width: '100%',\r\n height: '50%',\r\n borderColor: Colors.darkBurgundy,\r\n marginVertical: 10,\r\n padding: 20,\r\n borderWidth: 2,\r\n justifyContent: 'space-between',\r\n },\r\n inputReview: {\r\n fontFamily: Fonts.family.regular,\r\n width: '100%',\r\n color: Colors.black,\r\n flex: 1,\r\n textAlignVertical: 'top',\r\n },\r\n dateLabel: {},\r\n buttonContainer: {\r\n width: '100%',\r\n alignItems: 'center',\r\n marginTop: 30,\r\n },\r\n icon: {\r\n height: 20,\r\n width: 20,\r\n marginRight: 4,\r\n paddingTop: 2,\r\n },\r\n});\r\n","import { MaterialIcons } from '@expo/vector-icons';\r\nimport React from 'react';\r\nimport { Pressable, View, StyleSheet } from 'react-native';\r\nimport { Colors } from '../constants/Colors';\r\nimport { TicketActivity } from '../constants/Interfaces';\r\nimport { UIText } from './StyledText';\r\n\r\ninterface SelectionItemProps {\r\n item: TicketActivity;\r\n isSelected;\r\n setList;\r\n}\r\nexport const SelectionItem = ({ item, isSelected, setList }: SelectionItemProps) => (\r\n \r\n true}\r\n onMoveShouldSetResponderCapture={() => true}\r\n style={styles.whanauContainer}\r\n onPress={() => setList(item)}\r\n >\r\n {item.name}\r\n \r\n {isSelected && (\r\n \r\n \r\n \r\n )}\r\n \r\n \r\n \r\n);\r\n\r\nconst styles = StyleSheet.create({\r\n whanauList: {\r\n flexDirection: 'row',\r\n alignItems: 'center',\r\n\r\n height: 50,\r\n width: '95%',\r\n borderBottomWidth: 1,\r\n borderBottomColor: Colors.lightGrey,\r\n },\r\n whanauContainer: {\r\n flexDirection: 'row',\r\n alignItems: 'center',\r\n width: '100%',\r\n justifyContent: 'space-between',\r\n height: 50,\r\n },\r\n whanauName: {\r\n marginLeft: 15,\r\n color: Colors.black,\r\n },\r\n checkIcon: {\r\n backgroundColor: Colors.green,\r\n justifyContent: 'center',\r\n alignItems: 'center',\r\n borderRadius: 15,\r\n width: 20,\r\n height: 20,\r\n },\r\n});\r\n","import * as React from 'react';\r\nimport { StyleSheet, Image, ScrollView } from 'react-native';\r\nimport { BarCodeScanner, BarCodeScannerResult } from 'expo-barcode-scanner';\r\nimport { Heading, UIText } from '../../../components/StyledText';\r\nimport { View } from '../../../components/Themed';\r\nimport { Colors } from '../../../constants/Colors';\r\nimport Logger from '../../../constants/Logger';\r\nimport i18n from '../../../translations';\r\nimport { useSelector } from 'react-redux';\r\nimport { PaperQrCode, TicketActivity, User } from '../../../constants/Interfaces';\r\nimport { getActivityStats, postUserActivityParticipation } from '../../../reducers/activity.slice';\r\nimport { useFocusEffect } from '@react-navigation/native';\r\nimport Fonts from '../../../constants/Fonts';\r\nimport Layout from '../../../constants/Layout';\r\nimport { openSettings } from 'expo-linking';\r\nimport PrimaryButton from '../../../components/buttons/PrimaryButton';\r\nimport _ from 'lodash';\r\nimport { SelectionItem } from '../../../components/SelectionItem';\r\nimport { SplitButton } from '../../../components/buttons/SplitButton';\r\nimport { useAppDispatch } from '../../../store/configureStore';\r\n\r\nexport const ActivityScannerFragment = ({\r\n activityId,\r\n title = i18n.t('components.CodeScannerFragment.header'),\r\n onScanComplete,\r\n}) => {\r\n const user: User = useSelector((state: any) => state.user.user);\r\n const [hasPermission, setHasPermission] = React.useState(null);\r\n const [scanned, setScanned] = React.useState(false);\r\n const [errorMessage, setErrorMessage] = React.useState();\r\n const checkInProgress: boolean = useSelector((state: any) => state.activity.checkInProgress);\r\n const dispatch = useAppDispatch();\r\n const [ticked, setTicked] = React.useState(false);\r\n const [dataQRCode, setDataQRCode] = React.useState(null);\r\n const whanaus: User[] = useSelector((state: any) => state.user.whanau) || [];\r\n\r\n const usersGoing: string[] = useSelector((state: any) => state.activity.myActivities)\r\n ?.filter((item) => item.activityId === activityId && item.going && !item.checkedIn)\r\n ?.map((item) => item.userId);\r\n const participantsGoing: TicketActivity[] = [\r\n { userId: user?.userId, name: `${user?.firstName} ${user?.lastName}`, activityId },\r\n ...whanaus\r\n .filter((item) => item.userId && usersGoing?.includes(item.userId))\r\n .map((item) => ({\r\n userId: item.userId,\r\n name: `${item.firstName} ${item.lastName}`,\r\n activityId,\r\n })),\r\n ];\r\n const [selectedParticipants, setSelectedParticipants] = React.useState([...participantsGoing]);\r\n\r\n const handleSelection = (participant: TicketActivity) => {\r\n setSelectedParticipants((whanau) => {\r\n const itemIndex = _.findIndex(whanau, ['userId', participant.userId]);\r\n if (itemIndex > -1) {\r\n whanau.splice(itemIndex, 1);\r\n return [...whanau];\r\n }\r\n return [...whanau, participant];\r\n });\r\n };\r\n\r\n const handleCheckIn = async () => {\r\n if (selectedParticipants.length > 0) {\r\n try {\r\n await Promise.all(\r\n selectedParticipants.map((whanau) =>\r\n dispatch(\r\n postUserActivityParticipation({\r\n userId: whanau.userId!,\r\n activityId: whanau.activityId,\r\n password: dataQRCode?.password,\r\n })\r\n ).unwrap()\r\n )\r\n );\r\n\r\n setTicked(true); // Show Ticked\r\n setScanned(false); // enable next scan\r\n setDataQRCode(null);\r\n setTimeout(() => {\r\n setTicked(false);\r\n if (onScanComplete) {\r\n onScanComplete();\r\n }\r\n }, 3000);\r\n } catch (e) {\r\n setErrorMessage(i18n.t('components.CodeScannerFragment.checkinerrorWhanau'));\r\n setTimeout(() => {\r\n setErrorMessage(null);\r\n setDataQRCode(null);\r\n setScanned(false); // enable next scan\r\n }, 4000);\r\n }\r\n }\r\n };\r\n\r\n React.useEffect(() => {\r\n (async () => {\r\n const { status } = await BarCodeScanner.requestPermissionsAsync();\r\n setHasPermission(status === 'granted');\r\n })();\r\n }, []);\r\n\r\n useFocusEffect(React.useCallback(() => () => dispatch(getActivityStats(activityId)), []));\r\n\r\n const handleBarCodeScanned = async ({ type, data }: BarCodeScannerResult) => {\r\n setScanned(true);\r\n Logger.info(`Bar code with type ${type} and data ${data} has been scanned!`);\r\n try {\r\n const paperQRCode: PaperQrCode = JSON.parse(data);\r\n if (!paperQRCode.activityId || !paperQRCode.password) {\r\n throw new Error('Invalid QR Code');\r\n }\r\n if (paperQRCode.activityId !== activityId) {\r\n setErrorMessage(i18n.t('components.CodeScannerFragment.checkinerrorA'));\r\n setDataQRCode(null);\r\n setTimeout(() => {\r\n setErrorMessage(null);\r\n setScanned(false); // enable next scan\r\n }, 4000);\r\n return;\r\n }\r\n setDataQRCode(paperQRCode);\r\n } catch (e) {\r\n Logger.warn(`Components -> CodeScannerFragment -> handleBarCodeScanned: Unable to parse correct QR code`);\r\n setErrorMessage(i18n.t('components.CodeScannerFragment.scanerror'));\r\n setDataQRCode(null);\r\n setTimeout(() => {\r\n setErrorMessage(null);\r\n setScanned(false); // enable next scan\r\n }, 4000);\r\n }\r\n };\r\n\r\n if (!hasPermission) {\r\n return (\r\n \r\n {i18n.t('components.CodeScannerFragment.nopermission')}\r\n \r\n openSettings()} title=\"Change Settings\" />\r\n \r\n );\r\n }\r\n\r\n return (\r\n \r\n {ticked && (\r\n \r\n {i18n.t('components.CodeScannerFragment.scannedPaper')}\r\n \r\n \r\n )}\r\n {!ticked && !dataQRCode && (\r\n <>\r\n {title}\r\n \r\n {scanned && !checkInProgress && {i18n.t('components.CodeScannerFragment.checkinprogress')}}\r\n {!errorMessage && !scanned && !checkInProgress && (\r\n {i18n.t('components.CodeScannerFragment.scanning')}\r\n )}\r\n {checkInProgress && {i18n.t('components.CodeScannerFragment.checkinprogress')}}\r\n {errorMessage && errorMessage.length > 0 && {errorMessage}}\r\n \r\n )}\r\n {dataQRCode && (\r\n <>\r\n {i18n.t('components.CodeScannerFragment.selectWhanau')}\r\n {!errorMessage && (\r\n \r\n {participantsGoing.map((item) => (\r\n -1}\r\n setList={handleSelection}\r\n />\r\n ))}\r\n {\r\n setDataQRCode(null);\r\n setScanned(false);\r\n }}\r\n onPressRight={handleCheckIn}\r\n backgroundColorLeft={Colors.white}\r\n containerStyles={styles.button}\r\n />\r\n \r\n )}\r\n {errorMessage && errorMessage.length > 0 && {errorMessage}}\r\n \r\n )}\r\n \r\n );\r\n};\r\n\r\nconst styles = StyleSheet.create({\r\n container: {\r\n backgroundColor: Colors.white,\r\n alignItems: 'center',\r\n justifyContent: Layout.isSmallDevice ? 'center' : 'flex-start',\r\n height: '100%',\r\n paddingVertical: 10,\r\n },\r\n scanner: {\r\n marginTop: 50,\r\n marginBottom: 30,\r\n width: 300,\r\n height: 300,\r\n },\r\n ticked: {\r\n alignSelf: 'center',\r\n fontSize: Fonts.sizes.bigHeading,\r\n },\r\n tickedIcon: {\r\n height: 60,\r\n width: 60,\r\n marginTop: 15,\r\n alignSelf: 'center',\r\n },\r\n errorMessage: {\r\n color: Colors.yellow,\r\n alignSelf: 'center',\r\n fontFamily: Fonts.family.bold,\r\n width: '80%',\r\n textAlign: 'center',\r\n },\r\n cameraMEssage: {\r\n color: Colors.black,\r\n alignSelf: 'center',\r\n fontFamily: Fonts.family.bold,\r\n },\r\n logo: {\r\n width: 150,\r\n height: 150,\r\n resizeMode: 'contain',\r\n marginTop: 50,\r\n marginLeft: 20,\r\n },\r\n accessCameraContainer: {\r\n justifyContent: 'center',\r\n alignItems: 'center',\r\n paddingTop: 70,\r\n },\r\n settingsButton: {\r\n backgroundColor: Colors.yellow,\r\n padding: 5,\r\n },\r\n listContainer: {\r\n marginTop: Layout.backgroundMarginNarrow.top,\r\n paddingHorizontal: Layout.backgroundMarginNarrow.top,\r\n width: '100%',\r\n },\r\n button: {\r\n marginTop: Layout.backgroundMarginNarrow.top,\r\n },\r\n});\r\n","import React from 'react';\r\nimport { View, StyleSheet, ImageBackground, Pressable, Image, Platform } from 'react-native';\r\nimport { ActionModal } from '../../../components/ActionModal';\r\nimport { DetailItem } from '../../../components/DetailItem';\r\nimport { UIText } from '../../../components/StyledText';\r\nimport { Colors } from '../../../constants/Colors';\r\nimport Fonts from '../../../constants/Fonts';\r\nimport Layout from '../../../constants/Layout';\r\nimport Logger from '../../../constants/Logger';\r\nimport i18n from '../../../translations';\r\nimport SecondaryButton from '../../../components/buttons/SecondaryButton';\r\nimport { useSelector } from 'react-redux';\r\nimport { getUserActivities, postUserActivity } from '../../../reducers/activity.slice';\r\nimport { ActivityStats, User, UserActivity } from '../../../constants/Interfaces';\r\nimport _ from 'lodash';\r\nimport ReviewFragment from './ReviewFragment';\r\nimport { validatePastActivity } from '../../../constants/Utils';\r\nimport ModalUI from '../../../components/ModalUI';\r\nimport { useAppDispatch } from '../../../store/configureStore';\r\nimport { ActivityScannerFragment } from '../../home/fragments/ActivityScannerFragment';\r\n\r\ninterface RegiteredFragmentProps {\r\n activityId: string;\r\n activityStats: ActivityStats | undefined;\r\n myActivity: UserActivity;\r\n}\r\n\r\nconst RegisteredFragment = ({ activityId, activityStats, myActivity }: RegiteredFragmentProps) => {\r\n const user: User = useSelector((state: any) => state.user.user);\r\n const isPastActivity = validatePastActivity(myActivity.endDate);\r\n const activitiesBackgroundLoading: boolean = useSelector((state: any) => state.activity.backgroundLoading);\r\n const myActivities: UserActivity[] = useSelector((state: any) => state.activity.myActivities);\r\n const whanaus: UserActivity[] = myActivities.filter((item) =>\r\n item.activityId === activityId && item.userId !== user.userId ? item.userId : ''\r\n );\r\n _.filter((item) => item !== '');\r\n\r\n const dispatch = useAppDispatch();\r\n const scanned =\r\n myActivities.find((item) => item.activityId === activityId && item.userId === user.userId)?.checkedIn ||\r\n myActivity?.checkedIn;\r\n const [activeScanner, setActiveScanner] = React.useState(false);\r\n const [activeReview, setActiveReview] = React.useState(false);\r\n const [activePastActivity, setActivePastActivity] = React.useState(false);\r\n\r\n const handleScanQR = () => {\r\n if (isPastActivity) {\r\n setActivePastActivity(true);\r\n } else {\r\n setActiveScanner(true);\r\n }\r\n };\r\n\r\n const handleCantGo = async () => {\r\n Logger.debug(`I cannot Attend`);\r\n const promises: any[] = [];\r\n promises.push(\r\n dispatch(\r\n postUserActivity({\r\n activity: {\r\n activityId: activityId.trim(),\r\n favourite: myActivity ? myActivity.favourite : false,\r\n going: false,\r\n maraeId: myActivity?.maraeId,\r\n },\r\n })\r\n )\r\n );\r\n _.each(whanaus, (whanau) => {\r\n promises.push(\r\n dispatch(\r\n postUserActivity({\r\n userId: whanau.userId,\r\n activity: {\r\n activityId: activityId.trim(),\r\n favourite: false,\r\n going: false,\r\n maraeId: myActivity.maraeId,\r\n },\r\n })\r\n )\r\n );\r\n });\r\n await Promise.all(promises);\r\n dispatch(getUserActivities());\r\n };\r\n\r\n const handleDone = async () => {\r\n await dispatch(getUserActivities());\r\n setActiveReview(false);\r\n };\r\n const handleReview = () => {\r\n setActiveReview(true);\r\n };\r\n const handleReviewBlocked = () => {\r\n if (activitiesBackgroundLoading) {\r\n return;\r\n }\r\n dispatch(getUserActivities())\r\n .unwrap()\r\n .then((activities: UserActivity[]) => {\r\n const scanned = activities.find(\r\n (item) => item.activityId === activityId && item.userId === user.userId\r\n )?.checkedIn;\r\n if (scanned) {\r\n handleReview();\r\n }\r\n });\r\n };\r\n const handleScanDone = () => {\r\n setActiveScanner(false);\r\n dispatch(getUserActivities());\r\n };\r\n const renderScanQR = () => {\r\n const isDisabled = isPastActivity || scanned;\r\n return (\r\n \r\n {i18n.t('components.RegisteredFragment.scanQR')}\r\n \r\n \r\n );\r\n };\r\n\r\n return (\r\n <>\r\n \r\n \r\n {renderScanQR()}\r\n\r\n \r\n \r\n {i18n.t('components.RegisteredFragment.yourReview')}\r\n \r\n \r\n \r\n {!scanned && (\r\n \r\n )}\r\n \r\n {!scanned && (\r\n \r\n )}\r\n {scanned && (\r\n \r\n )}\r\n\r\n setActiveReview(false)}\r\n height={Platform.OS === 'android' ? 530 : 650}\r\n bgColor=\"yellow\"\r\n >\r\n setActiveReview(false)} handleDone={handleDone} activityId={activityId} />\r\n \r\n\r\n setActivePastActivity(false)}>\r\n {i18n.t('components.RegisteredFragment.activityClosed')}\r\n \r\n\r\n setActiveScanner(false)}\r\n height={Layout.window.height - 100}\r\n >\r\n \r\n \r\n \r\n );\r\n};\r\n\r\nexport default RegisteredFragment;\r\nconst styles = StyleSheet.create({\r\n goingContainer: {\r\n width: Layout.window.width - Layout.backgroundMarginNormal.left * 2,\r\n marginHorizontal: Layout.backgroundMarginNormal.left,\r\n },\r\n cantGoButton: {\r\n borderWidth: 3,\r\n borderColor: Colors.darkBurgundy,\r\n marginVertical: 15,\r\n width: '100%',\r\n },\r\n cantGoText: {\r\n color: Colors.darkBurgundy,\r\n },\r\n cantGoIcon: {\r\n height: 20,\r\n width: 20,\r\n },\r\n activitiyContainer: {\r\n flexDirection: 'row',\r\n justifyContent: 'space-between',\r\n marginBottom: 15,\r\n height: Layout.window.width / 2.4,\r\n },\r\n ticketContainer: {\r\n borderWidth: 2,\r\n borderRadius: 2,\r\n borderColor: Colors.darkBurgundy,\r\n width: '48%',\r\n justifyContent: 'center',\r\n alignItems: 'center',\r\n },\r\n reviewContainer: {\r\n width: '100%',\r\n height: '100%',\r\n alignItems: 'center',\r\n paddingTop: 15,\r\n },\r\n qrContainer: {\r\n borderStyle: 'dashed',\r\n },\r\n ticketText: {\r\n color: Colors.darkBurgundy,\r\n fontFamily: Fonts.family.bold,\r\n fontSize: Fonts.sizes.medium,\r\n },\r\n qrImage: {\r\n width: '70%',\r\n height: '70%',\r\n },\r\n});\r\n","import React from 'react';\r\nimport { View, StyleSheet, Image } from 'react-native';\r\n\r\ninterface RatingStarsProps {\r\n stars: number;\r\n starsColor?: 'red' | 'yellow';\r\n}\r\nconst RatingStars = ({ stars, starsColor = 'yellow' }: RatingStarsProps) => (\r\n \r\n {[...new Array(stars)].map((item, index) => (\r\n \r\n ))}\r\n {[...new Array(9 - stars)].map((item, index) => (\r\n \r\n ))}\r\n \r\n);\r\n\r\nexport default RatingStars;\r\n\r\nconst styles = StyleSheet.create({\r\n reviewRating: { flexDirection: 'row' },\r\n stars: {\r\n height: 12,\r\n width: 12,\r\n marginRight: 4,\r\n },\r\n});\r\n","import React from 'react';\r\nimport { View, StyleSheet } from 'react-native';\r\nimport Fonts from '../../../constants/Fonts';\r\nimport Layout from '../../../constants/Layout';\r\nimport RatingReview from '../../../components/RatingStars';\r\nimport { DetailItem } from '../../../components/DetailItem';\r\nimport i18n from '../../../translations';\r\nimport { Paragraph, UIText } from '../../../components/StyledText';\r\nimport { ActivityStats, Location, Review } from '../../../constants/Interfaces';\r\n\r\ninterface ShowReviewFragmentProps {\r\n review: Review;\r\n location?: Location;\r\n activityStats: ActivityStats | undefined;\r\n}\r\n\r\nconst ShowReviewFragment = ({ review, location, activityStats }: ShowReviewFragmentProps) => (\r\n \r\n \r\n \r\n {i18n.t('components.ShowReview.yourReview')}\r\n {review.review!}\r\n \r\n \r\n \r\n \r\n);\r\n\r\nexport default ShowReviewFragment;\r\n\r\nconst styles = StyleSheet.create({\r\n root: {\r\n width: Layout.window.width - Layout.backgroundMarginNormal.left * 2,\r\n marginTop: 20,\r\n },\r\n reviewContainer: {\r\n marginHorizontal: Layout.backgroundMarginNormal.left,\r\n },\r\n label: {\r\n marginTop: 10,\r\n fontFamily: Fonts.family.bold,\r\n },\r\n reviewMessage: {\r\n marginBottom: 15,\r\n },\r\n});\r\n","import React, { useEffect, useRef } from 'react';\r\nimport { View, StyleSheet, Animated, ImageBackground, Image } from 'react-native';\r\nimport { Colors } from '../constants/Colors';\r\nimport HeaderBar from './HeaderBar';\r\nimport BottomBanner from './BottomBanner';\r\nimport Layout from '../constants/Layout';\r\n\r\ninterface ScreenHolderProps {\r\n children;\r\n navigation;\r\n heroImage?: JSX.Element | null;\r\n headerComponent?: JSX.Element | null;\r\n showFooter?: boolean;\r\n}\r\n\r\nconst ScreenHolder = ({ children, navigation, heroImage, headerComponent, showFooter }: ScreenHolderProps) => {\r\n const { yellow, darkBurgundy } = Colors;\r\n const scrollPosition = useRef(new Animated.Value(0)).current;\r\n const minHeaderHeight = 60;\r\n // eslint-disable-next-line no-nested-ternary\r\n const maxHeaderHeight = heroImage ? 400 : headerComponent ? 320 : 200;\r\n const customHolder = !!heroImage || !!headerComponent;\r\n const opacityFooter = new Animated.Value(0);\r\n\r\n const headerHeight = scrollPosition.interpolate({\r\n // eslint-disable-next-line no-nested-ternary\r\n inputRange: [0, heroImage ? 500 : headerComponent ? 320 : 250],\r\n outputRange: [maxHeaderHeight, 5 * 1],\r\n extrapolate: 'clamp',\r\n });\r\n\r\n const headerBarHeight = scrollPosition.interpolate({\r\n inputRange: [0, 250],\r\n outputRange: [80, minHeaderHeight],\r\n extrapolate: 'clamp',\r\n });\r\n\r\n const ellipseHeight = scrollPosition.interpolate({\r\n inputRange: [0, customHolder ? 5 * 16 * 2 : 5 * 16],\r\n outputRange: [65, 6 * 6],\r\n extrapolateLeft: 'identity',\r\n extrapolateRight: 'clamp',\r\n });\r\n const imagePosition = scrollPosition.interpolate({\r\n inputRange: [0, customHolder ? 5 * 16 * 2 : 5 * 16],\r\n outputRange: [10, 5 * 6],\r\n extrapolateLeft: 'identity',\r\n extrapolateRight: 'clamp',\r\n });\r\n const backgroundColorHeader = scrollPosition.interpolate({\r\n inputRange: [0, customHolder ? 5 * 16 * 2 : 5 * 16],\r\n outputRange: [yellow, darkBurgundy],\r\n extrapolateLeft: 'identity',\r\n extrapolateRight: 'clamp',\r\n });\r\n\r\n const opacityImage = scrollPosition.interpolate({\r\n inputRange: [0, customHolder ? 5 * 16 * 2 : 5 * 16],\r\n outputRange: [1, 5 * 0],\r\n extrapolateRight: 'clamp',\r\n });\r\n const backgroundColorHeaderBar = scrollPosition.interpolate({\r\n inputRange: [0, customHolder ? 5 * 16 * 2 : 5 * 16],\r\n outputRange: [Colors.transparent, yellow],\r\n extrapolateLeft: 'identity',\r\n extrapolateRight: 'clamp',\r\n });\r\n const opacityProfileImage = scrollPosition.interpolate({\r\n inputRange: [0, customHolder ? 5 * 16 * 2 : 5 * 16],\r\n outputRange: [0, 1],\r\n extrapolateRight: 'clamp',\r\n });\r\n\r\n const footerLabel = opacityFooter.interpolate({\r\n inputRange: [0, 150],\r\n outputRange: [80, 0],\r\n extrapolateRight: 'clamp',\r\n });\r\n const footerImagebottom = opacityFooter.interpolate({\r\n inputRange: [0, 150],\r\n outputRange: [Layout.isSmallDevice ? -20 : -5, 65],\r\n extrapolateRight: 'clamp',\r\n });\r\n useEffect(() => {\r\n if (showFooter) {\r\n Animated &&\r\n Animated.timing(opacityFooter, {\r\n toValue: 150,\r\n duration: 800,\r\n useNativeDriver: false,\r\n }).start();\r\n } else {\r\n Animated &&\r\n Animated.timing(opacityFooter, {\r\n toValue: 0,\r\n duration: 800,\r\n useNativeDriver: false,\r\n }).start();\r\n }\r\n }, [opacityFooter]);\r\n\r\n return (\r\n <>\r\n \r\n {!headerComponent && (\r\n \r\n )}\r\n {headerComponent && (\r\n \r\n \r\n \r\n )}\r\n \r\n \r\n \r\n {heroImage}\r\n {headerComponent || (\r\n \r\n )}\r\n \r\n \r\n \r\n {children}\r\n \r\n \r\n {headerComponent ? (\r\n <>\r\n \r\n \r\n \r\n\r\n \r\n \r\n \r\n \r\n ) : null}\r\n \r\n\r\n {!headerComponent && }\r\n \r\n );\r\n};\r\n\r\nexport default ScreenHolder;\r\n\r\nconst styles = StyleSheet.create({\r\n scrollView: {\r\n backgroundColor: `${Colors.darkBurgundy}`,\r\n },\r\n heroImage: {\r\n backgroundColor: `${Colors.darkBurgundy}`,\r\n },\r\n imageBackground: {\r\n flex: 1,\r\n },\r\n scrollViewContainer: {\r\n paddingHorizontal: 15,\r\n },\r\n headerBarContainer: {\r\n position: 'absolute',\r\n top: 0,\r\n width: '100%',\r\n },\r\n bottomImage: {\r\n position: 'absolute',\r\n bottom: 0,\r\n width: Layout.window.width,\r\n resizeMode: 'contain',\r\n backgroundColor: Colors.yellow,\r\n },\r\n});\r\n","import * as React from 'react';\r\nimport { View } from '../../components/Themed';\r\nimport { Image, ImageBackground, Pressable, StyleSheet } from 'react-native';\r\nimport InView from 'react-native-component-inview';\r\nimport { Colors } from '../../constants/Colors';\r\nimport Layout from '../../constants/Layout';\r\nimport { UIText } from '../../components/StyledText';\r\nimport { Activity, ActivityStats, User, UserActivity, Review } from '../../constants/Interfaces';\r\nimport _ from 'lodash';\r\nimport { useDispatch, useSelector } from 'react-redux';\r\nimport Fonts from '../../constants/Fonts';\r\nimport { MaterialCommunityIcons } from '@expo/vector-icons';\r\nimport { DetailItem } from '../../components/DetailItem';\r\nimport i18n from '../../translations';\r\nimport { SplitButton } from '../../components/buttons/SplitButton';\r\nimport Logger from '../../constants/Logger';\r\nimport { getActivityStats, getUserActivities, postUserActivity } from '../../reducers/activity.slice';\r\nimport { ActionModal } from '../../components/ActionModal';\r\nimport { ActivityRegistrationFragment } from './fragments/ActivityRegistrationFragment';\r\nimport ModalUI from '../../components/ModalUI';\r\nimport RegisteredFragment from './fragments/RegisteredFragment';\r\nimport ShowReviewFragment from './fragments/ShowReviewFragment';\r\nimport ScreenHolder from '../../components/ScreenHolder';\r\nimport { convertToNZ, getCacheImage, shareContent, validatePastActivity } from '../../constants/Utils';\r\nimport { LinearGradient } from 'expo-linear-gradient';\r\n\r\ninterface ActivityDetailsScreenProps {\r\n navigation: any;\r\n route: {\r\n params: {\r\n activityId: string;\r\n };\r\n };\r\n}\r\n\r\nexport const ActivityDetailsScreen = ({ navigation, route }: ActivityDetailsScreenProps) => {\r\n const { activityId } = route.params;\r\n const activity: Activity = useSelector((state: any) =>\r\n _.find(state.activity.activities.concat(state.activity.pastActivities), ['activityId', activityId])\r\n );\r\n const activityStats: ActivityStats = useSelector((state: any) => state.activity.stats[activityId]);\r\n const activitiesCompleted: UserActivity[] = useSelector((state: any) => state.user.activitiesCompleted);\r\n const user: User = useSelector((state: any) => state.user.user);\r\n const myActivityCompleted: UserActivity | undefined = _.find(\r\n activitiesCompleted,\r\n (item) => item?.activityId === activityId\r\n );\r\n const reviews: Review[] = useSelector((state: any) => state.review.reviews);\r\n const review = reviews.find((item) => item.activityId!.trim() === activityId && item.userId === user.userId);\r\n const dispatch = useDispatch();\r\n const [modalVisible, setModalVisible] = React.useState(false);\r\n const [alertVisible, setAlertVisible] = React.useState(false);\r\n const isFinished: boolean = validatePastActivity(activity?.endDate);\r\n const [activityImage, setActivityImage] = React.useState(activity?.imageUrl);\r\n const [showFooter, setShowFooter] = React.useState(false);\r\n const myActivity: UserActivity =\r\n isFinished && myActivityCompleted\r\n ? myActivityCompleted\r\n : useSelector((state: any) =>\r\n _.find(state.activity.myActivities, (item) =>\r\n item.activityId === activityId && item.userId === user?.userId ? user?.userId : ''\r\n )\r\n );\r\n const registered = myActivity?.going;\r\n const [favourite, setFavourite] = React.useState(myActivity?.favourite || false);\r\n const toggleFavourite = () => {\r\n if (!user) {\r\n navigation.navigate('SocialMediaLogin');\r\n return;\r\n }\r\n setFavourite(!favourite);\r\n postFavourite();\r\n };\r\n\r\n const isLoggedIn = navigation.getParent('Drawer');\r\n\r\n const postFavourite = async () => {\r\n Logger.debug(`Add to favourite`);\r\n let postPayload: UserActivity = { ...myActivity };\r\n // If there is no my activity, create a default one first\r\n if (!myActivity) {\r\n postPayload = {\r\n activityId: activity.activityId,\r\n favourite: false,\r\n going: false,\r\n };\r\n }\r\n // Toggle the boolean\r\n postPayload.favourite = !postPayload.favourite;\r\n await dispatch(\r\n postUserActivity({\r\n activity: postPayload,\r\n })\r\n );\r\n dispatch(getUserActivities());\r\n };\r\n\r\n const handleGoing = () => {\r\n if (!isLoggedIn) {\r\n navigation.navigate('SocialMediaLogin');\r\n return;\r\n }\r\n if (!user || !user.marae || user.marae.length === 0 || user.firstName === null) {\r\n setAlertVisible(true);\r\n return;\r\n }\r\n setModalVisible(true);\r\n };\r\n\r\n const handleGoingModalClose = () => {\r\n Logger.debug(`Modal closed`);\r\n setModalVisible(false);\r\n };\r\n const cacheImage = async () => {\r\n try {\r\n const uri = await getCacheImage({ activityId: activity.activityId, uri: activity.imageUrl });\r\n setActivityImage(uri);\r\n } catch (e) {\r\n Logger.debug(e);\r\n }\r\n };\r\n React.useEffect(() => {\r\n cacheImage();\r\n }, [activity]);\r\n\r\n React.useEffect(() => {\r\n dispatch(getActivityStats(activityId));\r\n }, []);\r\n\r\n const checkVisible = (isVisible: boolean) => {\r\n setShowFooter(isVisible);\r\n };\r\n const HeaderComponent = () => (\r\n \r\n \r\n \r\n \r\n \r\n {`${activity?.activityName}`}\r\n \r\n \r\n {`${\r\n activity?.startDate ? convertToNZ({ date: activity.startDate, format: 'MMMM dd, yyyy, h:mma' }) : null\r\n }`}\r\n \r\n \r\n {!registered && !isFinished && (\r\n \r\n \r\n \r\n )}\r\n \r\n \r\n );\r\n return (\r\n } showFooter={showFooter}>\r\n \r\n {activity ? (\r\n \r\n {/* Reviewed */}\r\n {review && (\r\n \r\n )}\r\n {/* RegisteredFragment */}\r\n {!review && registered && (\r\n \r\n )}\r\n \r\n {!registered && !isFinished && (\r\n \r\n ) : (\r\n \r\n ),\r\n }}\r\n iconRight={{\r\n right: (\r\n \r\n ),\r\n }}\r\n onPressLeft={toggleFavourite}\r\n onPressRight={handleGoing}\r\n containerStyles={styles.actionButton}\r\n />\r\n )}\r\n {isFinished && !registered && (\r\n \r\n THIS KAUPAPA IS NOW CLOSED\r\n \r\n )}\r\n {!review && (\r\n <>\r\n {!registered && (\r\n \r\n )}\r\n \r\n \r\n \r\n \r\n checkVisible(isVisible)} collapsable={false}>\r\n shareContent(activityId)}>\r\n \r\n \r\n \r\n \r\n \r\n )}\r\n \r\n \r\n ) : null}\r\n\r\n {activity && (\r\n \r\n \r\n \r\n )}\r\n setAlertVisible(false)} toggle={alertVisible}>\r\n \r\n \r\n You must complete your profile, including selecting the marae, before registering for an kaupapa.\r\n \r\n \r\n \r\n \r\n \r\n );\r\n};\r\n\r\nconst styles = StyleSheet.create({\r\n container: {\r\n flex: 1,\r\n alignItems: 'center',\r\n justifyContent: 'flex-start',\r\n backgroundColor: Colors.transparent,\r\n width: '100%',\r\n minHeight: Layout.window.height - 200,\r\n marginVertical: Layout.backgroundMarginNormal.top,\r\n },\r\n header: {\r\n width: '100%',\r\n backgroundColor: Colors.yellow,\r\n justifyContent: 'center',\r\n alignItems: 'center',\r\n flex: 1,\r\n },\r\n summaryContainer: {\r\n paddingHorizontal: 15,\r\n height: '50%',\r\n width: Layout.window.width,\r\n justifyContent: 'flex-end',\r\n paddingBottom: 20,\r\n },\r\n regionLabelContainer: {\r\n alignSelf: 'flex-start',\r\n marginBottom: 8,\r\n backgroundColor: Colors.backgroundYellow,\r\n borderRadius: 7,\r\n paddingHorizontal: 8,\r\n paddingVertical: 4,\r\n alignItems: 'center',\r\n justifyContent: 'center',\r\n },\r\n regionLabelContent: {\r\n fontFamily: Fonts.family.bold,\r\n },\r\n titleContainer: {\r\n height: 120,\r\n justifyContent: 'flex-end',\r\n },\r\n title: {\r\n ...Fonts.shadow,\r\n fontFamily: Fonts.family.bold,\r\n fontSize: Fonts.sizes.bigHeading,\r\n color: Colors.white,\r\n flexWrap: 'wrap',\r\n },\r\n date: {\r\n ...Fonts.shadow,\r\n fontSize: Fonts.sizes.medium,\r\n color: Colors.white,\r\n },\r\n headingContainer: {\r\n flexDirection: 'row',\r\n alignItems: 'center',\r\n justifyContent: 'center',\r\n paddingBottom: 8,\r\n },\r\n favouriteContainer: {\r\n position: 'absolute',\r\n bottom: 20,\r\n right: 30,\r\n width: 28,\r\n height: 28,\r\n borderRadius: 28,\r\n padding: 0,\r\n backgroundColor: Colors.whiteOpacity,\r\n alignItems: 'center',\r\n justifyContent: 'center',\r\n },\r\n body: {\r\n flex: 1,\r\n width: Layout.window.width,\r\n backgroundColor: Colors.transparent,\r\n },\r\n detailsContainer: {},\r\n imageBackground: {\r\n flex: 1,\r\n width: Layout.window.width,\r\n resizeMode: 'contain',\r\n justifyContent: 'flex-end',\r\n },\r\n topImage: {\r\n position: 'absolute',\r\n top: 0,\r\n height: 100,\r\n maxWidth: 150,\r\n resizeMode: 'contain',\r\n zIndex: 1,\r\n },\r\n bottomImage: {\r\n position: 'absolute',\r\n bottom: 0,\r\n width: Layout.window.width,\r\n height: 250,\r\n resizeMode: 'cover',\r\n },\r\n actionButton: {\r\n marginHorizontal: Layout.backgroundMarginNormal.left,\r\n marginBottom: Layout.backgroundMarginNormal.top,\r\n },\r\n buttonIcon: {\r\n paddingTop: 2,\r\n },\r\n buttonIconLeft: {\r\n paddingRight: 8,\r\n },\r\n buttonIconRight: {\r\n paddingLeft: 8,\r\n },\r\n shareContainer: {\r\n marginLeft: Layout.backgroundMarginNormal.left,\r\n top: -30,\r\n backgroundColor: Colors.transparent,\r\n width: 80,\r\n height: 30,\r\n },\r\n fbIcon: {\r\n width: '100%',\r\n height: 30,\r\n resizeMode: 'contain',\r\n },\r\n closedLabelContainer: {\r\n backgroundColor: Colors.darkBurgundy,\r\n height: 48,\r\n width: '80%',\r\n justifyContent: 'center',\r\n alignItems: 'center',\r\n alignSelf: 'center',\r\n borderRadius: 28,\r\n marginBottom: Layout.backgroundMarginNormal.bottom,\r\n },\r\n closedLabelText: {\r\n color: Colors.white,\r\n fontFamily: Fonts.family.bold,\r\n },\r\n});\r\n","import * as React from 'react';\r\nimport { createStackNavigator } from '@react-navigation/stack';\r\nimport { ActivitiesScreen } from '../screens/activities/ActivitiesScreen';\r\nimport { ActivityDetailsScreen } from '../screens/activities/ActivityDetailsScreen';\r\nimport { ActivitiesParamList } from '../constants/Interfaces';\r\nimport { useNavigation } from '@react-navigation/native';\r\nimport { SelectRegionScreen } from '../screens/profile/SelectRegionScreen';\r\nimport { TipScreen } from '../screens/profile/TipScreen';\r\n\r\nconst ActivitiesStack = createStackNavigator();\r\n\r\nexport const ActivitiesNavigator = () => {\r\n const navigation = useNavigation();\r\n\r\n React.useEffect(() => navigation.addListener('beforeRemove', () => navigation.navigate('DashboardStack')), []);\r\n\r\n return (\r\n \r\n \r\n \r\n \r\n \r\n \r\n );\r\n};\r\n","import React from 'react';\r\nimport { View, Image, StyleSheet } from 'react-native';\r\nimport { useDispatch, useSelector } from 'react-redux';\r\nimport BottomBanner from '../../components/BottomBanner';\r\nimport PrimaryButton from '../../components/buttons/PrimaryButton';\r\nimport HeaderBar from '../../components/HeaderBar';\r\nimport { Heading, UIText } from '../../components/StyledText';\r\nimport { Colors } from '../../constants/Colors';\r\nimport Fonts from '../../constants/Fonts';\r\nimport { User } from '../../constants/Interfaces';\r\nimport Layout from '../../constants/Layout';\r\nimport { confirmUser } from '../../reducers/user.slice';\r\nimport i18n from '../../translations';\r\n\r\nconst UserConfirmationScreen = ({ navigation }) => {\r\n const user: User = useSelector((state: any) => state.user.user);\r\n const dispatch = useDispatch();\r\n return (\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n {`${i18n.t('pages.UserConfirmationScreen.welcome')} ${\r\n user && user.firstName ? user.firstName : ''\r\n }`}\r\n {i18n.t('pages.UserConfirmationScreen.ready')}\r\n \r\n \r\n dispatch(confirmUser())}\r\n />\r\n\r\n \r\n \r\n \r\n );\r\n};\r\nexport default UserConfirmationScreen;\r\n\r\nconst styles = StyleSheet.create({\r\n root: {\r\n flex: 1,\r\n justifyContent: 'center',\r\n alignItems: 'center',\r\n backgroundColor: Colors.backgroundYellow,\r\n width: Layout.window.width,\r\n height: Layout.window.height,\r\n },\r\n topImage: {\r\n position: 'absolute',\r\n top: 0,\r\n height: 150,\r\n resizeMode: 'contain',\r\n },\r\n logo: {\r\n marginTop: -40,\r\n width: 150,\r\n height: 150,\r\n resizeMode: 'contain',\r\n opacity: 1,\r\n zIndex: 2,\r\n },\r\n body: {\r\n justifyContent: 'center',\r\n alignItems: 'center',\r\n marginHorizontal: '5%',\r\n paddingHorizontal: 10,\r\n },\r\n headerContainer: {\r\n justifyContent: 'center',\r\n alignItems: 'center',\r\n width: '100%',\r\n },\r\n\r\n paragraph: {\r\n marginTop: 27,\r\n alignItems: 'center',\r\n justifyContent: 'center',\r\n textAlign: 'center',\r\n marginBottom: 20,\r\n },\r\n headerDividers: {\r\n width: '100%',\r\n height: 10,\r\n marginBottom: 20,\r\n },\r\n buttonsContainer: {\r\n width: '80%',\r\n justifyContent: 'center',\r\n alignItems: 'center',\r\n },\r\n button: {\r\n flexDirection: 'row',\r\n height: 45,\r\n backgroundColor: 'white',\r\n borderRadius: 37,\r\n paddingVertical: 13,\r\n paddingHorizontal: 16,\r\n fontWeight: 'bold',\r\n alignItems: 'center',\r\n justifyContent: 'flex-start',\r\n width: '100%',\r\n marginVertical: 10,\r\n },\r\n buttonImg: {\r\n height: 25,\r\n width: 25,\r\n marginRight: 14.7,\r\n resizeMode: 'contain',\r\n },\r\n buttonText: {\r\n fontFamily: Fonts.family.bold,\r\n },\r\n bottomImage: {\r\n position: 'absolute',\r\n bottom: 70,\r\n width: Layout.window.width,\r\n height: 150,\r\n resizeMode: 'cover',\r\n zIndex: -1,\r\n },\r\n icons: {\r\n position: 'absolute',\r\n width: '100%',\r\n top: 12,\r\n left: 0,\r\n zIndex: 100,\r\n },\r\n subtitle: {\r\n marginVertical: 15,\r\n },\r\n});\r\n","import React from 'react';\r\nimport { View, StyleSheet, Pressable, Linking, Platform } from 'react-native';\r\nimport EllipseBorderImage from '../../../components/EllipseBorderImage';\r\nimport { Heading, Paragraph, UIText } from '../../../components/StyledText';\r\nimport { Colors } from '../../../constants/Colors';\r\nimport { MaterialIcons } from '@expo/vector-icons';\r\nimport i18n from '../../../translations';\r\nimport { Organiser } from '../../../constants/Interfaces';\r\n\r\ninterface CallOrganiserProps {\r\n organiser: Organiser;\r\n}\r\n\r\nconst CallOrganiser = ({ organiser }: CallOrganiserProps) => {\r\n const imageUrl = organiser?.imageUrl;\r\n const phone = organiser?.phone;\r\n const organiserName = `${organiser?.firstName} ${organiser?.lastName}`;\r\n\r\n const handleCall = (phone) => {\r\n const url = Platform.OS === 'android' ? `tel:$${phone}` : `telprompt:$${phone}`;\r\n Linking.openURL(url);\r\n };\r\n\r\n return (\r\n \r\n {i18n.t('components.CallOrganiser.eventOrganiser')}\r\n {organiserName}\r\n \r\n {!!phone && (\r\n handleCall(phone)}>\r\n \r\n \r\n \r\n {i18n.t('components.CallOrganiser.ring')}\r\n \r\n )}\r\n \r\n );\r\n};\r\n\r\nexport default CallOrganiser;\r\n\r\nconst styles = StyleSheet.create({\r\n root: {\r\n height: '100%',\r\n alignItems: 'center',\r\n },\r\n imageStyle: {\r\n width: 100,\r\n height: 100,\r\n },\r\n subTitle: {\r\n marginTop: 20,\r\n marginBottom: 30,\r\n },\r\n ringButton: {\r\n alignItems: 'center',\r\n flexDirection: 'row',\r\n height: 40,\r\n borderRadius: 50,\r\n backgroundColor: Colors.defaultGrey,\r\n width: '25%',\r\n padding: 5,\r\n marginTop: 30,\r\n },\r\n iconButton: {\r\n justifyContent: 'center',\r\n alignItems: 'center',\r\n borderRadius: 50,\r\n backgroundColor: Colors.yellow,\r\n height: 30,\r\n width: 30,\r\n marginRight: 5,\r\n },\r\n});\r\n","import React from 'react';\r\nimport { View, StyleSheet, Pressable, ImageBackground } from 'react-native';\r\nimport { Heading, Paragraph } from '../../../components/StyledText';\r\nimport { Colors } from '../../../constants/Colors';\r\nimport Layout from '../../../constants/Layout';\r\nimport Fonts from '../../../constants/Fonts';\r\nimport { getCacheImage } from '../../../constants/Utils';\r\nimport Logger from '../../../constants/Logger';\r\n\r\ninterface EventCardFragmentProps {\r\n title: string;\r\n subTitle?: string;\r\n imageUrl?: string;\r\n splitButton: React.ReactNode; // the SplitButton component\r\n isInList?: boolean;\r\n onPress?: () => void;\r\n activityId: string;\r\n}\r\n\r\nconst EventCardFragment = ({\r\n title,\r\n subTitle,\r\n imageUrl,\r\n splitButton,\r\n isInList = true,\r\n onPress,\r\n activityId,\r\n}: EventCardFragmentProps) => {\r\n const [activityImage, setActivityImage] = React.useState(imageUrl);\r\n\r\n const cacheImage = async () => {\r\n try {\r\n const uri = await getCacheImage({ activityId, uri: imageUrl });\r\n setActivityImage(uri);\r\n } catch (e) {\r\n Logger.debug(e);\r\n }\r\n };\r\n\r\n React.useEffect(() => {\r\n cacheImage();\r\n }, [activityId]);\r\n\r\n const cardBody = () => (\r\n <>\r\n {subTitle}\r\n \r\n {title}\r\n \r\n \r\n );\r\n\r\n return (\r\n \r\n {!!imageUrl && activityId && (\r\n \r\n {cardBody()}\r\n \r\n )}\r\n {!imageUrl && activityId && {cardBody()}}\r\n {splitButton}\r\n \r\n );\r\n};\r\n\r\nexport default EventCardFragment;\r\n\r\nconst styles = StyleSheet.create({\r\n root: {\r\n height: 290,\r\n marginBottom: 15,\r\n alignItems: 'center',\r\n borderRadius: 5,\r\n },\r\n cardImage: {\r\n width: '100%',\r\n minHeight: '80%',\r\n maxHeight: '80%',\r\n resizeMode: 'cover',\r\n borderRadius: 5,\r\n justifyContent: 'flex-end',\r\n },\r\n titleContainer: {\r\n padding: 15,\r\n backgroundColor: Colors.blackOpacity,\r\n },\r\n label: {\r\n ...Fonts.shadow,\r\n color: Colors.white,\r\n width: '95%',\r\n },\r\n buttonContainer: {\r\n width: '100%',\r\n marginVertical: 10,\r\n },\r\n});\r\n","import React, { useEffect } from 'react';\r\nimport { View, StyleSheet } from 'react-native';\r\nimport { Colors } from '../../../constants/Colors';\r\nimport { Heading, UIText } from '../../../components/StyledText';\r\nimport { getActivityStats } from '../../../reducers/activity.slice';\r\nimport { useDispatch, useSelector } from 'react-redux';\r\nimport { Activity, ActivityStats, Dictionary, Engagement } from '../../../constants/Interfaces';\r\nimport Fonts from '../../../constants/Fonts';\r\n\r\nconst Insights = ({ activity }: { activity: Activity }) => {\r\n const dispatch = useDispatch();\r\n const activityStats: Dictionary = useSelector((state: any) => state.activity.stats);\r\n\r\n useEffect(() => {\r\n dispatch(getActivityStats(activity.activityId));\r\n }, []);\r\n\r\n const { activityName } = activity;\r\n const engagementTypeGoing: Engagement = activityStats[activity.activityId]?.engagementTypeGoing;\r\n const ethnicityOfParticipantsEuropean = engagementTypeGoing?.ethnicityOfParticipantsEuropean;\r\n const ethnicityOfParticipantsPasifika = engagementTypeGoing?.ethnicityOfParticipantsPasifika;\r\n const ethnicityOfParticipantsAsian = engagementTypeGoing?.ethnicityOfParticipantsAsian;\r\n const ethnicityOfParticipantsMelaa = engagementTypeGoing?.ethnicityOfParticipantsMelaa;\r\n const ethnicityOfParticipantsOther = engagementTypeGoing?.ethnicityOfParticipantsOther;\r\n\r\n const nonMaori =\r\n ethnicityOfParticipantsEuropean +\r\n ethnicityOfParticipantsPasifika +\r\n ethnicityOfParticipantsAsian +\r\n ethnicityOfParticipantsMelaa +\r\n ethnicityOfParticipantsOther;\r\n\r\n return (\r\n \r\n {activityName}\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n );\r\n};\r\n\r\nconst ItemList = ({ text, data }) => (\r\n \r\n {text}\r\n {data || 0}\r\n \r\n);\r\n\r\nexport default Insights;\r\n\r\nconst styles = StyleSheet.create({\r\n root: {\r\n height: '100%',\r\n marginHorizontal: '10%',\r\n alignItems: 'center',\r\n },\r\n imageStyle: {\r\n width: 100,\r\n height: 100,\r\n },\r\n subTitle: {\r\n marginTop: 20,\r\n marginBottom: 30,\r\n },\r\n list: {\r\n width: '100%',\r\n marginTop: 35,\r\n },\r\n itemList: {\r\n width: '100%',\r\n flexDirection: 'row',\r\n justifyContent: 'space-between',\r\n alignItems: 'center',\r\n borderBottomWidth: 2,\r\n borderColor: Colors.defaultGrey,\r\n paddingVertical: 8,\r\n },\r\n values: {\r\n fontFamily: Fonts.family.bold,\r\n },\r\n});\r\n","import React from 'react';\r\nimport { View, StyleSheet } from 'react-native';\r\nimport { Heading, Paragraph, UIText } from '../../../components/StyledText';\r\nimport RatingStars from '../../../components/RatingStars';\r\nimport i18n from '../../../translations';\r\nimport { Review } from '../../../constants/Interfaces';\r\nimport { convertToNZ } from '../../../constants/Utils';\r\n\r\ninterface ReviewFragmentProps {\r\n content: Review;\r\n}\r\n\r\nconst ReviewFragment = ({ content }: ReviewFragmentProps) => {\r\n const { firstName, lastName, score = 0, review, lastUpdated } = content;\r\n return (\r\n \r\n {i18n.t('components.Review.review')}\r\n \r\n {firstName} {lastName}\r\n \r\n \r\n \r\n {review}\r\n _\r\n {convertToNZ({ date: lastUpdated!, format: 'MMMM dd, yyyy' })}\r\n \r\n \r\n );\r\n};\r\n\r\nexport default ReviewFragment;\r\n\r\nconst styles = StyleSheet.create({\r\n root: {\r\n height: '100%',\r\n marginHorizontal: '10%',\r\n alignItems: 'center',\r\n },\r\n imageStyle: {\r\n width: 100,\r\n height: 100,\r\n },\r\n subTitle: {\r\n marginTop: 20,\r\n marginBottom: 30,\r\n },\r\n reviewContainer: {\r\n alignSelf: 'flex-start',\r\n },\r\n review: {\r\n marginVertical: 15,\r\n },\r\n});\r\n","import React from 'react';\r\nimport { Image, StyleSheet, Pressable } from 'react-native';\r\nimport RatingStars from '../../../components/RatingStars';\r\nimport { UIText } from '../../../components/StyledText';\r\nimport { Colors } from '../../../constants/Colors';\r\nimport { Review } from '../../../constants/Interfaces';\r\nimport Fonts from '../../../constants/Fonts';\r\nimport { View } from '../../../components/Themed';\r\nimport { getGenderPlaceholder } from '../../../constants/Utils';\r\n\r\ninterface ReviewCardProps {\r\n review: Review;\r\n onPress: (review: Review) => void;\r\n labelColor?: 'black';\r\n}\r\n\r\nconst ReviewCard = ({ review, onPress, labelColor }: ReviewCardProps) => {\r\n const reviewerName = `${review.firstName} ${review.lastName}`;\r\n const { activityName, imageUrl, score = 0, gender } = review;\r\n\r\n const handlePress = () => {\r\n onPress(review);\r\n };\r\n\r\n const fontColor = () => {\r\n if (!labelColor) {\r\n return Colors.white;\r\n }\r\n return Colors.black;\r\n };\r\n\r\n return (\r\n \r\n \r\n \r\n \r\n \r\n {reviewerName},{' '}\r\n \r\n {activityName}\r\n \r\n \r\n \r\n \r\n );\r\n};\r\n\r\nexport default ReviewCard;\r\n\r\nconst styles = StyleSheet.create({\r\n root: {\r\n flexDirection: 'row',\r\n alignItems: 'center',\r\n marginVertical: 5,\r\n },\r\n image: {\r\n height: 40,\r\n width: 40,\r\n resizeMode: 'contain',\r\n marginRight: 12,\r\n borderRadius: 3,\r\n },\r\n labelContainer: {\r\n flexDirection: 'row',\r\n marginBottom: 6,\r\n },\r\n label: {\r\n fontSize: Fonts.sizes.medium,\r\n },\r\n});\r\n","import React, { useEffect, useRef, useState } from 'react';\r\nimport { View, StyleSheet, FlatList } from 'react-native';\r\nimport { ActionModal } from '../../../components/ActionModal';\r\nimport { Paragraph, UIText } from '../../../components/StyledText';\r\nimport { Colors } from '../../../constants/Colors';\r\nimport Fonts from '../../../constants/Fonts';\r\nimport i18n from '../../../translations';\r\nimport CallOrganiserFragment from './CallOrganiserFragment';\r\nimport EventCardFragment from './EventCardFragment';\r\nimport InsightsFragment from './InsightsFragment';\r\nimport ReviewFragment from './ReviewFragment';\r\nimport ReviewCardFragment from './ReviewCardFragment';\r\nimport { SplitButton } from '../../../components/buttons/SplitButton';\r\nimport { Activity, Review, User } from '../../../constants/Interfaces';\r\nimport { useDispatch, useSelector } from 'react-redux';\r\nimport { getPastActivities } from '../../../reducers/activity.slice';\r\nimport Logger from '../../../constants/Logger';\r\nimport Layout from '../../../constants/Layout';\r\n\r\nconst AdminDashboardFragment = ({ navigation }) => {\r\n const [callModal, setCallModal] = useState(false);\r\n const [reviewModal, setReviewModal] = useState(false);\r\n const [insightsModal, setInsightsModal] = useState(false);\r\n const [currentReview, setCurrentReview] = useState();\r\n const [currentActivity, setCurrentActivity] = useState();\r\n const reviews: Review[] = useSelector((state: any) => state.review.reviews.slice(0, 5));\r\n const user: User = useSelector((state: any) => state.user.user);\r\n const activities: Activity[] = useSelector((state: any) => state.activity.activities);\r\n const pastActivities: Activity[] = useSelector((state: any) => state.activity.pastActivities);\r\n const dispatch = useDispatch();\r\n\r\n const managedActivities: Activity[] = [...activities, ...pastActivities].filter(\r\n (item) => item.kaiwhakahaereId === user.userId\r\n );\r\n const carouselRef = useRef(null);\r\n\r\n const viewabilityConfig = useRef({\r\n itemVisiblePercentThreshold: 10,\r\n });\r\n const handleCloseModal = () => {\r\n setCallModal(false);\r\n setReviewModal(false);\r\n setInsightsModal(false);\r\n };\r\n const handleInsights = (activity: Activity) => {\r\n setCurrentActivity(activity);\r\n setInsightsModal(true);\r\n };\r\n const handleCall = (activity: Activity) => {\r\n setCurrentActivity(activity);\r\n setCallModal(true);\r\n };\r\n const handleOpenReview = (review: Review) => {\r\n setCurrentReview(review);\r\n setReviewModal(true);\r\n };\r\n const handleOpenActivity = (activity: Activity) => {\r\n setCurrentActivity(activity);\r\n Logger.debug(`Screen -> ActivitiesScreen -> handleOpenActivity: Navigating to activity ${activity.activityId}`);\r\n navigation.navigate('DashboardStack', {\r\n screen: 'ActivityDetails',\r\n params: { activityId: activity.activityId },\r\n });\r\n };\r\n\r\n useEffect(() => {\r\n dispatch(getPastActivities());\r\n }, []);\r\n\r\n return (\r\n <>\r\n \r\n {i18n.t('components.Kaiwhakahaere.MaraeFitDashboard')}\r\n {i18n.t('components.Kaiwhakahaere.kaiwhakahaere')}\r\n {i18n.t('components.Kaiwhakahaere.organisersBy')}\r\n item.activityId}\r\n ItemSeparatorComponent={() => }\r\n viewabilityConfig={viewabilityConfig.current}\r\n renderItem={({ item }) => (\r\n handleOpenActivity(item)}\r\n activityId={item?.activityId}\r\n isInList\r\n splitButton={\r\n handleInsights(item)}\r\n onPressRight={() => handleCall(item)}\r\n backgroundColorLeft={Colors.darkBurgundy}\r\n backgroundColorRight={Colors.yellow}\r\n labelColorLeft={Colors.yellow}\r\n labelColorRight={Colors.black}\r\n borderColor={Colors.yellow}\r\n />\r\n }\r\n />\r\n )}\r\n horizontal\r\n showsHorizontalScrollIndicator={false}\r\n />\r\n\r\n }\r\n />\r\n \r\n \r\n {currentActivity ? : null}\r\n \r\n \r\n {currentReview ? : null}\r\n \r\n \r\n {currentActivity ? : null}\r\n \r\n \r\n );\r\n};\r\n\r\nexport default AdminDashboardFragment;\r\n\r\nconst styles = StyleSheet.create({\r\n root: {\r\n minHeight: Layout.window.height + 200,\r\n paddingHorizontal: Layout.backgroundMarginNarrow.left,\r\n paddingBottom: 150,\r\n },\r\n title: {\r\n color: Colors.white,\r\n fontSize: Fonts.sizes.bigHeading,\r\n fontFamily: Fonts.family.bold,\r\n },\r\n subtitle: {\r\n color: Colors.white,\r\n fontSize: Fonts.sizes.heading,\r\n },\r\n sectionTitle: {\r\n color: Colors.yellow,\r\n fontFamily: Fonts.family.bold,\r\n marginVertical: 10,\r\n },\r\n});\r\n","import * as React from 'react';\r\nimport { View } from './Themed';\r\nimport Svg, { Circle } from 'react-native-svg';\r\nimport { StyleSheet } from 'react-native';\r\nimport { Colors } from '../constants/Colors';\r\nimport { Heading } from './StyledText';\r\nimport Fonts from '../constants/Fonts';\r\n\r\ninterface DonutChartProps {\r\n percentage: number;\r\n size: number;\r\n}\r\n\r\nexport const DonutChart = ({ percentage, size }: DonutChartProps) => {\r\n const radius = size / 2 - 10;\r\n const perimeter = 2 * Math.PI * radius;\r\n const strokeDashOffset = perimeter - (perimeter * percentage) / 100;\r\n return (\r\n \r\n \r\n \r\n \r\n \r\n \r\n {Math.round(percentage)}%\r\n \r\n );\r\n};\r\n\r\nconst styles = StyleSheet.create({\r\n container: {\r\n alignItems: 'center',\r\n justifyContent: 'center',\r\n flex: 1,\r\n },\r\n donutContainer: {\r\n position: 'absolute',\r\n left: 0,\r\n top: 0,\r\n transform: [{ rotateZ: '-90deg' }],\r\n },\r\n label: {\r\n color: Colors.darkBurgundy,\r\n fontSize: Fonts.sizes.button,\r\n },\r\n});\r\n","import * as React from 'react';\r\nimport { Activity, ActivityStats, Dictionary } from '../../../constants/Interfaces';\r\nimport { View } from '../../../components/Themed';\r\nimport { Pressable, StyleSheet, Image } from 'react-native';\r\nimport { Colors } from '../../../constants/Colors';\r\nimport { Heading, UIText } from '../../../components/StyledText';\r\nimport Fonts from '../../../constants/Fonts';\r\nimport i18n from '../../../translations';\r\nimport { DonutChart } from '../../../components/DonutChart';\r\nimport { convertToNZ, getCacheImage } from '../../../constants/Utils';\r\nimport { getActivityStats } from '../../../reducers/activity.slice';\r\nimport { useDispatch, useSelector } from 'react-redux';\r\nimport Logger from '../../../constants/Logger';\r\n\r\ninterface EventStatsFragmentProps {\r\n activity: Activity;\r\n onPress?: (activityId: string) => void;\r\n}\r\n\r\nexport const EventStatsFragment = ({ activity, onPress }: EventStatsFragmentProps) => {\r\n const activityStats: Dictionary = useSelector((state: any) => state.activity.stats);\r\n\r\n const dispatch = useDispatch();\r\n const stats: ActivityStats = activityStats[activity.activityId];\r\n const [activityImage, setActivityImage] = React.useState(activity.imageUrl);\r\n\r\n let attendanceRate: number = 0;\r\n if (stats && stats.engagementTypeGoing.personTotal !== 0) {\r\n attendanceRate = (stats.engagementTypeCheckedIn.personTotal / stats.engagementTypeGoing.personTotal) * 100;\r\n }\r\n\r\n React.useEffect(() => {\r\n dispatch(getActivityStats(activity?.activityId));\r\n }, []);\r\n\r\n const cacheImage = async () => {\r\n try {\r\n const uri = await getCacheImage({ activityId: activity.activityId, uri: activity.imageUrl });\r\n setActivityImage(uri);\r\n } catch (e) {\r\n Logger.debug(e);\r\n }\r\n };\r\n\r\n React.useEffect(() => {\r\n cacheImage();\r\n }, [activity]);\r\n\r\n const handlePress = () => {\r\n if (onPress) {\r\n onPress(activity.activityId);\r\n }\r\n };\r\n return (\r\n \r\n \r\n {activity && }\r\n \r\n \r\n {convertToNZ({ date: activity.startDate!, format: 'MMMM dd, yyyy, h:mma' })}\r\n \r\n \r\n {activity.activityName}\r\n \r\n \r\n \r\n \r\n {i18n.t('components.EventStatsFragment.attendance')}\r\n \r\n \r\n \r\n );\r\n};\r\n\r\nconst styles = StyleSheet.create({\r\n container: {\r\n flexDirection: 'row',\r\n backgroundColor: Colors.white,\r\n borderRadius: 5,\r\n width: 300,\r\n height: 135,\r\n padding: 10,\r\n },\r\n summaryContainer: {\r\n width: 170,\r\n height: 120,\r\n borderRadius: 5,\r\n position: 'relative',\r\n },\r\n cover: {\r\n position: 'absolute',\r\n top: 0,\r\n left: 0,\r\n borderRadius: 5,\r\n width: 170,\r\n height: 116,\r\n },\r\n image: {\r\n resizeMode: 'cover',\r\n },\r\n mask: {\r\n backgroundColor: Colors.black,\r\n opacity: 0.32,\r\n },\r\n contentContainer: {\r\n width: '100%',\r\n position: 'absolute',\r\n padding: 4,\r\n bottom: 4,\r\n backgroundColor: Colors.blackOpacity,\r\n },\r\n date: {\r\n ...Fonts.shadow,\r\n color: Colors.white,\r\n fontSize: Fonts.sizes.mini,\r\n },\r\n activityName: {\r\n ...Fonts.shadow,\r\n color: Colors.white,\r\n fontSize: Fonts.sizes.medium,\r\n width: '95%',\r\n marginTop: 4,\r\n flex: 1,\r\n },\r\n attendanceContainer: {\r\n flex: 1,\r\n alignItems: 'center',\r\n },\r\n attendanceLabel: {\r\n color: Colors.black,\r\n fontFamily: Fonts.family.bold,\r\n fontSize: Fonts.sizes.small,\r\n },\r\n});\r\n","import * as React from 'react';\r\nimport { View } from './Themed';\r\nimport { StyleSheet, Image, ImageSourcePropType, StyleProp, ViewStyle } from 'react-native';\r\nimport { Heading, UIText } from './StyledText';\r\nimport Fonts from '../constants/Fonts';\r\n\r\ninterface AgeStatsProps {\r\n containerStyle?: StyleProp;\r\n stats: number;\r\n label: string;\r\n source: ImageSourcePropType;\r\n}\r\n\r\nexport const AgeStats = ({ stats, label, source, containerStyle }: AgeStatsProps) => (\r\n \r\n \r\n {stats}\r\n {label}\r\n \r\n);\r\n\r\nconst styles = StyleSheet.create({\r\n container: {\r\n alignItems: 'center',\r\n },\r\n icon: {\r\n width: 50,\r\n height: 50,\r\n resizeMode: 'cover',\r\n marginBottom: 2,\r\n },\r\n stats: {\r\n marginBottom: 2,\r\n },\r\n label: {\r\n fontSize: Fonts.sizes.mini,\r\n },\r\n});\r\n","import * as React from 'react';\r\nimport { ActivityStats } from '../../../constants/Interfaces';\r\nimport { View } from '../../../components/Themed';\r\nimport { StyleSheet } from 'react-native';\r\nimport { Heading } from '../../../components/StyledText';\r\nimport i18n from '../../../translations';\r\nimport { AgeStats } from '../../../components/AgeStats';\r\n\r\ninterface ActivityStatsFragmentProps {\r\n activityStats: ActivityStats;\r\n}\r\n\r\nexport const ActivityStatsFragment = ({ activityStats }: ActivityStatsFragmentProps) => (\r\n \r\n {i18n.t('components.ActivityStatsFragment.whosgoing')}\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n);\r\n\r\nconst styles = StyleSheet.create({\r\n container: {\r\n alignItems: 'center',\r\n paddingTop: 20,\r\n },\r\n heading: {\r\n marginBottom: 40,\r\n },\r\n ageContainer: {\r\n marginLeft: 10,\r\n width: 250,\r\n flexDirection: 'row',\r\n flexWrap: 'wrap',\r\n justifyContent: 'flex-start',\r\n },\r\n ageStatsItem: {\r\n width: 120,\r\n marginBottom: 20,\r\n },\r\n});\r\n","import * as React from 'react';\r\nimport { View } from '../../../components/Themed';\r\nimport { FlatList, Image, StyleSheet } from 'react-native';\r\nimport { Heading, UIText } from '../../../components/StyledText';\r\nimport i18n from '../../../translations';\r\nimport { Colors } from '../../../constants/Colors';\r\nimport Fonts from '../../../constants/Fonts';\r\nimport { Activity, ActivityStats, Dictionary, Review } from '../../../constants/Interfaces';\r\nimport { useSelector } from 'react-redux';\r\nimport _ from 'lodash';\r\nimport EventCardFragment from './EventCardFragment';\r\nimport { EventStatsFragment } from './EventStatsFragment';\r\nimport Logger from '../../../constants/Logger';\r\nimport { AntDesign } from '@expo/vector-icons';\r\nimport { useRef, useState } from 'react';\r\nimport ReviewCardFragment from './ReviewCardFragment';\r\nimport { ActionModal } from '../../../components/ActionModal';\r\nimport ReviewFragment from './ReviewFragment';\r\nimport Layout from '../../../constants/Layout';\r\nimport { ActivityStatsFragment } from './ActivityStatsFragment';\r\nimport { convertToNZ, validatePastActivity } from '../../../constants/Utils';\r\nimport { ActivityTile } from '../../../components/ActivityTile';\r\nimport PrimaryButton from '../../../components/buttons/PrimaryButton';\r\n\r\nexport const OrganiserDashboardFragment = ({ navigation, managedActivities }) => {\r\n const pastActivities: Activity[] = useSelector((state: any) =>\r\n _.orderBy(state.activity.pastActivities, ['startDate'])\r\n );\r\n const managedCurrentActivities: Activity[] = useSelector(() =>\r\n _.filter(managedActivities || [], (activity) => !validatePastActivity(activity.endDate))\r\n );\r\n const activityStats: Dictionary = useSelector((state: any) => state.activity.stats);\r\n const reviews: Review[] = useSelector((state: any) =>\r\n _.orderBy(state.review.reviews, ['lastUpdated'], 'desc').slice(0, 5)\r\n );\r\n const [reviewModal, setReviewModal] = useState(false);\r\n const [activityStatsModal, setActivityStatsModal] = useState(false);\r\n const [currentReview, setCurrentReview] = useState();\r\n const [currentActivityStats, setCurrentActivityStats] = useState();\r\n\r\n const carouselRef = useRef(null);\r\n\r\n const viewabilityConfig = useRef({\r\n itemVisiblePercentThreshold: 10,\r\n });\r\n\r\n const handleOpenWhanauList = (activity: Activity) => {\r\n Logger.debug(`Opening whanau list for activity ${activity.activityId}`);\r\n const currentStats: ActivityStats = activityStats[activity.activityId];\r\n if (currentStats) {\r\n setCurrentActivityStats(currentStats);\r\n setActivityStatsModal(true);\r\n }\r\n };\r\n\r\n const handleOpenReview = (review: Review) => {\r\n setCurrentReview(review);\r\n setReviewModal(true);\r\n };\r\n\r\n const handleCloseModal = () => {\r\n setReviewModal(false);\r\n setActivityStatsModal(false);\r\n };\r\n const handleOpenActivity = (activityId: string) => {\r\n Logger.debug(`Screen -> ActivitiesScreen -> handleOpenActivity: Navigating to activity ${activityId}`);\r\n navigation.navigate('DashboardStack', {\r\n screen: 'ActivityDetails',\r\n params: { activityId },\r\n });\r\n };\r\n\r\n return (\r\n \r\n \r\n {i18n.t('components.OrganiserDashboardFragment.dashboard')}\r\n \r\n {i18n.t('components.OrganiserDashboardFragment.eventorganiser')}\r\n \r\n \r\n {i18n.t('components.OrganiserDashboardFragment.nextactivity')}\r\n item.activityId}\r\n ItemSeparatorComponent={() => }\r\n viewabilityConfig={viewabilityConfig.current}\r\n renderItem={({ item }) => (\r\n <>\r\n handleOpenActivity(item?.activityId!)}\r\n splitButton={\r\n handleOpenWhanauList(item)}\r\n buttonStyle={{\r\n height: 45.6,\r\n borderWidth: 2,\r\n borderRadius: 37,\r\n alignItems: 'center',\r\n borderColor: Colors.yellow,\r\n }}\r\n containerStyle={{ marginRight: 'auto', paddingVertical: 0 }}\r\n textStyle={{ color: Colors.yellow, fontFamily: Fonts.family.bold }}\r\n />\r\n }\r\n />\r\n \r\n {i18n.t('components.OrganiserDashboardFragment.scans')}\r\n \r\n {activityStats[item.activityId]?.engagementTypeCheckedIn.personTotal}\r\n \r\n \r\n \r\n )}\r\n horizontal\r\n showsHorizontalScrollIndicator={false}\r\n />\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n {i18n.t('components.OrganiserDashboardFragment.upcomingActivities')}\r\n \r\n {managedCurrentActivities && managedCurrentActivities.length > 1 ? (\r\n (\r\n handleOpenActivity(item.activityId!)}\r\n background=\"white\"\r\n whiteWidth={Layout.isSmallDevice ? 300 : 200}\r\n />\r\n )}\r\n getItemLayout={(data, index) => ({ length: 200, offset: 200 * index, index })}\r\n ItemSeparatorComponent={() => }\r\n keyExtractor={(item) => item.activityId}\r\n />\r\n ) : null}\r\n \r\n \r\n \r\n {i18n.t('components.OrganiserDashboardFragment.pastactivity')}\r\n \r\n \r\n \r\n {pastActivities && pastActivities.length > 0 ? (\r\n (\r\n handleOpenActivity(item.activityId!)} />\r\n )}\r\n getItemLayout={(data, index) => ({ length: 300, offset: 300 * index, index })}\r\n keyExtractor={(item) => item.activityId}\r\n />\r\n ) : null}\r\n \r\n \r\n \r\n \r\n {i18n.t('components.OrganiserDashboardFragment.recentreviews')}\r\n \r\n \r\n \r\n index.toString()}\r\n renderItem={({ item }) => (\r\n \r\n )}\r\n />\r\n \r\n \r\n {currentReview ? : null}\r\n \r\n \r\n {currentActivityStats ? : null}\r\n \r\n \r\n \r\n \r\n );\r\n};\r\n\r\nconst styles = StyleSheet.create({\r\n root: {\r\n minHeight: Layout.window.height,\r\n backgroundColor: Colors.white,\r\n marginBottom: 200,\r\n },\r\n mainContainer: {\r\n paddingHorizontal: Layout.backgroundMarginNarrow.left,\r\n backgroundColor: Colors.darkBurgundy,\r\n },\r\n heading: {\r\n marginBottom: 8,\r\n color: Colors.white,\r\n fontSize: Fonts.sizes.smallHeading,\r\n },\r\n subHeading: {\r\n fontFamily: Fonts.family.regular,\r\n },\r\n sectionHeader: {\r\n color: Colors.darkBurgundy,\r\n fontFamily: Fonts.family.bold,\r\n fontSize: Fonts.sizes.medium,\r\n marginVertical: 8,\r\n },\r\n nextContainer: {},\r\n buttonIcon: {\r\n paddingTop: 2,\r\n paddingRight: 8,\r\n },\r\n statsContainer: {\r\n position: 'absolute',\r\n right: 2,\r\n top: 4,\r\n backgroundColor: Colors.backgroundYellow,\r\n width: 50,\r\n height: 50,\r\n borderRadius: 50,\r\n alignItems: 'center',\r\n paddingTop: 10,\r\n },\r\n scansLabel: {\r\n fontSize: 9,\r\n },\r\n scansValue: {\r\n fontFamily: Fonts.family.bold,\r\n },\r\n activitiesContainer: {\r\n paddingHorizontal: 15,\r\n },\r\n reviewsContainer: {\r\n marginTop: 12,\r\n },\r\n labelContainer: {\r\n flexDirection: 'row',\r\n alignItems: 'center',\r\n marginBottom: 8,\r\n },\r\n reviewStar: {\r\n height: 34,\r\n width: 34,\r\n resizeMode: 'contain',\r\n marginLeft: 6,\r\n },\r\n cornersContainer: {\r\n backgroundColor: Colors.darkBurgundy,\r\n flexDirection: 'row',\r\n height: 15,\r\n width: '100%',\r\n alignItems: 'flex-start',\r\n justifyContent: 'space-between',\r\n borderRadius: 35,\r\n top: -15,\r\n },\r\n corner: {\r\n backgroundColor: Colors.darkBurgundy,\r\n height: 15,\r\n width: Layout.backgroundMarginNarrow.left,\r\n left: 0,\r\n borderWidth: 1,\r\n borderColor: Colors.darkBurgundy,\r\n },\r\n pastAcitiviesLabelContainer: {\r\n flexDirection: 'row',\r\n justifyContent: 'space-between',\r\n },\r\n});\r\n","import React from 'react';\r\nimport { View, StyleSheet, Pressable } from 'react-native';\r\nimport PrimaryButton from '../../../components/buttons/PrimaryButton';\r\nimport { Heading, UIText } from '../../../components/StyledText';\r\nimport { Location } from '../../../constants/Interfaces';\r\nimport i18n from '../../../translations';\r\nimport { createOpenLink } from 'react-native-open-maps';\r\n\r\ninterface MapsFragmentProps {\r\n location: Location | null | undefined;\r\n web?: Boolean;\r\n TextLabelWeb?;\r\n}\r\n\r\nconst MapsFragment = ({ location, web, TextLabelWeb }: MapsFragmentProps) => {\r\n const addressLine1 = location?.addressLine1;\r\n const city = location?.city;\r\n const regionName = location?.regionName;\r\n const geoLocation = `${location?.geoLat!},${location?.geoLong!}`;\r\n const openLocation = createOpenLink({ provider: 'google', query: geoLocation });\r\n const isGeoValid = !(location?.geoLat === 0 && location?.geoLong === 0);\r\n return (\r\n <>\r\n {web ? (\r\n isGeoValid && (\r\n \r\n {i18n.t('components.MapsFragment.viewMap')}\r\n \r\n )\r\n ) : (\r\n \r\n {i18n.t('components.MapsFragment.directions')}\r\n {`${addressLine1}, ${city}, ${regionName}`}\r\n {isGeoValid && (\r\n \r\n )}\r\n \r\n )}\r\n \r\n );\r\n};\r\n\r\nexport default MapsFragment;\r\n\r\nconst styles = StyleSheet.create({\r\n addressModal: {\r\n marginHorizontal: '10%',\r\n flex: 1,\r\n justifyContent: 'space-around',\r\n },\r\n buttonStyle: {\r\n width: '100%',\r\n justifyContent: 'center',\r\n alignItems: 'center',\r\n },\r\n containerStyle: {\r\n paddingHorizontal: 0,\r\n },\r\n textStyle: {\r\n marginHorizontal: '5%',\r\n width: '90%',\r\n },\r\n link: {\r\n textDecorationLine: 'underline',\r\n },\r\n});\r\n","import React, { useRef, useState } from 'react';\r\nimport { View } from '../../../components/Themed';\r\nimport { FlatList, StyleSheet } from 'react-native';\r\nimport { Paragraph, UIText } from '../../../components/StyledText';\r\nimport i18n from '../../../translations';\r\nimport { Activity, User, UserActivity } from '../../../constants/Interfaces';\r\nimport { Colors } from '../../../constants/Colors';\r\nimport { useSelector } from 'react-redux';\r\nimport EventCardFragment from './EventCardFragment';\r\nimport { SplitButton } from '../../../components/buttons/SplitButton';\r\nimport { ActionModal } from '../../../components/ActionModal';\r\nimport { getUserActivities } from '../../../reducers/activity.slice';\r\nimport Fonts from '../../../constants/Fonts';\r\nimport { MaterialIcons } from '@expo/vector-icons';\r\nimport Logger from '../../../constants/Logger';\r\nimport MapsFragment from './MapsFragment';\r\nimport GridActivities from '../../../components/GridActivities';\r\nimport { convertToNZ } from '../../../constants/Utils';\r\nimport Layout from '../../../constants/Layout';\r\nimport { ActivityScannerFragment } from './ActivityScannerFragment';\r\nimport { useAppDispatch } from '../../../store/configureStore';\r\n\r\nexport const UserDashboardFragment = ({ navigation }) => {\r\n const user: User = useSelector((state: any) => state.user.user);\r\n const [activeScanner, setActiveScanner] = React.useState(false);\r\n const [directionsModal, setDirectionsModal] = useState(false);\r\n\r\n const activities: Activity[] = useSelector((state: any) => state.activity.activities);\r\n const myActivities: UserActivity[] = useSelector((state: any) => state.activity.myActivities)\r\n .filter((item: UserActivity) => item.userId === user.userId)\r\n // eslint-disable-next-line no-nested-ternary\r\n .sort((a, b) => (a.startDate > b.lstartDate ? 1 : b.startDate > a.startDate ? -1 : 0));\r\n const goingActivities = myActivities.filter((item) => item.going && !item.checkedIn);\r\n const [nextActivity, setNextActivity] = useState(goingActivities[0]);\r\n const dispatch = useAppDispatch();\r\n\r\n const handleCloseModal = () => {\r\n setActiveScanner(false);\r\n setDirectionsModal(false);\r\n };\r\n\r\n const handleQrScanner = (item) => {\r\n setNextActivity(item);\r\n setActiveScanner(true);\r\n };\r\n const handleDirections = (item) => {\r\n setNextActivity(item);\r\n setDirectionsModal(true);\r\n };\r\n const handleScanDone = () => {\r\n setActiveScanner(false);\r\n dispatch(getUserActivities());\r\n carouselRef.current?.scrollToIndex({ index: 0 });\r\n };\r\n const handleOpenActivity = (activityId: string) => {\r\n Logger.debug(`Screen -> ActivitiesScreen -> handleOpenActivity: Navigating to activity ${activityId}`);\r\n navigation.navigate('DashboardStack', {\r\n screen: 'ActivityDetails',\r\n params: { activityId },\r\n });\r\n };\r\n\r\n const carouselRef = useRef(null);\r\n\r\n const viewabilityConfig = useRef({\r\n itemVisiblePercentThreshold: 10,\r\n });\r\n\r\n return (\r\n \r\n {i18n.t('components.UserDashboardFragment.dashboard')}\r\n \r\n {i18n.t('components.UserDashboardFragment.nextActivity')}\r\n \r\n \r\n item.activityId}\r\n ItemSeparatorComponent={() => }\r\n viewabilityConfig={viewabilityConfig.current}\r\n renderItem={({ item }) => (\r\n handleOpenActivity(item.activityId)}\r\n activityId={item.activityId}\r\n isInList\r\n splitButton={\r\n handleDirections(item)}\r\n onPressRight={() => handleQrScanner(item)}\r\n backgroundColorLeft={Colors.darkBurgundy}\r\n backgroundColorRight={Colors.yellow}\r\n labelColorLeft={Colors.yellow}\r\n labelColorRight={Colors.black}\r\n borderColor={Colors.yellow}\r\n />\r\n }\r\n />\r\n )}\r\n horizontal\r\n showsHorizontalScrollIndicator={false}\r\n />\r\n\r\n {i18n.t('components.UserDashboardFragment.interest')}\r\n {activities && }\r\n {nextActivity && (\r\n <>\r\n \r\n \r\n \r\n setActiveScanner(false)}\r\n height={Layout.window.height - 100}\r\n >\r\n \r\n \r\n \r\n )}\r\n \r\n );\r\n};\r\n\r\nconst styles = StyleSheet.create({\r\n root: {\r\n minHeight: Layout.window.height - 60,\r\n paddingHorizontal: Layout.backgroundMarginNarrow.left,\r\n paddingBottom: 150,\r\n },\r\n title: {\r\n color: Colors.white,\r\n fontSize: Fonts.sizes.bigHeading,\r\n fontFamily: Fonts.family.bold,\r\n },\r\n sectionTitle: {\r\n color: Colors.yellow,\r\n fontFamily: Fonts.family.bold,\r\n marginVertical: 10,\r\n },\r\n container: {\r\n flex: 1,\r\n alignItems: 'center',\r\n justifyContent: 'center',\r\n backgroundColor: Colors.darkBurgundy,\r\n },\r\n nextActivityContainer: {\r\n justifyContent: 'space-between',\r\n alignItems: 'center',\r\n flexDirection: 'row',\r\n },\r\n slide: {\r\n width: '100%',\r\n },\r\n});\r\n","import * as React from 'react';\r\nimport { StyleSheet } from 'react-native';\r\nimport { useSelector } from 'react-redux';\r\nimport { useAppDispatch } from '../../store/configureStore';\r\nimport { View } from '../../components/Themed';\r\nimport { UIText } from '../../components/StyledText';\r\nimport { Activity, AuthState, Role, User, UserActivity } from '../../constants/Interfaces';\r\nimport UserConfirmationScreen from './UserConfirmationScreen';\r\nimport AdminDashboardFragment from './fragments/AdminDashboardFragment';\r\nimport { OrganiserDashboardFragment } from './fragments/OrganiserDashboardFragment';\r\nimport { UserDashboardFragment } from './fragments/UserDashboardFragment';\r\nimport { getReviews } from '../../reducers/review.slice';\r\nimport { ActivitiesScreen } from '../activities/ActivitiesScreen';\r\nimport { getActivities, getActivityStats, getPastActivities } from '../../reducers/activity.slice';\r\nimport { getUser, getUserActivitiesCompleted } from '../../reducers/user.slice';\r\nimport i18n from '../../translations';\r\nimport RefreshHolder from '../../components/RefreshHolder';\r\nimport _ from 'lodash';\r\nimport Layout from '../../constants/Layout';\r\nimport useLogoutUser from '../../hooks/useLogoutUser';\r\n\r\nexport default function HomeScreen({ navigation }) {\r\n const user: User = useSelector((state: any) => state.user.user);\r\n const authState: AuthState = useSelector((state: any) => state.authentication.authState);\r\n const needsConfirmation: boolean = useSelector((state: any) => state.user.needsConfirmation);\r\n const isConfirmed: boolean = useSelector((state: any) => state.user.isConfirmed);\r\n const myActivities: UserActivity[] = useSelector((state: any) => state.activity.myActivities).filter(\r\n (item: UserActivity) => item.userId === user?.userId\r\n );\r\n const [managedActivities, setManagedActivities] = React.useState();\r\n const goingActivities = myActivities.filter((item) => item.going && !item.checkedIn);\r\n\r\n const dispatch = useAppDispatch();\r\n\r\n useLogoutUser();\r\n\r\n const populateManagedActivities = (activities: Activity[]) => {\r\n if (!user || user.role !== Role.ORGANISER) {\r\n return;\r\n }\r\n const newManagedActivities = _.filter(\r\n activities,\r\n (activity: Activity) => activity.organiser?.userId === user.userId\r\n );\r\n setManagedActivities(newManagedActivities);\r\n _.each(newManagedActivities, (activity: Activity) => {\r\n dispatch(getActivityStats(activity.activityId));\r\n });\r\n };\r\n\r\n React.useEffect(() => {\r\n // NOTE: This only triggers when the screen is loaded into the navigator, and not when the screen is navigated to.\r\n dispatch(getUserActivitiesCompleted())\r\n .unwrap()\r\n .then((activities: Activity[]) => {\r\n populateManagedActivities(activities);\r\n });\r\n dispatch(getReviews());\r\n if (user && user.role === Role.ORGANISER) dispatch(getPastActivities());\r\n }, []);\r\n\r\n const handleRefresh = async () => {\r\n await dispatch(getUser());\r\n await dispatch(getActivities(authState))\r\n .unwrap()\r\n .then((activities: Activity[]) => {\r\n populateManagedActivities(activities);\r\n });\r\n await dispatch(getReviews());\r\n if (user && user.role === Role.ORGANISER) dispatch(getPastActivities());\r\n };\r\n\r\n if (needsConfirmation && !isConfirmed) {\r\n return ;\r\n }\r\n\r\n const renderFragment = () => {\r\n if (user && user.role === Role.USER_ADMIN) {\r\n return (\r\n \r\n \r\n \r\n );\r\n }\r\n\r\n if (user && user.role === Role.ORGANISER) {\r\n return (\r\n \r\n \r\n \r\n );\r\n }\r\n\r\n if (user && user.role === Role.USER) {\r\n return (\r\n \r\n \r\n \r\n );\r\n }\r\n\r\n return (\r\n \r\n {i18n.t('pages.HomeScreen.error')}\r\n \r\n );\r\n };\r\n\r\n return user && user.role === Role.USER && goingActivities.length < 1 ? (\r\n \r\n ) : (\r\n <>{renderFragment()}\r\n );\r\n}\r\n\r\nconst styles = StyleSheet.create({\r\n container: {\r\n flex: 1,\r\n alignItems: 'center',\r\n justifyContent: 'center',\r\n },\r\n loadingContainer: {\r\n position: 'absolute',\r\n marginVertical: Layout.window.height / 2,\r\n },\r\n});\r\n","import * as React from 'react';\r\nimport { createStackNavigator } from '@react-navigation/stack';\r\nimport HomeScreen from '../screens/home/HomeScreen';\r\nimport { ActivityDetailsScreen } from '../screens/activities/ActivityDetailsScreen';\r\nimport { HomeParamList } from '../constants/Interfaces';\r\nimport { useNavigation } from '@react-navigation/native';\r\nimport { SelectRegionScreen } from '../screens/profile/SelectRegionScreen';\r\nimport { TipScreen } from '../screens/profile/TipScreen';\r\n\r\nconst HomeStack = createStackNavigator();\r\n\r\nexport const HomeNavigator = () => {\r\n const navigation = useNavigation();\r\n\r\n React.useEffect(\r\n () =>\r\n navigation.addListener('beforeRemove', () => {\r\n navigation.navigate('DashboardStack');\r\n }),\r\n []\r\n );\r\n return (\r\n \r\n \r\n \r\n \r\n \r\n \r\n );\r\n};\r\n","import React from 'react';\r\nimport { View, Image, StyleSheet, Pressable, ImageBackground } from 'react-native';\r\nimport { UIText } from '../../../components/StyledText';\r\nimport { Colors } from '../../../constants/Colors';\r\nimport Fonts from '../../../constants/Fonts';\r\nimport Logger from '../../../constants/Logger';\r\nimport { convertToNZ, getCacheImage } from '../../../constants/Utils';\r\n\r\nconst FavouriteActivityFragment = ({ activity, onPress }) => {\r\n const [activityImage, setActivityImage] = React.useState(activity.imageUrl);\r\n\r\n const cacheImage = async () => {\r\n try {\r\n const uri = await getCacheImage({ activityId: activity.activityId, uri: activity.imageUrl });\r\n setActivityImage(uri);\r\n } catch (e) {\r\n Logger.debug(e);\r\n }\r\n };\r\n\r\n React.useEffect(() => {\r\n cacheImage();\r\n }, [activity]);\r\n return (\r\n \r\n {activity && (\r\n \r\n \r\n \r\n \r\n \r\n )}\r\n\r\n \r\n \r\n {convertToNZ({ date: activity.startDate!, format: 'cccc dd MMMM, yyyy,h:mma' })}\r\n \r\n {activity.activityName}\r\n \r\n \r\n );\r\n};\r\n\r\nexport default FavouriteActivityFragment;\r\n\r\nconst styles = StyleSheet.create({\r\n favContainer: {\r\n flexDirection: 'row',\r\n marginVertical: 15,\r\n },\r\n favImage: {\r\n height: 80,\r\n width: 80,\r\n marginRight: 15,\r\n },\r\n favIconContainer: {\r\n width: 25,\r\n height: 25,\r\n borderRadius: 20,\r\n backgroundColor: Colors.yellow,\r\n justifyContent: 'center',\r\n alignItems: 'center',\r\n top: -10,\r\n left: 65,\r\n },\r\n favIcon: {\r\n height: '50%',\r\n width: '50%',\r\n },\r\n favDetailsContainer: {\r\n justifyContent: 'center',\r\n flex: 1,\r\n },\r\n favLabel: {\r\n color: Colors.white,\r\n fontSize: Fonts.sizes.medium,\r\n },\r\n title: {\r\n fontSize: Fonts.sizes.smallHeading,\r\n fontFamily: Fonts.family.bold,\r\n },\r\n});\r\n","import React from 'react';\r\nimport { View } from '../../components/Themed';\r\nimport { FlatList, StyleSheet } from 'react-native';\r\nimport { Paragraph } from '../../components/StyledText';\r\nimport i18n from '../../translations';\r\nimport { User, UserActivity } from '../../constants/Interfaces';\r\nimport { Colors } from '../../constants/Colors';\r\nimport { useSelector } from 'react-redux';\r\nimport Fonts from '../../constants/Fonts';\r\nimport Logger from '../../constants/Logger';\r\nimport FavouriteActivityFragment from '../home/fragments/FavouriteActivityFragment';\r\nimport ScreenHolder from '../../components/ScreenHolder';\r\nimport { useNavigation } from '@react-navigation/native';\r\nimport Layout from '../../constants/Layout';\r\nimport useLogoutUser from '../../hooks/useLogoutUser';\r\n\r\nexport const FavesScreen = () => {\r\n const navigation = useNavigation();\r\n const user: User = useSelector((state: any) => state.user.user);\r\n\r\n const myActivities: UserActivity[] = useSelector((state: any) => state.activity.myActivities)\r\n .filter((item: UserActivity) => item.userId === user.userId)\r\n .sort((a, b) => a.startDate - b.startDate);\r\n\r\n const favActivities = myActivities.filter((item) => item.favourite);\r\n\r\n const handleOpenActivity = (activityId: string) => {\r\n Logger.debug(`Screen -> ActivitiesScreen -> handleOpenActivity: Navigating to activity ${activityId}`);\r\n navigation.navigate('FaveActivity', {\r\n activityId,\r\n });\r\n };\r\n\r\n useLogoutUser();\r\n\r\n return (\r\n \r\n \r\n {i18n.t('components.UserDashboardFragment.mostFav')}\r\n item.activityId}\r\n renderItem={({ item }) => (\r\n handleOpenActivity(item.activityId)} />\r\n )}\r\n />\r\n \r\n \r\n \r\n );\r\n};\r\n\r\nconst styles = StyleSheet.create({\r\n root: {\r\n marginHorizontal: 5,\r\n marginTop: 60,\r\n minHeight: Layout.isSmallDevice ? Layout.window.height - 200 : Layout.window.height - 100,\r\n },\r\n title: {\r\n color: Colors.white,\r\n fontSize: Fonts.sizes.bigHeading,\r\n fontFamily: Fonts.family.bold,\r\n },\r\n sectionTitle: {\r\n color: Colors.yellow,\r\n fontFamily: Fonts.family.bold,\r\n marginVertical: 10,\r\n },\r\n container: {\r\n flex: 1,\r\n alignItems: 'center',\r\n justifyContent: 'center',\r\n backgroundColor: Colors.darkBurgundy,\r\n },\r\n titleLogout: {\r\n fontSize: 20,\r\n fontWeight: 'bold',\r\n },\r\n nextActivityContainer: {\r\n justifyContent: 'space-between',\r\n alignItems: 'center',\r\n flexDirection: 'row',\r\n },\r\n});\r\n","import { FavesScreen } from '../screens/faves/FavesScreen';\r\nimport * as React from 'react';\r\nimport { createStackNavigator } from '@react-navigation/stack';\r\nimport { ActivityDetailsScreen } from '../screens/activities/ActivityDetailsScreen';\r\nimport { useNavigation } from '@react-navigation/native';\r\n\r\nconst ProfileStack = createStackNavigator();\r\n\r\nexport const FavesNavigation = () => {\r\n const navigation = useNavigation();\r\n\r\n React.useEffect(\r\n () =>\r\n navigation.addListener('beforeRemove', () => {\r\n navigation.navigate('DashboardStack');\r\n }),\r\n []\r\n );\r\n return (\r\n \r\n \r\n \r\n \r\n );\r\n};\r\n","import React from 'react';\r\nimport { View, Image, StyleSheet, Pressable } from 'react-native';\r\nimport Svg, { Polygon, Image as ImageSvg, ClipPath } from 'react-native-svg';\r\nimport { useSelector } from 'react-redux';\r\nimport { Colors } from '../constants/Colors';\r\nimport Fonts from '../constants/Fonts';\r\nimport { UserMarae } from '../constants/Interfaces';\r\nimport Layout from '../constants/Layout';\r\nimport Logger from '../constants/Logger';\r\nimport i18n from '../translations';\r\nimport { Paragraph, UIText } from './StyledText';\r\n\r\ninterface HeroLeaderboardProps {\r\n navigation: any;\r\n data: UserMarae[];\r\n}\r\nconst HeroLeaderboard = ({ navigation, data }: HeroLeaderboardProps) => {\r\n const filterRegion: string = useSelector((state: any) => state.region.selectedRegionLeaderboard);\r\n\r\n const handleRegionToggle = () => {\r\n Logger.debug(`Region toggle clicked. `);\r\n navigation.navigate('SelectRegion', {\r\n regionFilter: 'leaderboard',\r\n });\r\n };\r\n\r\n return (\r\n \r\n \r\n {filterRegion || i18n.t('components.HeroLeaderboard.noRegion')}\r\n handleRegionToggle()}>\r\n \r\n \r\n \r\n {data.length === 0 ? (\r\n {i18n.t('components.HeroLeaderboard.noPoints', { filterRegion })}\r\n ) : (\r\n \r\n {data.length > 2 && }\r\n {data.length > 0 && }\r\n {data.length > 2 && }\r\n \r\n )}\r\n \r\n );\r\n};\r\n\r\nconst PlacePodium = ({ place, marae, style }) => {\r\n const maraeName = marae?.maraeName;\r\n const pointTotal = marae?.pointTotal;\r\n const participationTotal = marae?.participationTotal;\r\n const imageUrl = require('../../assets/images/leaderboard_placeholder.png');\r\n\r\n const imageHeight = (place) => {\r\n if (place === 1) {\r\n return { height: 120 };\r\n }\r\n if (place === 2) {\r\n return { height: 80 };\r\n }\r\n return { height: 60 };\r\n };\r\n\r\n const trianglePoints = (place) => {\r\n if (place === 1) {\r\n return `0,0 ${Layout.window.width * 0.49},0 ${(Layout.window.width * 0.49) / 2},130`;\r\n }\r\n if (place === 2) {\r\n return `0,0 ${Layout.window.width * 0.32},0 ${(Layout.window.width * 0.32) / 2},85`;\r\n }\r\n return `0,0 ${Layout.window.width * 0.27},0 ${(Layout.window.width * 0.27) / 2},65`;\r\n };\r\n return (\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n {place}\r\n \r\n \r\n \r\n \r\n {maraeName}\r\n \r\n {`${pointTotal} ${i18n.t(\r\n 'components.HeroLeaderboard.points'\r\n )}`}\r\n \r\n \r\n {`${participationTotal} Whānau`}\r\n \r\n \r\n \r\n );\r\n};\r\nexport default HeroLeaderboard;\r\n\r\nconst styles = StyleSheet.create({\r\n root: {\r\n justifyContent: 'center',\r\n alignItems: 'center',\r\n backgroundColor: Colors.yellow,\r\n zIndex: 1,\r\n paddingHorizontal: '5%',\r\n },\r\n filterLabel: {\r\n fontFamily: Fonts.family.bold,\r\n fontSize: Fonts.sizes.smallHeading,\r\n },\r\n filterContainer: {\r\n flexDirection: 'row',\r\n justifyContent: 'center',\r\n alignItems: 'center',\r\n marginVertical: 20,\r\n zIndex: 1000,\r\n },\r\n filterIconContainer: {\r\n height: 30,\r\n width: 30,\r\n borderRadius: 30,\r\n backgroundColor: Colors.darkBurgundy,\r\n justifyContent: 'center',\r\n alignItems: 'center',\r\n marginLeft: 15,\r\n },\r\n filterIcon: {\r\n height: 10,\r\n width: 20,\r\n marginLeft: 2,\r\n },\r\n podium: {\r\n width: '100%',\r\n flexDirection: 'row',\r\n justifyContent: 'center',\r\n alignItems: 'flex-end',\r\n },\r\n maraeLabel: {\r\n width: '75%',\r\n alignSelf: 'center',\r\n textAlign: 'center',\r\n fontSize: Fonts.sizes.medium,\r\n fontFamily: Fonts.family.bold,\r\n },\r\n faves: {\r\n backgroundColor: Colors.whiteOpacity,\r\n borderRadius: 10,\r\n flexDirection: 'row',\r\n justifyContent: 'flex-start',\r\n alignItems: 'center',\r\n padding: 2,\r\n width: 100,\r\n },\r\n favIcon: {\r\n height: 20,\r\n width: 20,\r\n marginRight: 5,\r\n },\r\n podiumBadge: {\r\n width: '100%',\r\n alignItems: 'center',\r\n justifyContent: 'center',\r\n },\r\n place: {\r\n justifyContent: 'center',\r\n alignItems: 'center',\r\n backgroundColor: Colors.darkBurgundy,\r\n borderColor: Colors.yellow,\r\n borderWidth: 3,\r\n borderRadius: 50,\r\n alignSelf: 'center',\r\n top: -15,\r\n minWidth: 25,\r\n minHeight: 25,\r\n },\r\n firstPlace: {\r\n width: '55%',\r\n alignSelf: 'center',\r\n },\r\n secondPlace: {\r\n width: '35%',\r\n left: 30,\r\n },\r\n thirdPlace: {\r\n width: '32%',\r\n right: 40,\r\n },\r\n placeLabel: {\r\n color: Colors.white,\r\n fontFamily: Fonts.family.bold,\r\n },\r\n labelContainer: {\r\n width: '100%',\r\n justifyContent: 'center',\r\n alignItems: 'center',\r\n },\r\n pointsLabel: {\r\n fontSize: Fonts.sizes.small,\r\n marginVertical: 5,\r\n },\r\n whanaus: {\r\n fontSize: Fonts.sizes.mini,\r\n fontFamily: Fonts.family.bold,\r\n },\r\n modal: {\r\n maxHeight: 400,\r\n },\r\n noPointsText: {\r\n alignSelf: 'center',\r\n paddingTop: 15,\r\n textAlign: 'center',\r\n },\r\n});\r\n","import React from 'react';\r\nimport { View, StyleSheet, Image } from 'react-native';\r\nimport { useSelector } from 'react-redux';\r\nimport { Colors } from '../constants/Colors';\r\nimport Fonts from '../constants/Fonts';\r\nimport { UserMarae } from '../constants/Interfaces';\r\nimport { UIText } from './StyledText';\r\n\r\ninterface ProgressBarProps {\r\n marae: {\r\n pointTotal: number;\r\n maraeId: number;\r\n region: string;\r\n maraeName: string;\r\n participationTotal: number;\r\n };\r\n position: number;\r\n top: number;\r\n}\r\nconst ProgressBar = ({ marae, position, top }: ProgressBarProps) => {\r\n const myMarae: UserMarae[] = useSelector((state: any) => state.user.user.marae);\r\n const progress = ((marae.pointTotal * 85) / top).toFixed(0);\r\n const isMyMarae = myMarae.find((item: UserMarae) => item.maraeId === marae.maraeId);\r\n const imageUrl = require('../../assets/images/marae_placeholder.png');\r\n return (\r\n \r\n \r\n \r\n \r\n {marae.maraeName.toUpperCase()}\r\n \r\n {marae.pointTotal}\r\n \r\n \r\n \r\n \r\n \r\n {position}\r\n \r\n \r\n );\r\n};\r\n\r\nexport default ProgressBar;\r\n\r\nconst styles = StyleSheet.create({\r\n progressContainer: {\r\n height: 40,\r\n width: '100%',\r\n marginVertical: 10,\r\n },\r\n barContainer: {\r\n width: '85%',\r\n height: 35,\r\n backgroundColor: Colors.whiteOpacity,\r\n borderTopEndRadius: 20,\r\n borderBottomEndRadius: 20,\r\n paddingLeft: '5%',\r\n paddingRight: 10,\r\n marginLeft: '15%',\r\n marginVertical: 5,\r\n },\r\n barPoints: {\r\n width: '85%',\r\n backgroundColor: Colors.palePink,\r\n },\r\n scoreContainer: {\r\n flexDirection: 'row',\r\n justifyContent: 'space-between',\r\n alignItems: 'center',\r\n top: -45,\r\n },\r\n maraeBar: {\r\n fontFamily: Fonts.family.bold,\r\n },\r\n MaraeIconContainer: {\r\n backgroundColor: Colors.darkBurgundy,\r\n height: 55,\r\n width: 55,\r\n borderRadius: 30,\r\n top: -95,\r\n padding: 3,\r\n borderWidth: 3,\r\n borderColor: Colors.yellow,\r\n marginLeft: '2%',\r\n },\r\n maraePic: {\r\n height: '100%',\r\n width: '100%',\r\n borderRadius: 25,\r\n },\r\n position: {\r\n height: 20,\r\n width: 20,\r\n borderRadius: 10,\r\n top: -115,\r\n left: 40,\r\n justifyContent: 'center',\r\n alignItems: 'center',\r\n },\r\n positionLabel: {\r\n fontFamily: Fonts.family.bold,\r\n fontSize: Fonts.sizes.small,\r\n },\r\n});\r\n","import React from 'react';\r\nimport { View, StyleSheet, Pressable, Image } from 'react-native';\r\nimport { useSelector } from 'react-redux';\r\nimport { UIText } from '../../components/StyledText';\r\nimport { Colors } from '../../constants/Colors';\r\nimport Fonts from '../../constants/Fonts';\r\nimport { Activity, User, UserMarae } from '../../constants/Interfaces';\r\nimport i18n from '../../translations';\r\nimport { DateTime } from 'luxon';\r\nimport { shareContent } from '../../constants/Utils';\r\n\r\nconst ElevateContent = () => {\r\n const myMaraes: UserMarae[] = useSelector((state: any) => state.user.user.marae);\r\n const myWhanau: User[] = useSelector((state: any) => state.user.whanau);\r\n const user: User = useSelector((state: any) => state.user.user);\r\n const activities: Activity[] = useSelector((state: any) => state.activity.activities);\r\n const myRegions = myMaraes.map((item) => item.maraeLocation?.regionName);\r\n\r\n const comingActivities = () => {\r\n let count = 0;\r\n for (let i = 0; i < myRegions.length; i += 1) {\r\n for (let j = 0; j < activities.length; j += 1) {\r\n if (myRegions[i] === activities[j].location?.regionName) {\r\n count = +1;\r\n }\r\n }\r\n }\r\n return count;\r\n };\r\n const daysLeft = () => {\r\n const today = DateTime.now();\r\n const year = today.month > 3 ? today.year + 1 : today.year;\r\n const nextYear = DateTime.local(year, 4, 1);\r\n const diff = nextYear.diff(today, 'days').days.toFixed(0);\r\n return diff;\r\n };\r\n const getPoints = (age: number) => {\r\n if (age >= 5 && age <= 12) {\r\n return 15;\r\n }\r\n if (age >= 13 && age <= 20) {\r\n return 20;\r\n }\r\n if (age >= 21 && age <= 49) {\r\n return 30;\r\n }\r\n if (age > 50) {\r\n return 50;\r\n }\r\n return 0;\r\n };\r\n const getAge = (date) => DateTime.now().diff(DateTime.fromISO(date), 'years').years.toFixed(0);\r\n\r\n const getTotalPoints = () => {\r\n const ages = myWhanau.map((item) => +getAge(item?.doB));\r\n ages.push(+getAge(user.doB));\r\n const points: number[] = ages.map((item: number) => getPoints(item));\r\n const totalPoints = points.reduce((acc, current) => acc + current);\r\n return totalPoints;\r\n };\r\n\r\n return (\r\n \r\n {i18n.t('components.ElevateContent.title')}\r\n \r\n {i18n.t('components.ElevateContent.getInvolved')}\r\n \r\n \r\n {i18n.t('components.ElevateContent.description', {\r\n comingActivities: comingActivities(),\r\n days: daysLeft(),\r\n points: getTotalPoints() * comingActivities(),\r\n })}\r\n \r\n \r\n {i18n.t('components.ElevateContent.spread')}\r\n \r\n {i18n.t('components.ElevateContent.fbMessage')}\r\n shareContent()}>\r\n \r\n \r\n \r\n );\r\n};\r\n\r\nexport default ElevateContent;\r\nconst styles = StyleSheet.create({\r\n title: {\r\n fontFamily: Fonts.family.bold,\r\n fontSize: Fonts.sizes.smallHeading,\r\n marginBottom: 20,\r\n },\r\n subTitleContainer: {\r\n marginVertical: 10,\r\n paddingBottom: 5,\r\n borderBottomColor: Colors.yellow,\r\n borderBottomWidth: 2,\r\n },\r\n subTitle: {\r\n fontFamily: Fonts.family.bold,\r\n color: Colors.yellow,\r\n },\r\n paragraph: {\r\n fontSize: Fonts.sizes.medium,\r\n },\r\n fbIcon: {\r\n width: 100,\r\n height: 40,\r\n resizeMode: 'contain',\r\n marginTop: 30,\r\n },\r\n});\r\n","import React, { useState, useCallback } from 'react';\r\nimport { View, StyleSheet, Pressable } from 'react-native';\r\nimport { useFocusEffect } from '@react-navigation/native';\r\nimport { useDispatch, useSelector } from 'react-redux';\r\nimport HeroLeaderboard from '../../components/HeroLeaderboard';\r\nimport ModalUI from '../../components/ModalUI';\r\nimport ProgressBar from '../../components/ProgressBar';\r\nimport ScreenHolder from '../../components/ScreenHolder';\r\nimport { Heading, UIText } from '../../components/StyledText';\r\nimport { Colors } from '../../constants/Colors';\r\nimport Fonts from '../../constants/Fonts';\r\nimport { UserMarae, MaraeLeaderboard } from '../../constants/Interfaces';\r\nimport Layout from '../../constants/Layout';\r\nimport useLogoutUser from '../../hooks/useLogoutUser';\r\nimport { getMaraeLeaderboard } from '../../reducers/marae.slice';\r\nimport i18n from '../../translations';\r\nimport ElevateContent from './ElevateContent';\r\n\r\nexport const LeaderboardScreen = ({ navigation }) => {\r\n const leaderboardList: MaraeLeaderboard[] = useSelector((state: any) => state.marae.leaderboard);\r\n const dispatch = useDispatch();\r\n\r\n useLogoutUser();\r\n\r\n useFocusEffect(\r\n useCallback(() => {\r\n dispatch(getMaraeLeaderboard());\r\n }, [])\r\n );\r\n\r\n const [activeModal, setActiveModal] = useState(false);\r\n const filterRegion: string = useSelector((state: any) => state.region.selectedRegionLeaderboard);\r\n const myMaraes: UserMarae[] = useSelector((state: any) => state.user.user?.marae) || [];\r\n const leaderboard = filterRegion\r\n ? leaderboardList.filter((item) => item.region === filterRegion).sort((a, b) => b.pointTotal - a.pointTotal)\r\n : [...leaderboardList].sort((a, b) => b.pointTotal - a.pointTotal);\r\n\r\n const top10 = leaderboard?.slice(0, 10);\r\n const highestScore = leaderboard[0]?.pointTotal;\r\n\r\n const noTop10 = () => {\r\n const noRankedMaraes = leaderboard.slice(10);\r\n const noRanked: any = [];\r\n for (let i = 0; i < myMaraes.length; i += 1) {\r\n for (let j = 0; j < noRankedMaraes.length; j += 1) {\r\n if (myMaraes[i].maraeId === noRankedMaraes[j].maraeId) {\r\n const obj = { position: j + 11, marae: noRankedMaraes[j] };\r\n noRanked.push(obj);\r\n }\r\n }\r\n }\r\n return noRanked.sort((a, b) => a.position - b.position);\r\n };\r\n return (\r\n : null}\r\n >\r\n \r\n {i18n.t('pages.LeaderboardScreen.mostActive')}\r\n \r\n {i18n.t('pages.LeaderboardScreen.points')}\r\n {top10.length > 2\r\n ? top10\r\n .slice(3)\r\n .map((marae, index) => (\r\n \r\n ))\r\n : top10\r\n .slice(1)\r\n .map((marae, index) => (\r\n \r\n ))}\r\n {noTop10()\r\n ? noTop10().map((marae) => (\r\n \r\n ))\r\n : null}\r\n \r\n \r\n \r\n {i18n.t('pages.LeaderboardScreen.key')}\r\n \r\n \r\n {i18n.t('pages.LeaderboardScreen.myMarae')}\r\n \r\n {i18n.t('pages.LeaderboardScreen.10mostActive')}\r\n \r\n \r\n setActiveModal(true)}>\r\n {i18n.t('pages.LeaderboardScreen.elevatePosition')}\r\n \r\n \r\n setActiveModal(false)}>\r\n \r\n \r\n \r\n \r\n \r\n );\r\n};\r\n\r\nconst styles = StyleSheet.create({\r\n container: {\r\n minHeight: Layout.isSmallDevice ? Layout.window.height : Layout.window.height - 150,\r\n },\r\n title: {\r\n color: Colors.white,\r\n alignSelf: 'center',\r\n },\r\n board: {\r\n justifyContent: 'center',\r\n width: '95%',\r\n },\r\n pointsLabel: {\r\n color: Colors.white,\r\n fontFamily: Fonts.family.bold,\r\n fontSize: Fonts.sizes.small,\r\n alignSelf: 'flex-end',\r\n },\r\n maraeBar: {\r\n fontFamily: Fonts.family.bold,\r\n },\r\n leyendContainer: {\r\n justifyContent: 'space-around',\r\n alignItems: 'center',\r\n flexDirection: 'row',\r\n paddingHorizontal: '18%',\r\n marginTop: 20,\r\n },\r\n leyendIndicator: {\r\n height: '100%',\r\n width: 4,\r\n },\r\n leyendLabel: {\r\n fontFamily: Fonts.family.regular,\r\n fontSize: Fonts.sizes.medium,\r\n color: Colors.white,\r\n },\r\n elevateButton: {\r\n width: '60%',\r\n height: 50,\r\n backgroundColor: Colors.yellow,\r\n justifyContent: 'center',\r\n alignItems: 'center',\r\n borderRadius: 25,\r\n marginTop: 20,\r\n alignSelf: 'center',\r\n },\r\n});\r\n","import * as React from 'react';\r\nimport { createStackNavigator } from '@react-navigation/stack';\r\nimport { useNavigation } from '@react-navigation/native';\r\nimport { LeaderboardScreen } from '../screens/leaderboard/LeaderboardScreen';\r\nimport { SelectRegionScreen } from '../screens/profile/SelectRegionScreen';\r\nimport { TipScreen } from '../screens/profile/TipScreen';\r\n\r\nconst LeaderboardNavigator = createStackNavigator();\r\n\r\nexport const LeaderboardNavigation = () => {\r\n const navigation = useNavigation();\r\n\r\n React.useEffect(\r\n () =>\r\n navigation.addListener('beforeRemove', () => {\r\n navigation.navigate('DashboardStack');\r\n }),\r\n []\r\n );\r\n return (\r\n \r\n \r\n \r\n \r\n \r\n );\r\n};\r\n","import * as React from 'react';\r\nimport { BackHandler } from 'react-native';\r\nimport { createDrawerNavigator } from '@react-navigation/drawer';\r\nimport HamburgerMenu from '../components/HamburgerMenu';\r\nimport { DrawerParamList } from '../constants/Interfaces';\r\nimport ConfirmationScreen from '../screens/ConfirmationScreen';\r\nimport { ProfileNavigator } from './ProfileNavigator';\r\nimport { ActivitiesNavigator } from './ActivitiesNavigator';\r\nimport { HomeNavigator } from './HomeNavigator';\r\nimport Layout from '../constants/Layout';\r\nimport { FavesNavigation } from './FavesNavigation';\r\nimport { useNavigation } from '@react-navigation/native';\r\nimport { LeaderboardNavigation } from './LeaderboardNavigator';\r\n\r\nconst Drawer = createDrawerNavigator();\r\n\r\nexport default function DrawerNavigation() {\r\n const navigation = useNavigation();\r\n React.useEffect(\r\n () =>\r\n navigation.addListener('beforeRemove', (e) => {\r\n e.preventDefault();\r\n BackHandler.exitApp();\r\n }),\r\n []\r\n );\r\n return (\r\n }\r\n >\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n );\r\n}\r\n","import React from 'react';\r\nimport { Image, Linking, Pressable, View } from 'react-native';\r\nimport { UIText } from '../components/StyledText';\r\nimport Fonts from '../constants/Fonts';\r\nimport Constants from 'expo-constants';\r\nimport { CreateResponsiveStyle, DEVICE_SIZES } from 'rn-responsive-styles';\r\n\r\ninterface DownloadContainerProps {\r\n title?: string;\r\n showIcons?: boolean;\r\n isFooter?: boolean;\r\n}\r\nconst { iosStoreId, androidStoreId } = Constants?.expoConfig?.extra?.store;\r\n\r\nconst DownloadStoreContainer = ({ title, showIcons = false, isFooter = false }: DownloadContainerProps) => {\r\n const styles = useStyles();\r\n\r\n const handleStoreDownloadIOS = () => {\r\n Linking.openURL(iosStoreId);\r\n };\r\n\r\n const handleStoreDownloadAndroid = () => {\r\n Linking.openURL(androidStoreId);\r\n };\r\n\r\n return (\r\n \r\n {title && !isFooter && {title}}\r\n {!showIcons && (\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n )}\r\n {showIcons && (\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n )}\r\n \r\n );\r\n};\r\n\r\nexport default DownloadStoreContainer;\r\n\r\nconst useStyles = CreateResponsiveStyle(\r\n {\r\n appAdsContainer: {\r\n justifyContent: 'center',\r\n alignItems: 'center',\r\n marginTop: 30,\r\n width: '100%',\r\n },\r\n smallLabel: {\r\n fontSize: Fonts.sizes.mini,\r\n marginVertical: '3%',\r\n },\r\n storeContainer: {\r\n width: '100%',\r\n flexDirection: 'row',\r\n justifyContent: 'center',\r\n alignContent: 'center',\r\n },\r\n storeButtons: {\r\n width: 112 * 1.3,\r\n height: 34 * 1.3,\r\n marginRight: 3,\r\n },\r\n store: {\r\n width: '100%',\r\n height: '100%',\r\n resizeMode: 'contain',\r\n },\r\n iconButtons: {\r\n width: 122,\r\n marginRight: 6,\r\n marginBottom: 10,\r\n },\r\n iconsCircle: {\r\n width: '100%',\r\n height: 122,\r\n resizeMode: 'contain',\r\n },\r\n leftAligned: {\r\n justifyContent: 'flex-start',\r\n },\r\n },\r\n {\r\n [DEVICE_SIZES.MD]: {\r\n iconButtons: {\r\n width: 80,\r\n },\r\n iconsCircle: {\r\n height: 80,\r\n },\r\n },\r\n [DEVICE_SIZES.SM]: {\r\n iconButtons: {\r\n width: 80,\r\n },\r\n iconsCircle: {\r\n height: 80,\r\n },\r\n },\r\n [DEVICE_SIZES.XS]: {\r\n iconButtons: {\r\n width: 80,\r\n },\r\n iconsCircle: {\r\n height: 80,\r\n },\r\n },\r\n }\r\n);\r\n","import { useState, useEffect } from 'react';\r\n\r\nexport const languageListener = (): string | null => {\r\n const [language, setLanguage] = useState(localStorage.getItem('MaraeFitLanguage') || 'en');\r\n const changeLanguage = () => {\r\n setLanguage(localStorage.getItem('MaraeFitLanguage'));\r\n };\r\n useEffect(() => {\r\n window.addEventListener('storage', changeLanguage);\r\n return () => {\r\n window.removeEventListener('storage', changeLanguage);\r\n };\r\n }, []);\r\n return language;\r\n};\r\n","import React, { useRef, useState, useEffect } from 'react';\r\nimport { View, TouchableWithoutFeedback, FlatList } from 'react-native';\r\nimport { UIText } from '../components/StyledText';\r\nimport { Colors } from '../constants/Colors';\r\nimport Fonts from '../constants/Fonts';\r\nimport i18n from '../translations';\r\nimport DownloadStoreContainer from './DownloadStoreContainer';\r\nimport { CreateResponsiveStyle, DEVICE_SIZES } from 'rn-responsive-styles';\r\nimport { languageListener } from './Utils/languageListener';\r\n\r\ninterface CarouselAddsProp {\r\n data;\r\n title?: string;\r\n subtitle?: string;\r\n showIcons?: boolean;\r\n showStoreButtons?: boolean;\r\n isWide?: boolean;\r\n whiteText?: boolean;\r\n isFooter?: boolean;\r\n isBlackDot?: boolean;\r\n carouselTimeout?: number;\r\n}\r\n\r\nconst CarouselAds = ({\r\n data,\r\n title,\r\n subtitle,\r\n showIcons = false,\r\n showStoreButtons = true,\r\n isWide = false,\r\n whiteText = false,\r\n isBlackDot = false,\r\n isFooter = false,\r\n carouselTimeout = 15000,\r\n}: CarouselAddsProp) => {\r\n const language = languageListener();\r\n const ITEM_WIDTH = 390;\r\n const WIDE_ITEM_WIDTH = 1150;\r\n const styles = useStyles();\r\n const currentIndex = useRef(0);\r\n const [activeDot, setActiveDot] = useState(0);\r\n const carouselRef = useRef(null);\r\n const viewabilityConfig = useRef({\r\n itemVisiblePercentThreshold: 50,\r\n });\r\n\r\n const handleIndexSelect = (index: number) => () => {\r\n if (carouselRef.current && index !== currentIndex.current) {\r\n currentIndex.current = index;\r\n carouselRef.current!.scrollToIndex({ index: currentIndex.current });\r\n setActiveDot(currentIndex.current);\r\n }\r\n };\r\n\r\n useEffect(() => {\r\n const timer = setInterval(() => {\r\n currentIndex.current = data && currentIndex.current === data.length - 1 ? 0 : currentIndex.current! + 1;\r\n carouselRef.current!.scrollToIndex({ index: currentIndex.current });\r\n setActiveDot(currentIndex.current!);\r\n }, carouselTimeout);\r\n return () => {\r\n clearTimeout(timer);\r\n };\r\n }, [currentIndex]);\r\n\r\n const renderItemStyleGenerator = (isWide, whiteText) => {\r\n if (isWide && whiteText) {\r\n return [styles.renderWideItem, { marginBottom: 60 }];\r\n }\r\n\r\n if (isWide) {\r\n return [styles.renderWideItem, { padding: '2.5%' }];\r\n }\r\n\r\n return [isFooter ? styles.renderItemFooter : styles.renderItem];\r\n };\r\n\r\n const renderItem = ({ item }) => (\r\n \r\n \r\n {item}\r\n \r\n \r\n );\r\n\r\n const containerStyleGenerator = (isWide, whiteText) => {\r\n if (isWide && whiteText) {\r\n return [styles.wideContainer, styles.wideContainerWhite];\r\n }\r\n\r\n if (isWide) {\r\n return [styles.wideContainer];\r\n }\r\n\r\n return [isFooter ? styles.containerFooter : styles.container];\r\n };\r\n\r\n const storeTitle = i18n.t('web.CarouselAds.available', { locale: language });\r\n\r\n return (\r\n \r\n {showIcons && }\r\n {title}\r\n {subtitle}\r\n \r\n \r\n ({\r\n length: isWide ? WIDE_ITEM_WIDTH : ITEM_WIDTH,\r\n offset: isWide ? WIDE_ITEM_WIDTH * index : ITEM_WIDTH * index,\r\n index,\r\n })}\r\n keyExtractor={(item, index) => index.toString()}\r\n contentContainerStyle={[styles.contentContainer]}\r\n />\r\n \r\n\r\n {showStoreButtons && }\r\n\r\n \r\n {data?.map((item, index) => (\r\n \r\n {index === activeDot ? (\r\n \r\n ) : (\r\n \r\n )}\r\n \r\n ))}\r\n \r\n \r\n );\r\n};\r\nexport default CarouselAds;\r\n\r\nconst useStyles = CreateResponsiveStyle(\r\n {\r\n container: {\r\n width: 390,\r\n marginTop: 10,\r\n justifyContent: 'center',\r\n },\r\n containerFooter: {\r\n width: 600,\r\n marginTop: 10,\r\n justifyContent: 'center',\r\n },\r\n wideContainer: {\r\n justifyContent: 'center',\r\n width: 1150,\r\n },\r\n wideContainerWhite: {\r\n alignSelf: 'flex-start',\r\n marginLeft: '14.5%',\r\n },\r\n contentContainerRow: {\r\n flexDirection: 'row',\r\n justifyContent: 'flex-start',\r\n },\r\n contentContainerBar: {\r\n borderColor: Colors.blackOpacity,\r\n borderLeftWidth: 7,\r\n borderRadius: 3,\r\n height: '80%',\r\n alignSelf: 'center',\r\n },\r\n contentContainer: {\r\n minHeight: 150,\r\n },\r\n navContainer: {\r\n flexDirection: 'row',\r\n justifyContent: 'center',\r\n alignItems: 'center',\r\n marginTop: 15,\r\n marginBottom: 15,\r\n },\r\n navContainerFooter: {\r\n display: 'none',\r\n },\r\n dot: {\r\n width: 10,\r\n height: 10,\r\n borderRadius: 25,\r\n marginVertical: 5,\r\n marginHorizontal: 6,\r\n },\r\n dotColor: {\r\n backgroundColor: Colors.darkBurgundy,\r\n },\r\n dotColorReverse: {\r\n backgroundColor: Colors.yellow,\r\n },\r\n activeDot: {\r\n borderWidth: 2,\r\n borderRadius: 25,\r\n height: 15,\r\n width: 15,\r\n justifyContent: 'center',\r\n alignItems: 'center',\r\n },\r\n activeDotColor: {\r\n backgroundColor: Colors.yellow,\r\n borderColor: Colors.darkBurgundy,\r\n },\r\n activeDotColorReverse: {\r\n backgroundColor: Colors.darkBurgundy,\r\n borderColor: Colors.yellow,\r\n },\r\n title: {\r\n alignSelf: 'center',\r\n fontFamily: Fonts.family.bold,\r\n fontSize: 34,\r\n lineHeight: 57,\r\n },\r\n subtitle: {\r\n alignSelf: 'center',\r\n fontFamily: Fonts.family.regular,\r\n fontSize: 25,\r\n lineHeight: 40,\r\n },\r\n message: {\r\n width: '100%',\r\n textAlign: 'center',\r\n fontSize: 20,\r\n lineHeight: 28,\r\n },\r\n messageLarge: {\r\n width: '100%',\r\n textAlign: 'center',\r\n fontSize: 25,\r\n lineHeight: 30,\r\n maxWidth: 600,\r\n },\r\n renderItem: {\r\n alignItems: 'center',\r\n height: '100%',\r\n width: 390,\r\n maxHeight: 390,\r\n padding: '5%',\r\n },\r\n renderItemFooter: {\r\n alignItems: 'center',\r\n height: '100%',\r\n width: 600,\r\n minHeight: 250,\r\n padding: '5%',\r\n },\r\n renderWideItem: {\r\n alignItems: 'center',\r\n height: '100%',\r\n width: 1150,\r\n maxHeight: 390,\r\n },\r\n whiteText: {\r\n color: Colors.white,\r\n alignSelf: 'flex-start',\r\n },\r\n },\r\n {\r\n [DEVICE_SIZES.MD]: {\r\n containerFooter: {\r\n width: 390,\r\n },\r\n renderItemFooter: {\r\n width: 390,\r\n minHeight: 200,\r\n },\r\n title: {\r\n fontSize: 22,\r\n lineHeight: 37,\r\n },\r\n subtitle: {\r\n fontSize: 21,\r\n lineHeight: 30,\r\n },\r\n message: {\r\n fontSize: 16,\r\n lineHeight: 22,\r\n },\r\n messageLarge: {\r\n fontSize: 24,\r\n maxWidth: 550,\r\n },\r\n },\r\n [DEVICE_SIZES.SM]: {\r\n containerFooter: {\r\n width: 390,\r\n },\r\n renderItemFooter: {\r\n width: 390,\r\n minHeight: 200,\r\n },\r\n title: {\r\n fontSize: 22,\r\n lineHeight: 37,\r\n },\r\n subtitle: {\r\n fontSize: 21,\r\n lineHeight: 30,\r\n },\r\n message: {\r\n fontSize: 16,\r\n lineHeight: 22,\r\n },\r\n messageLarge: {\r\n fontSize: 20,\r\n maxWidth: 450,\r\n },\r\n },\r\n [DEVICE_SIZES.XS]: {\r\n container: {\r\n width: 375,\r\n },\r\n containerFooter: {\r\n width: 350,\r\n },\r\n renderItemFooter: {\r\n width: 350,\r\n minHeight: 200,\r\n },\r\n navContainerFooter: {\r\n display: 'none',\r\n },\r\n title: {\r\n fontSize: 20,\r\n lineHeight: 37,\r\n },\r\n subtitle: {\r\n fontSize: 19,\r\n lineHeight: 30,\r\n },\r\n message: {\r\n fontSize: 16,\r\n lineHeight: 22,\r\n },\r\n messageLarge: {\r\n fontSize: 18,\r\n maxWidth: 300,\r\n },\r\n wideContainerWhite: {\r\n marginLeft: '10%',\r\n },\r\n },\r\n }\r\n);\r\n","import Constants from 'expo-constants';\r\n\r\nconst { baseURL, accessToken } = Constants?.expoConfig?.extra?.contentful;\r\n\r\nexport const contentfulUrlGenerator = (type: string, locale: string | null, token = accessToken): string => {\r\n // contentFul uses \"en-NZ\" for maori locale whereas screens use \"mi\" so convert here\r\n const contentLocale = locale === 'en' ? locale : 'en-NZ';\r\n const contentfulUrl = `${baseURL}access_token=${token}&content_type=${type}&locale=${contentLocale}`;\r\n return contentfulUrl;\r\n};\r\n","import axios from 'axios';\r\nimport React, { useEffect, useState } from 'react';\r\nimport { Image, View } from 'react-native';\r\nimport CarouselAds from './CarouselAds';\r\nimport { contentfulUrlGenerator } from './Utils/contentfulUrlGenerator';\r\nimport { Colors } from '../constants/Colors';\r\nimport { languageListener } from './Utils/languageListener';\r\nimport { CreateResponsiveStyle, DEVICE_SIZES } from 'rn-responsive-styles';\r\nimport { LinearGradient } from 'expo-linear-gradient';\r\n\r\nconst CarouselDownloadApp = () => {\r\n const styles = useStyles();\r\n const [data, setData] = useState();\r\n const language = languageListener();\r\n\r\n const URL = contentfulUrlGenerator('downloadReasons', language);\r\n\r\n useEffect(() => {\r\n const getData = async () => {\r\n const result = await axios(URL);\r\n setData(result.data);\r\n };\r\n getData();\r\n }, [language]);\r\n\r\n const fields = data ? data?.items[0].fields : null;\r\n\r\n return (\r\n \r\n \r\n {data && (\r\n \r\n )}\r\n \r\n \r\n \r\n \r\n \r\n \r\n );\r\n};\r\n\r\nexport default CarouselDownloadApp;\r\n\r\nconst useStyles = CreateResponsiveStyle(\r\n {\r\n body: {\r\n backgroundColor: Colors.darkBurgundy,\r\n width: '100%',\r\n height: 729,\r\n maxHeight: 729,\r\n minHeight: 400,\r\n flexDirection: 'row',\r\n justifyContent: 'space-between',\r\n },\r\n phoneContainer: {\r\n flexBasis: '50%',\r\n transform: [{ translateX: 60 }, { translateY: 80 }],\r\n },\r\n phone: {\r\n width: '100%',\r\n height: '100%',\r\n resizeMode: 'contain',\r\n },\r\n carouselContainer: {\r\n flexBasis: '50%',\r\n maxWidth: 400,\r\n height: '80%',\r\n alignSelf: 'center',\r\n marginLeft: '10%',\r\n zIndex: 20,\r\n },\r\n icons: {\r\n height: 60,\r\n resizeMode: 'contain',\r\n },\r\n bottomToTopLinerGradient: {\r\n width: '100%',\r\n height: '100%',\r\n position: 'absolute',\r\n bottom: 0,\r\n zIndex: -1,\r\n },\r\n },\r\n {\r\n [DEVICE_SIZES.MD]: {\r\n body: { height: 678 },\r\n phoneContainer: {\r\n transform: [{ translateX: 30 }, { translateY: 70 }],\r\n },\r\n },\r\n [DEVICE_SIZES.SM]: {\r\n body: { height: 678 },\r\n phoneContainer: {\r\n flexBasis: '60%',\r\n transform: [{ translateX: 60 }, { translateY: 80 }],\r\n },\r\n carouselContainer: {\r\n flexBasis: '40%',\r\n marginLeft: '5%',\r\n },\r\n },\r\n [DEVICE_SIZES.XS]: {\r\n body: { height: 620, flexDirection: 'column', justifyContent: 'center', alignItems: 'center' },\r\n phoneContainer: {\r\n display: 'none',\r\n },\r\n carouselContainer: {\r\n flexBasis: '100%',\r\n marginLeft: '3%',\r\n },\r\n },\r\n }\r\n);\r\n","import { Linking, Pressable, StyleSheet, View, Image } from 'react-native';\r\nimport React from 'react';\r\nimport Constants from 'expo-constants';\r\n\r\nconst { youtube, facebook, instagram } = Constants?.expoConfig?.extra?.socialMedia;\r\n\r\nconst SocialMediaBar = () => {\r\n const iconButtonOnPressHandler = (iconButtonName: string) => Linking.openURL(iconButtonName);\r\n\r\n return (\r\n \r\n iconButtonOnPressHandler(youtube)} style={styles.iconButtonPressable}>\r\n \r\n \r\n iconButtonOnPressHandler(facebook)} style={styles.iconButtonPressable}>\r\n \r\n \r\n iconButtonOnPressHandler(instagram)} style={styles.iconButtonPressable}>\r\n \r\n \r\n \r\n );\r\n};\r\n\r\nexport default SocialMediaBar;\r\n\r\nconst styles = StyleSheet.create({\r\n rootContainer: {\r\n flexDirection: 'row',\r\n },\r\n iconButtonPressable: {\r\n width: 24,\r\n aspectRatio: 1,\r\n marginHorizontal: 6,\r\n },\r\n icon: {\r\n width: '100%',\r\n height: '100%',\r\n },\r\n});\r\n","import { useNavigation } from '@react-navigation/core';\r\nimport React, { useEffect, useState } from 'react';\r\nimport { Image, Pressable, View } from 'react-native';\r\nimport { CreateResponsiveStyle, DEVICE_SIZES } from 'rn-responsive-styles';\r\nimport { UIText } from '../components/StyledText';\r\nimport { Colors } from '../constants/Colors';\r\nimport Fonts from '../constants/Fonts';\r\nimport CarouselDownloadApp from './CarouselDownloadApp';\r\nimport SocialMediaBar from './SocialMediaBar';\r\n\r\ninterface FooterProps {\r\n showReasons?: boolean;\r\n isLayoutAbsolute?: boolean;\r\n}\r\n\r\nconst Footer = ({ showReasons = false, isLayoutAbsolute = false }: FooterProps) => {\r\n const styles = useStyles();\r\n const navigation = useNavigation();\r\n\r\n const [language, setLanguage] = useState(localStorage.getItem('MaraeFitLanguage') || 'en');\r\n const changeLanguage = () => {\r\n setLanguage(localStorage.getItem('MaraeFitLanguage'));\r\n };\r\n useEffect(() => {\r\n window.addEventListener('storage', changeLanguage);\r\n return () => {\r\n window.removeEventListener('storage', changeLanguage);\r\n };\r\n }, []);\r\n const handleLanguage = () => {\r\n if (language === 'en') {\r\n localStorage.setItem('MaraeFitLanguage', 'mi');\r\n window.dispatchEvent(new Event('storage'));\r\n } else {\r\n localStorage.setItem('MaraeFitLanguage', 'en');\r\n window.dispatchEvent(new Event('storage'));\r\n }\r\n };\r\n const handleAbout = () => {\r\n navigation.navigate('About');\r\n };\r\n const handlePrivacy = () => {\r\n navigation.navigate('Privacy');\r\n };\r\n const handleHelp = () => {\r\n navigation.navigate('Terms');\r\n };\r\n return (\r\n \r\n \r\n {showReasons && (\r\n \r\n \r\n \r\n )}\r\n \r\n \r\n \r\n \r\n \r\n About\r\n \r\n \r\n Privacy\r\n \r\n \r\n Terms\r\n \r\n \r\n {language === 'en' ? 'Maori' : 'English'}\r\n \r\n \r\n \r\n \r\n \r\n \r\n Copyright © 2021 Sport New Zealand.\r\n \r\n Privacy and copyright\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n );\r\n};\r\n\r\nexport default Footer;\r\n\r\nconst useStyles = CreateResponsiveStyle(\r\n {\r\n footerOuter: {\r\n width: '100%',\r\n zIndex: 0,\r\n overflow: 'hidden',\r\n display: 'flex',\r\n justifyContent: 'flex-end',\r\n },\r\n footerPosition: {\r\n position: 'absolute',\r\n },\r\n footerImage: {\r\n height: 214,\r\n width: '100%',\r\n backgroundColor: Colors.transparent,\r\n zIndex: 4,\r\n resizeMode: 'cover',\r\n // Get rid of annoying line\r\n marginBottom: -2,\r\n },\r\n footerReasons: {\r\n zIndex: 3,\r\n // Get rid of annoying line\r\n marginBottom: -2,\r\n },\r\n root: {\r\n backgroundColor: Colors.darkBurgundy,\r\n zIndex: 0,\r\n paddingHorizontal: '15%',\r\n flexDirection: 'column',\r\n },\r\n topContainer: {\r\n flexDirection: 'row',\r\n justifyContent: 'space-between',\r\n borderColor: Colors.white,\r\n borderBottomWidth: 1,\r\n paddingVertical: 10,\r\n // marginTop: 10,\r\n },\r\n topContainerHigh: {\r\n marginTop: 40,\r\n },\r\n logo: {\r\n width: 93,\r\n height: 73,\r\n resizeMode: 'contain',\r\n alignSelf: 'center',\r\n },\r\n logoNZ: {\r\n width: 125,\r\n height: 57,\r\n resizeMode: 'contain',\r\n alignSelf: 'center',\r\n },\r\n labelContainer: {\r\n height: '100%',\r\n flexDirection: 'row',\r\n alignItems: 'center',\r\n justifyContent: 'center',\r\n },\r\n textLabel: {\r\n color: Colors.white,\r\n marginRight: 10,\r\n fontSize: 16,\r\n fontFamily: Fonts.family.bold,\r\n padding: 10,\r\n },\r\n bottomContainer: {\r\n flexDirection: 'row',\r\n justifyContent: 'space-between',\r\n alignItems: 'center',\r\n },\r\n bottomContainerHigh: {\r\n marginBottom: 20,\r\n },\r\n bottomLeftContainer: {\r\n flexDirection: 'row',\r\n justifyContent: 'flex-start',\r\n alignItems: 'center',\r\n },\r\n textCopyrightLabel: {\r\n color: Colors.white,\r\n marginRight: 10,\r\n fontSize: 14,\r\n fontFamily: Fonts.family.bold,\r\n },\r\n textPrivacyLabel: {\r\n color: Colors.white,\r\n fontSize: 14,\r\n fontFamily: Fonts.family.bold,\r\n textDecorationLine: 'underline',\r\n },\r\n logoGov: {\r\n height: 60,\r\n width: '18%',\r\n minWidth: 100,\r\n resizeMode: 'contain',\r\n },\r\n },\r\n {\r\n [DEVICE_SIZES.XS]: {\r\n footerImage: {\r\n height: 62,\r\n },\r\n root: {\r\n paddingHorizontal: '5%',\r\n },\r\n topContainer: {\r\n paddingVertical: 2,\r\n marginBottom: 10,\r\n borderBottomWidth: 0,\r\n },\r\n logo: {\r\n height: 40,\r\n },\r\n logoNZ: {\r\n height: 36,\r\n },\r\n labelContainer: {\r\n display: 'none',\r\n },\r\n bottomContainer: {\r\n display: 'none',\r\n },\r\n },\r\n [DEVICE_SIZES.SM]: {\r\n footerImage: {\r\n height: 85,\r\n },\r\n topContainer: {\r\n paddingVertical: 2,\r\n marginBottom: 10,\r\n borderBottomWidth: 0,\r\n },\r\n labelContainer: {\r\n display: 'none',\r\n },\r\n bottomContainer: {\r\n display: 'none',\r\n },\r\n },\r\n [DEVICE_SIZES.MD]: {\r\n footerImage: {\r\n height: 152,\r\n },\r\n },\r\n }\r\n);\r\n","import { AntDesign } from '@expo/vector-icons';\r\nimport { useNavigation } from '@react-navigation/native';\r\nimport React, { useEffect, useState } from 'react';\r\nimport { Linking, View, StyleSheet, Pressable, Image, useWindowDimensions, Text } from 'react-native';\r\nimport { UIText } from '../components/StyledText';\r\nimport { Colors } from '../constants/Colors';\r\nimport Fonts from '../constants/Fonts';\r\nimport Constants from 'expo-constants';\r\n\r\nconst { iosStoreId, androidStoreId } = Constants?.expoConfig?.extra?.store;\r\nconst appName = Constants.manifest?.name;\r\nconst formattedName = appName?.replaceAll(' MaraeFit', '');\r\n\r\nconst HamburgerMenu = ({ handleClose }) => {\r\n const { styles } = useStyle();\r\n const navigation = useNavigation();\r\n const handleHome = () => {\r\n handleClose();\r\n navigation.navigate('LandingWeb');\r\n };\r\n const handleAbout = () => {\r\n handleClose();\r\n navigation.navigate('About');\r\n };\r\n const handleActivities = () => {\r\n handleClose();\r\n navigation.navigate('ActivitiesListing');\r\n };\r\n const handlePrivacy = () => {\r\n handleClose();\r\n navigation.navigate('Privacy');\r\n };\r\n const handleTerms = () => {\r\n handleClose();\r\n navigation.navigate('Terms');\r\n };\r\n const handleDelete = () => {\r\n handleClose();\r\n navigation.navigate('Delete');\r\n };\r\n\r\n const [language, setLanguage] = useState(localStorage.getItem('MaraeFitLanguage') || 'en');\r\n const changeLanguage = () => {\r\n setLanguage(localStorage.getItem('MaraeFitLanguage'));\r\n };\r\n useEffect(() => {\r\n window.addEventListener('storage', changeLanguage);\r\n return () => {\r\n window.removeEventListener('storage', changeLanguage);\r\n };\r\n }, []);\r\n const handleLanguage = () => {\r\n if (language === 'en') {\r\n localStorage.setItem('MaraeFitLanguage', 'mi');\r\n window.dispatchEvent(new Event('storage'));\r\n } else {\r\n localStorage.setItem('MaraeFitLanguage', 'en');\r\n window.dispatchEvent(new Event('storage'));\r\n }\r\n handleClose();\r\n };\r\n\r\n const handleStoreDownloadIOS = () => {\r\n Linking.openURL(iosStoreId);\r\n };\r\n\r\n const handleStoreDownloadAndroid = () => {\r\n Linking.openURL(androidStoreId);\r\n };\r\n\r\n return (\r\n \r\n \r\n \r\n \r\n\r\n \r\n \r\n Home\r\n \r\n \r\n About\r\n \r\n \r\n Kaupapa\r\n \r\n \r\n Privacy\r\n \r\n \r\n Terms and Conditions\r\n \r\n \r\n Delete Your Account\r\n \r\n \r\n {language === 'en' ? 'Maori' : 'English'}\r\n \r\n \r\n \r\n {`${formattedName}${Constants.manifest?.version}`}\r\n \r\n Maraefit is available for download on both the Google Play and App Store\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n );\r\n};\r\n\r\nexport default HamburgerMenu;\r\n\r\nconst useStyle = () => {\r\n const dimensions = useWindowDimensions();\r\n\r\n const styles = StyleSheet.create({\r\n root: {\r\n backgroundColor: Colors.white,\r\n height: dimensions.height,\r\n position: 'absolute',\r\n top: 0,\r\n zIndex: 100,\r\n right: 0,\r\n width: '90%',\r\n maxWidth: 540,\r\n padding: '5%',\r\n alignItems: 'center',\r\n },\r\n close: {\r\n position: 'absolute',\r\n top: 20,\r\n right: '5%',\r\n },\r\n optionsContainer: {\r\n marginTop: '10%',\r\n width: '100%',\r\n },\r\n optionBox: {\r\n marginBottom: 10,\r\n borderBottomWidth: 2,\r\n paddingBottom: 5,\r\n },\r\n optionLabel: {\r\n fontFamily: Fonts.family.bold,\r\n color: Colors.black,\r\n },\r\n downloadLabel: {\r\n fontSize: Fonts.sizes.small,\r\n flexWrap: 'wrap',\r\n marginVertical: 10,\r\n },\r\n storeContainer: {\r\n width: '90%',\r\n position: 'absolute',\r\n bottom: '3%',\r\n },\r\n store: {\r\n width: '45%',\r\n height: 40,\r\n resizeMode: 'contain',\r\n marginBottom: 5,\r\n },\r\n versionNumber: {\r\n position: 'absolute',\r\n bottom: 5,\r\n right: 5,\r\n color: Colors.defaultGrey,\r\n fontSize: Fonts.sizes.small,\r\n },\r\n });\r\n\r\n return { styles };\r\n};\r\n","import { useNavigation } from '@react-navigation/core';\r\nimport React from 'react';\r\nimport { View, Image, Pressable } from 'react-native';\r\nimport { Colors } from '../constants/Colors';\r\nimport { CreateResponsiveStyle, DEVICE_SIZES } from 'rn-responsive-styles';\r\n\r\ninterface MenuBarProps {\r\n showMenu?: () => void;\r\n showLogo?: boolean;\r\n menuBarTheme?: 'dark' | 'light';\r\n isLayoutAbsolute?: boolean;\r\n isHighlighted?: boolean;\r\n}\r\nconst MenuBar = ({\r\n showMenu,\r\n showLogo = true,\r\n menuBarTheme = 'dark',\r\n isLayoutAbsolute = false,\r\n isHighlighted = false,\r\n}: MenuBarProps) => {\r\n const styles = useStyles();\r\n const navigation = useNavigation();\r\n\r\n const handleHome = () => {\r\n navigation.navigate('LandingWeb');\r\n };\r\n\r\n return (\r\n \r\n {showLogo && (\r\n \r\n {menuBarTheme === 'light' ? (\r\n \r\n ) : (\r\n \r\n )}\r\n \r\n )}\r\n {menuBarTheme === 'light' ? (\r\n \r\n ) : (\r\n \r\n )}\r\n \r\n \r\n {menuBarTheme === 'light' ? (\r\n \r\n ) : (\r\n \r\n )}\r\n \r\n \r\n \r\n );\r\n};\r\n\r\nexport default MenuBar;\r\n\r\nconst useStyles = CreateResponsiveStyle(\r\n {\r\n root: {\r\n height: 120,\r\n width: '100%',\r\n flexDirection: 'row',\r\n alignItems: 'center',\r\n justifyContent: 'space-between',\r\n paddingHorizontal: '5%',\r\n marginTop: 20,\r\n },\r\n absoluteRoot: {\r\n height: 120,\r\n width: '100%',\r\n flexDirection: 'row',\r\n alignItems: 'center',\r\n justifyContent: 'space-between',\r\n paddingHorizontal: '5%',\r\n marginTop: 20,\r\n position: 'absolute',\r\n zIndex: 10,\r\n },\r\n logoContainer: {\r\n height: '100%',\r\n width: 140,\r\n },\r\n logo: {\r\n height: '100%',\r\n width: 140,\r\n resizeMode: 'contain',\r\n },\r\n logoHightlighted: {\r\n aspectRatio: 1,\r\n width: 160,\r\n resizeMode: 'contain',\r\n },\r\n navContainer: {\r\n width: 140,\r\n alignItems: 'center',\r\n },\r\n pressableBg: {\r\n width: 70,\r\n height: 70,\r\n backgroundColor: Colors.transparent,\r\n justifyContent: 'center',\r\n alignItems: 'center',\r\n borderRadius: 90,\r\n borderWidth: 3,\r\n borderColor: Colors.black,\r\n },\r\n pressableBgLight: {\r\n borderColor: Colors.white,\r\n },\r\n icon: {\r\n width: 46,\r\n height: 46,\r\n resizeMode: 'contain',\r\n },\r\n splashImage: {\r\n resizeMode: 'contain',\r\n height: 144,\r\n width: 326,\r\n opacity: 0.7,\r\n marginTop: -10,\r\n },\r\n opacityLight: {\r\n opacity: 0.3,\r\n },\r\n },\r\n {\r\n [DEVICE_SIZES.MD]: {\r\n root: {\r\n height: 72,\r\n marginTop: 10,\r\n },\r\n absoluteRoot: {\r\n height: 72,\r\n marginTop: 10,\r\n },\r\n logoHightlighted: {\r\n width: 128,\r\n },\r\n splashImage: {\r\n height: 105,\r\n width: 209,\r\n marginTop: 20,\r\n },\r\n pressableBg: {\r\n width: 60,\r\n height: 60,\r\n },\r\n icon: {\r\n width: 40,\r\n height: 40,\r\n resizeMode: 'contain',\r\n },\r\n },\r\n [DEVICE_SIZES.SM]: {\r\n root: {\r\n height: 72,\r\n marginTop: 10,\r\n },\r\n absoluteRoot: {\r\n height: 72,\r\n marginTop: 10,\r\n },\r\n pressableBg: {\r\n width: 50,\r\n height: 50,\r\n },\r\n logoHightlighted: {\r\n width: 118,\r\n },\r\n icon: {\r\n width: 30,\r\n height: 30,\r\n resizeMode: 'contain',\r\n },\r\n splashImage: {\r\n height: 105,\r\n width: 209,\r\n marginTop: 20,\r\n },\r\n },\r\n [DEVICE_SIZES.XS]: {\r\n root: {\r\n height: 62,\r\n marginTop: 10,\r\n },\r\n absoluteRoot: {\r\n height: 62,\r\n marginTop: 10,\r\n },\r\n splashImage: {\r\n height: 105,\r\n width: 209,\r\n marginTop: 20,\r\n },\r\n logoContainer: {\r\n width: 70,\r\n },\r\n logoHightlighted: {\r\n width: 70,\r\n },\r\n logo: {\r\n width: 70,\r\n },\r\n navContainer: {\r\n width: 50,\r\n },\r\n pressableBg: {\r\n width: 50,\r\n height: 50,\r\n },\r\n icon: {\r\n width: 30,\r\n height: 30,\r\n resizeMode: 'contain',\r\n },\r\n },\r\n }\r\n);\r\n","import React, { useState } from 'react';\r\nimport { View } from 'react-native';\r\nimport { Colors } from '../constants/Colors';\r\nimport HamburgerMenu from './HamburgerMenu';\r\nimport MenuBar from './MenuBar';\r\nimport { CreateResponsiveStyle } from 'rn-responsive-styles';\r\n\r\ninterface LayoutProps {\r\n menuBarTheme?: 'dark' | 'light';\r\n isLayoutAbsolute?: boolean;\r\n isHightLighted?: boolean;\r\n}\r\n\r\nconst Header = ({ menuBarTheme = 'dark', isLayoutAbsolute = false, isHightLighted = false }: LayoutProps) => {\r\n const styles = useStyles();\r\n const [showMenu, setShowMenu] = useState(false);\r\n return (\r\n \r\n setShowMenu(true)}\r\n isLayoutAbsolute={isLayoutAbsolute}\r\n isHighlighted={isHightLighted}\r\n />\r\n {showMenu && setShowMenu(false)} />}\r\n \r\n );\r\n};\r\n\r\nexport default Header;\r\n\r\nconst useStyles = CreateResponsiveStyle(\r\n {\r\n root: { backgroundColor: Colors.yellow, zIndex: 20 },\r\n bgLight: {\r\n backgroundColor: Colors.transparent,\r\n },\r\n },\r\n {}\r\n);\r\n","import React, { useEffect, useRef } from 'react';\r\nimport { View, Animated, useWindowDimensions } from 'react-native';\r\nimport { Colors } from '../constants/Colors';\r\nimport { CreateResponsiveStyle, DEVICE_SIZES, useDeviceSize } from 'rn-responsive-styles';\r\n\r\ninterface LayoutProps {\r\n menuBarTheme?: 'dark' | 'light';\r\n}\r\n\r\nconst Clouds = ({ menuBarTheme = 'dark' }: LayoutProps) => {\r\n const styles = useStyles();\r\n const deviceSize = useDeviceSize();\r\n const ITEM_WIDTH = useWindowDimensions().width;\r\n const frontCloudX1 = useRef(new Animated.Value(0)).current;\r\n const frontCloudX2 = useRef(new Animated.Value(0)).current;\r\n const middleCloudX1 = useRef(new Animated.Value(0)).current;\r\n const middleCloudX2 = useRef(new Animated.Value(0)).current;\r\n const backCloudX1 = useRef(new Animated.Value(0)).current;\r\n const backCloudX2 = useRef(new Animated.Value(0)).current;\r\n\r\n const cloudWidth = (deviceSize, cloudPosition) => {\r\n let cloudWidth: number;\r\n if (cloudPosition === 'front') {\r\n switch (deviceSize) {\r\n case 'extrasmall':\r\n cloudWidth = 180;\r\n break;\r\n case 'small':\r\n cloudWidth = 260;\r\n break;\r\n case 'medium':\r\n cloudWidth = 310;\r\n break;\r\n default:\r\n cloudWidth = 390;\r\n }\r\n } else if (cloudPosition === 'middle') {\r\n switch (deviceSize) {\r\n case 'extrasmall':\r\n cloudWidth = 150;\r\n break;\r\n case 'small':\r\n cloudWidth = 190;\r\n break;\r\n case 'medium':\r\n cloudWidth = 240;\r\n break;\r\n default:\r\n cloudWidth = 290;\r\n }\r\n } else {\r\n switch (deviceSize) {\r\n case 'extrasmall':\r\n cloudWidth = 100;\r\n break;\r\n case 'small':\r\n cloudWidth = 120;\r\n break;\r\n case 'medium':\r\n cloudWidth = 125;\r\n break;\r\n default:\r\n cloudWidth = 140;\r\n }\r\n }\r\n return cloudWidth;\r\n };\r\n\r\n useEffect(() => {\r\n // First cloud used to show immediately and only lasts for one iteration\r\n // and once finished triggers the next cloud to loop\r\n Animated.stagger(30000, [\r\n Animated.timing(frontCloudX1, {\r\n toValue: 1,\r\n duration: 30000,\r\n useNativeDriver: false,\r\n }),\r\n Animated.loop(\r\n Animated.timing(frontCloudX2, {\r\n toValue: 1,\r\n duration: 60000,\r\n useNativeDriver: false,\r\n })\r\n ),\r\n ]).start();\r\n }, []);\r\n\r\n useEffect(() => {\r\n Animated.stagger(63000, [\r\n Animated.timing(middleCloudX1, {\r\n toValue: 1,\r\n duration: 63000,\r\n useNativeDriver: false,\r\n }),\r\n Animated.loop(\r\n Animated.timing(middleCloudX2, {\r\n toValue: 1,\r\n duration: 70000,\r\n useNativeDriver: false,\r\n })\r\n ),\r\n ]).start();\r\n }, []);\r\n\r\n useEffect(() => {\r\n Animated.stagger(16000, [\r\n Animated.timing(backCloudX1, {\r\n toValue: 1,\r\n duration: 16000,\r\n useNativeDriver: false,\r\n }),\r\n Animated.loop(\r\n Animated.timing(backCloudX2, {\r\n toValue: 1,\r\n duration: 80000,\r\n useNativeDriver: false,\r\n })\r\n ),\r\n ]).start();\r\n }, []);\r\n\r\n return (\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n );\r\n};\r\n\r\nexport default Clouds;\r\n\r\nconst useStyles = CreateResponsiveStyle(\r\n {\r\n root: { backgroundColor: Colors.yellow, zIndex: -5 },\r\n bgLight: {\r\n backgroundColor: Colors.transparent,\r\n },\r\n frontCloud: {\r\n position: 'absolute',\r\n top: -95,\r\n left: 0,\r\n width: 390,\r\n height: 70,\r\n resizeMode: 'contain',\r\n zIndex: -1,\r\n opacity: 0.7,\r\n },\r\n middleCloud: {\r\n position: 'absolute',\r\n top: -145,\r\n left: 0,\r\n width: 290,\r\n height: 55,\r\n resizeMode: 'contain',\r\n zIndex: -2,\r\n opacity: 0.7,\r\n },\r\n backCloud: {\r\n position: 'absolute',\r\n top: -25,\r\n left: 0,\r\n width: 140,\r\n height: 35,\r\n resizeMode: 'contain',\r\n zIndex: -3,\r\n opacity: 0.5,\r\n },\r\n },\r\n {\r\n [DEVICE_SIZES.MD]: {\r\n frontCloud: {\r\n top: -75,\r\n width: 310,\r\n height: 55,\r\n },\r\n middleCloud: {\r\n top: -115,\r\n width: 240,\r\n height: 42,\r\n },\r\n backCloud: {\r\n top: -15,\r\n width: 125,\r\n height: 22,\r\n },\r\n },\r\n [DEVICE_SIZES.SM]: {\r\n frontCloud: {\r\n top: -65,\r\n width: 260,\r\n height: 45,\r\n },\r\n middleCloud: {\r\n top: -100,\r\n width: 190,\r\n height: 45,\r\n },\r\n backCloud: {\r\n top: -15,\r\n width: 120,\r\n height: 21,\r\n },\r\n },\r\n [DEVICE_SIZES.XS]: {\r\n frontCloud: {\r\n top: -75,\r\n width: 180,\r\n height: 31,\r\n },\r\n middleCloud: {\r\n top: -100,\r\n width: 150,\r\n height: 31,\r\n },\r\n backCloud: {\r\n top: -45,\r\n width: 100,\r\n height: 30,\r\n },\r\n },\r\n }\r\n);\r\n","import React from 'react';\r\nimport { View } from 'react-native';\r\nimport { Colors } from '../constants/Colors';\r\nimport Footer from './Footer';\r\nimport Header from './Header';\r\nimport { CreateResponsiveStyle, useDeviceSize } from 'rn-responsive-styles';\r\nimport Clouds from './Clouds';\r\n\r\ninterface LayoutProps {\r\n children: any;\r\n menuBarTheme?: 'dark' | 'light';\r\n isLayoutAbsolute?: boolean;\r\n}\r\n\r\nconst LayoutWeb = ({ children, menuBarTheme = 'dark', isLayoutAbsolute = false }: LayoutProps) => {\r\n const styles = useStyles();\r\n const deviceSize = useDeviceSize();\r\n\r\n return (\r\n \r\n
\r\n {children}\r\n \r\n