├── src ├── Core │ ├── truly-native │ │ ├── TNImage │ │ │ ├── styles.js │ │ │ └── TNImage.js │ │ ├── TNVideo │ │ │ ├── styles.js │ │ │ └── TNVideo.js │ │ ├── TNNumberPicker │ │ │ ├── index.js │ │ │ ├── assets │ │ │ │ ├── plus-icon.png │ │ │ │ └── minus-icon.png │ │ │ ├── styles.js │ │ │ └── TNNumberPicker.js │ │ ├── TNEmptyStateView │ │ │ ├── index.js │ │ │ ├── TNEmptyStateView.js │ │ │ └── styles.js │ │ ├── TNActivityIndicator │ │ │ ├── index.js │ │ │ ├── styles.js │ │ │ └── TNActivityIndicator.js │ │ ├── TNMediaViewerModal │ │ │ └── index.js │ │ ├── TNColor.js │ │ ├── TNTouchableIcon │ │ │ ├── styles.js │ │ │ └── TNTouchableIcon.js │ │ ├── TNStoriesTray │ │ │ ├── styles.js │ │ │ └── TNStoryItem │ │ │ │ └── styles.js │ │ ├── Buttons │ │ │ ├── IMIconButton │ │ │ │ └── IMIconButton.js │ │ │ └── IMDismissButton.js │ │ ├── TNCard │ │ │ ├── TNCard.js │ │ │ └── styles.js │ │ ├── TNDateUtils.js │ │ ├── index.js │ │ └── TNProfilePictureSelector │ │ │ └── styles.js │ ├── chat │ │ ├── IMConversationListView │ │ │ ├── index.js │ │ │ ├── styles.js │ │ │ └── IMConversationListView.js │ │ ├── audioVideo │ │ │ ├── twilioServerMiddleware │ │ │ │ ├── firebase.json │ │ │ │ ├── functions │ │ │ │ │ ├── .nvmrc │ │ │ │ │ ├── .gitignore │ │ │ │ │ ├── .env.example │ │ │ │ │ ├── index.js │ │ │ │ │ ├── config.js │ │ │ │ │ ├── .travis.yml │ │ │ │ │ ├── tests │ │ │ │ │ │ └── token_generator.test.js │ │ │ │ │ ├── package.json │ │ │ │ │ ├── LICENSE │ │ │ │ │ └── src │ │ │ │ │ │ └── tokenGenerator.js │ │ │ │ ├── .firebaserc │ │ │ │ └── .gitignore │ │ │ ├── index.js │ │ │ ├── twilio │ │ │ │ ├── api │ │ │ │ │ ├── index.js │ │ │ │ │ └── local │ │ │ │ │ │ └── audioVideo.js │ │ │ │ ├── index.js │ │ │ │ ├── AppCallWrapper.js │ │ │ │ └── pushKit │ │ │ │ │ └── sendCallInitiationRemoteNotification.js │ │ │ ├── webRTC │ │ │ │ ├── api │ │ │ │ │ ├── index.js │ │ │ │ │ └── local │ │ │ │ │ │ ├── tracker.js │ │ │ │ │ │ └── audioVideo.js │ │ │ │ ├── index.js │ │ │ │ ├── AppCallWrapper.js │ │ │ │ ├── pushKit │ │ │ │ │ └── sendCallInitiationRemoteNotification.js │ │ │ │ └── redux │ │ │ │ │ └── index.js │ │ │ └── config.js │ │ ├── IMChat │ │ │ ├── index.js │ │ │ ├── TypingIndicator.js │ │ │ ├── FacePileCircleItem.js │ │ │ └── IndicatorDot.js │ │ ├── IMConversationList │ │ │ ├── index.js │ │ │ └── styles.js │ │ ├── IMConversationView │ │ │ ├── index.js │ │ │ └── styles.js │ │ ├── api │ │ │ ├── firebase │ │ │ │ └── index.js │ │ │ ├── index.js │ │ │ └── local │ │ │ │ └── channelsTracker.js │ │ ├── assets │ │ │ ├── call.png │ │ │ ├── pause.png │ │ │ ├── play.png │ │ │ ├── send.png │ │ │ ├── speaker.png │ │ │ ├── borderImg1.png │ │ │ ├── borderImg2.png │ │ │ ├── end-call.png │ │ │ ├── microphone.png │ │ │ ├── pause-alt.png │ │ │ ├── phone-call.png │ │ │ ├── reply-icon.png │ │ │ ├── close-x-icon.png │ │ │ ├── camera-filled.png │ │ │ ├── settings-icon.png │ │ │ ├── textBorderImg1.png │ │ │ ├── textBorderImg2.png │ │ │ └── video-camera-filled.png │ │ ├── config.js │ │ ├── index.js │ │ ├── helpers │ │ │ └── utils.js │ │ ├── ui │ │ │ └── IMChatHomeComponent │ │ │ │ └── styles.js │ │ └── redux │ │ │ └── index.js │ ├── location │ │ ├── index.js │ │ └── utils.js │ ├── user-reporting │ │ ├── index.js │ │ └── redux │ │ │ ├── index.js │ │ │ ├── types.js │ │ │ ├── actions.js │ │ │ └── reducers.js │ ├── inAppPurchase │ │ ├── assets │ │ │ ├── tick.png │ │ │ ├── vip_1.png │ │ │ ├── vip_2.png │ │ │ ├── fencing.png │ │ │ ├── fencing2.png │ │ │ └── vip-pass.png │ │ ├── context.js │ │ ├── firebase.js │ │ └── redux.js │ ├── notifications │ │ ├── redux │ │ │ ├── index.js │ │ │ ├── types.js │ │ │ ├── actions.js │ │ │ └── reducers.js │ │ ├── index.js │ │ ├── firebase │ │ │ └── notification.js │ │ └── Notification │ │ │ ├── IMNotification.js │ │ │ └── styles.js │ ├── ui │ │ ├── index.js │ │ ├── TabBar │ │ │ ├── Tab.js │ │ │ ├── TabBar.js │ │ │ └── styles.js │ │ ├── SearchBar │ │ │ └── styles.js │ │ ├── drawer │ │ │ └── IMMenuButton │ │ │ │ ├── IMMenuButton.js │ │ │ │ └── styles.js │ │ └── SearchBarAlternate │ │ │ ├── styles.js │ │ │ └── SearchBarAlternate.js │ ├── helpers │ │ ├── colors.js │ │ ├── statics.js │ │ ├── devices.android.js │ │ ├── timeFormat.js │ │ ├── retrieveSource.js │ │ ├── collections.js │ │ └── devices.ios.js │ ├── mentions │ │ ├── index.js │ │ ├── IMRichTextView │ │ │ └── styles.js │ │ ├── IMMentionList │ │ │ └── styles.js │ │ ├── IMMentionListItem │ │ │ ├── styles.js │ │ │ └── index.js │ │ └── IMRichTextInput │ │ │ └── styles.js │ ├── index.js │ ├── onboarding │ │ ├── utils │ │ │ ├── api │ │ │ │ ├── index.js │ │ │ │ └── local │ │ │ │ │ └── localData.js │ │ │ └── AuthDeviceStorage.js │ │ ├── index.js │ │ ├── redux │ │ │ └── auth.js │ │ ├── DelayedLogin │ │ │ └── DelayedLoginScreen.js │ │ ├── components │ │ │ └── TermsOfUseView.js │ │ ├── WalkthroughScreen │ │ │ └── styles.js │ │ └── ResetPasswordScreen │ │ │ └── styles.js │ ├── api │ │ ├── index.js │ │ └── firebase │ │ │ ├── config.js │ │ │ ├── user.js │ │ │ └── timerConfig.js │ ├── profile │ │ ├── index.js │ │ └── ui │ │ │ ├── components │ │ │ ├── IMProfileItemView │ │ │ │ ├── IMProfileItemView.js │ │ │ │ └── styles.js │ │ │ └── IMUserProfileComponent │ │ │ │ └── styles.js │ │ │ └── IMProfileSettingsScreen │ │ │ └── IMProfileSettingsScreen.js │ ├── users │ │ └── redux │ │ │ └── index.js │ └── localization │ │ └── IMLocalization.js ├── Translations │ └── fr.json ├── api │ ├── index.js │ └── firebase │ │ ├── constants.js │ │ └── utils.js ├── CoreAssets │ ├── call.png │ ├── search.png │ ├── speed.png │ ├── flash-on.png │ ├── flash-auto.png │ ├── flash-off.png │ ├── play-button.png │ ├── right-arrow.png │ ├── camera-rotate.png │ ├── musical-notes.png │ ├── settings-icon.png │ ├── video-camera.png │ ├── arrow-back-icon.png │ ├── blocked-user-64.png │ ├── close-x-icon@1x.png │ ├── close-x-icon@2x.png │ ├── contact-us-icon.png │ ├── default-avatar.jpg │ ├── dismiss-rounded.png │ ├── library-landscape.png │ ├── account-details-icon.png │ └── hamburger-menu-icon.png ├── redux │ ├── types.js │ ├── actions.js │ ├── index.js │ └── reducers.js ├── helpers │ ├── statics.js │ ├── devices.android.js │ └── devices.ios.js ├── screens │ ├── SwipeScreen │ │ └── styles.js │ └── ConversationsScreen │ │ ├── styles.js │ │ └── ConversationsHomeComponent.js ├── utils.js └── components │ ├── swipe │ └── no_more_card.js │ ├── ActivityModal.js │ └── AvatorView.js ├── app.json ├── assets ├── icons │ ├── vip.png │ ├── tick.png │ ├── undo.png │ ├── menu@1x.png │ ├── menu@2x.png │ ├── thumb-up.png │ ├── delete@1x.png │ ├── delete@2x.png │ ├── delete@3x.png │ ├── thumb-down.png │ ├── chat-icon@1x.png │ ├── chat-icon@2x.png │ ├── chat-icon@3x.png │ ├── home-icon@1x.png │ ├── home-icon@2x.png │ ├── home-icon@3x.png │ ├── share-icon@1x.png │ ├── share-icon@2x.png │ ├── share-icon@3x.png │ ├── shutdown@1x.png │ ├── sports-boxing.png │ ├── blocked-user-64.png │ ├── camera-icon@1x.png │ ├── camera-icon@2x.png │ ├── camera-icon@3x.png │ ├── checked-icon@1x.png │ ├── close-x-icon@1x.png │ ├── close-x-icon@2x.png │ ├── close-x-icon@3x.png │ ├── friends-icon@1x.png │ ├── friends-icon@2x.png │ ├── friends-icon@3x.png │ ├── search-icon@1x.png │ ├── search-icon@2x.png │ ├── search-icon@3x.png │ ├── add-user-icon@1x.png │ ├── add-user-icon@2x.png │ ├── add-user-icon@3x.png │ ├── inscription-icon@1x.png │ ├── inscription-icon@2x.png │ ├── inscription-icon@3x.png │ ├── private-chat-icon@1x.png │ ├── private-chat-icon@2x.png │ ├── private-chat-icon@3x.png │ ├── add-user-icon-filled@1x.png │ ├── add-user-icon-filled@2x.png │ ├── add-user-icon-filled@3x.png │ ├── camera-filled-icon@1x.png │ ├── camera-filled-icon@2x.png │ └── camera-filled-icon@3x.png └── images │ ├── Logo.png │ ├── chat.png │ ├── AppIcon.png │ ├── dislike.png │ ├── fencing.png │ ├── vip_1.png │ ├── vip_2.png │ ├── MNM_LOGO.png │ ├── bell-icon.png │ ├── fencing2.png │ ├── fire-icon.png │ ├── instagram.png │ ├── layerson2.png │ ├── vip-pass.png │ ├── borderImg1.png │ ├── borderImg2.png │ ├── camera-icon.png │ ├── notification.png │ ├── sports-jiu.png │ ├── sports-mma.png │ ├── super_like.png │ ├── user_avatar.png │ ├── default-avatar.jpg │ ├── sports-boxing.png │ ├── textBorderImg1.png │ ├── textBorderImg2.png │ ├── workthrough-1.png │ ├── workthrough-2.png │ ├── workthrough-3.png │ ├── workthrough-4.png │ ├── account-male-icon.png │ ├── add-photo-icon-1.png │ ├── arrow-back-icon.png │ ├── arrow-down-icon.png │ ├── chat-filled-icon.png │ ├── contact-call-icon.png │ ├── cross-filled-icon.png │ ├── heart-filled-icon.png │ ├── icons8-delete-100.png │ ├── icons8-marker-500.png │ ├── icons8-menu-100.png │ ├── logout-menu-item.png │ ├── private-chat-icon.png │ ├── sports-kickboxing.png │ ├── star-filled-icon.png │ ├── star-filled-icon2.png │ ├── user_alternative.png │ ├── camera-filled-icon.png │ ├── educate-school-icon.png │ ├── person-filled-icon.png │ ├── settings-menu-item.png │ ├── icons8-instagram-100.png │ ├── pinpoint-place-icon-2.png │ └── three-equal-lines-icon.png ├── babel.config.js ├── .vscode └── settings.json ├── android ├── app │ ├── debug.keystore │ ├── my-upload-key.keystore │ ├── src │ │ ├── main │ │ │ ├── assets │ │ │ │ ├── fonts │ │ │ │ │ ├── Entypo.ttf │ │ │ │ │ ├── Feather.ttf │ │ │ │ │ ├── Zocial.ttf │ │ │ │ │ ├── AntDesign.ttf │ │ │ │ │ ├── EvilIcons.ttf │ │ │ │ │ ├── Ionicons.ttf │ │ │ │ │ ├── Octicons.ttf │ │ │ │ │ ├── FontAwesome.ttf │ │ │ │ │ ├── Foundation.ttf │ │ │ │ │ ├── MaterialIcons.ttf │ │ │ │ │ ├── SimpleLineIcons.ttf │ │ │ │ │ ├── FontAwesome5_Brands.ttf │ │ │ │ │ ├── FontAwesome5_Solid.ttf │ │ │ │ │ ├── FontAwesome5_Regular.ttf │ │ │ │ │ └── MaterialCommunityIcons.ttf │ │ │ │ └── index.android.bundle.meta │ │ │ ├── res │ │ │ │ ├── mipmap-hdpi │ │ │ │ │ ├── ic_launcher.png │ │ │ │ │ └── ic_launcher_round.png │ │ │ │ ├── mipmap-mdpi │ │ │ │ │ ├── ic_launcher.png │ │ │ │ │ └── ic_launcher_round.png │ │ │ │ ├── mipmap-xhdpi │ │ │ │ │ ├── ic_launcher.png │ │ │ │ │ └── ic_launcher_round.png │ │ │ │ ├── mipmap-xxhdpi │ │ │ │ │ ├── ic_launcher.png │ │ │ │ │ └── ic_launcher_round.png │ │ │ │ ├── mipmap-xxxhdpi │ │ │ │ │ ├── ic_launcher.png │ │ │ │ │ └── ic_launcher_round.png │ │ │ │ ├── values │ │ │ │ │ ├── colors.xml │ │ │ │ │ ├── strings.xml │ │ │ │ │ └── styles.xml │ │ │ │ └── layout │ │ │ │ │ └── launch_screen.xml │ │ │ └── java │ │ │ │ └── com │ │ │ │ └── mixnmatch │ │ │ │ ├── generated │ │ │ │ └── BasePackageList.java │ │ │ │ ├── videoplayer │ │ │ │ ├── VideoPlayerPackage.java │ │ │ │ └── VideoPlayerModule.java │ │ │ │ ├── MainActivity.java │ │ │ │ └── launchapplication │ │ │ │ └── LaunchApplicationPackage.java │ │ └── debug │ │ │ └── AndroidManifest.xml │ ├── proguard-rules.pro │ ├── build_defs.bzl │ └── BUCK ├── my-upload-key.keystore ├── gradle │ └── wrapper │ │ ├── gradle-wrapper.jar │ │ └── gradle-wrapper.properties ├── keystores │ ├── debug.keystore.properties │ └── BUCK ├── settings.gradle ├── gradle.properties └── build.gradle ├── ios ├── MixnMatch │ ├── Images.xcassets │ │ ├── Contents.json │ │ ├── AppIcon.appiconset │ │ │ ├── Icon-App-20x20@1x.png │ │ │ ├── Icon-App-20x20@2x.png │ │ │ ├── Icon-App-20x20@3x.png │ │ │ ├── Icon-App-29x29@1x.png │ │ │ ├── Icon-App-29x29@2x.png │ │ │ ├── Icon-App-29x29@3x.png │ │ │ ├── Icon-App-40x40@1x.png │ │ │ ├── Icon-App-40x40@2x.png │ │ │ ├── Icon-App-40x40@3x.png │ │ │ ├── Icon-App-60x60@2x.png │ │ │ ├── Icon-App-60x60@3x.png │ │ │ ├── Icon-App-76x76@1x.png │ │ │ ├── Icon-App-76x76@2x.png │ │ │ ├── ItunesArtwork@2x.png │ │ │ └── Icon-App-83.5x83.5@2x.png │ │ └── logoicon.appiconset │ │ │ ├── ItunesArtwork@2x.png │ │ │ ├── Icon-App-20x20@1x.png │ │ │ ├── Icon-App-20x20@2x.png │ │ │ ├── Icon-App-20x20@3x.png │ │ │ ├── Icon-App-29x29@1x.png │ │ │ ├── Icon-App-29x29@2x.png │ │ │ ├── Icon-App-29x29@3x.png │ │ │ ├── Icon-App-40x40@1x.png │ │ │ ├── Icon-App-40x40@2x.png │ │ │ ├── Icon-App-40x40@3x.png │ │ │ ├── Icon-App-60x60@2x.png │ │ │ ├── Icon-App-60x60@3x.png │ │ │ ├── Icon-App-76x76@1x.png │ │ │ ├── Icon-App-76x76@2x.png │ │ │ └── Icon-App-83.5x83.5@2x.png │ ├── SwiftHeader.swift │ ├── MixnMatch.entitlements │ ├── main.m │ ├── AppDelegate.h │ └── GoogleService-Info.plist ├── mixNmatch-Bridging-Header.h ├── MixnMatch.xcworkspace │ ├── xcshareddata │ │ └── IDEWorkspaceChecks.plist │ └── contents.xcworkspacedata ├── MixnMatchTests │ └── Info.plist ├── MixnMatch-tvOSTests │ └── Info.plist ├── Podfile └── MixnMatch-tvOS │ └── Info.plist ├── .buckconfig ├── .prettierrc.js ├── __tests__ └── App-test.js ├── metro.config.js ├── .editorconfig ├── react-native.config.js ├── .gitignore └── README.md /src/Core/truly-native/TNImage/styles.js: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /src/Core/truly-native/TNVideo/styles.js: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /src/Core/chat/IMConversationListView/index.js: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /src/Core/chat/IMConversationListView/styles.js: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /src/Core/chat/audioVideo/twilioServerMiddleware/firebase.json: -------------------------------------------------------------------------------- 1 | {} 2 | -------------------------------------------------------------------------------- /app.json: -------------------------------------------------------------------------------- 1 | { 2 | "name": "Boxeo", 3 | "displayName": "Boxeo" 4 | } 5 | -------------------------------------------------------------------------------- /src/Core/chat/IMChat/index.js: -------------------------------------------------------------------------------- 1 | export { default } from './IMChat'; 2 | -------------------------------------------------------------------------------- /src/Core/location/index.js: -------------------------------------------------------------------------------- 1 | export { getDistance } from './utils'; 2 | -------------------------------------------------------------------------------- /src/Core/chat/audioVideo/twilioServerMiddleware/functions/.nvmrc: -------------------------------------------------------------------------------- 1 | v6.10.2 2 | -------------------------------------------------------------------------------- /src/Translations/fr.json: -------------------------------------------------------------------------------- 1 | { 2 | "hello": "Hello World!" 3 | } 4 | 5 | -------------------------------------------------------------------------------- /src/Core/chat/IMConversationList/index.js: -------------------------------------------------------------------------------- 1 | export { default } from './IMConversationList'; 2 | -------------------------------------------------------------------------------- /src/Core/chat/IMConversationView/index.js: -------------------------------------------------------------------------------- 1 | export { default } from './IMConversationView'; 2 | -------------------------------------------------------------------------------- /src/Core/truly-native/TNNumberPicker/index.js: -------------------------------------------------------------------------------- 1 | export { default } from './TNNumberPicker'; 2 | -------------------------------------------------------------------------------- /src/Core/chat/audioVideo/index.js: -------------------------------------------------------------------------------- 1 | export * from './webRTC'; 2 | // export * from './twilio'; 3 | -------------------------------------------------------------------------------- /src/Core/truly-native/TNEmptyStateView/index.js: -------------------------------------------------------------------------------- 1 | export { default } from './TNEmptyStateView'; 2 | -------------------------------------------------------------------------------- /assets/icons/vip.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/bradjin8/MixNMatch-Fighting/HEAD/assets/icons/vip.png -------------------------------------------------------------------------------- /src/Core/truly-native/TNActivityIndicator/index.js: -------------------------------------------------------------------------------- 1 | export { default } from './TNActivityIndicator'; 2 | -------------------------------------------------------------------------------- /src/Core/truly-native/TNMediaViewerModal/index.js: -------------------------------------------------------------------------------- 1 | export { default } from './TNMediaViewerModal'; 2 | -------------------------------------------------------------------------------- /src/api/index.js: -------------------------------------------------------------------------------- 1 | import SwipeTracker from './firebase/tracker'; 2 | 3 | export { SwipeTracker }; 4 | -------------------------------------------------------------------------------- /assets/icons/tick.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/bradjin8/MixNMatch-Fighting/HEAD/assets/icons/tick.png -------------------------------------------------------------------------------- /assets/icons/undo.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/bradjin8/MixNMatch-Fighting/HEAD/assets/icons/undo.png -------------------------------------------------------------------------------- /assets/images/Logo.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/bradjin8/MixNMatch-Fighting/HEAD/assets/images/Logo.png -------------------------------------------------------------------------------- /assets/images/chat.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/bradjin8/MixNMatch-Fighting/HEAD/assets/images/chat.png -------------------------------------------------------------------------------- /babel.config.js: -------------------------------------------------------------------------------- 1 | module.exports = { 2 | presets: ['module:metro-react-native-babel-preset'], 3 | }; 4 | -------------------------------------------------------------------------------- /.vscode/settings.json: -------------------------------------------------------------------------------- 1 | { 2 | "editor.formatOnSave": true, 3 | "prettier.eslintIntegration": true 4 | } 5 | -------------------------------------------------------------------------------- /assets/icons/menu@1x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/bradjin8/MixNMatch-Fighting/HEAD/assets/icons/menu@1x.png -------------------------------------------------------------------------------- /assets/icons/menu@2x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/bradjin8/MixNMatch-Fighting/HEAD/assets/icons/menu@2x.png -------------------------------------------------------------------------------- /assets/icons/thumb-up.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/bradjin8/MixNMatch-Fighting/HEAD/assets/icons/thumb-up.png -------------------------------------------------------------------------------- /assets/images/AppIcon.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/bradjin8/MixNMatch-Fighting/HEAD/assets/images/AppIcon.png -------------------------------------------------------------------------------- /assets/images/dislike.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/bradjin8/MixNMatch-Fighting/HEAD/assets/images/dislike.png -------------------------------------------------------------------------------- /assets/images/fencing.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/bradjin8/MixNMatch-Fighting/HEAD/assets/images/fencing.png -------------------------------------------------------------------------------- /assets/images/vip_1.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/bradjin8/MixNMatch-Fighting/HEAD/assets/images/vip_1.png -------------------------------------------------------------------------------- /assets/images/vip_2.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/bradjin8/MixNMatch-Fighting/HEAD/assets/images/vip_2.png -------------------------------------------------------------------------------- /src/CoreAssets/call.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/bradjin8/MixNMatch-Fighting/HEAD/src/CoreAssets/call.png -------------------------------------------------------------------------------- /src/CoreAssets/search.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/bradjin8/MixNMatch-Fighting/HEAD/src/CoreAssets/search.png -------------------------------------------------------------------------------- /src/CoreAssets/speed.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/bradjin8/MixNMatch-Fighting/HEAD/src/CoreAssets/speed.png -------------------------------------------------------------------------------- /android/app/debug.keystore: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/bradjin8/MixNMatch-Fighting/HEAD/android/app/debug.keystore -------------------------------------------------------------------------------- /assets/icons/delete@1x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/bradjin8/MixNMatch-Fighting/HEAD/assets/icons/delete@1x.png -------------------------------------------------------------------------------- /assets/icons/delete@2x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/bradjin8/MixNMatch-Fighting/HEAD/assets/icons/delete@2x.png -------------------------------------------------------------------------------- /assets/icons/delete@3x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/bradjin8/MixNMatch-Fighting/HEAD/assets/icons/delete@3x.png -------------------------------------------------------------------------------- /assets/icons/thumb-down.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/bradjin8/MixNMatch-Fighting/HEAD/assets/icons/thumb-down.png -------------------------------------------------------------------------------- /assets/images/MNM_LOGO.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/bradjin8/MixNMatch-Fighting/HEAD/assets/images/MNM_LOGO.png -------------------------------------------------------------------------------- /assets/images/bell-icon.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/bradjin8/MixNMatch-Fighting/HEAD/assets/images/bell-icon.png -------------------------------------------------------------------------------- /assets/images/fencing2.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/bradjin8/MixNMatch-Fighting/HEAD/assets/images/fencing2.png -------------------------------------------------------------------------------- /assets/images/fire-icon.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/bradjin8/MixNMatch-Fighting/HEAD/assets/images/fire-icon.png -------------------------------------------------------------------------------- /assets/images/instagram.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/bradjin8/MixNMatch-Fighting/HEAD/assets/images/instagram.png -------------------------------------------------------------------------------- /assets/images/layerson2.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/bradjin8/MixNMatch-Fighting/HEAD/assets/images/layerson2.png -------------------------------------------------------------------------------- /assets/images/vip-pass.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/bradjin8/MixNMatch-Fighting/HEAD/assets/images/vip-pass.png -------------------------------------------------------------------------------- /src/Core/chat/api/firebase/index.js: -------------------------------------------------------------------------------- 1 | import * as channelManager from './channel'; 2 | export { channelManager }; 3 | -------------------------------------------------------------------------------- /src/Core/chat/audioVideo/twilioServerMiddleware/functions/.gitignore: -------------------------------------------------------------------------------- 1 | .DS_Store 2 | npm-debug.log 3 | node_modules 4 | -------------------------------------------------------------------------------- /src/Core/user-reporting/index.js: -------------------------------------------------------------------------------- 1 | import * as reportingManager from './firebase'; 2 | export { reportingManager }; 3 | -------------------------------------------------------------------------------- /src/CoreAssets/flash-on.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/bradjin8/MixNMatch-Fighting/HEAD/src/CoreAssets/flash-on.png -------------------------------------------------------------------------------- /android/my-upload-key.keystore: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/bradjin8/MixNMatch-Fighting/HEAD/android/my-upload-key.keystore -------------------------------------------------------------------------------- /assets/icons/chat-icon@1x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/bradjin8/MixNMatch-Fighting/HEAD/assets/icons/chat-icon@1x.png -------------------------------------------------------------------------------- /assets/icons/chat-icon@2x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/bradjin8/MixNMatch-Fighting/HEAD/assets/icons/chat-icon@2x.png -------------------------------------------------------------------------------- /assets/icons/chat-icon@3x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/bradjin8/MixNMatch-Fighting/HEAD/assets/icons/chat-icon@3x.png -------------------------------------------------------------------------------- /assets/icons/home-icon@1x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/bradjin8/MixNMatch-Fighting/HEAD/assets/icons/home-icon@1x.png -------------------------------------------------------------------------------- /assets/icons/home-icon@2x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/bradjin8/MixNMatch-Fighting/HEAD/assets/icons/home-icon@2x.png -------------------------------------------------------------------------------- /assets/icons/home-icon@3x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/bradjin8/MixNMatch-Fighting/HEAD/assets/icons/home-icon@3x.png -------------------------------------------------------------------------------- /assets/icons/share-icon@1x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/bradjin8/MixNMatch-Fighting/HEAD/assets/icons/share-icon@1x.png -------------------------------------------------------------------------------- /assets/icons/share-icon@2x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/bradjin8/MixNMatch-Fighting/HEAD/assets/icons/share-icon@2x.png -------------------------------------------------------------------------------- /assets/icons/share-icon@3x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/bradjin8/MixNMatch-Fighting/HEAD/assets/icons/share-icon@3x.png -------------------------------------------------------------------------------- /assets/icons/shutdown@1x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/bradjin8/MixNMatch-Fighting/HEAD/assets/icons/shutdown@1x.png -------------------------------------------------------------------------------- /assets/icons/sports-boxing.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/bradjin8/MixNMatch-Fighting/HEAD/assets/icons/sports-boxing.png -------------------------------------------------------------------------------- /assets/images/borderImg1.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/bradjin8/MixNMatch-Fighting/HEAD/assets/images/borderImg1.png -------------------------------------------------------------------------------- /assets/images/borderImg2.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/bradjin8/MixNMatch-Fighting/HEAD/assets/images/borderImg2.png -------------------------------------------------------------------------------- /assets/images/camera-icon.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/bradjin8/MixNMatch-Fighting/HEAD/assets/images/camera-icon.png -------------------------------------------------------------------------------- /assets/images/notification.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/bradjin8/MixNMatch-Fighting/HEAD/assets/images/notification.png -------------------------------------------------------------------------------- /assets/images/sports-jiu.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/bradjin8/MixNMatch-Fighting/HEAD/assets/images/sports-jiu.png -------------------------------------------------------------------------------- /assets/images/sports-mma.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/bradjin8/MixNMatch-Fighting/HEAD/assets/images/sports-mma.png -------------------------------------------------------------------------------- /assets/images/super_like.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/bradjin8/MixNMatch-Fighting/HEAD/assets/images/super_like.png -------------------------------------------------------------------------------- /assets/images/user_avatar.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/bradjin8/MixNMatch-Fighting/HEAD/assets/images/user_avatar.png -------------------------------------------------------------------------------- /src/Core/chat/assets/call.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/bradjin8/MixNMatch-Fighting/HEAD/src/Core/chat/assets/call.png -------------------------------------------------------------------------------- /src/Core/chat/assets/pause.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/bradjin8/MixNMatch-Fighting/HEAD/src/Core/chat/assets/pause.png -------------------------------------------------------------------------------- /src/Core/chat/assets/play.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/bradjin8/MixNMatch-Fighting/HEAD/src/Core/chat/assets/play.png -------------------------------------------------------------------------------- /src/Core/chat/assets/send.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/bradjin8/MixNMatch-Fighting/HEAD/src/Core/chat/assets/send.png -------------------------------------------------------------------------------- /src/CoreAssets/flash-auto.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/bradjin8/MixNMatch-Fighting/HEAD/src/CoreAssets/flash-auto.png -------------------------------------------------------------------------------- /src/CoreAssets/flash-off.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/bradjin8/MixNMatch-Fighting/HEAD/src/CoreAssets/flash-off.png -------------------------------------------------------------------------------- /src/CoreAssets/play-button.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/bradjin8/MixNMatch-Fighting/HEAD/src/CoreAssets/play-button.png -------------------------------------------------------------------------------- /src/CoreAssets/right-arrow.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/bradjin8/MixNMatch-Fighting/HEAD/src/CoreAssets/right-arrow.png -------------------------------------------------------------------------------- /assets/icons/blocked-user-64.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/bradjin8/MixNMatch-Fighting/HEAD/assets/icons/blocked-user-64.png -------------------------------------------------------------------------------- /assets/icons/camera-icon@1x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/bradjin8/MixNMatch-Fighting/HEAD/assets/icons/camera-icon@1x.png -------------------------------------------------------------------------------- /assets/icons/camera-icon@2x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/bradjin8/MixNMatch-Fighting/HEAD/assets/icons/camera-icon@2x.png -------------------------------------------------------------------------------- /assets/icons/camera-icon@3x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/bradjin8/MixNMatch-Fighting/HEAD/assets/icons/camera-icon@3x.png -------------------------------------------------------------------------------- /assets/icons/checked-icon@1x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/bradjin8/MixNMatch-Fighting/HEAD/assets/icons/checked-icon@1x.png -------------------------------------------------------------------------------- /assets/icons/close-x-icon@1x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/bradjin8/MixNMatch-Fighting/HEAD/assets/icons/close-x-icon@1x.png -------------------------------------------------------------------------------- /assets/icons/close-x-icon@2x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/bradjin8/MixNMatch-Fighting/HEAD/assets/icons/close-x-icon@2x.png -------------------------------------------------------------------------------- /assets/icons/close-x-icon@3x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/bradjin8/MixNMatch-Fighting/HEAD/assets/icons/close-x-icon@3x.png -------------------------------------------------------------------------------- /assets/icons/friends-icon@1x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/bradjin8/MixNMatch-Fighting/HEAD/assets/icons/friends-icon@1x.png -------------------------------------------------------------------------------- /assets/icons/friends-icon@2x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/bradjin8/MixNMatch-Fighting/HEAD/assets/icons/friends-icon@2x.png -------------------------------------------------------------------------------- /assets/icons/friends-icon@3x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/bradjin8/MixNMatch-Fighting/HEAD/assets/icons/friends-icon@3x.png -------------------------------------------------------------------------------- /assets/icons/search-icon@1x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/bradjin8/MixNMatch-Fighting/HEAD/assets/icons/search-icon@1x.png -------------------------------------------------------------------------------- /assets/icons/search-icon@2x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/bradjin8/MixNMatch-Fighting/HEAD/assets/icons/search-icon@2x.png -------------------------------------------------------------------------------- /assets/icons/search-icon@3x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/bradjin8/MixNMatch-Fighting/HEAD/assets/icons/search-icon@3x.png -------------------------------------------------------------------------------- /assets/images/default-avatar.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/bradjin8/MixNMatch-Fighting/HEAD/assets/images/default-avatar.jpg -------------------------------------------------------------------------------- /assets/images/sports-boxing.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/bradjin8/MixNMatch-Fighting/HEAD/assets/images/sports-boxing.png -------------------------------------------------------------------------------- /assets/images/textBorderImg1.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/bradjin8/MixNMatch-Fighting/HEAD/assets/images/textBorderImg1.png -------------------------------------------------------------------------------- /assets/images/textBorderImg2.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/bradjin8/MixNMatch-Fighting/HEAD/assets/images/textBorderImg2.png -------------------------------------------------------------------------------- /assets/images/workthrough-1.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/bradjin8/MixNMatch-Fighting/HEAD/assets/images/workthrough-1.png -------------------------------------------------------------------------------- /assets/images/workthrough-2.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/bradjin8/MixNMatch-Fighting/HEAD/assets/images/workthrough-2.png -------------------------------------------------------------------------------- /assets/images/workthrough-3.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/bradjin8/MixNMatch-Fighting/HEAD/assets/images/workthrough-3.png -------------------------------------------------------------------------------- /assets/images/workthrough-4.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/bradjin8/MixNMatch-Fighting/HEAD/assets/images/workthrough-4.png -------------------------------------------------------------------------------- /src/Core/chat/assets/speaker.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/bradjin8/MixNMatch-Fighting/HEAD/src/Core/chat/assets/speaker.png -------------------------------------------------------------------------------- /src/CoreAssets/camera-rotate.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/bradjin8/MixNMatch-Fighting/HEAD/src/CoreAssets/camera-rotate.png -------------------------------------------------------------------------------- /src/CoreAssets/musical-notes.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/bradjin8/MixNMatch-Fighting/HEAD/src/CoreAssets/musical-notes.png -------------------------------------------------------------------------------- /src/CoreAssets/settings-icon.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/bradjin8/MixNMatch-Fighting/HEAD/src/CoreAssets/settings-icon.png -------------------------------------------------------------------------------- /src/CoreAssets/video-camera.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/bradjin8/MixNMatch-Fighting/HEAD/src/CoreAssets/video-camera.png -------------------------------------------------------------------------------- /android/app/my-upload-key.keystore: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/bradjin8/MixNMatch-Fighting/HEAD/android/app/my-upload-key.keystore -------------------------------------------------------------------------------- /assets/icons/add-user-icon@1x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/bradjin8/MixNMatch-Fighting/HEAD/assets/icons/add-user-icon@1x.png -------------------------------------------------------------------------------- /assets/icons/add-user-icon@2x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/bradjin8/MixNMatch-Fighting/HEAD/assets/icons/add-user-icon@2x.png -------------------------------------------------------------------------------- /assets/icons/add-user-icon@3x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/bradjin8/MixNMatch-Fighting/HEAD/assets/icons/add-user-icon@3x.png -------------------------------------------------------------------------------- /assets/images/account-male-icon.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/bradjin8/MixNMatch-Fighting/HEAD/assets/images/account-male-icon.png -------------------------------------------------------------------------------- /assets/images/add-photo-icon-1.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/bradjin8/MixNMatch-Fighting/HEAD/assets/images/add-photo-icon-1.png -------------------------------------------------------------------------------- /assets/images/arrow-back-icon.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/bradjin8/MixNMatch-Fighting/HEAD/assets/images/arrow-back-icon.png -------------------------------------------------------------------------------- /assets/images/arrow-down-icon.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/bradjin8/MixNMatch-Fighting/HEAD/assets/images/arrow-down-icon.png -------------------------------------------------------------------------------- /assets/images/chat-filled-icon.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/bradjin8/MixNMatch-Fighting/HEAD/assets/images/chat-filled-icon.png -------------------------------------------------------------------------------- /assets/images/contact-call-icon.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/bradjin8/MixNMatch-Fighting/HEAD/assets/images/contact-call-icon.png -------------------------------------------------------------------------------- /assets/images/cross-filled-icon.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/bradjin8/MixNMatch-Fighting/HEAD/assets/images/cross-filled-icon.png -------------------------------------------------------------------------------- /assets/images/heart-filled-icon.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/bradjin8/MixNMatch-Fighting/HEAD/assets/images/heart-filled-icon.png -------------------------------------------------------------------------------- /assets/images/icons8-delete-100.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/bradjin8/MixNMatch-Fighting/HEAD/assets/images/icons8-delete-100.png -------------------------------------------------------------------------------- /assets/images/icons8-marker-500.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/bradjin8/MixNMatch-Fighting/HEAD/assets/images/icons8-marker-500.png -------------------------------------------------------------------------------- /assets/images/icons8-menu-100.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/bradjin8/MixNMatch-Fighting/HEAD/assets/images/icons8-menu-100.png -------------------------------------------------------------------------------- /assets/images/logout-menu-item.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/bradjin8/MixNMatch-Fighting/HEAD/assets/images/logout-menu-item.png -------------------------------------------------------------------------------- /assets/images/private-chat-icon.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/bradjin8/MixNMatch-Fighting/HEAD/assets/images/private-chat-icon.png -------------------------------------------------------------------------------- /assets/images/sports-kickboxing.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/bradjin8/MixNMatch-Fighting/HEAD/assets/images/sports-kickboxing.png -------------------------------------------------------------------------------- /assets/images/star-filled-icon.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/bradjin8/MixNMatch-Fighting/HEAD/assets/images/star-filled-icon.png -------------------------------------------------------------------------------- /assets/images/star-filled-icon2.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/bradjin8/MixNMatch-Fighting/HEAD/assets/images/star-filled-icon2.png -------------------------------------------------------------------------------- /assets/images/user_alternative.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/bradjin8/MixNMatch-Fighting/HEAD/assets/images/user_alternative.png -------------------------------------------------------------------------------- /ios/MixnMatch/Images.xcassets/Contents.json: -------------------------------------------------------------------------------- 1 | { 2 | "info" : { 3 | "author" : "xcode", 4 | "version" : 1 5 | } 6 | } 7 | -------------------------------------------------------------------------------- /src/Core/chat/assets/borderImg1.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/bradjin8/MixNMatch-Fighting/HEAD/src/Core/chat/assets/borderImg1.png -------------------------------------------------------------------------------- /src/Core/chat/assets/borderImg2.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/bradjin8/MixNMatch-Fighting/HEAD/src/Core/chat/assets/borderImg2.png -------------------------------------------------------------------------------- /src/Core/chat/assets/end-call.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/bradjin8/MixNMatch-Fighting/HEAD/src/Core/chat/assets/end-call.png -------------------------------------------------------------------------------- /src/Core/chat/assets/microphone.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/bradjin8/MixNMatch-Fighting/HEAD/src/Core/chat/assets/microphone.png -------------------------------------------------------------------------------- /src/Core/chat/assets/pause-alt.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/bradjin8/MixNMatch-Fighting/HEAD/src/Core/chat/assets/pause-alt.png -------------------------------------------------------------------------------- /src/Core/chat/assets/phone-call.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/bradjin8/MixNMatch-Fighting/HEAD/src/Core/chat/assets/phone-call.png -------------------------------------------------------------------------------- /src/Core/chat/assets/reply-icon.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/bradjin8/MixNMatch-Fighting/HEAD/src/Core/chat/assets/reply-icon.png -------------------------------------------------------------------------------- /src/Core/chat/audioVideo/twilioServerMiddleware/.firebaserc: -------------------------------------------------------------------------------- 1 | { 2 | "projects": { 3 | "staging": "socialape-e8afb" 4 | } 5 | } -------------------------------------------------------------------------------- /src/CoreAssets/arrow-back-icon.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/bradjin8/MixNMatch-Fighting/HEAD/src/CoreAssets/arrow-back-icon.png -------------------------------------------------------------------------------- /src/CoreAssets/blocked-user-64.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/bradjin8/MixNMatch-Fighting/HEAD/src/CoreAssets/blocked-user-64.png -------------------------------------------------------------------------------- /src/CoreAssets/close-x-icon@1x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/bradjin8/MixNMatch-Fighting/HEAD/src/CoreAssets/close-x-icon@1x.png -------------------------------------------------------------------------------- /src/CoreAssets/close-x-icon@2x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/bradjin8/MixNMatch-Fighting/HEAD/src/CoreAssets/close-x-icon@2x.png -------------------------------------------------------------------------------- /src/CoreAssets/contact-us-icon.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/bradjin8/MixNMatch-Fighting/HEAD/src/CoreAssets/contact-us-icon.png -------------------------------------------------------------------------------- /src/CoreAssets/default-avatar.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/bradjin8/MixNMatch-Fighting/HEAD/src/CoreAssets/default-avatar.jpg -------------------------------------------------------------------------------- /src/CoreAssets/dismiss-rounded.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/bradjin8/MixNMatch-Fighting/HEAD/src/CoreAssets/dismiss-rounded.png -------------------------------------------------------------------------------- /assets/icons/inscription-icon@1x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/bradjin8/MixNMatch-Fighting/HEAD/assets/icons/inscription-icon@1x.png -------------------------------------------------------------------------------- /assets/icons/inscription-icon@2x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/bradjin8/MixNMatch-Fighting/HEAD/assets/icons/inscription-icon@2x.png -------------------------------------------------------------------------------- /assets/icons/inscription-icon@3x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/bradjin8/MixNMatch-Fighting/HEAD/assets/icons/inscription-icon@3x.png -------------------------------------------------------------------------------- /assets/icons/private-chat-icon@1x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/bradjin8/MixNMatch-Fighting/HEAD/assets/icons/private-chat-icon@1x.png -------------------------------------------------------------------------------- /assets/icons/private-chat-icon@2x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/bradjin8/MixNMatch-Fighting/HEAD/assets/icons/private-chat-icon@2x.png -------------------------------------------------------------------------------- /assets/icons/private-chat-icon@3x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/bradjin8/MixNMatch-Fighting/HEAD/assets/icons/private-chat-icon@3x.png -------------------------------------------------------------------------------- /assets/images/camera-filled-icon.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/bradjin8/MixNMatch-Fighting/HEAD/assets/images/camera-filled-icon.png -------------------------------------------------------------------------------- /assets/images/educate-school-icon.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/bradjin8/MixNMatch-Fighting/HEAD/assets/images/educate-school-icon.png -------------------------------------------------------------------------------- /assets/images/person-filled-icon.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/bradjin8/MixNMatch-Fighting/HEAD/assets/images/person-filled-icon.png -------------------------------------------------------------------------------- /assets/images/settings-menu-item.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/bradjin8/MixNMatch-Fighting/HEAD/assets/images/settings-menu-item.png -------------------------------------------------------------------------------- /src/Core/chat/assets/close-x-icon.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/bradjin8/MixNMatch-Fighting/HEAD/src/Core/chat/assets/close-x-icon.png -------------------------------------------------------------------------------- /src/Core/chat/audioVideo/twilioServerMiddleware/functions/.env.example: -------------------------------------------------------------------------------- 1 | TWILIO_ACCOUNT_SID= 2 | TWILIO_API_KEY= 3 | TWILIO_API_SECRET= 4 | -------------------------------------------------------------------------------- /src/Core/user-reporting/redux/index.js: -------------------------------------------------------------------------------- 1 | export { userReports } from './reducers'; 2 | export { setBannedUserIDs } from './actions'; 3 | -------------------------------------------------------------------------------- /src/CoreAssets/library-landscape.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/bradjin8/MixNMatch-Fighting/HEAD/src/CoreAssets/library-landscape.png -------------------------------------------------------------------------------- /assets/icons/add-user-icon-filled@1x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/bradjin8/MixNMatch-Fighting/HEAD/assets/icons/add-user-icon-filled@1x.png -------------------------------------------------------------------------------- /assets/icons/add-user-icon-filled@2x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/bradjin8/MixNMatch-Fighting/HEAD/assets/icons/add-user-icon-filled@2x.png -------------------------------------------------------------------------------- /assets/icons/add-user-icon-filled@3x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/bradjin8/MixNMatch-Fighting/HEAD/assets/icons/add-user-icon-filled@3x.png -------------------------------------------------------------------------------- /assets/icons/camera-filled-icon@1x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/bradjin8/MixNMatch-Fighting/HEAD/assets/icons/camera-filled-icon@1x.png -------------------------------------------------------------------------------- /assets/icons/camera-filled-icon@2x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/bradjin8/MixNMatch-Fighting/HEAD/assets/icons/camera-filled-icon@2x.png -------------------------------------------------------------------------------- /assets/icons/camera-filled-icon@3x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/bradjin8/MixNMatch-Fighting/HEAD/assets/icons/camera-filled-icon@3x.png -------------------------------------------------------------------------------- /assets/images/icons8-instagram-100.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/bradjin8/MixNMatch-Fighting/HEAD/assets/images/icons8-instagram-100.png -------------------------------------------------------------------------------- /assets/images/pinpoint-place-icon-2.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/bradjin8/MixNMatch-Fighting/HEAD/assets/images/pinpoint-place-icon-2.png -------------------------------------------------------------------------------- /assets/images/three-equal-lines-icon.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/bradjin8/MixNMatch-Fighting/HEAD/assets/images/three-equal-lines-icon.png -------------------------------------------------------------------------------- /src/Core/chat/assets/camera-filled.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/bradjin8/MixNMatch-Fighting/HEAD/src/Core/chat/assets/camera-filled.png -------------------------------------------------------------------------------- /src/Core/chat/assets/settings-icon.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/bradjin8/MixNMatch-Fighting/HEAD/src/Core/chat/assets/settings-icon.png -------------------------------------------------------------------------------- /src/Core/chat/assets/textBorderImg1.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/bradjin8/MixNMatch-Fighting/HEAD/src/Core/chat/assets/textBorderImg1.png -------------------------------------------------------------------------------- /src/Core/chat/assets/textBorderImg2.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/bradjin8/MixNMatch-Fighting/HEAD/src/Core/chat/assets/textBorderImg2.png -------------------------------------------------------------------------------- /src/Core/chat/audioVideo/twilio/api/index.js: -------------------------------------------------------------------------------- 1 | import apiManager from './firebase/audioVideo'; 2 | import tracker from './firebase/tracker'; 3 | -------------------------------------------------------------------------------- /src/Core/inAppPurchase/assets/tick.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/bradjin8/MixNMatch-Fighting/HEAD/src/Core/inAppPurchase/assets/tick.png -------------------------------------------------------------------------------- /src/Core/inAppPurchase/assets/vip_1.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/bradjin8/MixNMatch-Fighting/HEAD/src/Core/inAppPurchase/assets/vip_1.png -------------------------------------------------------------------------------- /src/Core/inAppPurchase/assets/vip_2.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/bradjin8/MixNMatch-Fighting/HEAD/src/Core/inAppPurchase/assets/vip_2.png -------------------------------------------------------------------------------- /src/CoreAssets/account-details-icon.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/bradjin8/MixNMatch-Fighting/HEAD/src/CoreAssets/account-details-icon.png -------------------------------------------------------------------------------- /src/CoreAssets/hamburger-menu-icon.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/bradjin8/MixNMatch-Fighting/HEAD/src/CoreAssets/hamburger-menu-icon.png -------------------------------------------------------------------------------- /android/gradle/wrapper/gradle-wrapper.jar: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/bradjin8/MixNMatch-Fighting/HEAD/android/gradle/wrapper/gradle-wrapper.jar -------------------------------------------------------------------------------- /src/Core/inAppPurchase/assets/fencing.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/bradjin8/MixNMatch-Fighting/HEAD/src/Core/inAppPurchase/assets/fencing.png -------------------------------------------------------------------------------- /src/Core/inAppPurchase/assets/fencing2.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/bradjin8/MixNMatch-Fighting/HEAD/src/Core/inAppPurchase/assets/fencing2.png -------------------------------------------------------------------------------- /src/Core/inAppPurchase/assets/vip-pass.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/bradjin8/MixNMatch-Fighting/HEAD/src/Core/inAppPurchase/assets/vip-pass.png -------------------------------------------------------------------------------- /.buckconfig: -------------------------------------------------------------------------------- 1 | 2 | [android] 3 | target = Google Inc.:Google APIs:23 4 | 5 | [maven_repositories] 6 | central = https://repo1.maven.org/maven2 7 | -------------------------------------------------------------------------------- /android/app/src/main/assets/fonts/Entypo.ttf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/bradjin8/MixNMatch-Fighting/HEAD/android/app/src/main/assets/fonts/Entypo.ttf -------------------------------------------------------------------------------- /android/app/src/main/assets/fonts/Feather.ttf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/bradjin8/MixNMatch-Fighting/HEAD/android/app/src/main/assets/fonts/Feather.ttf -------------------------------------------------------------------------------- /android/app/src/main/assets/fonts/Zocial.ttf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/bradjin8/MixNMatch-Fighting/HEAD/android/app/src/main/assets/fonts/Zocial.ttf -------------------------------------------------------------------------------- /ios/mixNmatch-Bridging-Header.h: -------------------------------------------------------------------------------- 1 | // 2 | // Use this file to import your target's public headers that you would like to expose to Swift. 3 | // 4 | 5 | -------------------------------------------------------------------------------- /src/Core/chat/assets/video-camera-filled.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/bradjin8/MixNMatch-Fighting/HEAD/src/Core/chat/assets/video-camera-filled.png -------------------------------------------------------------------------------- /android/app/src/main/assets/fonts/AntDesign.ttf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/bradjin8/MixNMatch-Fighting/HEAD/android/app/src/main/assets/fonts/AntDesign.ttf -------------------------------------------------------------------------------- /android/app/src/main/assets/fonts/EvilIcons.ttf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/bradjin8/MixNMatch-Fighting/HEAD/android/app/src/main/assets/fonts/EvilIcons.ttf -------------------------------------------------------------------------------- /android/app/src/main/assets/fonts/Ionicons.ttf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/bradjin8/MixNMatch-Fighting/HEAD/android/app/src/main/assets/fonts/Ionicons.ttf -------------------------------------------------------------------------------- /android/app/src/main/assets/fonts/Octicons.ttf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/bradjin8/MixNMatch-Fighting/HEAD/android/app/src/main/assets/fonts/Octicons.ttf -------------------------------------------------------------------------------- /android/app/src/main/assets/fonts/FontAwesome.ttf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/bradjin8/MixNMatch-Fighting/HEAD/android/app/src/main/assets/fonts/FontAwesome.ttf -------------------------------------------------------------------------------- /android/app/src/main/assets/fonts/Foundation.ttf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/bradjin8/MixNMatch-Fighting/HEAD/android/app/src/main/assets/fonts/Foundation.ttf -------------------------------------------------------------------------------- /android/app/src/main/assets/fonts/MaterialIcons.ttf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/bradjin8/MixNMatch-Fighting/HEAD/android/app/src/main/assets/fonts/MaterialIcons.ttf -------------------------------------------------------------------------------- /android/app/src/main/res/mipmap-hdpi/ic_launcher.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/bradjin8/MixNMatch-Fighting/HEAD/android/app/src/main/res/mipmap-hdpi/ic_launcher.png -------------------------------------------------------------------------------- /android/app/src/main/res/mipmap-mdpi/ic_launcher.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/bradjin8/MixNMatch-Fighting/HEAD/android/app/src/main/res/mipmap-mdpi/ic_launcher.png -------------------------------------------------------------------------------- /android/keystores/debug.keystore.properties: -------------------------------------------------------------------------------- 1 | key.store=debug.keystore 2 | key.alias=androiddebugkey 3 | key.store.password=android 4 | key.alias.password=android 5 | -------------------------------------------------------------------------------- /android/app/src/main/assets/fonts/SimpleLineIcons.ttf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/bradjin8/MixNMatch-Fighting/HEAD/android/app/src/main/assets/fonts/SimpleLineIcons.ttf -------------------------------------------------------------------------------- /android/app/src/main/assets/index.android.bundle.meta: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/bradjin8/MixNMatch-Fighting/HEAD/android/app/src/main/assets/index.android.bundle.meta -------------------------------------------------------------------------------- /android/app/src/main/res/mipmap-xhdpi/ic_launcher.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/bradjin8/MixNMatch-Fighting/HEAD/android/app/src/main/res/mipmap-xhdpi/ic_launcher.png -------------------------------------------------------------------------------- /android/app/src/main/res/mipmap-xxhdpi/ic_launcher.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/bradjin8/MixNMatch-Fighting/HEAD/android/app/src/main/res/mipmap-xxhdpi/ic_launcher.png -------------------------------------------------------------------------------- /android/app/src/main/res/mipmap-xxxhdpi/ic_launcher.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/bradjin8/MixNMatch-Fighting/HEAD/android/app/src/main/res/mipmap-xxxhdpi/ic_launcher.png -------------------------------------------------------------------------------- /android/app/src/main/assets/fonts/FontAwesome5_Brands.ttf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/bradjin8/MixNMatch-Fighting/HEAD/android/app/src/main/assets/fonts/FontAwesome5_Brands.ttf -------------------------------------------------------------------------------- /android/app/src/main/assets/fonts/FontAwesome5_Solid.ttf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/bradjin8/MixNMatch-Fighting/HEAD/android/app/src/main/assets/fonts/FontAwesome5_Solid.ttf -------------------------------------------------------------------------------- /src/Core/truly-native/TNNumberPicker/assets/plus-icon.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/bradjin8/MixNMatch-Fighting/HEAD/src/Core/truly-native/TNNumberPicker/assets/plus-icon.png -------------------------------------------------------------------------------- /android/app/src/main/assets/fonts/FontAwesome5_Regular.ttf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/bradjin8/MixNMatch-Fighting/HEAD/android/app/src/main/assets/fonts/FontAwesome5_Regular.ttf -------------------------------------------------------------------------------- /android/app/src/main/assets/fonts/MaterialCommunityIcons.ttf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/bradjin8/MixNMatch-Fighting/HEAD/android/app/src/main/assets/fonts/MaterialCommunityIcons.ttf -------------------------------------------------------------------------------- /android/app/src/main/res/mipmap-hdpi/ic_launcher_round.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/bradjin8/MixNMatch-Fighting/HEAD/android/app/src/main/res/mipmap-hdpi/ic_launcher_round.png -------------------------------------------------------------------------------- /android/app/src/main/res/mipmap-mdpi/ic_launcher_round.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/bradjin8/MixNMatch-Fighting/HEAD/android/app/src/main/res/mipmap-mdpi/ic_launcher_round.png -------------------------------------------------------------------------------- /android/app/src/main/res/mipmap-xhdpi/ic_launcher_round.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/bradjin8/MixNMatch-Fighting/HEAD/android/app/src/main/res/mipmap-xhdpi/ic_launcher_round.png -------------------------------------------------------------------------------- /android/app/src/main/res/mipmap-xxhdpi/ic_launcher_round.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/bradjin8/MixNMatch-Fighting/HEAD/android/app/src/main/res/mipmap-xxhdpi/ic_launcher_round.png -------------------------------------------------------------------------------- /src/Core/truly-native/TNNumberPicker/assets/minus-icon.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/bradjin8/MixNMatch-Fighting/HEAD/src/Core/truly-native/TNNumberPicker/assets/minus-icon.png -------------------------------------------------------------------------------- /android/app/src/main/res/mipmap-xxxhdpi/ic_launcher_round.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/bradjin8/MixNMatch-Fighting/HEAD/android/app/src/main/res/mipmap-xxxhdpi/ic_launcher_round.png -------------------------------------------------------------------------------- /src/Core/notifications/redux/index.js: -------------------------------------------------------------------------------- 1 | export { notifications } from './reducers'; 2 | export { 3 | setNotifications, 4 | setNotificationListenerDidSubscribe, 5 | } from './actions'; 6 | -------------------------------------------------------------------------------- /.prettierrc.js: -------------------------------------------------------------------------------- 1 | module.exports = { 2 | bracketSpacing: true, 3 | jsxBracketSameLine: true, 4 | singleQuote: true, 5 | tabWidth: 2, 6 | trailingComma: 'all', 7 | semi: true, 8 | }; 9 | -------------------------------------------------------------------------------- /src/Core/user-reporting/redux/types.js: -------------------------------------------------------------------------------- 1 | const IMUserReportingActionsConstants = { 2 | SET_BANNED_USER_IDS: 'SET_BANNED_USER_IDS', 3 | }; 4 | 5 | export default IMUserReportingActionsConstants; 6 | -------------------------------------------------------------------------------- /ios/MixnMatch/Images.xcassets/AppIcon.appiconset/Icon-App-20x20@1x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/bradjin8/MixNMatch-Fighting/HEAD/ios/MixnMatch/Images.xcassets/AppIcon.appiconset/Icon-App-20x20@1x.png -------------------------------------------------------------------------------- /ios/MixnMatch/Images.xcassets/AppIcon.appiconset/Icon-App-20x20@2x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/bradjin8/MixNMatch-Fighting/HEAD/ios/MixnMatch/Images.xcassets/AppIcon.appiconset/Icon-App-20x20@2x.png -------------------------------------------------------------------------------- /ios/MixnMatch/Images.xcassets/AppIcon.appiconset/Icon-App-20x20@3x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/bradjin8/MixNMatch-Fighting/HEAD/ios/MixnMatch/Images.xcassets/AppIcon.appiconset/Icon-App-20x20@3x.png -------------------------------------------------------------------------------- /ios/MixnMatch/Images.xcassets/AppIcon.appiconset/Icon-App-29x29@1x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/bradjin8/MixNMatch-Fighting/HEAD/ios/MixnMatch/Images.xcassets/AppIcon.appiconset/Icon-App-29x29@1x.png -------------------------------------------------------------------------------- /ios/MixnMatch/Images.xcassets/AppIcon.appiconset/Icon-App-29x29@2x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/bradjin8/MixNMatch-Fighting/HEAD/ios/MixnMatch/Images.xcassets/AppIcon.appiconset/Icon-App-29x29@2x.png -------------------------------------------------------------------------------- /ios/MixnMatch/Images.xcassets/AppIcon.appiconset/Icon-App-29x29@3x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/bradjin8/MixNMatch-Fighting/HEAD/ios/MixnMatch/Images.xcassets/AppIcon.appiconset/Icon-App-29x29@3x.png -------------------------------------------------------------------------------- /ios/MixnMatch/Images.xcassets/AppIcon.appiconset/Icon-App-40x40@1x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/bradjin8/MixNMatch-Fighting/HEAD/ios/MixnMatch/Images.xcassets/AppIcon.appiconset/Icon-App-40x40@1x.png -------------------------------------------------------------------------------- /ios/MixnMatch/Images.xcassets/AppIcon.appiconset/Icon-App-40x40@2x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/bradjin8/MixNMatch-Fighting/HEAD/ios/MixnMatch/Images.xcassets/AppIcon.appiconset/Icon-App-40x40@2x.png -------------------------------------------------------------------------------- /ios/MixnMatch/Images.xcassets/AppIcon.appiconset/Icon-App-40x40@3x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/bradjin8/MixNMatch-Fighting/HEAD/ios/MixnMatch/Images.xcassets/AppIcon.appiconset/Icon-App-40x40@3x.png -------------------------------------------------------------------------------- /ios/MixnMatch/Images.xcassets/AppIcon.appiconset/Icon-App-60x60@2x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/bradjin8/MixNMatch-Fighting/HEAD/ios/MixnMatch/Images.xcassets/AppIcon.appiconset/Icon-App-60x60@2x.png -------------------------------------------------------------------------------- /ios/MixnMatch/Images.xcassets/AppIcon.appiconset/Icon-App-60x60@3x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/bradjin8/MixNMatch-Fighting/HEAD/ios/MixnMatch/Images.xcassets/AppIcon.appiconset/Icon-App-60x60@3x.png -------------------------------------------------------------------------------- /ios/MixnMatch/Images.xcassets/AppIcon.appiconset/Icon-App-76x76@1x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/bradjin8/MixNMatch-Fighting/HEAD/ios/MixnMatch/Images.xcassets/AppIcon.appiconset/Icon-App-76x76@1x.png -------------------------------------------------------------------------------- /ios/MixnMatch/Images.xcassets/AppIcon.appiconset/Icon-App-76x76@2x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/bradjin8/MixNMatch-Fighting/HEAD/ios/MixnMatch/Images.xcassets/AppIcon.appiconset/Icon-App-76x76@2x.png -------------------------------------------------------------------------------- /ios/MixnMatch/Images.xcassets/AppIcon.appiconset/ItunesArtwork@2x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/bradjin8/MixNMatch-Fighting/HEAD/ios/MixnMatch/Images.xcassets/AppIcon.appiconset/ItunesArtwork@2x.png -------------------------------------------------------------------------------- /ios/MixnMatch/Images.xcassets/logoicon.appiconset/ItunesArtwork@2x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/bradjin8/MixNMatch-Fighting/HEAD/ios/MixnMatch/Images.xcassets/logoicon.appiconset/ItunesArtwork@2x.png -------------------------------------------------------------------------------- /android/keystores/BUCK: -------------------------------------------------------------------------------- 1 | keystore( 2 | name = "debug", 3 | properties = "debug.keystore.properties", 4 | store = "debug.keystore", 5 | visibility = [ 6 | "PUBLIC", 7 | ], 8 | ) 9 | -------------------------------------------------------------------------------- /ios/MixnMatch/Images.xcassets/logoicon.appiconset/Icon-App-20x20@1x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/bradjin8/MixNMatch-Fighting/HEAD/ios/MixnMatch/Images.xcassets/logoicon.appiconset/Icon-App-20x20@1x.png -------------------------------------------------------------------------------- /ios/MixnMatch/Images.xcassets/logoicon.appiconset/Icon-App-20x20@2x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/bradjin8/MixNMatch-Fighting/HEAD/ios/MixnMatch/Images.xcassets/logoicon.appiconset/Icon-App-20x20@2x.png -------------------------------------------------------------------------------- /ios/MixnMatch/Images.xcassets/logoicon.appiconset/Icon-App-20x20@3x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/bradjin8/MixNMatch-Fighting/HEAD/ios/MixnMatch/Images.xcassets/logoicon.appiconset/Icon-App-20x20@3x.png -------------------------------------------------------------------------------- /ios/MixnMatch/Images.xcassets/logoicon.appiconset/Icon-App-29x29@1x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/bradjin8/MixNMatch-Fighting/HEAD/ios/MixnMatch/Images.xcassets/logoicon.appiconset/Icon-App-29x29@1x.png -------------------------------------------------------------------------------- /ios/MixnMatch/Images.xcassets/logoicon.appiconset/Icon-App-29x29@2x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/bradjin8/MixNMatch-Fighting/HEAD/ios/MixnMatch/Images.xcassets/logoicon.appiconset/Icon-App-29x29@2x.png -------------------------------------------------------------------------------- /ios/MixnMatch/Images.xcassets/logoicon.appiconset/Icon-App-29x29@3x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/bradjin8/MixNMatch-Fighting/HEAD/ios/MixnMatch/Images.xcassets/logoicon.appiconset/Icon-App-29x29@3x.png -------------------------------------------------------------------------------- /ios/MixnMatch/Images.xcassets/logoicon.appiconset/Icon-App-40x40@1x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/bradjin8/MixNMatch-Fighting/HEAD/ios/MixnMatch/Images.xcassets/logoicon.appiconset/Icon-App-40x40@1x.png -------------------------------------------------------------------------------- /ios/MixnMatch/Images.xcassets/logoicon.appiconset/Icon-App-40x40@2x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/bradjin8/MixNMatch-Fighting/HEAD/ios/MixnMatch/Images.xcassets/logoicon.appiconset/Icon-App-40x40@2x.png -------------------------------------------------------------------------------- /ios/MixnMatch/Images.xcassets/logoicon.appiconset/Icon-App-40x40@3x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/bradjin8/MixNMatch-Fighting/HEAD/ios/MixnMatch/Images.xcassets/logoicon.appiconset/Icon-App-40x40@3x.png -------------------------------------------------------------------------------- /ios/MixnMatch/Images.xcassets/logoicon.appiconset/Icon-App-60x60@2x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/bradjin8/MixNMatch-Fighting/HEAD/ios/MixnMatch/Images.xcassets/logoicon.appiconset/Icon-App-60x60@2x.png -------------------------------------------------------------------------------- /ios/MixnMatch/Images.xcassets/logoicon.appiconset/Icon-App-60x60@3x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/bradjin8/MixNMatch-Fighting/HEAD/ios/MixnMatch/Images.xcassets/logoicon.appiconset/Icon-App-60x60@3x.png -------------------------------------------------------------------------------- /ios/MixnMatch/Images.xcassets/logoicon.appiconset/Icon-App-76x76@1x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/bradjin8/MixNMatch-Fighting/HEAD/ios/MixnMatch/Images.xcassets/logoicon.appiconset/Icon-App-76x76@1x.png -------------------------------------------------------------------------------- /ios/MixnMatch/Images.xcassets/logoicon.appiconset/Icon-App-76x76@2x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/bradjin8/MixNMatch-Fighting/HEAD/ios/MixnMatch/Images.xcassets/logoicon.appiconset/Icon-App-76x76@2x.png -------------------------------------------------------------------------------- /android/app/src/main/res/values/colors.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | #000000 4 | #eb5a6d 5 | -------------------------------------------------------------------------------- /ios/MixnMatch/Images.xcassets/AppIcon.appiconset/Icon-App-83.5x83.5@2x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/bradjin8/MixNMatch-Fighting/HEAD/ios/MixnMatch/Images.xcassets/AppIcon.appiconset/Icon-App-83.5x83.5@2x.png -------------------------------------------------------------------------------- /ios/MixnMatch/Images.xcassets/logoicon.appiconset/Icon-App-83.5x83.5@2x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/bradjin8/MixNMatch-Fighting/HEAD/ios/MixnMatch/Images.xcassets/logoicon.appiconset/Icon-App-83.5x83.5@2x.png -------------------------------------------------------------------------------- /src/api/firebase/constants.js: -------------------------------------------------------------------------------- 1 | const SwipeType = { 2 | like: 'like', 3 | outbound: 'superlike', 4 | reciprocal: 'dislike', 5 | }; 6 | 7 | export const SwipeConstants = { 8 | SwipeType, 9 | }; 10 | -------------------------------------------------------------------------------- /src/Core/chat/audioVideo/twilioServerMiddleware/functions/index.js: -------------------------------------------------------------------------------- 1 | require('dotenv').config(); 2 | const tokenGenerator = require('./src/tokenGenerator'); 3 | 4 | exports.getTwilioAccessToken = tokenGenerator; 5 | -------------------------------------------------------------------------------- /src/Core/chat/audioVideo/webRTC/api/index.js: -------------------------------------------------------------------------------- 1 | import * as apiManager from './firebase/audioVideo'; 2 | import MediaChatTracker from './firebase/tracker'; 3 | export { MediaChatTracker }; 4 | export default apiManager; 5 | -------------------------------------------------------------------------------- /src/Core/ui/index.js: -------------------------------------------------------------------------------- 1 | export { default as TabBarBuilder } from './TabBar/TabBar'; 2 | export { default as SearchBar } from './SearchBar/SearchBar'; 3 | export { default as IMDrawerMenu } from './drawer/IMDrawerMenu/IMDrawerMenu'; 4 | -------------------------------------------------------------------------------- /src/Core/user-reporting/redux/actions.js: -------------------------------------------------------------------------------- 1 | import IMUserReportingActionsConstants from './types'; 2 | 3 | export const setBannedUserIDs = (data) => ({ 4 | type: IMUserReportingActionsConstants.SET_BANNED_USER_IDS, 5 | data, 6 | }); 7 | -------------------------------------------------------------------------------- /src/Core/notifications/redux/types.js: -------------------------------------------------------------------------------- 1 | const IMNotificationActionsConstants = { 2 | SET_NOTIFICATIONS: 'SET_NOTIFICATIONS', 3 | DID_SUBSCRIBE: 'DID_SUBSCRIBE_TO_NOTIFICATIONS', 4 | }; 5 | 6 | export default IMNotificationActionsConstants; 7 | -------------------------------------------------------------------------------- /android/app/src/main/res/values/strings.xml: -------------------------------------------------------------------------------- 1 | 2 | Mix n Match 3 | 285315185217069 4 | fb285315185217069 5 | 6 | -------------------------------------------------------------------------------- /src/Core/helpers/colors.js: -------------------------------------------------------------------------------- 1 | import { Appearance } from 'react-native-appearance'; 2 | 3 | export const modedColor = (lightModeColor, darkModeColor) => { 4 | return Appearance.getColorScheme() === 'dark' 5 | ? darkModeColor 6 | : lightModeColor; 7 | }; 8 | -------------------------------------------------------------------------------- /android/gradle/wrapper/gradle-wrapper.properties: -------------------------------------------------------------------------------- 1 | distributionBase=GRADLE_USER_HOME 2 | distributionPath=wrapper/dists 3 | distributionUrl=https\://services.gradle.org/distributions/gradle-6.1.1-bin.zip 4 | zipStoreBase=GRADLE_USER_HOME 5 | zipStorePath=wrapper/dists 6 | -------------------------------------------------------------------------------- /src/Core/chat/audioVideo/twilio/index.js: -------------------------------------------------------------------------------- 1 | export { default as IMAudioVideoChat } from './IMAudioVideoChat'; 2 | export { default as AppCallWrapper } from './AppCallWrapper'; 3 | export * from './pushKit/sendCallInitiationRemoteNotification'; 4 | export * from './redux'; 5 | -------------------------------------------------------------------------------- /src/Core/chat/audioVideo/webRTC/index.js: -------------------------------------------------------------------------------- 1 | export { default as IMAudioVideoChat } from './IMAudioVideoChat'; 2 | export { default as AppCallWrapper } from './AppCallWrapper'; 3 | export * from './pushKit/sendCallInitiationRemoteNotification'; 4 | export * from './redux'; 5 | -------------------------------------------------------------------------------- /src/Core/chat/audioVideo/twilioServerMiddleware/functions/config.js: -------------------------------------------------------------------------------- 1 | module.exports = { 2 | TWILIO_ACCOUNT_SID: 'AC00fe742eba2bc869e7aa23de1029ef60', 3 | TWILIO_API_KEY: 'SK5c263dc292f2c58257702f0108b2780c', 4 | TWILIO_API_SECRET: 'jyR3fWurAGCEbPVfAlelQQiTh3EJ1fpP', 5 | }; 6 | -------------------------------------------------------------------------------- /src/redux/types.js: -------------------------------------------------------------------------------- 1 | const IMSwipeActionsConstants = { 2 | SET_SWIPES: 'SET_SWIPES', 3 | SET_MATCHES: 'SET_MATCHES', 4 | SET_INCOMING_SWIPES: 'SET_INCOMING_SWIPES', 5 | DID_SUBSCRIBE_TO_SWIPES: 'DID_SUBSCRIBE_TO_SWIPES', 6 | }; 7 | 8 | export default IMSwipeActionsConstants; 9 | -------------------------------------------------------------------------------- /src/Core/mentions/index.js: -------------------------------------------------------------------------------- 1 | export * from './IMRichTextInput/EditorUtils'; 2 | export { default as IMRichTextInput } from './IMRichTextInput'; 3 | export { default as IMMentionList } from './IMMentionList'; 4 | export { default as IMRichTextView } from './IMRichTextView/IMRichTextView'; 5 | -------------------------------------------------------------------------------- /ios/MixnMatch/SwiftHeader.swift: -------------------------------------------------------------------------------- 1 | // 2 | // SwiftHeader.swift 3 | // Instadating 4 | // 5 | // Created by Florian Marcu on 9/10/20. 6 | // Copyright © 2020 Instamobile Code SRL. All rights reserved. 7 | // 8 | 9 | import UIKit 10 | 11 | class SwiftHeader: NSObject { 12 | 13 | } 14 | -------------------------------------------------------------------------------- /src/Core/chat/config.js: -------------------------------------------------------------------------------- 1 | const callID = 'E621E1F8-C36C-495A-93FC-0C247A3E6E5F'; 2 | 3 | const pushKitEndpoint = 4 | 'https://us-central1-production-a9404.cloudfunctions.net/initiateChatCall'; 5 | 6 | const iOSBundleID = 'io.instamobile.chat.rn.ios'; 7 | 8 | export { callID, pushKitEndpoint, iOSBundleID }; 9 | -------------------------------------------------------------------------------- /src/Core/notifications/index.js: -------------------------------------------------------------------------------- 1 | export { default as IMNotificationScreen } from './IMNotificationScreen/IMNotificationScreen'; 2 | export { notificationManager } from './firebase/notificationManager'; 3 | 4 | import * as firebaseNotification from './firebase/notification'; 5 | export { firebaseNotification }; 6 | -------------------------------------------------------------------------------- /ios/MixnMatch.xcworkspace/xcshareddata/IDEWorkspaceChecks.plist: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | IDEDidComputeMac32BitWarning 6 | 7 | 8 | 9 | -------------------------------------------------------------------------------- /src/Core/chat/audioVideo/twilioServerMiddleware/functions/.travis.yml: -------------------------------------------------------------------------------- 1 | language: node_js 2 | node_js: 3 | - 'stable' 4 | env: 5 | global: 6 | - TWILIO_ACCOUNT_SID=AC00fe742eba2bc869e7aa23de1029ef60 7 | - TWILIO_API_KEY=SK5c263dc292f2c58257702f0108b2780c 8 | - TWILIO_API_SECRET=jyR3fWurAGCEbPVfAlelQQiTh3EJ1fpP 9 | -------------------------------------------------------------------------------- /src/helpers/statics.js: -------------------------------------------------------------------------------- 1 | import { Dimensions, Platform } from 'react-native'; 2 | 3 | export const DEVICE_WIDTH = Dimensions.get('window').width; 4 | export const DEVICE_HEIGHT = Dimensions.get('window').height; 5 | 6 | export const IS_ANDROID = Platform.OS === 'android'; 7 | 8 | export const LOCAL_STORAGE_KEY = 'mid5LocalStorage'; 9 | -------------------------------------------------------------------------------- /__tests__/App-test.js: -------------------------------------------------------------------------------- 1 | /** 2 | * @format 3 | */ 4 | import 'react-native'; 5 | import React from 'react'; 6 | import App from '../App'; 7 | // Note: test renderer must be required after react-native. 8 | import renderer from 'react-test-renderer'; 9 | it('renders correctly', () => { 10 | renderer.create(); 11 | }); 12 | -------------------------------------------------------------------------------- /android/app/src/main/res/values/styles.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 8 | 9 | 10 | -------------------------------------------------------------------------------- /src/Core/helpers/statics.js: -------------------------------------------------------------------------------- 1 | import { Dimensions, Platform } from 'react-native'; 2 | 3 | export const DEVICE_WIDTH = Dimensions.get('window').width; 4 | export const DEVICE_HEIGHT = Dimensions.get('window').height; 5 | 6 | export const IS_ANDROID = Platform.OS === 'android'; 7 | 8 | export const LOCAL_STORAGE_KEY = 'mid5LocalStorage'; 9 | -------------------------------------------------------------------------------- /src/Core/inAppPurchase/context.js: -------------------------------------------------------------------------------- 1 | import React from 'react'; 2 | 3 | export const IAPContext = React.createContext({ 4 | processing: false, 5 | setProcessing: () => {}, 6 | activePlan: 0, 7 | subscriptionVisible: false, 8 | setSubscriptionVisible: () => {}, 9 | }); 10 | 11 | export const useIap = () => React.useContext(IAPContext); 12 | -------------------------------------------------------------------------------- /src/Core/index.js: -------------------------------------------------------------------------------- 1 | export { default as tabBarBuilder } from './ui/TabBar/TabBar'; 2 | export { default as SearchBarAlternate } from './ui/SearchBarAlternate/SearchBarAlternate'; 3 | export { default as SearchBar } from './ui/SearchBar/SearchBar'; 4 | export { removeFromCollection, groupBy } from './helpers/collections'; 5 | export { timeFormat } from './helpers/timeFormat'; 6 | -------------------------------------------------------------------------------- /src/Core/notifications/redux/actions.js: -------------------------------------------------------------------------------- 1 | import IMNotificationActionsConstants from './types'; 2 | 3 | export const setNotifications = (data) => ({ 4 | type: IMNotificationActionsConstants.SET_NOTIFICATIONS, 5 | data, 6 | }); 7 | 8 | export const setNotificationListenerDidSubscribe = () => ({ 9 | type: IMNotificationActionsConstants.DID_SUBSCRIBE, 10 | }); 11 | -------------------------------------------------------------------------------- /src/Core/chat/audioVideo/config.js: -------------------------------------------------------------------------------- 1 | // export const TWILIO_SERVER_ENDPOINT = 2 | // 'https://glacial-peak-35311.herokuapp.com'; 3 | export const TWILIO_SERVER_ENDPOINT = 4 | 'https://us-central1-socialape-e8afb.cloudfunctions.net/getTwilioAccessToken'; 5 | // export const TWILIO_SERVER_ENDPOINT = 6 | // 'https://us-central1-production-a9404.cloudfunctions.net/getTwilioAccessToken'; 7 | -------------------------------------------------------------------------------- /metro.config.js: -------------------------------------------------------------------------------- 1 | /** 2 | * Metro configuration for React Native 3 | * https://github.com/facebook/react-native 4 | * 5 | * @format 6 | */ 7 | module.exports = { 8 | transformer: { 9 | getTransformOptions: async () => ({ 10 | transform: { 11 | experimentalImportSupport: false, 12 | inlineRequires: false, 13 | }, 14 | }), 15 | }, 16 | }; 17 | -------------------------------------------------------------------------------- /src/Core/onboarding/utils/api/index.js: -------------------------------------------------------------------------------- 1 | // Uncomment these if you want to remove firebase and add your own custom backend: 2 | // import authManager from './local/localAuthManager'; 3 | // export { authManager }; 4 | 5 | 6 | // Remove these lines if you want to remove firebase and add your own custom backend: 7 | import authManager from './firebase/firebaseAuthManager'; 8 | export { authManager }; 9 | -------------------------------------------------------------------------------- /ios/MixnMatch.xcworkspace/contents.xcworkspacedata: -------------------------------------------------------------------------------- 1 | 2 | 4 | 6 | 7 | 9 | 10 | 12 | 13 | 14 | -------------------------------------------------------------------------------- /.editorconfig: -------------------------------------------------------------------------------- 1 | # EditorConfig helps developers define and maintain consistent 2 | # coding styles between different editors and IDEs 3 | # editorconfig.org 4 | 5 | root = true 6 | 7 | 8 | [*] 9 | indent_style = space 10 | indent_size = 2 11 | end_of_line = lf 12 | charset = utf-8 13 | trim_trailing_whitespace = true 14 | insert_final_newline = true 15 | 16 | [*.md] 17 | trim_trailing_whitespace = false 18 | 19 | -------------------------------------------------------------------------------- /src/Core/chat/index.js: -------------------------------------------------------------------------------- 1 | export { default as IMChatScreen } from './IMChatScreen/IMChatScreen'; 2 | export { default as IMConversationListView } from './IMConversationListView/IMConversationListView'; 3 | export { default as IMConversationIconView } from './IMConversationView/IMConversationIconView/IMConversationIconView'; 4 | export { default as IMChatHomeComponent } from './ui/IMChatHomeComponent/IMChatHomeComponent'; 5 | -------------------------------------------------------------------------------- /ios/MixnMatch/MixnMatch.entitlements: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | aps-environment 6 | development 7 | com.apple.developer.applesignin 8 | 9 | Default 10 | 11 | 12 | 13 | -------------------------------------------------------------------------------- /src/helpers/devices.android.js: -------------------------------------------------------------------------------- 1 | import { Dimensions } from 'react-native'; 2 | 3 | const device = Dimensions.get('window'); 4 | let scale; 5 | 6 | if (device.width <= 414) { 7 | // Android smartphones 8 | scale = device.width / 414; 9 | } else { 10 | // Android tablets 11 | scale = 1; 12 | } 13 | 14 | module.exports = { 15 | scale, 16 | size: function size(pixel) { 17 | return Math.ceil(pixel * scale); 18 | }, 19 | }; 20 | -------------------------------------------------------------------------------- /src/Core/helpers/devices.android.js: -------------------------------------------------------------------------------- 1 | import { Dimensions } from 'react-native'; 2 | 3 | const device = Dimensions.get('window'); 4 | let scale; 5 | 6 | if (device.width <= 414) { 7 | // Android smartphones 8 | scale = device.width / 414; 9 | } else { 10 | // Android tablets 11 | scale = 1; 12 | } 13 | 14 | module.exports = { 15 | scale, 16 | size: function size(pixel) { 17 | return Math.ceil(pixel * scale); 18 | }, 19 | }; 20 | -------------------------------------------------------------------------------- /src/Core/helpers/timeFormat.js: -------------------------------------------------------------------------------- 1 | import moment from 'moment'; 2 | 3 | export const timeFormat = (timeStamp) => { 4 | if (timeStamp) { 5 | if (moment(timeStamp).isValid()) { 6 | return ''; 7 | } 8 | if (moment().diff(moment.unix(timeStamp.seconds), 'days') == 0) { 9 | return moment.unix(timeStamp.seconds).format('H:mm'); 10 | } 11 | return moment.unix(timeStamp.seconds).fromNow(); 12 | } 13 | return ' '; 14 | }; 15 | -------------------------------------------------------------------------------- /src/Core/user-reporting/redux/reducers.js: -------------------------------------------------------------------------------- 1 | import IMUserReportingActionsConstants from './types'; 2 | 3 | const initialState = { 4 | bannedUserIDs: null, 5 | }; 6 | 7 | export const userReports = (state = initialState, action) => { 8 | switch (action.type) { 9 | case IMUserReportingActionsConstants.SET_BANNED_USER_IDS: 10 | return { ...state, bannedUserIDs: [...action.data] }; 11 | default: 12 | return state; 13 | } 14 | }; 15 | -------------------------------------------------------------------------------- /ios/MixnMatch/main.m: -------------------------------------------------------------------------------- 1 | /** 2 | * Copyright (c) 2015-present, Facebook, Inc. 3 | * 4 | * This source code is licensed under the MIT license found in the 5 | * LICENSE file in the root directory of this source tree. 6 | */ 7 | 8 | #import 9 | 10 | #import "AppDelegate.h" 11 | 12 | int main(int argc, char * argv[]) { 13 | @autoreleasepool { 14 | return UIApplicationMain(argc, argv, nil, NSStringFromClass([AppDelegate class])); 15 | } 16 | } 17 | -------------------------------------------------------------------------------- /src/Core/helpers/retrieveSource.js: -------------------------------------------------------------------------------- 1 | import { Platform } from 'react-native'; 2 | 3 | exports.extractSourceFromFile = (file) => { 4 | const mime = file.mime || file.type; 5 | const source = file.path || file.uri; 6 | const uploadUri = 7 | Platform.OS === 'ios' ? source.replace('file://', '') : source; 8 | const filename = 9 | new Date() + '-' + source.substring(source.lastIndexOf('/') + 1); 10 | 11 | return { ...file, filename, source, uploadUri, mime }; 12 | }; 13 | -------------------------------------------------------------------------------- /src/Core/truly-native/TNColor.js: -------------------------------------------------------------------------------- 1 | import invert from 'invert-color'; 2 | import { Appearance } from 'react-native-appearance'; 3 | 4 | const TNColor = (hexStringColor) => { 5 | return invert(hexStringColor); 6 | }; 7 | // const TNColor = hexStringColor => { 8 | // const colorScheme = Appearance.getColorScheme(); 9 | // if (colorScheme === 'dark') { 10 | // return invert(hexStringColor); 11 | // } 12 | // return hexStringColor; 13 | // }; 14 | export default TNColor; 15 | -------------------------------------------------------------------------------- /src/Core/onboarding/utils/api/local/localData.js: -------------------------------------------------------------------------------- 1 | const dummyPhoneNumber = 22323232323; 2 | 3 | const mockData = { 4 | id: '113311313', 5 | userID: '113311313', 6 | stripeCustomerID: 'addddvvd', 7 | phone: dummyPhoneNumber, 8 | email: 'jane@doe.com', 9 | firstName: 'Jane', 10 | lastName: 'Doe', 11 | profilePictureURL: 12 | 'https://static2.thethingsimages.com/wordpress/wp-content/uploads/2020/05/15-Sickest-Concept-Cars-In-2020-1.jpg', 13 | }; 14 | 15 | export { mockData }; 16 | -------------------------------------------------------------------------------- /android/app/src/debug/AndroidManifest.xml: -------------------------------------------------------------------------------- 1 | 2 | 4 | 5 | 6 | 7 | 8 | -------------------------------------------------------------------------------- /android/settings.gradle: -------------------------------------------------------------------------------- 1 | rootProject.name = 'mixNmatch' 2 | apply from: file("../node_modules/@react-native-community/cli-platform-android/native_modules.gradle"); applyNativeModulesSettingsGradle(settings) 3 | apply from: '../node_modules/react-native-unimodules/gradle.groovy' 4 | includeUnimodulesProjects() 5 | include ':react-native-twilio-video-webrtc' 6 | project(':react-native-twilio-video-webrtc').projectDir = new File(rootProject.projectDir, '../node_modules/react-native-twilio-video-webrtc/android') 7 | 8 | include ':app' 9 | -------------------------------------------------------------------------------- /src/Core/truly-native/TNTouchableIcon/styles.js: -------------------------------------------------------------------------------- 1 | import { StyleSheet } from 'react-native'; 2 | 3 | const dynamicStyles = (appStyles, colorScheme) => { 4 | return StyleSheet.create({ 5 | headerButtonContainer: { 6 | padding: 10, 7 | }, 8 | Image: { 9 | width: 25, 10 | height: 25, 11 | margin: 6, 12 | }, 13 | title: { 14 | color: appStyles.colorSet[colorScheme].mainTextColor, 15 | fontSize: 12, 16 | }, 17 | }); 18 | }; 19 | 20 | export default dynamicStyles; 21 | -------------------------------------------------------------------------------- /src/Core/chat/api/index.js: -------------------------------------------------------------------------------- 1 | // Uncomment these if you want to remove firebase and add your own custom backend: 2 | // import * as channelManager from './local/channel'; 3 | // import ChannelsTracker from './local/channelsTracker'; 4 | // export { channelManager, ChannelsTracker }; 5 | 6 | 7 | // Remove these lines if you want to remove firebase and add your own custom backend: 8 | import * as channelManager from './firebase/channel'; 9 | import ChannelsTracker from './firebase/channelsTracker'; 10 | export { channelManager, ChannelsTracker }; 11 | -------------------------------------------------------------------------------- /src/Core/truly-native/TNStoriesTray/styles.js: -------------------------------------------------------------------------------- 1 | import { StyleSheet } from 'react-native'; 2 | 3 | const dynamicStyles = (appStyles, colorScheme) => { 4 | return StyleSheet.create({ 5 | storiesContainer: { 6 | backgroundColor: appStyles.colorSet[colorScheme].mainThemeBackgroundColor, 7 | marginBottom: 5, 8 | flexDirection: 'row', 9 | }, 10 | seenStyle: { 11 | borderColor: appStyles.colorSet[colorScheme].grey, 12 | borderWidth: 1, 13 | }, 14 | }); 15 | }; 16 | 17 | export default dynamicStyles; 18 | -------------------------------------------------------------------------------- /src/Core/chat/audioVideo/twilioServerMiddleware/functions/tests/token_generator.test.js: -------------------------------------------------------------------------------- 1 | const jwt = require('jsonwebtoken'); 2 | const tokenGenerator = require('../src/token_generator'); 3 | 4 | test('generates a new token', () => { 5 | const identity = 'alice'; 6 | const room = 'example'; 7 | 8 | const token = tokenGenerator(identity, room); 9 | const decoded = jwt.decode(token, { complete: true }); 10 | 11 | expect(decoded).toHaveProperty('payload.grants', { 12 | identity: identity, 13 | video: { room: room }, 14 | }); 15 | }); 16 | -------------------------------------------------------------------------------- /src/Core/mentions/IMRichTextView/styles.js: -------------------------------------------------------------------------------- 1 | import { StyleSheet } from 'react-native'; 2 | 3 | const styles = StyleSheet.create({ 4 | url: { 5 | color: 'blue', 6 | textDecorationLine: 'underline', 7 | }, 8 | 9 | email: { 10 | textDecorationLine: 'underline', 11 | }, 12 | 13 | phone: { 14 | color: 'blue', 15 | textDecorationLine: 'underline', 16 | }, 17 | username: { 18 | color: 'blue', 19 | }, 20 | 21 | hashTag: { 22 | color: 'blue', 23 | fontStyle: 'italic', 24 | }, 25 | }); 26 | 27 | export default styles; 28 | -------------------------------------------------------------------------------- /src/redux/actions.js: -------------------------------------------------------------------------------- 1 | import IMSwipeActionsConstants from './types'; 2 | 3 | export const setSwipes = (data) => ({ 4 | type: IMSwipeActionsConstants.SET_SWIPES, 5 | data, 6 | }); 7 | 8 | export const setMatches = (data) => ({ 9 | type: IMSwipeActionsConstants.SET_MATCHES, 10 | data, 11 | }); 12 | 13 | export const setIncomingSwipes = (data) => ({ 14 | type: IMSwipeActionsConstants.SET_INCOMING_SWIPES, 15 | data, 16 | }); 17 | 18 | export const setSwipesListenerDidSubscribe = () => ({ 19 | type: IMSwipeActionsConstants.DID_SUBSCRIBE_TO_SWIPES, 20 | }); 21 | -------------------------------------------------------------------------------- /src/Core/chat/IMChat/TypingIndicator.js: -------------------------------------------------------------------------------- 1 | import React from 'react'; 2 | import { View } from 'react-native'; 3 | import IndicatorDot from './IndicatorDot'; 4 | 5 | export function TypingIndicator(props) { 6 | const { dotRadius, containerStyle } = props; 7 | 8 | return ( 9 | 10 | 11 | 12 | 13 | 14 | ); 15 | } 16 | 17 | export default TypingIndicator; 18 | -------------------------------------------------------------------------------- /src/Core/mentions/IMMentionList/styles.js: -------------------------------------------------------------------------------- 1 | import { StyleSheet } from 'react-native'; 2 | 3 | const dynamicStyles = (colorScheme, appStyles) => { 4 | return new StyleSheet.create({ 5 | usersMentionContainer: { 6 | ...StyleSheet.absoluteFillObject, 7 | backgroundColor: appStyles.colorSet[colorScheme].whiteSmoke, 8 | }, 9 | usersMentionScrollContainer: { 10 | flex: 1, 11 | }, 12 | loaderContainer: { 13 | justifyContent: 'center', 14 | alignItems: 'center', 15 | }, 16 | }); 17 | }; 18 | 19 | export default dynamicStyles; 20 | -------------------------------------------------------------------------------- /src/Core/truly-native/Buttons/IMIconButton/IMIconButton.js: -------------------------------------------------------------------------------- 1 | import React from 'react'; 2 | import { Image, TouchableOpacity } from 'react-native'; 3 | 4 | function IMIconButton(props) { 5 | const { tintColor, onPress, source, marginRight, width, height } = props; 6 | return ( 7 | 8 | 12 | 13 | ); 14 | } 15 | 16 | export default IMIconButton; 17 | -------------------------------------------------------------------------------- /src/Core/chat/helpers/utils.js: -------------------------------------------------------------------------------- 1 | import { IMLocalized } from '../../localization/IMLocalization'; 2 | 3 | const formatMessage = (message) => { 4 | if (message?.mime?.startsWith('video')) { 5 | return IMLocalized('Someone sent a video.'); 6 | } else if (message?.mime?.startsWith('audio')) { 7 | return IMLocalized('Someone sent an audio.'); 8 | } else if (message?.mime?.startsWith('image')) { 9 | return IMLocalized('Someone sent a photo.'); 10 | } else if (message) { 11 | return message; 12 | } 13 | return ''; 14 | }; 15 | 16 | export { formatMessage }; 17 | -------------------------------------------------------------------------------- /android/app/src/main/res/layout/launch_screen.xml: -------------------------------------------------------------------------------- 1 | 2 | 8 | 9 | 14 | -------------------------------------------------------------------------------- /src/Core/helpers/collections.js: -------------------------------------------------------------------------------- 1 | export const removeFromCollection = ( 2 | collection, 3 | collectionPropertyToCompare, 4 | propertyFieldToRemove, 5 | ) => { 6 | return collection.filter((collectionItem) => { 7 | return ( 8 | collectionItem[collectionPropertyToCompare] !== propertyFieldToRemove 9 | ); 10 | }); 11 | }; 12 | 13 | export const groupBy = (key) => (array) => 14 | array.reduce((objectsByKeyValue, obj) => { 15 | const value = obj[key]; 16 | objectsByKeyValue[value] = (objectsByKeyValue[value] || []).concat(obj); 17 | return objectsByKeyValue; 18 | }, {}); 19 | -------------------------------------------------------------------------------- /src/Core/api/index.js: -------------------------------------------------------------------------------- 1 | // Uncomment these if you want to remove firebase and add your own custom backend: 2 | // import storageAPI from './local/storage'; 3 | // import * as authAPI from './local/auth'; 4 | // import * as userAPIManager from './local/user'; 5 | // export { storageAPI, authAPI, userAPIManager }; 6 | 7 | 8 | // Remove these lines if you want to remove firebase and add your own custom backend: 9 | import storageAPI from './firebase/storage'; 10 | import * as authAPI from './firebase/auth'; 11 | import * as userAPIManager from './firebase/user'; 12 | export { storageAPI, authAPI, userAPIManager }; 13 | -------------------------------------------------------------------------------- /ios/MixnMatch/AppDelegate.h: -------------------------------------------------------------------------------- 1 | /** 2 | * Copyright (c) Facebook, Inc. and its affiliates. 3 | * 4 | * This source code is licensed under the MIT license found in the 5 | * LICENSE file in the root directory of this source tree. 6 | */ 7 | 8 | #import 9 | #import 10 | #import 11 | 12 | @interface AppDelegate : UIResponder 13 | 14 | @property (nonatomic, strong) UMModuleRegistryAdapter *moduleRegistryAdapter; 15 | @property (nonatomic, strong) UIWindow *window; 16 | 17 | @end 18 | -------------------------------------------------------------------------------- /android/app/proguard-rules.pro: -------------------------------------------------------------------------------- 1 | # Add project specific ProGuard rules here. 2 | # By default, the flags in this file are appended to flags specified 3 | # in /usr/local/Cellar/android-sdk/24.3.3/tools/proguard/proguard-android.txt 4 | # You can edit the include path and order by changing the proguardFiles 5 | # directive in build.gradle. 6 | # 7 | # For more details, see 8 | # http://developer.android.com/guide/developing/tools/proguard.html 9 | 10 | # Add any project specific keep options here: 11 | 12 | -keep class org.webrtc.** { *; } 13 | -keep class com.twilio.** { *; } 14 | -keep class tvi.webrtc.** { *; } 15 | 16 | -------------------------------------------------------------------------------- /src/screens/SwipeScreen/styles.js: -------------------------------------------------------------------------------- 1 | import { StyleSheet } from 'react-native'; 2 | import DynamicAppStyles from '../../DynamicAppStyles'; 3 | 4 | const dynamicStyles = (colorScheme) => { 5 | return StyleSheet.create({ 6 | container: { 7 | flex: 1, 8 | backgroundColor: 9 | DynamicAppStyles.colorSet[colorScheme].secondaryForegroundColor, 10 | height: '100%', 11 | }, 12 | safeAreaContainer: { 13 | flex: 1, 14 | backgroundColor: 15 | DynamicAppStyles.colorSet[colorScheme].mainThemeBackgroundColor, 16 | }, 17 | }); 18 | }; 19 | 20 | export default dynamicStyles; 21 | -------------------------------------------------------------------------------- /src/helpers/devices.ios.js: -------------------------------------------------------------------------------- 1 | import { Dimensions } from 'react-native'; 2 | 3 | const device = Dimensions.get('window'); 4 | let calculatedScale; 5 | 6 | switch (device.width) { 7 | // iPhone 4, 4S, 5, 5S 8 | case 320: 9 | calculatedScale = 0.77; 10 | break; 11 | // iPhone 6, 6S 12 | case 375: 13 | calculatedScale = 0.902; 14 | break; 15 | // iPhone 6 plus, 6S plus 16 | case 414: 17 | calculatedScale = 1; 18 | break; 19 | default: 20 | calculatedScale = 1; 21 | } 22 | 23 | export const scale = calculatedScale; 24 | export const size = (pixel) => Math.ceil(pixel * calculatedScale); 25 | -------------------------------------------------------------------------------- /src/Core/helpers/devices.ios.js: -------------------------------------------------------------------------------- 1 | import { Dimensions } from 'react-native'; 2 | 3 | const device = Dimensions.get('window'); 4 | let calculatedScale; 5 | 6 | switch (device.width) { 7 | // iPhone 4, 4S, 5, 5S 8 | case 320: 9 | calculatedScale = 0.77; 10 | break; 11 | // iPhone 6, 6S 12 | case 375: 13 | calculatedScale = 0.902; 14 | break; 15 | // iPhone 6 plus, 6S plus 16 | case 414: 17 | calculatedScale = 1; 18 | break; 19 | default: 20 | calculatedScale = 1; 21 | } 22 | 23 | export const scale = calculatedScale; 24 | export const size = (pixel) => Math.ceil(pixel * calculatedScale); 25 | -------------------------------------------------------------------------------- /src/Core/notifications/redux/reducers.js: -------------------------------------------------------------------------------- 1 | import IMNotificationActionsConstants from './types'; 2 | 3 | const initialState = { 4 | notifications: null, 5 | }; 6 | 7 | export const notifications = (state = initialState, action) => { 8 | switch (action.type) { 9 | case IMNotificationActionsConstants.SET_NOTIFICATIONS: 10 | return { ...state, notifications: [...action.data] }; 11 | case IMNotificationActionsConstants.DID_SUBSCRIBE: 12 | return { ...state, didSubscribeToNotifications: true }; 13 | case 'LOG_OUT': 14 | return initialState; 15 | default: 16 | return state; 17 | } 18 | }; 19 | -------------------------------------------------------------------------------- /src/Core/profile/index.js: -------------------------------------------------------------------------------- 1 | export { default as IMEditProfileScreen } from './ui/IMEditProfileScreen/IMEditProfileScreen'; 2 | export { default as IMUserSettingsScreen } from './ui/IMUserSettingsScreen/IMUserSettingsScreen'; 3 | export { default as IMContactUsScreen } from './ui/IMContactUsScreen/IMContactUsScreen'; 4 | export { default as IMUserProfileComponent } from './ui/components/IMUserProfileComponent/IMUserProfileComponent'; 5 | export { default as IMProfileSettingsScreen } from './ui/IMProfileSettingsScreen/IMProfileSettingsScreen'; 6 | export { default as IMBlockedUsersScreen } from './ui/IMBlockedUsersScreen/IMBlockedUsersScreen'; 7 | -------------------------------------------------------------------------------- /src/redux/index.js: -------------------------------------------------------------------------------- 1 | import { combineReducers } from 'redux'; 2 | import { auth } from '../Core/onboarding/redux/auth'; 3 | import { chat } from '../Core/chat/redux'; 4 | import { userReports } from '../Core/user-reporting/redux'; 5 | import { dating } from './reducers'; 6 | import { audioVideoChat } from '../Core/chat/audioVideo'; 7 | import { inAppPurchase } from '../Core/inAppPurchase/redux'; 8 | import { users } from '../Core/users/redux'; 9 | 10 | const AppReducer = combineReducers({ 11 | auth, 12 | userReports, 13 | chat, 14 | dating, 15 | audioVideoChat, 16 | inAppPurchase, 17 | users, 18 | }); 19 | 20 | export default AppReducer; 21 | -------------------------------------------------------------------------------- /src/Core/onboarding/index.js: -------------------------------------------------------------------------------- 1 | export { default as LoadScreen } from './LoadScreen/LoadScreen'; 2 | export { default as WalkthroughScreen } from './WalkthroughScreen/WalkthroughScreen'; 3 | export { default as WelcomeScreen } from './WelcomeScreen/WelcomeScreen'; 4 | export { default as SignupScreen } from './SignupScreen/SignupScreen'; 5 | export { default as LoginScreen } from './LoginScreen/LoginScreen'; 6 | export { default as SmsAuthenticationScreen } from './SmsAuthenticationScreen/SmsAuthenticationScreen'; 7 | export { default as ResetPasswordScreen } from './ResetPasswordScreen/ResetPasswordScreen'; 8 | export { default as DelayedLoginScreen } from './DelayedLogin/DelayedLoginScreen' 9 | -------------------------------------------------------------------------------- /src/Core/truly-native/TNCard/TNCard.js: -------------------------------------------------------------------------------- 1 | import React from 'react'; 2 | import { TouchableHighlight, View } from 'react-native'; 3 | import dynamicStyles from './styles'; 4 | 5 | const TNCard = ({ containerStyle, radius, onPress, appStyles, children }) => { 6 | const styles = dynamicStyles(appStyles); 7 | 8 | const containerStyles = [ 9 | styles.tnCardContainer, 10 | radius && { borderRadius: radius }, 11 | styles.tnCardShadow, 12 | containerStyle, 13 | ]; 14 | 15 | return ( 16 | 17 | {children} 18 | 19 | ); 20 | }; 21 | 22 | export default TNCard; 23 | -------------------------------------------------------------------------------- /android/app/build_defs.bzl: -------------------------------------------------------------------------------- 1 | """Helper definitions to glob .aar and .jar targets""" 2 | def create_aar_targets(aarfiles): 3 | for aarfile in aarfiles: 4 | name = "aars__" + aarfile[aarfile.rindex("/") + 1:aarfile.rindex(".aar")] 5 | lib_deps.append(":" + name) 6 | android_prebuilt_aar( 7 | name = name, 8 | aar = aarfile, 9 | ) 10 | def create_jar_targets(jarfiles): 11 | for jarfile in jarfiles: 12 | name = "jars__" + jarfile[jarfile.rindex("/") + 1:jarfile.rindex(".jar")] 13 | lib_deps.append(":" + name) 14 | prebuilt_jar( 15 | name = name, 16 | binary_jar = jarfile, 17 | ) 18 | -------------------------------------------------------------------------------- /src/screens/ConversationsScreen/styles.js: -------------------------------------------------------------------------------- 1 | import { StyleSheet } from 'react-native'; 2 | 3 | const dynamicStyles = (colorScheme, appStyles) => { 4 | return StyleSheet.create({ 5 | container: { 6 | flex: 1, 7 | backgroundColor: appStyles.colorSet[colorScheme].mainThemeBackgroundColor, 8 | }, 9 | userImageContainer: { 10 | borderWidth: 0, 11 | }, 12 | chatsChannelContainer: { 13 | // flex: 1, 14 | padding: 10, 15 | }, 16 | content: { 17 | flexDirection: 'row', 18 | }, 19 | message: { 20 | flex: 2, 21 | color: appStyles.colorSet[colorScheme].mainSubtextColor, 22 | }, 23 | }); 24 | }; 25 | 26 | export default dynamicStyles; 27 | -------------------------------------------------------------------------------- /src/utils.js: -------------------------------------------------------------------------------- 1 | import { AsyncStorage } from 'react-native'; 2 | 3 | const AWARE_CAN_UNDO_SWIPE = 'AWARE_CAN_UNDO_SWIPE'; 4 | 5 | export const isDatingProfileCompleteForUser = (user) => { 6 | return ( 7 | user.profilePictureURL && 8 | user.profilePictureURL.length > 0 && 9 | user.age && 10 | user.bio && 11 | user.school && 12 | user.firstName 13 | ); 14 | }; 15 | 16 | export const getUserAwareCanUndoAsync = async () => { 17 | const isUserAware = await AsyncStorage.getItem(AWARE_CAN_UNDO_SWIPE); 18 | 19 | if (isUserAware !== null) { 20 | return true; 21 | } else { 22 | await AsyncStorage.setItem(AWARE_CAN_UNDO_SWIPE, 'true'); 23 | 24 | return false; 25 | } 26 | }; 27 | -------------------------------------------------------------------------------- /src/Core/chat/ui/IMChatHomeComponent/styles.js: -------------------------------------------------------------------------------- 1 | import { StyleSheet } from 'react-native'; 2 | 3 | const dynamicStyles = (appStyles, colorScheme) => { 4 | return StyleSheet.create({ 5 | container: { 6 | flex: 1, 7 | backgroundColor: appStyles.colorSet[colorScheme].mainThemeBackgroundColor, 8 | }, 9 | userImageContainer: { 10 | borderWidth: 0, 11 | }, 12 | chatsChannelContainer: { 13 | // flex: 1, 14 | padding: 10, 15 | }, 16 | content: { 17 | flexDirection: 'row', 18 | }, 19 | message: { 20 | flex: 2, 21 | color: appStyles.colorSet[colorScheme].mainSubtextColor, 22 | }, 23 | }); 24 | }; 25 | 26 | export default dynamicStyles; 27 | -------------------------------------------------------------------------------- /src/Core/onboarding/redux/auth.js: -------------------------------------------------------------------------------- 1 | const UPDATE_USER = 'UPDATE_USER'; 2 | const LOG_OUT = 'LOG_OUT'; 3 | 4 | export const DUMMY_USER_DATA = {}; 5 | 6 | export const setUserData = (data) => ({ 7 | type: UPDATE_USER, 8 | data, 9 | }); 10 | 11 | export const logout = () => ({ 12 | type: LOG_OUT, 13 | }); 14 | 15 | const initialState = { 16 | user: DUMMY_USER_DATA, 17 | }; 18 | 19 | export const auth = (state = initialState, action) => { 20 | switch (action.type) { 21 | case UPDATE_USER: 22 | return { 23 | ...state, 24 | user: action.data.user, 25 | }; 26 | case LOG_OUT: { 27 | return initialState; 28 | } 29 | default: 30 | return state; 31 | } 32 | }; 33 | -------------------------------------------------------------------------------- /src/Core/chat/audioVideo/webRTC/api/local/tracker.js: -------------------------------------------------------------------------------- 1 | export default class MediaChatTracker { 2 | /** 3 | * 4 | * @param {store} reduxStore redux store to dispatch actions 5 | * @param {String} userID user ID of the current user 6 | * @param {Number} chatTimeout the timeout for the call 7 | */ 8 | constructor(reduxStore, userID, chatTimeout) { 9 | //initialize redux store 10 | } 11 | 12 | /** 13 | * 14 | * @param {boolean} shouldClean whether to clean signal collection 15 | */ 16 | async subscribe(shouldClean = true) { 17 | // subscribe to videochat and audiochat 18 | // subscribe to videochatModal and audiochatModal 19 | } 20 | 21 | unsubscribe = () => { 22 | //usnsubscribe from all listeners 23 | }; 24 | } 25 | -------------------------------------------------------------------------------- /src/Core/truly-native/TNVideo/TNVideo.js: -------------------------------------------------------------------------------- 1 | import React, { useEffect, useState } from 'react'; 2 | import { Video } from 'expo-av'; 3 | import { loadCachedItem } from '../../helpers/cacheManager'; 4 | 5 | export default function TNVideo(props) { 6 | const { 7 | source: { uri }, 8 | videoRef, 9 | ...otherProps 10 | } = props; 11 | 12 | const [cachedUri, setCachedUri] = useState(null); 13 | 14 | useEffect(() => { 15 | setCachedUri(uri); 16 | (async () => { 17 | const video = await loadCachedItem({ uri }); 18 | await setCachedUri(video); 19 | })(); 20 | }, [uri]); 21 | 22 | return ( 23 |