├── .buckconfig ├── .circleci └── config.yml ├── .editorconfig ├── .flowconfig ├── .gitattributes ├── .github └── workflows │ └── continuous-integration.yml ├── .gitignore ├── .prettierignore ├── .prettierrc ├── .sample.env ├── .solidarity ├── .watchmanconfig ├── AppIcon ├── IconAndroid.png └── IconIOS.png ├── README.md ├── amplify ├── #current-cloud-backend │ ├── amplify-meta.json │ ├── api │ │ └── chainreactapp2019 │ │ │ ├── parameters.json │ │ │ ├── schema.graphql │ │ │ └── stacks │ │ │ └── CustomResources.json │ └── backend-config.json ├── .config │ ├── local-aws-info.json │ ├── local-env-info.json │ └── project-config.json ├── backend │ ├── amplify-meta.json │ ├── api │ │ └── chainreactapp2019 │ │ │ ├── parameters.json │ │ │ ├── schema.graphql │ │ │ └── stacks │ │ │ └── CustomResources.json │ ├── awscloudformation │ │ └── nested-cloudformation-stack.yml │ └── backend-config.json └── team-provider-info.json ├── android ├── .project ├── .settings │ └── org.eclipse.buildship.core.prefs ├── Gemfile ├── Gemfile.lock ├── app │ ├── BUCK │ ├── build.gradle │ ├── build_defs.bzl │ ├── proguard-rules.pro │ └── src │ │ ├── debug │ │ └── AndroidManifest.xml │ │ └── main │ │ ├── AndroidManifest.xml │ │ ├── assets │ │ ├── appcenter-config.json │ │ └── fonts │ │ │ ├── GothamRnd-Bold.otf │ │ │ ├── GothamRnd-BoldItal.otf │ │ │ ├── GothamRnd-Book.otf │ │ │ ├── GothamRnd-BookItal.otf │ │ │ ├── GothamRnd-Light.otf │ │ │ ├── GothamRnd-LightItal.otf │ │ │ ├── GothamRnd-MedItal.otf │ │ │ ├── GothamRnd-Medium.otf │ │ │ ├── gothamrounded_bold.otf │ │ │ ├── gothamrounded_bold_italic.otf │ │ │ ├── gothamrounded_book.otf │ │ │ ├── gothamrounded_book_italic.otf │ │ │ ├── gothamrounded_light.otf │ │ │ ├── gothamrounded_light_italic.otf │ │ │ ├── gothamrounded_medium.otf │ │ │ └── gothamrounded_medium_italic.otf │ │ ├── java │ │ └── com │ │ │ └── chainreactapp │ │ │ ├── MainActivity.java │ │ │ └── MainApplication.java │ │ └── res │ │ ├── drawable-hdpi │ │ └── launch_screen.png │ │ ├── drawable-land-hdpi │ │ └── launch_screen.png │ │ ├── drawable-land-ldpi │ │ └── launch_screen.png │ │ ├── drawable-land-mdpi │ │ └── launch_screen.png │ │ ├── drawable-land-xhdpi │ │ └── launch_screen.png │ │ ├── drawable-land-xxhdpi │ │ └── launch_screen.png │ │ ├── drawable-land-xxxhdpi │ │ └── launch_screen.png │ │ ├── drawable-land │ │ └── launch_screen.png │ │ ├── drawable-ldpi │ │ ├── icon.png │ │ └── launch_screen.png │ │ ├── drawable-mdpi │ │ └── launch_screen.png │ │ ├── drawable-xhdpi │ │ └── launch_screen.png │ │ ├── drawable-xxhdpi │ │ └── launch_screen.png │ │ ├── drawable-xxxhdpi │ │ └── launch_screen.png │ │ ├── drawable │ │ ├── icon.png │ │ └── launch_screen.png │ │ ├── layout │ │ └── launch_screen.xml │ │ ├── mipmap-hdpi │ │ └── ic_launcher.png │ │ ├── mipmap-ldpi │ │ └── ic_launcher.png │ │ ├── mipmap-mdpi │ │ └── ic_launcher.png │ │ ├── mipmap-xhdpi │ │ └── ic_launcher.png │ │ ├── mipmap-xxhdpi │ │ └── ic_launcher.png │ │ ├── mipmap-xxxhdpi │ │ └── ic_launcher.png │ │ └── values │ │ ├── colors.xml │ │ ├── strings.xml │ │ └── styles.xml ├── build.gradle ├── fastlane │ ├── Appfile │ ├── Fastfile │ ├── Pluginfile │ ├── README.md │ └── metadata │ │ └── android │ │ └── en-US │ │ ├── full_description.txt │ │ ├── short_description.txt │ │ ├── title.txt │ │ └── video.txt ├── gradle.properties ├── gradle │ └── wrapper │ │ ├── gradle-wrapper.jar │ │ └── gradle-wrapper.properties ├── gradlew ├── gradlew.bat ├── keystores │ ├── BUCK │ └── debug.keystore.properties └── settings.gradle ├── app.json ├── app ├── app.tsx ├── aws-exports.js ├── components │ ├── attraction │ │ ├── attraction.props.ts │ │ ├── attraction.story.tsx │ │ ├── attraction.tsx │ │ └── index.ts │ ├── attractions-list │ │ ├── attractions-list.story.tsx │ │ ├── attractions-list.tsx │ │ └── index.ts │ ├── attractions-map-callout │ │ ├── Close.png │ │ ├── Close@2x.png │ │ ├── Close@3x.png │ │ ├── attractions-map-callout.tsx │ │ └── index.ts │ ├── attractions-map │ │ ├── attractions-map.tsx │ │ └── index.ts │ ├── back-button │ │ ├── back-button.story.tsx │ │ ├── back-button.tsx │ │ └── index.ts │ ├── blog-link │ │ ├── blog-link.story.tsx │ │ ├── blog-link.tsx │ │ └── index.ts │ ├── bullet-item │ │ ├── bullet-item.story.tsx │ │ ├── bullet-item.tsx │ │ └── index.ts │ ├── button │ │ ├── button.presets.ts │ │ ├── button.props.ts │ │ ├── button.story.tsx │ │ ├── button.tsx │ │ └── index.ts │ ├── checkbox │ │ ├── checkbox.props.ts │ │ ├── checkbox.story.tsx │ │ ├── checkbox.tsx │ │ └── index.ts │ ├── code-of-conduct-link │ │ ├── code-of-conduct-link.tsx │ │ └── index.ts │ ├── conduct │ │ ├── conduct.story.tsx │ │ ├── conduct.tsx │ │ └── index.ts │ ├── contact │ │ ├── contact.story.tsx │ │ ├── contact.tsx │ │ └── index.ts │ ├── content-link │ │ ├── content-link.story.tsx │ │ ├── content-link.tsx │ │ └── index.ts │ ├── footer │ │ ├── footer.presets.ts │ │ ├── footer.props.ts │ │ ├── footer.story.tsx │ │ ├── footer.tsx │ │ └── index.ts │ ├── form-row │ │ ├── form-row.presets.ts │ │ ├── form-row.props.tsx │ │ ├── form-row.story.tsx │ │ ├── form-row.tsx │ │ └── index.ts │ ├── gerding-theater │ │ ├── gerding-theater.story.tsx │ │ ├── gerding-theater.tsx │ │ ├── img.venue.png │ │ ├── img.venue@2x.png │ │ ├── img.venue@3x.png │ │ └── index.ts │ ├── getting-to-chain-react │ │ ├── getting-to-chain-react.story.tsx │ │ ├── getting-to-chain-react.tsx │ │ ├── index.ts │ │ ├── logo-lyft@1x.png │ │ ├── logo-lyft@2x.png │ │ ├── logo-lyft@3x.png │ │ ├── logo-uber@1x.png │ │ ├── logo-uber@2x.png │ │ └── logo-uber@3x.png │ ├── nearby-attractions │ │ ├── index.ts │ │ ├── nearby-attractions.data.json │ │ └── nearby-attractions.tsx │ ├── photobomb │ │ ├── index.ts │ │ ├── photobomb.story.tsx │ │ └── photobomb.tsx │ ├── presented-by │ │ ├── bg.team.png │ │ ├── bg.team@2x.png │ │ ├── bg.team@3x.png │ │ ├── index.ts │ │ ├── logo.infinitered.png │ │ ├── logo.infinitered@2x.png │ │ ├── logo.infinitered@3x.png │ │ ├── presented-by.presets.ts │ │ ├── presented-by.props.ts │ │ ├── presented-by.story.tsx │ │ └── presented-by.tsx │ ├── rating │ │ ├── index.ts │ │ ├── rating.props.ts │ │ ├── rating.story.tsx │ │ ├── rating.tsx │ │ ├── star.filled.png │ │ ├── star.filled@2x.png │ │ ├── star.filled@3x.png │ │ ├── star.unfilled.png │ │ ├── star.unfilled@2x.png │ │ └── star.unfilled@3x.png │ ├── schedule-cell │ │ ├── images │ │ │ ├── afterparty-G2i.png │ │ │ ├── coffee-small.png │ │ │ ├── lunch.png │ │ │ ├── panelist.png │ │ │ ├── registration.png │ │ │ └── sponsor-bumped.png │ │ ├── index.ts │ │ ├── schedule-cell.presets.ts │ │ ├── schedule-cell.props.ts │ │ ├── schedule-cell.story.tsx │ │ └── schedule-cell.tsx │ ├── schedule-nav │ │ ├── index.ts │ │ ├── schedule-nav.story.tsx │ │ └── schedule-nav.tsx │ ├── screen │ │ ├── index.ts │ │ ├── screen.presets.ts │ │ ├── screen.props.ts │ │ └── screen.tsx │ ├── social-button │ │ ├── index.ts │ │ ├── social-button.presets.ts │ │ ├── social-button.props.ts │ │ ├── social-button.story.tsx │ │ ├── social-button.tsx │ │ └── social_icon_assets │ │ │ ├── dribbble.png │ │ │ ├── dribbble@2x.png │ │ │ ├── dribbble@3x.png │ │ │ ├── email.icon.png │ │ │ ├── email.icon@2x.png │ │ │ ├── email.icon@3x.png │ │ │ ├── facebook.png │ │ │ ├── facebook@2x.png │ │ │ ├── facebook@3x.png │ │ │ ├── github.png │ │ │ ├── github@2x.png │ │ │ ├── github@3x.png │ │ │ ├── instagram.png │ │ │ ├── instagram@2x.png │ │ │ ├── instagram@3x.png │ │ │ ├── link.png │ │ │ ├── link@2x.png │ │ │ ├── link@3x.png │ │ │ ├── medium.png │ │ │ ├── medium@2x.png │ │ │ ├── medium@3x.png │ │ │ ├── phone.icon.png │ │ │ ├── phone.icon@2x.png │ │ │ ├── phone.icon@3x.png │ │ │ ├── slack.png │ │ │ ├── slack@2x.png │ │ │ ├── slack@3x.png │ │ │ ├── twitter.png │ │ │ ├── twitter@2x.png │ │ │ └── twitter@3x.png │ ├── speaker-bio │ │ ├── index.ts │ │ └── speaker-bio.tsx │ ├── speaker-image │ │ ├── img.speaker.lg.png │ │ ├── img.speaker.lg@2x.png │ │ ├── img.speaker.lg@3x.png │ │ ├── index.ts │ │ └── speaker-image.tsx │ ├── sponsor-logo │ │ ├── index.ts │ │ ├── logos │ │ │ ├── Additional_AWS_AA_AfterParty.png │ │ │ ├── Additional_AWS_AA_AfterParty@2x.png │ │ │ ├── Additional_AWS_AA_AfterParty@3x.png │ │ │ ├── Additional_DevLifts_Streches.png │ │ │ ├── Additional_DevLifts_Streches@2x.png │ │ │ ├── Additional_DevLifts_Streches@3x.png │ │ │ ├── Additional_G2i.png │ │ │ ├── Additional_G2i@2x.png │ │ │ ├── Additional_G2i@3x.png │ │ │ ├── Additional_Playstation_Wifi.png │ │ │ ├── Additional_Playstation_Wifi@2x.png │ │ │ ├── Additional_Playstation_Wifi@3x.png │ │ │ ├── Additional_SquarespaceBadges.png │ │ │ ├── Additional_SquarespaceBadges@2x.png │ │ │ ├── Additional_SquarespaceBadges@3x.png │ │ │ ├── Additional_bumped-alt@1x.png │ │ │ ├── Additional_bumped-alt@2x.png │ │ │ ├── Additional_bumped-alt@3x.png │ │ │ ├── Bronze_Airship.png │ │ │ ├── Bronze_Airship@2x.png │ │ │ ├── Bronze_Airship@3x.png │ │ │ ├── Bronze_BuilderX.png │ │ │ ├── Bronze_BuilderX@2x.png │ │ │ ├── Bronze_BuilderX@3x.png │ │ │ ├── Bronze_Cambia.png │ │ │ ├── Bronze_Cambia@2x.png │ │ │ ├── Bronze_Cambia@3x.png │ │ │ ├── Bronze_Echobind.png │ │ │ ├── Bronze_Echobind@2x.png │ │ │ ├── Bronze_Echobind@3x.png │ │ │ ├── Bronze_Facebook.png │ │ │ ├── Bronze_Facebook@2x.png │ │ │ ├── Bronze_Facebook@3x.png │ │ │ ├── Bronze_G2i.png │ │ │ ├── Bronze_G2i@2x.png │ │ │ ├── Bronze_G2i@3x.png │ │ │ ├── Bronze_Modus.png │ │ │ ├── Bronze_Modus@2x.png │ │ │ ├── Bronze_Modus@3x.png │ │ │ ├── Gold_Callstack.png │ │ │ ├── Gold_Callstack@2x.png │ │ │ ├── Gold_Callstack@3x.png │ │ │ ├── Gold_Coinbase.png │ │ │ ├── Gold_Coinbase@2x.png │ │ │ ├── Gold_Coinbase@3x.png │ │ │ ├── Gold_Sentry.png │ │ │ ├── Gold_Sentry@2x.png │ │ │ ├── Gold_Sentry@3x.png │ │ │ ├── Platinum_AWS.png │ │ │ ├── Platinum_AWS@2x.png │ │ │ ├── Platinum_AWS@3x.png │ │ │ ├── Platinum_Amazon_Alexa.png │ │ │ ├── Platinum_Amazon_Alexa@2x.png │ │ │ ├── Platinum_Amazon_Alexa@3x.png │ │ │ ├── Silver_AmazonWebService.png │ │ │ ├── Silver_AmazonWebService@2x.png │ │ │ ├── Silver_AmazonWebService@3x.png │ │ │ ├── Silver_Bugsnag.png │ │ │ ├── Silver_Bugsnag@2x.png │ │ │ ├── Silver_Bugsnag@3x.png │ │ │ ├── Silver_GoDaddy.png │ │ │ ├── Silver_GoDaddy@2x.png │ │ │ ├── Silver_GoDaddy@3x.png │ │ │ ├── Silver_ServerlessGuru.png │ │ │ ├── Silver_ServerlessGuru@2x.png │ │ │ └── Silver_ServerlessGuru@3x.png │ │ ├── sponsor-logo.presets.ts │ │ ├── sponsor-logo.props.ts │ │ ├── sponsor-logo.story.tsx │ │ └── sponsor-logo.tsx │ ├── sponsors │ │ ├── index.ts │ │ ├── sponsors.story.tsx │ │ └── sponsors.tsx │ ├── survey-link │ │ ├── index.ts │ │ └── survey-link.tsx │ ├── switch │ │ ├── index.ts │ │ ├── switch.props.ts │ │ ├── switch.story.tsx │ │ └── switch.tsx │ ├── tab-icon │ │ ├── icons │ │ │ ├── calendar.active.png │ │ │ ├── calendar.active@2x.png │ │ │ ├── calendar.active@3x.png │ │ │ ├── calendar.inactive.png │ │ │ ├── calendar.inactive@2x.png │ │ │ ├── calendar.inactive@3x.png │ │ │ ├── info.active.png │ │ │ ├── info.active@2x.png │ │ │ ├── info.active@3x.png │ │ │ ├── info.inactive.png │ │ │ ├── info.inactive@2x.png │ │ │ ├── info.inactive@3x.png │ │ │ ├── map.active.png │ │ │ ├── map.active@2x.png │ │ │ ├── map.active@3x.png │ │ │ ├── map.inactive.png │ │ │ ├── map.inactive@2x.png │ │ │ ├── map.inactive@3x.png │ │ │ ├── profile.active.png │ │ │ ├── profile.active@2x.png │ │ │ ├── profile.active@3x.png │ │ │ ├── profile.inactive.png │ │ │ ├── profile.inactive@2x.png │ │ │ └── profile.inactive@3x.png │ │ ├── index.ts │ │ └── tab-icon.tsx │ ├── talk-title │ │ ├── index.ts │ │ └── talk-title.tsx │ ├── text-field │ │ ├── index.ts │ │ ├── text-field.props.ts │ │ ├── text-field.story.tsx │ │ └── text-field.tsx │ ├── text │ │ ├── index.ts │ │ ├── text.presets.ts │ │ ├── text.props.ts │ │ ├── text.story.tsx │ │ └── text.tsx │ ├── title-bar │ │ ├── icon.back-arrow.png │ │ ├── icon.back-arrow@2x.png │ │ ├── icon.back-arrow@3x.png │ │ ├── index.ts │ │ └── title-bar.tsx │ ├── travel-option │ │ ├── Car.png │ │ ├── Car@2x.png │ │ ├── Car@3x.png │ │ ├── Lightrail.png │ │ ├── Lightrail@2x.png │ │ ├── Lightrail@3x.png │ │ ├── index.ts │ │ ├── travel-option.presets.ts │ │ ├── travel-option.props.ts │ │ ├── travel-option.story.tsx │ │ └── travel-option.tsx │ └── wi-fi │ │ ├── index.ts │ │ ├── sponsor-logo │ │ ├── playstation.png │ │ ├── playstation@2x.png │ │ └── playstation@3x.png │ │ ├── wi-fi.story.tsx │ │ └── wi-fi.tsx ├── env.ts ├── graphql │ ├── mutations.js │ ├── queries.js │ ├── schema.json │ └── subscriptions.js ├── i18n │ ├── i18n.ts │ ├── index.ts │ ├── locales │ │ ├── en.json │ │ └── ja.json │ └── translate.ts ├── models │ ├── environment.ts │ ├── navigation-store │ │ ├── index.ts │ │ ├── navigation-events.ts │ │ └── navigation-store.ts │ ├── root-store │ │ ├── index.ts │ │ ├── root-store.ts │ │ └── setup-root-store.ts │ ├── setting │ │ ├── index.ts │ │ └── setting.ts │ ├── speaker │ │ ├── index.ts │ │ └── speaker.ts │ ├── talk-store │ │ ├── index.ts │ │ └── talk-store.ts │ └── talk │ │ ├── index.ts │ │ └── talk.ts ├── navigation │ ├── back-button-handler.tsx │ ├── index.ts │ ├── main-navigator.tsx │ ├── navigation-config.ts │ ├── root-navigator.ts │ └── stateful-navigator.tsx ├── screens │ ├── code-of-conduct │ │ ├── code-of-conduct-screen.tsx │ │ └── index.ts │ ├── info-screen │ │ ├── index.ts │ │ └── info-screen.tsx │ ├── profile-screen │ │ ├── index.ts │ │ ├── profile-info.ts │ │ └── profile-screen.tsx │ ├── schedule-screen │ │ ├── index.ts │ │ └── schedule-screen.tsx │ ├── talk-details │ │ ├── image-dimension-helpers.ts │ │ ├── images │ │ │ ├── bumped.png │ │ │ ├── img.afterparty-g2i.png │ │ │ ├── img.afterparty-squarespace.png │ │ │ ├── img.break.png │ │ │ ├── img.event.png │ │ │ ├── img.event@2x.png │ │ │ ├── img.event@3x.png │ │ │ ├── img.partylogo.png │ │ │ ├── img.partylogo@2x.png │ │ │ ├── img.partylogo@3x.png │ │ │ ├── sponsor-bumped-thumb.png │ │ │ └── sponsor-bumped.png │ │ ├── index.ts │ │ └── talk-details-screen.tsx │ ├── venue-screen │ │ ├── index.ts │ │ └── venue-screen.tsx │ └── welcome-screen │ │ ├── bg.welcome.png │ │ ├── bg.welcome@2x.png │ │ ├── bg.welcome@3x.png │ │ ├── index.ts │ │ └── welcome-screen.tsx ├── services │ ├── api │ │ ├── api-config.ts │ │ ├── api-problem.ts │ │ ├── api.ts │ │ ├── api.types.ts │ │ └── index.ts │ └── reactotron │ │ ├── index.ts │ │ ├── reactotron-config.ts │ │ ├── reactotron.ts │ │ └── with-custom-actions-reactotron.ts ├── theme │ ├── color.ts │ ├── fonts │ │ ├── GothamRnd-Bold.otf │ │ ├── GothamRnd-BoldItal.otf │ │ ├── GothamRnd-Book.otf │ │ ├── GothamRnd-BookItal.otf │ │ ├── GothamRnd-Light.otf │ │ ├── GothamRnd-LightItal.otf │ │ ├── GothamRnd-MedItal.otf │ │ └── GothamRnd-Medium.otf │ ├── index.ts │ ├── palette.ts │ ├── spacing.ts │ ├── timing.ts │ └── typography.ts └── utils │ ├── delay.ts │ ├── info.ts │ ├── keychain.ts │ ├── storage │ ├── index.ts │ ├── storage.test.ts │ └── storage.ts │ └── validate.ts ├── babel.config.js ├── bin ├── check └── setup ├── e2e ├── config.json ├── init.js └── welcome.spec.js ├── ignite ├── ignite.json └── plugins │ └── .gitkeep ├── index.js ├── ios ├── AppCenter-Config.plist ├── AppCenter.framework │ ├── AppCenter │ ├── Headers │ │ ├── AppCenter.h │ │ ├── MSAbstractLog.h │ │ ├── MSAppCenter.h │ │ ├── MSAppCenterErrors.h │ │ ├── MSChannelDelegate.h │ │ ├── MSChannelGroupProtocol.h │ │ ├── MSChannelProtocol.h │ │ ├── MSConstants.h │ │ ├── MSCustomProperties.h │ │ ├── MSDevice.h │ │ ├── MSEnable.h │ │ ├── MSLog.h │ │ ├── MSLogWithProperties.h │ │ ├── MSLogger.h │ │ ├── MSService.h │ │ ├── MSServiceAbstract.h │ │ ├── MSWrapperLogger.h │ │ └── MSWrapperSdk.h │ └── Modules │ │ └── module.modulemap ├── AppCenterAnalytics.framework │ ├── AppCenterAnalytics │ ├── Headers │ │ ├── AppCenterAnalytics.h │ │ ├── MSAbstractLog.h │ │ ├── MSAnalytics.h │ │ ├── MSAnalyticsTransmissionTarget.h │ │ ├── MSEventLog.h │ │ ├── MSLogWithNameAndProperties.h │ │ ├── MSLogWithProperties.h │ │ ├── MSService.h │ │ └── MSServiceAbstract.h │ └── Modules │ │ └── module.modulemap ├── AppCenterCrashes.framework │ ├── AppCenterCrashes │ ├── Headers │ │ ├── AppCenterCrashes.h │ │ ├── MSAbstractLog.h │ │ ├── MSCrashHandlerSetupDelegate.h │ │ ├── MSCrashes.h │ │ ├── MSCrashesDelegate.h │ │ ├── MSErrorAttachmentLog+Utility.h │ │ ├── MSErrorAttachmentLog.h │ │ ├── MSErrorReport.h │ │ ├── MSService.h │ │ ├── MSServiceAbstract.h │ │ └── MSWrapperCrashesHelper.h │ └── Modules │ │ └── module.modulemap ├── AppCenterReactNativeShared.framework │ ├── AppCenterReactNativeShared │ ├── Headers │ │ └── AppCenterReactNativeShared.h │ └── Modules │ │ └── module.modulemap ├── ChainReactConf.xcodeproj │ ├── project.pbxproj │ └── xcshareddata │ │ └── xcschemes │ │ └── ChainReactConf.xcscheme ├── ChainReactConf.xcworkspace │ ├── contents.xcworkspacedata │ └── xcshareddata │ │ ├── IDEWorkspaceChecks.plist │ │ └── WorkspaceSettings.xcsettings ├── ChainReactConf │ ├── AppCenter-Config.plist │ ├── AppDelegate.h │ ├── AppDelegate.m │ ├── ChainReactConf.entitlements │ ├── Images.xcassets │ │ ├── AppIcon.appiconset │ │ │ ├── Contents.json │ │ │ ├── Icon-20x20@2x.png │ │ │ ├── Icon-20x20@3x.png │ │ │ ├── Icon-29x29@2x.png │ │ │ ├── Icon-29x29@3x.png │ │ │ ├── Icon-40x40@2x.png │ │ │ ├── Icon-40x40@3x.png │ │ │ ├── Icon-60x60@2x.png │ │ │ ├── Icon-60x60@3x.png │ │ │ └── Icon-marketing-1024x1024.png │ │ ├── Contents.json │ │ └── LaunchImage.launchimage │ │ │ ├── Contents.json │ │ │ ├── Default-1125h.png │ │ │ ├── Default-568h@2x-1.png │ │ │ ├── Default-568h@2x-2.png │ │ │ ├── Default-568h@2x.png │ │ │ ├── Default-667h@2x.png │ │ │ ├── Default-736h@3x.png │ │ │ ├── Default-Landscape.png │ │ │ ├── Default-Landscape@2x.png │ │ │ ├── Default-Portrait.png │ │ │ ├── Default-Portrait@2x.png │ │ │ ├── Default.png │ │ │ └── Default@2x.png │ ├── Info.plist │ └── main.m ├── ChainReactConfTests │ ├── ChainReactConfTests.m │ └── Info.plist ├── Gemfile ├── Gemfile.lock ├── Podfile ├── Podfile.lock └── fastlane │ ├── Appfile │ ├── Deliverfile │ ├── Fastfile │ ├── Matchfile │ └── README.md ├── metro.config.js ├── newclear.sh ├── package.json ├── patches ├── @redux-offline+redux-offline+2.2.1.patch └── @types+react-native+0.57.65.patch ├── react-native.config.js ├── storybook ├── index.ts ├── storybook-registry.ts ├── storybook.ts └── views │ ├── index.ts │ ├── story-screen.tsx │ ├── story.tsx │ └── use-case.tsx ├── test ├── __snapshots__ │ └── storyshots.test.ts.snap ├── mock-async-storage.ts ├── mock-i18n.ts ├── mock-reactotron.ts ├── mock-text-input.ts ├── setup.ts └── storyshots.test.ts ├── tsconfig.json ├── tslint.json └── yarn.lock /.buckconfig: -------------------------------------------------------------------------------- 1 | 2 | [android] 3 | target = Google Inc.:Google APIs:23 4 | 5 | [maven_repositories] 6 | central = https://repo1.maven.org/maven2 7 | -------------------------------------------------------------------------------- /.editorconfig: -------------------------------------------------------------------------------- 1 | root = true 2 | 3 | [*] 4 | end_of_line = lf 5 | charset = utf-8 6 | indent_style = space 7 | tab_width = 2 8 | indent_size = 2 9 | max_line_length = 100 10 | trim_trailing_whitespace = true 11 | insert_final_newline = true 12 | 13 | [*.md] 14 | trim_trailing_whitespace = false 15 | -------------------------------------------------------------------------------- /.gitattributes: -------------------------------------------------------------------------------- 1 | *.pbxproj -text 2 | *.bat text eol=crlf -------------------------------------------------------------------------------- /.github/workflows/continuous-integration.yml: -------------------------------------------------------------------------------- 1 | name: Continuous Integration 2 | 3 | on: [push] 4 | 5 | jobs: 6 | build: 7 | 8 | runs-on: ubuntu-latest 9 | 10 | strategy: 11 | matrix: 12 | node-version: [8.x, 10.x, 12.x] 13 | 14 | steps: 15 | - uses: actions/checkout@v1 16 | - name: Use Node.js ${{ matrix.node-version }} 17 | uses: actions/setup-node@v1 18 | with: 19 | node-version: ${{ matrix.node-version }} 20 | - name: yarn install and test 21 | run: | 22 | NOYARNPOSTINSTALL=1 yarn install 23 | yarn ci:test 24 | -------------------------------------------------------------------------------- /.gitignore: -------------------------------------------------------------------------------- 1 | # OSX 2 | # 3 | .DS_Store 4 | 5 | # Xcode 6 | # 7 | build/ 8 | *.pbxuser 9 | !default.pbxuser 10 | *.mode1v3 11 | !default.mode1v3 12 | *.mode2v3 13 | !default.mode2v3 14 | *.perspectivev3 15 | !default.perspectivev3 16 | xcuserdata 17 | *.xccheckout 18 | *.moved-aside 19 | DerivedData 20 | *.hmap 21 | *.ipa 22 | *.xcuserstate 23 | project.xcworkspace 24 | 25 | # Android/IntelliJ 26 | # 27 | build/ 28 | .idea 29 | .gradle 30 | local.properties 31 | *.iml 32 | 33 | # node.js 34 | # 35 | node_modules/ 36 | npm-debug.log 37 | yarn-error.log 38 | 39 | # BUCK 40 | buck-out/ 41 | \.buckd/ 42 | *.keystore 43 | 44 | # fastlane 45 | # 46 | # It is recommended to not store the screenshots in the git repo. Instead, use fastlane to re-generate the 47 | # screenshots whenever they are needed. 48 | # For more information about the recommended setup visit: 49 | # https://docs.fastlane.tools/best-practices/source-control/ 50 | 51 | */fastlane/report.xml 52 | */fastlane/Preview.html 53 | */fastlane/screenshots 54 | 55 | # Bundle artifact 56 | *.jsbundle 57 | 58 | .vscode 59 | 60 | # Cocoapods 61 | ios/Pods 62 | 63 | # Secrets 64 | .env 65 | android/fastlane/google-play.json 66 | 67 | # CI 68 | ios/output 69 | android/output 70 | 71 | # Tests 72 | coverage/ 73 | -------------------------------------------------------------------------------- /.prettierignore: -------------------------------------------------------------------------------- 1 | node_modules 2 | ios 3 | android 4 | .vscode 5 | package.json 6 | -------------------------------------------------------------------------------- /.prettierrc: -------------------------------------------------------------------------------- 1 | { 2 | "printWidth": 100, 3 | "semi": false, 4 | "singleQuote": false, 5 | "trailingComma": "all" 6 | } 7 | -------------------------------------------------------------------------------- /.sample.env: -------------------------------------------------------------------------------- 1 | AWS_APPSYNC_API_KEY= -------------------------------------------------------------------------------- /.solidarity: -------------------------------------------------------------------------------- 1 | { 2 | "$schema": "http://json.schemastore.org/solidaritySchema", 3 | "requirements": { 4 | "Yarn": [{ "rule": "cli", "binary": "yarn", "semver": "^1.3.2" }], 5 | "Node": [{ "rule": "cli", "binary": "node", "semver": ">=8.9.0" }], 6 | "React Native": [ 7 | { 8 | "rule": "cli", 9 | "binary": "react-native", 10 | "semver": ">=2.0.1" 11 | } 12 | ], 13 | "Xcode": [ 14 | { 15 | "rule": "cli", 16 | "binary": "xcodebuild", 17 | "version": "-version", 18 | "semver": ">=9.2.0", 19 | "platform": "darwin" 20 | } 21 | ], 22 | "Cocoapods": [ 23 | {rule: 'cli', binary: 'pod', platform: 'darwin', semver: '>=1.6.1'}, 24 | {rule: 'dir', location: './ios/Pods'} 25 | ], 26 | "Android": [ 27 | { "rule": "cli", "binary": "emulator" }, 28 | { "rule": "cli", "binary": "android" }, 29 | { "rule": "env", "variable": "ANDROID_HOME", "error": "The ANDROID_HOME environment variable must be set to your local SDK. Refer to getting started docs for help." } 30 | ] 31 | } 32 | } 33 | -------------------------------------------------------------------------------- /.watchmanconfig: -------------------------------------------------------------------------------- 1 | {} -------------------------------------------------------------------------------- /AppIcon/IconAndroid.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/infinitered/ChainReactApp2019/9dcc2a2b460f35607099c8f563048692f740ed80/AppIcon/IconAndroid.png -------------------------------------------------------------------------------- /AppIcon/IconIOS.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/infinitered/ChainReactApp2019/9dcc2a2b460f35607099c8f563048692f740ed80/AppIcon/IconIOS.png -------------------------------------------------------------------------------- /amplify/#current-cloud-backend/amplify-meta.json: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/infinitered/ChainReactApp2019/9dcc2a2b460f35607099c8f563048692f740ed80/amplify/#current-cloud-backend/amplify-meta.json -------------------------------------------------------------------------------- /amplify/#current-cloud-backend/api/chainreactapp2019/parameters.json: -------------------------------------------------------------------------------- 1 | { 2 | "AppSyncApiName": "chainreactapp2019", 3 | "DynamoDBBillingMode": "PAY_PER_REQUEST" 4 | } 5 | -------------------------------------------------------------------------------- /amplify/#current-cloud-backend/api/chainreactapp2019/schema.graphql: -------------------------------------------------------------------------------- 1 | type Speaker @model { 2 | id: ID! 3 | name: String! 4 | bio: String 5 | image: String 6 | employer: String 7 | facebook: String 8 | github: String 9 | twitter: String 10 | instagram: String 11 | medium: String 12 | dribbble: String 13 | websites: [String] 14 | talk: Talk @connection(name: "TalkSpeakers", keyField: "speakerTalkId") 15 | } 16 | 17 | type Talk @model { 18 | id: ID! 19 | title: String! 20 | description: String 21 | startTime: String 22 | endTime: String 23 | talkType: String 24 | sponsor: String 25 | speakers: [Speaker] @connection(name: "TalkSpeakers") 26 | menuItems: [String] 27 | image: String 28 | location: String 29 | comments: [Comment] @connection(name: "TalkComments") 30 | } 31 | 32 | type Comment @model { 33 | id: ID! 34 | talkId: ID 35 | clientId: ID! 36 | talk: Talk @connection(sortField: "createdAt", name: "TalkComments", keyField: "talkId") 37 | text: String 38 | createdAt: String 39 | createdBy: String 40 | } -------------------------------------------------------------------------------- /amplify/#current-cloud-backend/backend-config.json: -------------------------------------------------------------------------------- 1 | { 2 | "api": { 3 | "chainreactapp2019": { 4 | "service": "AppSync", 5 | "providerPlugin": "awscloudformation", 6 | "output": { 7 | "securityType": "API_KEY" 8 | } 9 | } 10 | } 11 | } 12 | -------------------------------------------------------------------------------- /amplify/.config/local-aws-info.json: -------------------------------------------------------------------------------- 1 | { 2 | "local": { 3 | "configLevel": "project", 4 | "useProfile": true, 5 | "profileName": "us-east-2-user" 6 | } 7 | } 8 | -------------------------------------------------------------------------------- /amplify/.config/local-env-info.json: -------------------------------------------------------------------------------- 1 | { 2 | "projectPath": "/Users/dabit/projects/ChainReactConf", 3 | "defaultEditor": "code", 4 | "envName": "local" 5 | } 6 | -------------------------------------------------------------------------------- /amplify/.config/project-config.json: -------------------------------------------------------------------------------- 1 | { 2 | "projectName": "ChainReactApp2019", 3 | "version": "2.0", 4 | "frontend": "javascript", 5 | "javascript": { 6 | "framework": "react-native", 7 | "config": { 8 | "SourceDir": "/app", 9 | "DistributionDir": "/", 10 | "BuildCommand": "npm run-script build", 11 | "StartCommand": "npm run-script start" 12 | } 13 | }, 14 | "providers": ["awscloudformation"] 15 | } 16 | -------------------------------------------------------------------------------- /amplify/backend/amplify-meta.json: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/infinitered/ChainReactApp2019/9dcc2a2b460f35607099c8f563048692f740ed80/amplify/backend/amplify-meta.json -------------------------------------------------------------------------------- /amplify/backend/api/chainreactapp2019/parameters.json: -------------------------------------------------------------------------------- 1 | { 2 | "AppSyncApiName": "chainreactapp2019", 3 | "DynamoDBBillingMode": "PAY_PER_REQUEST" 4 | } 5 | -------------------------------------------------------------------------------- /amplify/backend/api/chainreactapp2019/schema.graphql: -------------------------------------------------------------------------------- 1 | type Speaker @model { 2 | id: ID! 3 | name: String! 4 | bio: String 5 | image: String 6 | employer: String 7 | facebook: String 8 | github: String 9 | twitter: String 10 | instagram: String 11 | medium: String 12 | dribbble: String 13 | websites: [String] 14 | talk: Talk @connection(name: "TalkSpeakers", keyField: "speakerTalkId") 15 | } 16 | 17 | type Talk @model { 18 | id: ID! 19 | title: String! 20 | description: String 21 | startTime: String 22 | endTime: String 23 | talkType: String 24 | sponsor: String 25 | speakers: [Speaker] @connection(name: "TalkSpeakers") 26 | menuItems: [String] 27 | image: String 28 | location: String 29 | comments: [Comment] @connection(name: "TalkComments") 30 | } 31 | 32 | type Comment @model { 33 | id: ID! 34 | talkId: ID 35 | clientId: ID! 36 | talk: Talk @connection(sortField: "createdAt", name: "TalkComments", keyField: "talkId") 37 | text: String 38 | createdAt: String 39 | createdBy: String 40 | } -------------------------------------------------------------------------------- /amplify/backend/backend-config.json: -------------------------------------------------------------------------------- 1 | { 2 | "api": { 3 | "chainreactapp2019": { 4 | "service": "AppSync", 5 | "providerPlugin": "awscloudformation", 6 | "output": { 7 | "securityType": "API_KEY" 8 | } 9 | } 10 | } 11 | } 12 | -------------------------------------------------------------------------------- /amplify/team-provider-info.json: -------------------------------------------------------------------------------- 1 | { 2 | "local": { 3 | "awscloudformation": { 4 | "AuthRoleName": "chainreactapp2019-20190327072001-authRole", 5 | "UnauthRoleArn": "arn:aws:iam::557458351015:role/chainreactapp2019-20190327072001-unauthRole", 6 | "AuthRoleArn": "arn:aws:iam::557458351015:role/chainreactapp2019-20190327072001-authRole", 7 | "Region": "us-east-2", 8 | "DeploymentBucketName": "chainreactapp2019-20190327072001-deployment", 9 | "UnauthRoleName": "chainreactapp2019-20190327072001-unauthRole", 10 | "StackName": "chainreactapp2019-20190327072001", 11 | "StackId": "arn:aws:cloudformation:us-east-2:557458351015:stack/chainreactapp2019-20190327072001/69559480-509b-11e9-b9f9-0659c08a3f80" 12 | } 13 | } 14 | } 15 | -------------------------------------------------------------------------------- /android/.project: -------------------------------------------------------------------------------- 1 | 2 | 3 | android 4 | Project android created by Buildship. 5 | 6 | 7 | 8 | 9 | org.eclipse.buildship.core.gradleprojectbuilder 10 | 11 | 12 | 13 | 14 | 15 | org.eclipse.buildship.core.gradleprojectnature 16 | 17 | 18 | -------------------------------------------------------------------------------- /android/.settings/org.eclipse.buildship.core.prefs: -------------------------------------------------------------------------------- 1 | connection.project.dir= 2 | eclipse.preferences.version=1 3 | -------------------------------------------------------------------------------- /android/Gemfile: -------------------------------------------------------------------------------- 1 | # frozen_string_literal: true 2 | source "https://rubygems.org" 3 | 4 | gem "fastlane" 5 | 6 | plugins_path = File.join(File.dirname(__FILE__), 'fastlane', 'Pluginfile') 7 | eval_gemfile(plugins_path) if File.exist?(plugins_path) 8 | -------------------------------------------------------------------------------- /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 | ) -------------------------------------------------------------------------------- /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 | # If your project uses WebView with JS, uncomment the following 13 | # and specify the fully qualified class name to the JavaScript interface 14 | # class: 15 | #-keepclassmembers class fqcn.of.javascript.interface.for.webview { 16 | # public *; 17 | #} 18 | -------------------------------------------------------------------------------- /android/app/src/debug/AndroidManifest.xml: -------------------------------------------------------------------------------- 1 | 2 | 4 | 5 | 6 | -------------------------------------------------------------------------------- /android/app/src/main/assets/appcenter-config.json: -------------------------------------------------------------------------------- 1 | { 2 | "app_secret": "b8f12148-da8c-4320-bb07-ae70db82a7b9" 3 | } -------------------------------------------------------------------------------- /android/app/src/main/assets/fonts/GothamRnd-Bold.otf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/infinitered/ChainReactApp2019/9dcc2a2b460f35607099c8f563048692f740ed80/android/app/src/main/assets/fonts/GothamRnd-Bold.otf -------------------------------------------------------------------------------- /android/app/src/main/assets/fonts/GothamRnd-BoldItal.otf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/infinitered/ChainReactApp2019/9dcc2a2b460f35607099c8f563048692f740ed80/android/app/src/main/assets/fonts/GothamRnd-BoldItal.otf -------------------------------------------------------------------------------- /android/app/src/main/assets/fonts/GothamRnd-Book.otf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/infinitered/ChainReactApp2019/9dcc2a2b460f35607099c8f563048692f740ed80/android/app/src/main/assets/fonts/GothamRnd-Book.otf -------------------------------------------------------------------------------- /android/app/src/main/assets/fonts/GothamRnd-BookItal.otf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/infinitered/ChainReactApp2019/9dcc2a2b460f35607099c8f563048692f740ed80/android/app/src/main/assets/fonts/GothamRnd-BookItal.otf -------------------------------------------------------------------------------- /android/app/src/main/assets/fonts/GothamRnd-Light.otf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/infinitered/ChainReactApp2019/9dcc2a2b460f35607099c8f563048692f740ed80/android/app/src/main/assets/fonts/GothamRnd-Light.otf -------------------------------------------------------------------------------- /android/app/src/main/assets/fonts/GothamRnd-LightItal.otf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/infinitered/ChainReactApp2019/9dcc2a2b460f35607099c8f563048692f740ed80/android/app/src/main/assets/fonts/GothamRnd-LightItal.otf -------------------------------------------------------------------------------- /android/app/src/main/assets/fonts/GothamRnd-MedItal.otf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/infinitered/ChainReactApp2019/9dcc2a2b460f35607099c8f563048692f740ed80/android/app/src/main/assets/fonts/GothamRnd-MedItal.otf -------------------------------------------------------------------------------- /android/app/src/main/assets/fonts/GothamRnd-Medium.otf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/infinitered/ChainReactApp2019/9dcc2a2b460f35607099c8f563048692f740ed80/android/app/src/main/assets/fonts/GothamRnd-Medium.otf -------------------------------------------------------------------------------- /android/app/src/main/assets/fonts/gothamrounded_bold.otf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/infinitered/ChainReactApp2019/9dcc2a2b460f35607099c8f563048692f740ed80/android/app/src/main/assets/fonts/gothamrounded_bold.otf -------------------------------------------------------------------------------- /android/app/src/main/assets/fonts/gothamrounded_bold_italic.otf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/infinitered/ChainReactApp2019/9dcc2a2b460f35607099c8f563048692f740ed80/android/app/src/main/assets/fonts/gothamrounded_bold_italic.otf -------------------------------------------------------------------------------- /android/app/src/main/assets/fonts/gothamrounded_book.otf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/infinitered/ChainReactApp2019/9dcc2a2b460f35607099c8f563048692f740ed80/android/app/src/main/assets/fonts/gothamrounded_book.otf -------------------------------------------------------------------------------- /android/app/src/main/assets/fonts/gothamrounded_book_italic.otf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/infinitered/ChainReactApp2019/9dcc2a2b460f35607099c8f563048692f740ed80/android/app/src/main/assets/fonts/gothamrounded_book_italic.otf -------------------------------------------------------------------------------- /android/app/src/main/assets/fonts/gothamrounded_light.otf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/infinitered/ChainReactApp2019/9dcc2a2b460f35607099c8f563048692f740ed80/android/app/src/main/assets/fonts/gothamrounded_light.otf -------------------------------------------------------------------------------- /android/app/src/main/assets/fonts/gothamrounded_light_italic.otf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/infinitered/ChainReactApp2019/9dcc2a2b460f35607099c8f563048692f740ed80/android/app/src/main/assets/fonts/gothamrounded_light_italic.otf -------------------------------------------------------------------------------- /android/app/src/main/assets/fonts/gothamrounded_medium.otf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/infinitered/ChainReactApp2019/9dcc2a2b460f35607099c8f563048692f740ed80/android/app/src/main/assets/fonts/gothamrounded_medium.otf -------------------------------------------------------------------------------- /android/app/src/main/assets/fonts/gothamrounded_medium_italic.otf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/infinitered/ChainReactApp2019/9dcc2a2b460f35607099c8f563048692f740ed80/android/app/src/main/assets/fonts/gothamrounded_medium_italic.otf -------------------------------------------------------------------------------- /android/app/src/main/java/com/chainreactapp/MainActivity.java: -------------------------------------------------------------------------------- 1 | package com.chainreactapp; 2 | 3 | import android.os.Bundle; 4 | import com.facebook.react.ReactActivity; 5 | import org.devio.rn.splashscreen.SplashScreen; 6 | 7 | public class MainActivity extends ReactActivity { 8 | /** 9 | * Setup splash screen before anything else. 10 | */ 11 | @Override 12 | protected void onCreate(Bundle savedInstanceState) { 13 | SplashScreen.show(this); 14 | super.onCreate(savedInstanceState); 15 | } 16 | 17 | /** 18 | * Returns the name of the main component registered from JavaScript. 19 | * This is used to schedule rendering of the component. 20 | */ 21 | @Override 22 | protected String getMainComponentName() { 23 | return "ChainReactConf"; 24 | } 25 | } 26 | -------------------------------------------------------------------------------- /android/app/src/main/res/drawable-hdpi/launch_screen.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/infinitered/ChainReactApp2019/9dcc2a2b460f35607099c8f563048692f740ed80/android/app/src/main/res/drawable-hdpi/launch_screen.png -------------------------------------------------------------------------------- /android/app/src/main/res/drawable-land-hdpi/launch_screen.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/infinitered/ChainReactApp2019/9dcc2a2b460f35607099c8f563048692f740ed80/android/app/src/main/res/drawable-land-hdpi/launch_screen.png -------------------------------------------------------------------------------- /android/app/src/main/res/drawable-land-ldpi/launch_screen.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/infinitered/ChainReactApp2019/9dcc2a2b460f35607099c8f563048692f740ed80/android/app/src/main/res/drawable-land-ldpi/launch_screen.png -------------------------------------------------------------------------------- /android/app/src/main/res/drawable-land-mdpi/launch_screen.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/infinitered/ChainReactApp2019/9dcc2a2b460f35607099c8f563048692f740ed80/android/app/src/main/res/drawable-land-mdpi/launch_screen.png -------------------------------------------------------------------------------- /android/app/src/main/res/drawable-land-xhdpi/launch_screen.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/infinitered/ChainReactApp2019/9dcc2a2b460f35607099c8f563048692f740ed80/android/app/src/main/res/drawable-land-xhdpi/launch_screen.png -------------------------------------------------------------------------------- /android/app/src/main/res/drawable-land-xxhdpi/launch_screen.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/infinitered/ChainReactApp2019/9dcc2a2b460f35607099c8f563048692f740ed80/android/app/src/main/res/drawable-land-xxhdpi/launch_screen.png -------------------------------------------------------------------------------- /android/app/src/main/res/drawable-land-xxxhdpi/launch_screen.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/infinitered/ChainReactApp2019/9dcc2a2b460f35607099c8f563048692f740ed80/android/app/src/main/res/drawable-land-xxxhdpi/launch_screen.png -------------------------------------------------------------------------------- /android/app/src/main/res/drawable-land/launch_screen.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/infinitered/ChainReactApp2019/9dcc2a2b460f35607099c8f563048692f740ed80/android/app/src/main/res/drawable-land/launch_screen.png -------------------------------------------------------------------------------- /android/app/src/main/res/drawable-ldpi/icon.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/infinitered/ChainReactApp2019/9dcc2a2b460f35607099c8f563048692f740ed80/android/app/src/main/res/drawable-ldpi/icon.png -------------------------------------------------------------------------------- /android/app/src/main/res/drawable-ldpi/launch_screen.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/infinitered/ChainReactApp2019/9dcc2a2b460f35607099c8f563048692f740ed80/android/app/src/main/res/drawable-ldpi/launch_screen.png -------------------------------------------------------------------------------- /android/app/src/main/res/drawable-mdpi/launch_screen.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/infinitered/ChainReactApp2019/9dcc2a2b460f35607099c8f563048692f740ed80/android/app/src/main/res/drawable-mdpi/launch_screen.png -------------------------------------------------------------------------------- /android/app/src/main/res/drawable-xhdpi/launch_screen.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/infinitered/ChainReactApp2019/9dcc2a2b460f35607099c8f563048692f740ed80/android/app/src/main/res/drawable-xhdpi/launch_screen.png -------------------------------------------------------------------------------- /android/app/src/main/res/drawable-xxhdpi/launch_screen.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/infinitered/ChainReactApp2019/9dcc2a2b460f35607099c8f563048692f740ed80/android/app/src/main/res/drawable-xxhdpi/launch_screen.png -------------------------------------------------------------------------------- /android/app/src/main/res/drawable-xxxhdpi/launch_screen.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/infinitered/ChainReactApp2019/9dcc2a2b460f35607099c8f563048692f740ed80/android/app/src/main/res/drawable-xxxhdpi/launch_screen.png -------------------------------------------------------------------------------- /android/app/src/main/res/drawable/icon.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/infinitered/ChainReactApp2019/9dcc2a2b460f35607099c8f563048692f740ed80/android/app/src/main/res/drawable/icon.png -------------------------------------------------------------------------------- /android/app/src/main/res/drawable/launch_screen.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/infinitered/ChainReactApp2019/9dcc2a2b460f35607099c8f563048692f740ed80/android/app/src/main/res/drawable/launch_screen.png -------------------------------------------------------------------------------- /android/app/src/main/res/layout/launch_screen.xml: -------------------------------------------------------------------------------- 1 | 2 | 8 | 14 | -------------------------------------------------------------------------------- /android/app/src/main/res/mipmap-hdpi/ic_launcher.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/infinitered/ChainReactApp2019/9dcc2a2b460f35607099c8f563048692f740ed80/android/app/src/main/res/mipmap-hdpi/ic_launcher.png -------------------------------------------------------------------------------- /android/app/src/main/res/mipmap-ldpi/ic_launcher.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/infinitered/ChainReactApp2019/9dcc2a2b460f35607099c8f563048692f740ed80/android/app/src/main/res/mipmap-ldpi/ic_launcher.png -------------------------------------------------------------------------------- /android/app/src/main/res/mipmap-mdpi/ic_launcher.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/infinitered/ChainReactApp2019/9dcc2a2b460f35607099c8f563048692f740ed80/android/app/src/main/res/mipmap-mdpi/ic_launcher.png -------------------------------------------------------------------------------- /android/app/src/main/res/mipmap-xhdpi/ic_launcher.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/infinitered/ChainReactApp2019/9dcc2a2b460f35607099c8f563048692f740ed80/android/app/src/main/res/mipmap-xhdpi/ic_launcher.png -------------------------------------------------------------------------------- /android/app/src/main/res/mipmap-xxhdpi/ic_launcher.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/infinitered/ChainReactApp2019/9dcc2a2b460f35607099c8f563048692f740ed80/android/app/src/main/res/mipmap-xxhdpi/ic_launcher.png -------------------------------------------------------------------------------- /android/app/src/main/res/mipmap-xxxhdpi/ic_launcher.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/infinitered/ChainReactApp2019/9dcc2a2b460f35607099c8f563048692f740ed80/android/app/src/main/res/mipmap-xxxhdpi/ic_launcher.png -------------------------------------------------------------------------------- /android/app/src/main/res/values/colors.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | #161737 4 | -------------------------------------------------------------------------------- /android/app/src/main/res/values/strings.xml: -------------------------------------------------------------------------------- 1 | 2 | ChainReactConf 3 | ALWAYS_SEND 4 | ALWAYS_SEND 5 | 6 | -------------------------------------------------------------------------------- /android/app/src/main/res/values/styles.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 7 | 8 | 9 | -------------------------------------------------------------------------------- /android/fastlane/Appfile: -------------------------------------------------------------------------------- 1 | # json_key_file "" # Path to the json secret file - Follow https://github.com/fastlane/supply#setup to get one 2 | package_name "com.chainreactapp" # e.g. com.krausefx.app 3 | json_key_file "./fastlane/google-play.json" 4 | -------------------------------------------------------------------------------- /android/fastlane/Pluginfile: -------------------------------------------------------------------------------- 1 | # Autogenerated by fastlane 2 | # 3 | # Ensure this file is checked in to source control! 4 | 5 | gem 'fastlane-plugin-increment_version_code' 6 | gem 'fastlane-plugin-mobile_center' 7 | gem 'fastlane-plugin-appicon' 8 | -------------------------------------------------------------------------------- /android/fastlane/README.md: -------------------------------------------------------------------------------- 1 | fastlane documentation 2 | ================ 3 | # Installation 4 | 5 | Make sure you have the latest version of the Xcode command line tools installed: 6 | 7 | ``` 8 | xcode-select --install 9 | ``` 10 | 11 | Install _fastlane_ using 12 | ``` 13 | [sudo] gem install fastlane -NV 14 | ``` 15 | or alternatively using `brew cask install fastlane` 16 | 17 | # Available Actions 18 | ## Android 19 | ### android clear_artifacts 20 | ``` 21 | fastlane android clear_artifacts 22 | ``` 23 | 24 | ### android test 25 | ``` 26 | fastlane android test 27 | ``` 28 | Runs all the tests 29 | ### android beta 30 | ``` 31 | fastlane android beta 32 | ``` 33 | Submit a new Beta Build 34 | ### android play 35 | ``` 36 | fastlane android play 37 | ``` 38 | Playground stuff 39 | ### android deploy 40 | ``` 41 | fastlane android deploy 42 | ``` 43 | Deploy a new version to the Google Play 44 | 45 | ---- 46 | 47 | This README.md is auto-generated and will be re-generated every time [fastlane](https://fastlane.tools) is run. 48 | More information about fastlane can be found on [fastlane.tools](https://fastlane.tools). 49 | The documentation of fastlane can be found on [docs.fastlane.tools](https://docs.fastlane.tools). 50 | -------------------------------------------------------------------------------- /android/fastlane/metadata/android/en-US/full_description.txt: -------------------------------------------------------------------------------- 1 | Chain React Conf 2017 is a React Native Conference held in Portland, OR on July 10th and 11th. 2 | 3 | Join us at the beautiful Armory in downtown Portland this summer! Chain React: The React Native Conference will consist of multiple talks on React Native given by mobile software engineers at Facebook, AirBnB, and others, on a variety of topics from beginner to expert level. We’re expecting a few hundred attendees and are working hard to put on a great conference. -------------------------------------------------------------------------------- /android/fastlane/metadata/android/en-US/short_description.txt: -------------------------------------------------------------------------------- 1 | The live-updated schedule in your pocket for Chain React Conf -------------------------------------------------------------------------------- /android/fastlane/metadata/android/en-US/title.txt: -------------------------------------------------------------------------------- 1 | Chain React Conf -------------------------------------------------------------------------------- /android/fastlane/metadata/android/en-US/video.txt: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/infinitered/ChainReactApp2019/9dcc2a2b460f35607099c8f563048692f740ed80/android/fastlane/metadata/android/en-US/video.txt -------------------------------------------------------------------------------- /android/gradle.properties: -------------------------------------------------------------------------------- 1 | # Project-wide Gradle settings. 2 | 3 | # IDE (e.g. Android Studio) users: 4 | # Gradle settings configured through the IDE *will override* 5 | # any settings specified in this file. 6 | 7 | # For more details on how to configure your build environment visit 8 | # http://www.gradle.org/docs/current/userguide/build_environment.html 9 | 10 | # Specifies the JVM arguments used for the daemon process. 11 | # The setting is particularly useful for tweaking memory settings. 12 | # Default value: -Xmx10248m -XX:MaxPermSize=256m 13 | # org.gradle.jvmargs=-Xmx2048m -XX:MaxPermSize=512m -XX:+HeapDumpOnOutOfMemoryError -Dfile.encoding=UTF-8 14 | 15 | # When configured, Gradle will run in incubating parallel mode. 16 | # This option should only be used with decoupled projects. More details, visit 17 | # http://www.gradle.org/docs/current/userguide/multi_project_builds.html#sec:decoupled_projects 18 | # org.gradle.parallel=true 19 | 20 | android.enableJetifier=true 21 | android.useAndroidX=true -------------------------------------------------------------------------------- /android/gradle/wrapper/gradle-wrapper.jar: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/infinitered/ChainReactApp2019/9dcc2a2b460f35607099c8f563048692f740ed80/android/gradle/wrapper/gradle-wrapper.jar -------------------------------------------------------------------------------- /android/gradle/wrapper/gradle-wrapper.properties: -------------------------------------------------------------------------------- 1 | distributionBase=GRADLE_USER_HOME 2 | distributionPath=wrapper/dists 3 | zipStoreBase=GRADLE_USER_HOME 4 | zipStorePath=wrapper/dists 5 | distributionUrl=https\://services.gradle.org/distributions/gradle-5.4.1-all.zip 6 | -------------------------------------------------------------------------------- /android/keystores/BUCK: -------------------------------------------------------------------------------- 1 | keystore( 2 | name = "debug", 3 | properties = "debug.keystore.properties", 4 | store = "debug.keystore", 5 | visibility = [ 6 | "PUBLIC", 7 | ], 8 | ) 9 | -------------------------------------------------------------------------------- /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 | -------------------------------------------------------------------------------- /app.json: -------------------------------------------------------------------------------- 1 | { 2 | "name": "ChainReactConf", 3 | "displayName": "ChainReactConf" 4 | } 5 | -------------------------------------------------------------------------------- /app/aws-exports.js: -------------------------------------------------------------------------------- 1 | // WARNING: DO NOT EDIT. This file is automatically generated by AWS Amplify. It will be overwritten. 2 | import { AWS_APPSYNC_API_KEY } from "react-native-dotenv" 3 | 4 | const awsmobile = { 5 | aws_project_region: "us-east-2", 6 | aws_appsync_graphqlEndpoint: 7 | "https://najx2aa76zb55jeexyyc43nuyy.appsync-api.us-east-2.amazonaws.com/graphql", 8 | aws_appsync_region: "us-east-2", 9 | aws_appsync_authenticationType: "API_KEY", 10 | aws_appsync_apiKey: AWS_APPSYNC_API_KEY || process.env.AWS_APPSYNC_API_KEY, 11 | } 12 | 13 | export default awsmobile 14 | -------------------------------------------------------------------------------- /app/components/attraction/attraction.props.ts: -------------------------------------------------------------------------------- 1 | import { ViewProperties } from "react-native" 2 | 3 | export interface AttractionProps extends ViewProperties { 4 | attraction: any 5 | } 6 | -------------------------------------------------------------------------------- /app/components/attraction/attraction.story.tsx: -------------------------------------------------------------------------------- 1 | import * as React from "react" 2 | import { storiesOf } from "@storybook/react-native" 3 | import { Story, StoryScreen, UseCase } from "../../../storybook/views" 4 | import { Attraction } from "./attraction" 5 | 6 | storiesOf("Attraction", module) 7 | .addDecorator(fn => {fn()}) 8 | .add("Props", () => ( 9 | 10 | 11 | 29 | 30 | 31 | )) 32 | -------------------------------------------------------------------------------- /app/components/attraction/index.ts: -------------------------------------------------------------------------------- 1 | export * from "./attraction" 2 | -------------------------------------------------------------------------------- /app/components/attractions-list/attractions-list.story.tsx: -------------------------------------------------------------------------------- 1 | import * as React from "react" 2 | import { storiesOf } from "@storybook/react-native" 3 | import { Story, StoryScreen, UseCase } from "../../../storybook/views" 4 | import { AttractionsList } from "./attractions-list" 5 | 6 | storiesOf("AttractionsList", module) 7 | .addDecorator(fn => {fn()}) 8 | .add("Props", () => ( 9 | 10 | 11 | 12 | 13 | 14 | )) 15 | -------------------------------------------------------------------------------- /app/components/attractions-list/index.ts: -------------------------------------------------------------------------------- 1 | export * from "./attractions-list" 2 | -------------------------------------------------------------------------------- /app/components/attractions-map-callout/Close.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/infinitered/ChainReactApp2019/9dcc2a2b460f35607099c8f563048692f740ed80/app/components/attractions-map-callout/Close.png -------------------------------------------------------------------------------- /app/components/attractions-map-callout/Close@2x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/infinitered/ChainReactApp2019/9dcc2a2b460f35607099c8f563048692f740ed80/app/components/attractions-map-callout/Close@2x.png -------------------------------------------------------------------------------- /app/components/attractions-map-callout/Close@3x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/infinitered/ChainReactApp2019/9dcc2a2b460f35607099c8f563048692f740ed80/app/components/attractions-map-callout/Close@3x.png -------------------------------------------------------------------------------- /app/components/attractions-map-callout/index.ts: -------------------------------------------------------------------------------- 1 | export * from "./attractions-map-callout" 2 | export const CLOSE_ICON = require("./Close.png") 3 | -------------------------------------------------------------------------------- /app/components/attractions-map/index.ts: -------------------------------------------------------------------------------- 1 | export * from "./attractions-map" 2 | -------------------------------------------------------------------------------- /app/components/back-button/back-button.story.tsx: -------------------------------------------------------------------------------- 1 | import { storiesOf } from "@storybook/react-native" 2 | import * as React from "react" 3 | import { Story, StoryScreen, UseCase } from "../../../storybook/views" 4 | import { BackButton } from "./back-button" 5 | 6 | storiesOf("BackButton", module) 7 | .addDecorator(fn => {fn()}) 8 | .add("Presets", () => ( 9 | 10 | 11 | 12 | 13 | 14 | )) 15 | -------------------------------------------------------------------------------- /app/components/back-button/back-button.tsx: -------------------------------------------------------------------------------- 1 | import * as React from "react" 2 | import { Image, TextStyle, View, ViewStyle } from "react-native" 3 | import { HIT_SLOP, palette, spacing } from "../../theme" 4 | import { Text } from "../text" 5 | 6 | const HEADER_TEXT: TextStyle = { 7 | fontSize: 17, 8 | fontWeight: "600", 9 | lineHeight: 45, 10 | marginLeft: spacing.large, 11 | color: palette.shamrock, 12 | } 13 | 14 | const BACK_ARROW: ViewStyle = { 15 | flexDirection: "row", 16 | paddingLeft: spacing.large, 17 | alignItems: "center", 18 | justifyContent: "center", 19 | } 20 | 21 | export function BackButton(props: { backTitle: string }) { 22 | return ( 23 | 24 | 25 | 26 | 27 | ) 28 | } 29 | -------------------------------------------------------------------------------- /app/components/back-button/index.ts: -------------------------------------------------------------------------------- 1 | export * from "./back-button" 2 | -------------------------------------------------------------------------------- /app/components/blog-link/blog-link.story.tsx: -------------------------------------------------------------------------------- 1 | import * as React from "react" 2 | import { storiesOf } from "@storybook/react-native" 3 | import { Story, StoryScreen, UseCase } from "../../../storybook/views" 4 | import { BlogLink } from "./blog-link" 5 | 6 | storiesOf("Code of Blog Link", module) 7 | .addDecorator(fn => {fn()}) 8 | .add("Presets", () => ( 9 | 10 | 11 | 12 | 13 | 14 | )) 15 | -------------------------------------------------------------------------------- /app/components/blog-link/blog-link.tsx: -------------------------------------------------------------------------------- 1 | import * as React from "react" 2 | import { Linking, ViewStyle } from "react-native" 3 | import { ContentLink } from "../content-link" 4 | import { spacing } from "../../theme" 5 | 6 | const ROOT: ViewStyle = { 7 | marginTop: spacing.extraLarge, 8 | paddingHorizontal: spacing.large, 9 | marginBottom: spacing.huge, 10 | } 11 | 12 | export function BlogLink() { 13 | const onPressLink = () => { 14 | Linking.openURL( 15 | "https://shift.infinite.red/an-insiders-guide-to-the-best-spots-in-portland-ce84e316bfc9", 16 | ) 17 | } 18 | return ( 19 | 26 | ) 27 | } 28 | -------------------------------------------------------------------------------- /app/components/blog-link/index.ts: -------------------------------------------------------------------------------- 1 | export * from "./blog-link" 2 | -------------------------------------------------------------------------------- /app/components/bullet-item/bullet-item.story.tsx: -------------------------------------------------------------------------------- 1 | import * as React from "react" 2 | import { storiesOf } from "@storybook/react-native" 3 | import { Story, StoryScreen, UseCase } from "../../../storybook/views" 4 | import { BulletItem } from "./bullet-item" 5 | 6 | storiesOf("Code of BulletItem", module) 7 | .addDecorator(fn => {fn()}) 8 | .add("Presets", () => ( 9 | 10 | 11 | 12 | 13 | 14 | )) 15 | -------------------------------------------------------------------------------- /app/components/bullet-item/bullet-item.tsx: -------------------------------------------------------------------------------- 1 | import * as React from "react" 2 | import { TextStyle, View, ViewStyle } from "react-native" 3 | import { Text } from "../text" 4 | import { spacing } from "../../theme" 5 | 6 | const ROOT: ViewStyle = { 7 | flexDirection: "row", 8 | marginVertical: spacing.small, 9 | marginRight: spacing.small, 10 | } 11 | 12 | export function BulletItem(props: { text: string; style?: TextStyle }) { 13 | return ( 14 | 15 | 16 | 17 | 18 | ) 19 | } 20 | -------------------------------------------------------------------------------- /app/components/bullet-item/index.ts: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/infinitered/ChainReactApp2019/9dcc2a2b460f35607099c8f563048692f740ed80/app/components/bullet-item/index.ts -------------------------------------------------------------------------------- /app/components/button/button.props.ts: -------------------------------------------------------------------------------- 1 | import { TextStyle, TouchableOpacityProperties, ViewStyle } from "react-native" 2 | import { ButtonPresetNames } from "./button.presets" 3 | 4 | export interface ButtonProps extends TouchableOpacityProperties { 5 | /** 6 | * Text which is looked up via i18n. 7 | */ 8 | tx?: string 9 | 10 | /** 11 | * The text to display if not using `tx` or nested components. 12 | */ 13 | text?: string 14 | 15 | /** 16 | * An optional style override useful for padding & margin. 17 | */ 18 | style?: ViewStyle 19 | 20 | /** 21 | * An optional style override useful for padding & margin. 22 | */ 23 | textStyle?: TextStyle 24 | 25 | /** 26 | * One of the different types of text presets. 27 | */ 28 | preset?: ButtonPresetNames 29 | 30 | /** 31 | * Children components. 32 | */ 33 | children?: React.ReactNode 34 | } 35 | -------------------------------------------------------------------------------- /app/components/button/button.story.tsx: -------------------------------------------------------------------------------- 1 | import * as React from "react" 2 | import { Alert } from "react-native" 3 | import { storiesOf } from "@storybook/react-native" 4 | import { Story, StoryScreen, UseCase } from "../../../storybook/views" 5 | import { Button } from "./" 6 | 7 | storiesOf("Button", module) 8 | .addDecorator(fn => {fn()}) 9 | .add("Style Presets", () => ( 10 | 11 | 12 |