├── .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 |
14 |
15 |
17 |
18 |
20 |
21 |
23 |
24 | ))
25 |
--------------------------------------------------------------------------------
/app/components/button/button.tsx:
--------------------------------------------------------------------------------
1 | import * as React from "react"
2 | import { TouchableOpacity } from "react-native"
3 | import { Text } from "../text"
4 | import { textPresets, viewPresets } from "./button.presets"
5 | import { ButtonProps } from "./button.props"
6 | import { HIT_SLOP } from "../../theme"
7 |
8 | /**
9 | * For your text displaying needs.
10 | *
11 | * This component is a HOC over the built-in React Native one.
12 | */
13 | export function Button(props: ButtonProps) {
14 | // grab the props
15 | const {
16 | preset = "primary",
17 | tx,
18 | text,
19 | children,
20 | style: styleOverride,
21 | textStyle: textStyleOverride,
22 | ...rest
23 | } = props
24 |
25 | // assemble the style
26 | const viewPresetToUse = viewPresets[preset] || viewPresets.primary
27 | const textPresetToUse = textPresets[preset] || textPresets.primary
28 |
29 | const viewStyle = { ...viewPresetToUse, ...styleOverride }
30 | const textStyle = { ...textPresetToUse, ...textStyleOverride }
31 |
32 | return (
33 |
34 |
35 | {children}
36 |
37 | )
38 | }
39 |
--------------------------------------------------------------------------------
/app/components/button/index.ts:
--------------------------------------------------------------------------------
1 | export * from "./button"
2 |
--------------------------------------------------------------------------------
/app/components/checkbox/checkbox.props.ts:
--------------------------------------------------------------------------------
1 | import { ViewStyle } from "react-native"
2 |
3 | export interface CheckboxProps {
4 | /**
5 | * Additional container style. Useful for margins.
6 | */
7 | style?: ViewStyle
8 |
9 | /**
10 | * Additional outline style.
11 | */
12 | outlineStyle?: ViewStyle
13 |
14 | /**
15 | * Additional fill style. Only visible when checked.
16 | */
17 | fillStyle?: ViewStyle
18 |
19 | /**
20 | * Is the checkbox checked?
21 | */
22 | value?: boolean
23 |
24 | /**
25 | * The text to display if there isn't a tx.
26 | */
27 | text?: string
28 |
29 | /**
30 | * The i18n lookup key.
31 | */
32 | tx?: string
33 |
34 | /**
35 | * Multiline or clipped single line?
36 | */
37 | multiline?: boolean
38 |
39 | /**
40 | * Fires when the user tabs to change the value.
41 | */
42 | onToggle?: (newValue: boolean) => void
43 | }
44 |
--------------------------------------------------------------------------------
/app/components/checkbox/index.ts:
--------------------------------------------------------------------------------
1 | export * from "./checkbox"
2 |
--------------------------------------------------------------------------------
/app/components/code-of-conduct-link/code-of-conduct-link.tsx:
--------------------------------------------------------------------------------
1 | import * as React from "react"
2 | import { View, ViewStyle } from "react-native"
3 | import { Text } from "../text"
4 | import { Button } from "../button"
5 |
6 | const ROOT: ViewStyle = {
7 | flexDirection: "row",
8 | alignItems: "center",
9 | }
10 |
11 | export function CodeOfConductLink(props: { style?: ViewStyle; onPress: () => void }) {
12 | return (
13 |
14 |
15 |
16 |
17 | )
18 | }
19 |
--------------------------------------------------------------------------------
/app/components/code-of-conduct-link/index.ts:
--------------------------------------------------------------------------------
1 | export * from "./code-of-conduct-link"
2 |
--------------------------------------------------------------------------------
/app/components/conduct/conduct.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 { Conduct } from "./conduct"
5 |
6 | storiesOf("Code of Conduct", module)
7 | .addDecorator(fn => {fn()})
8 | .add("Presets", () => (
9 |
10 |
11 |
12 |
13 |
14 | ))
15 |
--------------------------------------------------------------------------------
/app/components/conduct/conduct.tsx:
--------------------------------------------------------------------------------
1 | import * as React from "react"
2 | import { TextStyle, TouchableOpacityProperties, View, ViewStyle } from "react-native"
3 | import { Text } from "../text"
4 | import { Button } from "../button"
5 | import { palette, spacing } from "../../theme"
6 |
7 | const ROOT: ViewStyle = {
8 | marginTop: spacing.huge,
9 | paddingHorizontal: spacing.large,
10 | }
11 |
12 | const HEADER: TextStyle = {
13 | color: palette.white,
14 | }
15 | const BODY: TextStyle = {
16 | marginTop: spacing.medium,
17 | marginBottom: spacing.medium,
18 | }
19 |
20 | export function Conduct(props: TouchableOpacityProperties) {
21 | return (
22 |
23 |
24 |
25 |
26 |
27 | )
28 | }
29 |
--------------------------------------------------------------------------------
/app/components/conduct/index.ts:
--------------------------------------------------------------------------------
1 | export * from "./conduct"
2 |
--------------------------------------------------------------------------------
/app/components/contact/contact.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 { Contact } from "./contact"
5 |
6 | storiesOf("Code of Conduct - Contact", module)
7 | .addDecorator(fn => {fn()})
8 | .add("Presets", () => (
9 |
10 |
11 |
12 |
13 |
14 | ))
15 |
--------------------------------------------------------------------------------
/app/components/contact/index.ts:
--------------------------------------------------------------------------------
1 | export * from "./contact"
2 |
--------------------------------------------------------------------------------
/app/components/content-link/content-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 { ContentLink } from "./content-link"
5 |
6 | storiesOf("ContentLink", module)
7 | .addDecorator(fn => {fn()})
8 | .add("Presets", () => (
9 |
10 |
11 | null}
13 | bodyTx="infoScreen.photobomb.title"
14 | headerTx="infoScreen.photobomb.description"
15 | buttonTx="infoScreen.photobomb.button"
16 | />
17 |
18 |
19 | ))
20 |
--------------------------------------------------------------------------------
/app/components/content-link/content-link.tsx:
--------------------------------------------------------------------------------
1 | import * as React from "react"
2 | import { TextStyle, View, ViewStyle } from "react-native"
3 | import { Text } from "../text"
4 | import { Button } from "../button"
5 | import { palette, spacing } from "../../theme"
6 |
7 | const ROOT: ViewStyle = {
8 | marginTop: spacing.huge,
9 | paddingHorizontal: spacing.large,
10 | }
11 |
12 | const HEADER: TextStyle = {
13 | color: palette.white,
14 | }
15 | const BODY: TextStyle = {
16 | marginTop: spacing.medium,
17 | marginBottom: spacing.medium,
18 | }
19 |
20 | export function ContentLink(props: {
21 | headerTx: string
22 | bodyTx: string
23 | buttonTx: string
24 | style?: ViewStyle
25 | onPressLink: () => void,
26 | }) {
27 | return (
28 |
29 |
30 |
31 |
32 |
33 | )
34 | }
35 |
--------------------------------------------------------------------------------
/app/components/content-link/index.ts:
--------------------------------------------------------------------------------
1 | export * from "./content-link"
2 |
--------------------------------------------------------------------------------
/app/components/footer/footer.presets.ts:
--------------------------------------------------------------------------------
1 | import { ViewStyle } from "react-native"
2 | import { color } from "../../theme"
3 |
4 | /**
5 | * All text will start off looking like this.
6 | */
7 | const BASE_VIEW: ViewStyle = {
8 | justifyContent: "flex-start",
9 | alignItems: "center",
10 | alignSelf: "flex-end",
11 | width: "100%",
12 | height: 86,
13 | paddingTop: 16,
14 | paddingHorizontal: 20,
15 | }
16 |
17 | /**
18 | * All the variations of text styling within the app.
19 | *
20 | * You want to customize these to whatever you need in your app.
21 | */
22 | export const viewPresets = {
23 | /**
24 | * A smaller piece of secondard information.
25 | */
26 | dark: { ...BASE_VIEW, backgroundColor: color.palette.ebony } as ViewStyle,
27 | }
28 |
29 | /**
30 | * A list of preset names.
31 | */
32 | export type FooterPresetNames = keyof typeof viewPresets
33 |
--------------------------------------------------------------------------------
/app/components/footer/footer.props.ts:
--------------------------------------------------------------------------------
1 | import { ViewProperties, ViewStyle } from "react-native"
2 | import { FooterPresetNames } from "./footer.presets"
3 |
4 | export interface FooterProps extends ViewProperties {
5 | /**
6 | * The children to display if not using `tx` or nested components.
7 | */
8 | children?: object
9 |
10 | /**
11 | * An optional style override useful for padding & margin.
12 | */
13 | style?: ViewStyle
14 |
15 | /**
16 | * One of the different types of text presets.
17 | */
18 | preset?: FooterPresetNames
19 | }
20 |
--------------------------------------------------------------------------------
/app/components/footer/footer.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 { Footer } from "./footer"
5 | import { Text } from "../text"
6 |
7 | storiesOf("Footer", module)
8 | .addDecorator(fn => {fn()})
9 | .add("Presets", () => (
10 |
11 |
12 |
13 |
14 |
15 |
18 |
19 |
20 | ))
21 |
--------------------------------------------------------------------------------
/app/components/footer/footer.tsx:
--------------------------------------------------------------------------------
1 | import * as React from "react"
2 | import { View } from "react-native"
3 | import { viewPresets } from "./footer.presets"
4 | import { FooterProps } from "./footer.props"
5 |
6 | /**
7 | * For your text displaying needs.
8 | *
9 | * This component is a HOC over the built-in React Native one.
10 | */
11 | export function Footer(props: FooterProps) {
12 | // grab the props
13 | const { preset = "dark", children, style: styleOverride, ...rest } = props
14 |
15 | // assemble the style
16 | const viewPresetToUse = viewPresets[preset] || viewPresets.dark
17 |
18 | const viewStyle = { ...viewPresetToUse, ...styleOverride }
19 |
20 | return (
21 |
22 | {children}
23 |
24 | )
25 | }
26 |
--------------------------------------------------------------------------------
/app/components/footer/index.ts:
--------------------------------------------------------------------------------
1 | export * from "./footer"
2 |
--------------------------------------------------------------------------------
/app/components/form-row/form-row.props.tsx:
--------------------------------------------------------------------------------
1 | import * as React from "react"
2 | import { ViewStyle } from "react-native"
3 | import { FormRowPresets } from "./form-row.presets"
4 |
5 | /**
6 | * The properties you can pass to FormRow.
7 | */
8 | export interface FormRowProps {
9 | /**
10 | * Children components.
11 | */
12 | children?: React.ReactNode
13 |
14 | /**
15 | * Override the container style... useful for margins and padding.
16 | */
17 | style?: ViewStyle
18 |
19 | /**
20 | * The type of border.
21 | */
22 | preset: FormRowPresets
23 | }
24 |
--------------------------------------------------------------------------------
/app/components/form-row/form-row.tsx:
--------------------------------------------------------------------------------
1 | import * as React from "react"
2 | import { View } from "react-native"
3 | import { PRESETS } from "./form-row.presets"
4 | import { FormRowProps } from "./form-row.props"
5 |
6 | /**
7 | * A horizontal container component used to hold a row of a form.
8 | */
9 | export function FormRow(props: FormRowProps) {
10 | return (
11 |
17 | {props.children}
18 |
19 | )
20 | }
21 |
--------------------------------------------------------------------------------
/app/components/form-row/index.ts:
--------------------------------------------------------------------------------
1 | export * from "./form-row"
2 |
--------------------------------------------------------------------------------
/app/components/gerding-theater/gerding-theater.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 { GerdingTheater } from "./gerding-theater"
5 |
6 | storiesOf("GerdingTheater", module)
7 | .addDecorator(fn => {fn()})
8 | .add("Presets", () => (
9 |
10 |
11 |
12 |
13 |
14 | ))
15 |
--------------------------------------------------------------------------------
/app/components/gerding-theater/gerding-theater.tsx:
--------------------------------------------------------------------------------
1 | import * as React from "react"
2 | import { Image, ImageStyle, TextStyle, View, ViewStyle } from "react-native"
3 | import { Text } from "../text"
4 | import { spacing } from "../../theme"
5 |
6 | const venue = require("./img.venue.png")
7 |
8 | const ROOT: ViewStyle = {
9 | flex: 1,
10 | marginTop: spacing.extraLarge,
11 | paddingHorizontal: spacing.large,
12 | marginBottom: 49,
13 | }
14 | const VENUE_STYLE: ImageStyle = {
15 | width: 314,
16 | height: 265,
17 | position: "absolute",
18 | top: 10,
19 | right: -spacing.large,
20 | }
21 | const TITLE: TextStyle = {
22 | marginTop: 223,
23 | }
24 | const DESCRIPTION: TextStyle = {
25 | marginTop: spacing.large,
26 | }
27 |
28 | export class GerdingTheater extends React.Component<{}, {}> {
29 | render() {
30 | return (
31 |
32 |
33 |
34 |
35 |
36 | )
37 | }
38 | }
39 |
--------------------------------------------------------------------------------
/app/components/gerding-theater/img.venue.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/infinitered/ChainReactApp2019/9dcc2a2b460f35607099c8f563048692f740ed80/app/components/gerding-theater/img.venue.png
--------------------------------------------------------------------------------
/app/components/gerding-theater/img.venue@2x.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/infinitered/ChainReactApp2019/9dcc2a2b460f35607099c8f563048692f740ed80/app/components/gerding-theater/img.venue@2x.png
--------------------------------------------------------------------------------
/app/components/gerding-theater/img.venue@3x.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/infinitered/ChainReactApp2019/9dcc2a2b460f35607099c8f563048692f740ed80/app/components/gerding-theater/img.venue@3x.png
--------------------------------------------------------------------------------
/app/components/gerding-theater/index.ts:
--------------------------------------------------------------------------------
1 | export * from "./gerding-theater"
2 |
--------------------------------------------------------------------------------
/app/components/getting-to-chain-react/getting-to-chain-react.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 { GettingToChainReact } from "./getting-to-chain-react"
5 |
6 | storiesOf("GettingToChainReact", module)
7 | .addDecorator(fn => {fn()})
8 | .add("Presets", () => (
9 |
10 |
11 |
12 |
13 |
14 | ))
15 |
--------------------------------------------------------------------------------
/app/components/getting-to-chain-react/index.ts:
--------------------------------------------------------------------------------
1 | export * from "./getting-to-chain-react"
2 |
--------------------------------------------------------------------------------
/app/components/getting-to-chain-react/logo-lyft@1x.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/infinitered/ChainReactApp2019/9dcc2a2b460f35607099c8f563048692f740ed80/app/components/getting-to-chain-react/logo-lyft@1x.png
--------------------------------------------------------------------------------
/app/components/getting-to-chain-react/logo-lyft@2x.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/infinitered/ChainReactApp2019/9dcc2a2b460f35607099c8f563048692f740ed80/app/components/getting-to-chain-react/logo-lyft@2x.png
--------------------------------------------------------------------------------
/app/components/getting-to-chain-react/logo-lyft@3x.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/infinitered/ChainReactApp2019/9dcc2a2b460f35607099c8f563048692f740ed80/app/components/getting-to-chain-react/logo-lyft@3x.png
--------------------------------------------------------------------------------
/app/components/getting-to-chain-react/logo-uber@1x.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/infinitered/ChainReactApp2019/9dcc2a2b460f35607099c8f563048692f740ed80/app/components/getting-to-chain-react/logo-uber@1x.png
--------------------------------------------------------------------------------
/app/components/getting-to-chain-react/logo-uber@2x.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/infinitered/ChainReactApp2019/9dcc2a2b460f35607099c8f563048692f740ed80/app/components/getting-to-chain-react/logo-uber@2x.png
--------------------------------------------------------------------------------
/app/components/getting-to-chain-react/logo-uber@3x.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/infinitered/ChainReactApp2019/9dcc2a2b460f35607099c8f563048692f740ed80/app/components/getting-to-chain-react/logo-uber@3x.png
--------------------------------------------------------------------------------
/app/components/nearby-attractions/index.ts:
--------------------------------------------------------------------------------
1 | export * from "./nearby-attractions"
2 |
--------------------------------------------------------------------------------
/app/components/nearby-attractions/nearby-attractions.tsx:
--------------------------------------------------------------------------------
1 | import * as React from "react"
2 | import { View, ViewStyle } from "react-native"
3 | import { getScreenWidth, palette, spacing } from "../../theme"
4 | import { AttractionsList } from "../attractions-list"
5 | import { AttractionsMap } from "../attractions-map"
6 |
7 | const ROOT: ViewStyle = {
8 | paddingTop: spacing.large,
9 | backgroundColor: palette.portGoreLight,
10 | }
11 |
12 | export class NearbyAttractions extends React.Component<{}, {}> {
13 | render() {
14 | const fullWidth = {
15 | width: getScreenWidth(),
16 | }
17 | return (
18 |
19 |
20 |
21 |
22 | )
23 | }
24 | }
25 |
--------------------------------------------------------------------------------
/app/components/photobomb/index.ts:
--------------------------------------------------------------------------------
1 | export * from "./photobomb"
2 |
--------------------------------------------------------------------------------
/app/components/photobomb/photobomb.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 { Photobomb } from "./photobomb"
5 |
6 | storiesOf("Code of Photobomb", module)
7 | .addDecorator(fn => {fn()})
8 | .add("Presets", () => (
9 |
10 |
11 |
12 |
13 |
14 | ))
15 |
--------------------------------------------------------------------------------
/app/components/photobomb/photobomb.tsx:
--------------------------------------------------------------------------------
1 | import * as React from "react"
2 | import { Linking, Platform } from "react-native"
3 | import { ContentLink } from "../content-link"
4 |
5 | export function Photobomb() {
6 | const onPressLink = () => {
7 | const url = Platform.select({
8 | ios: "https://itunes.apple.com/us/app/chain-react-photobomb/id1253527606?mt=8",
9 | android: "https://play.google.com/store/apps/details?id=com.echobind.chainreactphotobomb",
10 | })
11 | Linking.openURL(url)
12 | }
13 |
14 | return (
15 |
21 | )
22 | }
23 |
--------------------------------------------------------------------------------
/app/components/presented-by/bg.team.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/infinitered/ChainReactApp2019/9dcc2a2b460f35607099c8f563048692f740ed80/app/components/presented-by/bg.team.png
--------------------------------------------------------------------------------
/app/components/presented-by/bg.team@2x.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/infinitered/ChainReactApp2019/9dcc2a2b460f35607099c8f563048692f740ed80/app/components/presented-by/bg.team@2x.png
--------------------------------------------------------------------------------
/app/components/presented-by/bg.team@3x.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/infinitered/ChainReactApp2019/9dcc2a2b460f35607099c8f563048692f740ed80/app/components/presented-by/bg.team@3x.png
--------------------------------------------------------------------------------
/app/components/presented-by/index.ts:
--------------------------------------------------------------------------------
1 | export * from "./presented-by"
2 |
--------------------------------------------------------------------------------
/app/components/presented-by/logo.infinitered.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/infinitered/ChainReactApp2019/9dcc2a2b460f35607099c8f563048692f740ed80/app/components/presented-by/logo.infinitered.png
--------------------------------------------------------------------------------
/app/components/presented-by/logo.infinitered@2x.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/infinitered/ChainReactApp2019/9dcc2a2b460f35607099c8f563048692f740ed80/app/components/presented-by/logo.infinitered@2x.png
--------------------------------------------------------------------------------
/app/components/presented-by/logo.infinitered@3x.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/infinitered/ChainReactApp2019/9dcc2a2b460f35607099c8f563048692f740ed80/app/components/presented-by/logo.infinitered@3x.png
--------------------------------------------------------------------------------
/app/components/presented-by/presented-by.presets.ts:
--------------------------------------------------------------------------------
1 | import { ViewStyle } from "react-native"
2 | import { spacing } from "../../theme"
3 |
4 | /**
5 | * All text will start off looking like this.
6 | */
7 | const BASE_VIEW: ViewStyle = {
8 | flex: 1,
9 | justifyContent: "center",
10 | marginTop: spacing.ginormous + spacing.large,
11 | paddingHorizontal: spacing.large,
12 | }
13 |
14 | /**
15 | * All the variations of text styling within the app.
16 | *
17 | * You want to customize these to whatever you need in your app.
18 | */
19 | export const presentedByPresets = {
20 | /**
21 | * A smaller piece of secondard information.
22 | */
23 | default: { ...BASE_VIEW } as ViewStyle,
24 | }
25 |
26 | /**
27 | * A list of preset names.
28 | */
29 | export type PresentedByPresetNames = keyof typeof presentedByPresets
30 |
--------------------------------------------------------------------------------
/app/components/presented-by/presented-by.props.ts:
--------------------------------------------------------------------------------
1 | import { ViewProperties } from "react-native"
2 |
3 | export interface PresentedByProps extends ViewProperties {}
4 |
--------------------------------------------------------------------------------
/app/components/presented-by/presented-by.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 { PresentedBy } from "./presented-by"
5 |
6 | storiesOf("PresentedBy", module)
7 | .addDecorator(fn => {fn()})
8 | .add("Presets", () => (
9 |
10 |
11 |
12 |
13 |
14 | ))
15 |
--------------------------------------------------------------------------------
/app/components/rating/index.ts:
--------------------------------------------------------------------------------
1 | export * from "./rating"
2 |
--------------------------------------------------------------------------------
/app/components/rating/rating.props.ts:
--------------------------------------------------------------------------------
1 | export interface RatingProps {
2 | rating?: number
3 | }
4 |
--------------------------------------------------------------------------------
/app/components/rating/rating.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 { Rating } from "./rating"
5 |
6 | storiesOf("Rating", module)
7 | .addDecorator(fn => {fn()})
8 | .add("Props", () => (
9 |
10 |
11 |
12 |
13 |
14 |
15 |
16 |
17 |
18 |
19 |
20 |
21 |
22 |
23 |
24 |
25 |
26 |
27 |
28 |
29 | ))
30 |
--------------------------------------------------------------------------------
/app/components/rating/rating.tsx:
--------------------------------------------------------------------------------
1 | import * as React from "react"
2 | import { Image, ImageStyle, View, ViewStyle } from "react-native"
3 | import { RatingProps } from "./rating.props"
4 |
5 | const filled = require("./star.filled.png")
6 | const empty = require("./star.unfilled.png")
7 |
8 | const ROOT: ViewStyle = {
9 | marginLeft: "auto",
10 | flexDirection: "row",
11 | width: 17 * 5,
12 | height: 11,
13 | }
14 | const STAR: ImageStyle = {
15 | width: 11,
16 | height: 11,
17 | marginLeft: 6,
18 | }
19 |
20 | export class Rating extends React.Component {
21 | render() {
22 | const stars = ["1", "2", "3", "4", "5"]
23 | return {stars.map(i => this.renderImage(i))}
24 | }
25 |
26 | renderImage = i => {
27 | const { rating } = this.props
28 | const source = i <= rating ? filled : empty
29 | return
30 | }
31 | }
32 |
--------------------------------------------------------------------------------
/app/components/rating/star.filled.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/infinitered/ChainReactApp2019/9dcc2a2b460f35607099c8f563048692f740ed80/app/components/rating/star.filled.png
--------------------------------------------------------------------------------
/app/components/rating/star.filled@2x.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/infinitered/ChainReactApp2019/9dcc2a2b460f35607099c8f563048692f740ed80/app/components/rating/star.filled@2x.png
--------------------------------------------------------------------------------
/app/components/rating/star.filled@3x.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/infinitered/ChainReactApp2019/9dcc2a2b460f35607099c8f563048692f740ed80/app/components/rating/star.filled@3x.png
--------------------------------------------------------------------------------
/app/components/rating/star.unfilled.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/infinitered/ChainReactApp2019/9dcc2a2b460f35607099c8f563048692f740ed80/app/components/rating/star.unfilled.png
--------------------------------------------------------------------------------
/app/components/rating/star.unfilled@2x.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/infinitered/ChainReactApp2019/9dcc2a2b460f35607099c8f563048692f740ed80/app/components/rating/star.unfilled@2x.png
--------------------------------------------------------------------------------
/app/components/rating/star.unfilled@3x.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/infinitered/ChainReactApp2019/9dcc2a2b460f35607099c8f563048692f740ed80/app/components/rating/star.unfilled@3x.png
--------------------------------------------------------------------------------
/app/components/schedule-cell/images/afterparty-G2i.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/infinitered/ChainReactApp2019/9dcc2a2b460f35607099c8f563048692f740ed80/app/components/schedule-cell/images/afterparty-G2i.png
--------------------------------------------------------------------------------
/app/components/schedule-cell/images/coffee-small.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/infinitered/ChainReactApp2019/9dcc2a2b460f35607099c8f563048692f740ed80/app/components/schedule-cell/images/coffee-small.png
--------------------------------------------------------------------------------
/app/components/schedule-cell/images/lunch.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/infinitered/ChainReactApp2019/9dcc2a2b460f35607099c8f563048692f740ed80/app/components/schedule-cell/images/lunch.png
--------------------------------------------------------------------------------
/app/components/schedule-cell/images/panelist.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/infinitered/ChainReactApp2019/9dcc2a2b460f35607099c8f563048692f740ed80/app/components/schedule-cell/images/panelist.png
--------------------------------------------------------------------------------
/app/components/schedule-cell/images/registration.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/infinitered/ChainReactApp2019/9dcc2a2b460f35607099c8f563048692f740ed80/app/components/schedule-cell/images/registration.png
--------------------------------------------------------------------------------
/app/components/schedule-cell/images/sponsor-bumped.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/infinitered/ChainReactApp2019/9dcc2a2b460f35607099c8f563048692f740ed80/app/components/schedule-cell/images/sponsor-bumped.png
--------------------------------------------------------------------------------
/app/components/schedule-cell/index.ts:
--------------------------------------------------------------------------------
1 | export * from "./schedule-cell"
2 |
--------------------------------------------------------------------------------
/app/components/schedule-cell/schedule-cell.props.ts:
--------------------------------------------------------------------------------
1 | import { ViewProperties } from "react-native"
2 | import { ScheduleCellPresetNames } from "./schedule-cell.presets"
3 |
4 | export interface ScheduleCellProps extends ViewProperties {
5 | // Index to determine if cell is even or odd
6 | index: number
7 | talk: any
8 | preset?: ScheduleCellPresetNames
9 | onPress: Function
10 | noTime?: boolean
11 | }
12 |
--------------------------------------------------------------------------------
/app/components/schedule-nav/index.ts:
--------------------------------------------------------------------------------
1 | export * from "./schedule-nav"
2 |
--------------------------------------------------------------------------------
/app/components/schedule-nav/schedule-nav.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 { ScheduleNav } from "./schedule-nav"
5 |
6 | const onSelected = (selected: string) =>
7 | void storiesOf("ScheduleNav", module)
8 | .addDecorator(fn => {fn()})
9 | .add("Presets", () => (
10 |
11 |
12 |
13 |
14 |
15 |
16 |
17 |
18 |
19 |
20 |
21 | ))
22 |
--------------------------------------------------------------------------------
/app/components/screen/index.ts:
--------------------------------------------------------------------------------
1 | export * from "./screen"
2 |
--------------------------------------------------------------------------------
/app/components/screen/screen.props.ts:
--------------------------------------------------------------------------------
1 | import { ImageURISource, ViewProperties, ViewStyle } from "react-native"
2 | import { ScreenPresets } from "./screen.presets"
3 |
4 | export interface ScreenProps extends ViewProperties {
5 | /**
6 | * Children components.
7 | */
8 | children?: React.ReactNode
9 |
10 | /**
11 | * An optional style override useful for padding & margin.
12 | */
13 | style?: ViewStyle
14 |
15 | /**
16 | * One of the different types of presets.
17 | */
18 | preset?: ScreenPresets
19 |
20 | /**
21 | * An optional background image
22 | */
23 | backgroundImage?: ImageURISource
24 |
25 | /**
26 | * An optional background color
27 | */
28 | backgroundColor?: string
29 | }
30 |
--------------------------------------------------------------------------------
/app/components/social-button/index.ts:
--------------------------------------------------------------------------------
1 | export * from "./social-button"
2 |
--------------------------------------------------------------------------------
/app/components/social-button/social-button.props.ts:
--------------------------------------------------------------------------------
1 | import { TouchableOpacityProperties } from "react-native"
2 | import { SocialButtonPresetNames } from "./social-button.presets"
3 |
4 | export interface SocialButtonProps extends TouchableOpacityProperties {
5 | /**
6 | * One of the different types of text presets.
7 | */
8 | preset?: SocialButtonPresetNames
9 | link: string
10 | }
11 |
--------------------------------------------------------------------------------
/app/components/social-button/social-button.tsx:
--------------------------------------------------------------------------------
1 | import * as React from "react"
2 | import { Image, Linking, TouchableHighlight } from "react-native"
3 | import { imageSource, imageStyle, viewPresets } from "./social-button.presets"
4 | import { SocialButtonProps } from "./social-button.props"
5 | import { HIT_SLOP } from "../../theme"
6 |
7 | /**
8 | * For your text displaying needs.
9 | *
10 | * This component is a HOC over the built-in React Native one.
11 | */
12 | export function SocialButton(props: SocialButtonProps) {
13 | // grab the props
14 | const { preset = "website", link, style, ...rest } = props
15 |
16 | const image = imageSource[preset] || imageSource["website"]
17 |
18 | return (
19 | Linking.openURL(link)}
22 | hitSlop={HIT_SLOP}
23 | {...rest}
24 | >
25 |
26 |
27 | )
28 | }
29 |
--------------------------------------------------------------------------------
/app/components/social-button/social_icon_assets/dribbble.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/infinitered/ChainReactApp2019/9dcc2a2b460f35607099c8f563048692f740ed80/app/components/social-button/social_icon_assets/dribbble.png
--------------------------------------------------------------------------------
/app/components/social-button/social_icon_assets/dribbble@2x.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/infinitered/ChainReactApp2019/9dcc2a2b460f35607099c8f563048692f740ed80/app/components/social-button/social_icon_assets/dribbble@2x.png
--------------------------------------------------------------------------------
/app/components/social-button/social_icon_assets/dribbble@3x.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/infinitered/ChainReactApp2019/9dcc2a2b460f35607099c8f563048692f740ed80/app/components/social-button/social_icon_assets/dribbble@3x.png
--------------------------------------------------------------------------------
/app/components/social-button/social_icon_assets/email.icon.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/infinitered/ChainReactApp2019/9dcc2a2b460f35607099c8f563048692f740ed80/app/components/social-button/social_icon_assets/email.icon.png
--------------------------------------------------------------------------------
/app/components/social-button/social_icon_assets/email.icon@2x.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/infinitered/ChainReactApp2019/9dcc2a2b460f35607099c8f563048692f740ed80/app/components/social-button/social_icon_assets/email.icon@2x.png
--------------------------------------------------------------------------------
/app/components/social-button/social_icon_assets/email.icon@3x.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/infinitered/ChainReactApp2019/9dcc2a2b460f35607099c8f563048692f740ed80/app/components/social-button/social_icon_assets/email.icon@3x.png
--------------------------------------------------------------------------------
/app/components/social-button/social_icon_assets/facebook.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/infinitered/ChainReactApp2019/9dcc2a2b460f35607099c8f563048692f740ed80/app/components/social-button/social_icon_assets/facebook.png
--------------------------------------------------------------------------------
/app/components/social-button/social_icon_assets/facebook@2x.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/infinitered/ChainReactApp2019/9dcc2a2b460f35607099c8f563048692f740ed80/app/components/social-button/social_icon_assets/facebook@2x.png
--------------------------------------------------------------------------------
/app/components/social-button/social_icon_assets/facebook@3x.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/infinitered/ChainReactApp2019/9dcc2a2b460f35607099c8f563048692f740ed80/app/components/social-button/social_icon_assets/facebook@3x.png
--------------------------------------------------------------------------------
/app/components/social-button/social_icon_assets/github.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/infinitered/ChainReactApp2019/9dcc2a2b460f35607099c8f563048692f740ed80/app/components/social-button/social_icon_assets/github.png
--------------------------------------------------------------------------------
/app/components/social-button/social_icon_assets/github@2x.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/infinitered/ChainReactApp2019/9dcc2a2b460f35607099c8f563048692f740ed80/app/components/social-button/social_icon_assets/github@2x.png
--------------------------------------------------------------------------------
/app/components/social-button/social_icon_assets/github@3x.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/infinitered/ChainReactApp2019/9dcc2a2b460f35607099c8f563048692f740ed80/app/components/social-button/social_icon_assets/github@3x.png
--------------------------------------------------------------------------------
/app/components/social-button/social_icon_assets/instagram.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/infinitered/ChainReactApp2019/9dcc2a2b460f35607099c8f563048692f740ed80/app/components/social-button/social_icon_assets/instagram.png
--------------------------------------------------------------------------------
/app/components/social-button/social_icon_assets/instagram@2x.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/infinitered/ChainReactApp2019/9dcc2a2b460f35607099c8f563048692f740ed80/app/components/social-button/social_icon_assets/instagram@2x.png
--------------------------------------------------------------------------------
/app/components/social-button/social_icon_assets/instagram@3x.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/infinitered/ChainReactApp2019/9dcc2a2b460f35607099c8f563048692f740ed80/app/components/social-button/social_icon_assets/instagram@3x.png
--------------------------------------------------------------------------------
/app/components/social-button/social_icon_assets/link.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/infinitered/ChainReactApp2019/9dcc2a2b460f35607099c8f563048692f740ed80/app/components/social-button/social_icon_assets/link.png
--------------------------------------------------------------------------------
/app/components/social-button/social_icon_assets/link@2x.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/infinitered/ChainReactApp2019/9dcc2a2b460f35607099c8f563048692f740ed80/app/components/social-button/social_icon_assets/link@2x.png
--------------------------------------------------------------------------------
/app/components/social-button/social_icon_assets/link@3x.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/infinitered/ChainReactApp2019/9dcc2a2b460f35607099c8f563048692f740ed80/app/components/social-button/social_icon_assets/link@3x.png
--------------------------------------------------------------------------------
/app/components/social-button/social_icon_assets/medium.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/infinitered/ChainReactApp2019/9dcc2a2b460f35607099c8f563048692f740ed80/app/components/social-button/social_icon_assets/medium.png
--------------------------------------------------------------------------------
/app/components/social-button/social_icon_assets/medium@2x.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/infinitered/ChainReactApp2019/9dcc2a2b460f35607099c8f563048692f740ed80/app/components/social-button/social_icon_assets/medium@2x.png
--------------------------------------------------------------------------------
/app/components/social-button/social_icon_assets/medium@3x.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/infinitered/ChainReactApp2019/9dcc2a2b460f35607099c8f563048692f740ed80/app/components/social-button/social_icon_assets/medium@3x.png
--------------------------------------------------------------------------------
/app/components/social-button/social_icon_assets/phone.icon.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/infinitered/ChainReactApp2019/9dcc2a2b460f35607099c8f563048692f740ed80/app/components/social-button/social_icon_assets/phone.icon.png
--------------------------------------------------------------------------------
/app/components/social-button/social_icon_assets/phone.icon@2x.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/infinitered/ChainReactApp2019/9dcc2a2b460f35607099c8f563048692f740ed80/app/components/social-button/social_icon_assets/phone.icon@2x.png
--------------------------------------------------------------------------------
/app/components/social-button/social_icon_assets/phone.icon@3x.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/infinitered/ChainReactApp2019/9dcc2a2b460f35607099c8f563048692f740ed80/app/components/social-button/social_icon_assets/phone.icon@3x.png
--------------------------------------------------------------------------------
/app/components/social-button/social_icon_assets/slack.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/infinitered/ChainReactApp2019/9dcc2a2b460f35607099c8f563048692f740ed80/app/components/social-button/social_icon_assets/slack.png
--------------------------------------------------------------------------------
/app/components/social-button/social_icon_assets/slack@2x.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/infinitered/ChainReactApp2019/9dcc2a2b460f35607099c8f563048692f740ed80/app/components/social-button/social_icon_assets/slack@2x.png
--------------------------------------------------------------------------------
/app/components/social-button/social_icon_assets/slack@3x.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/infinitered/ChainReactApp2019/9dcc2a2b460f35607099c8f563048692f740ed80/app/components/social-button/social_icon_assets/slack@3x.png
--------------------------------------------------------------------------------
/app/components/social-button/social_icon_assets/twitter.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/infinitered/ChainReactApp2019/9dcc2a2b460f35607099c8f563048692f740ed80/app/components/social-button/social_icon_assets/twitter.png
--------------------------------------------------------------------------------
/app/components/social-button/social_icon_assets/twitter@2x.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/infinitered/ChainReactApp2019/9dcc2a2b460f35607099c8f563048692f740ed80/app/components/social-button/social_icon_assets/twitter@2x.png
--------------------------------------------------------------------------------
/app/components/social-button/social_icon_assets/twitter@3x.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/infinitered/ChainReactApp2019/9dcc2a2b460f35607099c8f563048692f740ed80/app/components/social-button/social_icon_assets/twitter@3x.png
--------------------------------------------------------------------------------
/app/components/speaker-bio/index.ts:
--------------------------------------------------------------------------------
1 | export * from "./speaker-bio"
2 |
--------------------------------------------------------------------------------
/app/components/speaker-image/img.speaker.lg.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/infinitered/ChainReactApp2019/9dcc2a2b460f35607099c8f563048692f740ed80/app/components/speaker-image/img.speaker.lg.png
--------------------------------------------------------------------------------
/app/components/speaker-image/img.speaker.lg@2x.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/infinitered/ChainReactApp2019/9dcc2a2b460f35607099c8f563048692f740ed80/app/components/speaker-image/img.speaker.lg@2x.png
--------------------------------------------------------------------------------
/app/components/speaker-image/img.speaker.lg@3x.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/infinitered/ChainReactApp2019/9dcc2a2b460f35607099c8f563048692f740ed80/app/components/speaker-image/img.speaker.lg@3x.png
--------------------------------------------------------------------------------
/app/components/speaker-image/index.ts:
--------------------------------------------------------------------------------
1 | export * from "./speaker-image"
2 |
--------------------------------------------------------------------------------
/app/components/sponsor-logo/index.ts:
--------------------------------------------------------------------------------
1 | export * from "./sponsor-logo"
2 |
--------------------------------------------------------------------------------
/app/components/sponsor-logo/logos/Additional_AWS_AA_AfterParty.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/infinitered/ChainReactApp2019/9dcc2a2b460f35607099c8f563048692f740ed80/app/components/sponsor-logo/logos/Additional_AWS_AA_AfterParty.png
--------------------------------------------------------------------------------
/app/components/sponsor-logo/logos/Additional_AWS_AA_AfterParty@2x.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/infinitered/ChainReactApp2019/9dcc2a2b460f35607099c8f563048692f740ed80/app/components/sponsor-logo/logos/Additional_AWS_AA_AfterParty@2x.png
--------------------------------------------------------------------------------
/app/components/sponsor-logo/logos/Additional_AWS_AA_AfterParty@3x.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/infinitered/ChainReactApp2019/9dcc2a2b460f35607099c8f563048692f740ed80/app/components/sponsor-logo/logos/Additional_AWS_AA_AfterParty@3x.png
--------------------------------------------------------------------------------
/app/components/sponsor-logo/logos/Additional_DevLifts_Streches.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/infinitered/ChainReactApp2019/9dcc2a2b460f35607099c8f563048692f740ed80/app/components/sponsor-logo/logos/Additional_DevLifts_Streches.png
--------------------------------------------------------------------------------
/app/components/sponsor-logo/logos/Additional_DevLifts_Streches@2x.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/infinitered/ChainReactApp2019/9dcc2a2b460f35607099c8f563048692f740ed80/app/components/sponsor-logo/logos/Additional_DevLifts_Streches@2x.png
--------------------------------------------------------------------------------
/app/components/sponsor-logo/logos/Additional_DevLifts_Streches@3x.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/infinitered/ChainReactApp2019/9dcc2a2b460f35607099c8f563048692f740ed80/app/components/sponsor-logo/logos/Additional_DevLifts_Streches@3x.png
--------------------------------------------------------------------------------
/app/components/sponsor-logo/logos/Additional_G2i.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/infinitered/ChainReactApp2019/9dcc2a2b460f35607099c8f563048692f740ed80/app/components/sponsor-logo/logos/Additional_G2i.png
--------------------------------------------------------------------------------
/app/components/sponsor-logo/logos/Additional_G2i@2x.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/infinitered/ChainReactApp2019/9dcc2a2b460f35607099c8f563048692f740ed80/app/components/sponsor-logo/logos/Additional_G2i@2x.png
--------------------------------------------------------------------------------
/app/components/sponsor-logo/logos/Additional_G2i@3x.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/infinitered/ChainReactApp2019/9dcc2a2b460f35607099c8f563048692f740ed80/app/components/sponsor-logo/logos/Additional_G2i@3x.png
--------------------------------------------------------------------------------
/app/components/sponsor-logo/logos/Additional_Playstation_Wifi.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/infinitered/ChainReactApp2019/9dcc2a2b460f35607099c8f563048692f740ed80/app/components/sponsor-logo/logos/Additional_Playstation_Wifi.png
--------------------------------------------------------------------------------
/app/components/sponsor-logo/logos/Additional_Playstation_Wifi@2x.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/infinitered/ChainReactApp2019/9dcc2a2b460f35607099c8f563048692f740ed80/app/components/sponsor-logo/logos/Additional_Playstation_Wifi@2x.png
--------------------------------------------------------------------------------
/app/components/sponsor-logo/logos/Additional_Playstation_Wifi@3x.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/infinitered/ChainReactApp2019/9dcc2a2b460f35607099c8f563048692f740ed80/app/components/sponsor-logo/logos/Additional_Playstation_Wifi@3x.png
--------------------------------------------------------------------------------
/app/components/sponsor-logo/logos/Additional_SquarespaceBadges.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/infinitered/ChainReactApp2019/9dcc2a2b460f35607099c8f563048692f740ed80/app/components/sponsor-logo/logos/Additional_SquarespaceBadges.png
--------------------------------------------------------------------------------
/app/components/sponsor-logo/logos/Additional_SquarespaceBadges@2x.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/infinitered/ChainReactApp2019/9dcc2a2b460f35607099c8f563048692f740ed80/app/components/sponsor-logo/logos/Additional_SquarespaceBadges@2x.png
--------------------------------------------------------------------------------
/app/components/sponsor-logo/logos/Additional_SquarespaceBadges@3x.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/infinitered/ChainReactApp2019/9dcc2a2b460f35607099c8f563048692f740ed80/app/components/sponsor-logo/logos/Additional_SquarespaceBadges@3x.png
--------------------------------------------------------------------------------
/app/components/sponsor-logo/logos/Additional_bumped-alt@1x.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/infinitered/ChainReactApp2019/9dcc2a2b460f35607099c8f563048692f740ed80/app/components/sponsor-logo/logos/Additional_bumped-alt@1x.png
--------------------------------------------------------------------------------
/app/components/sponsor-logo/logos/Additional_bumped-alt@2x.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/infinitered/ChainReactApp2019/9dcc2a2b460f35607099c8f563048692f740ed80/app/components/sponsor-logo/logos/Additional_bumped-alt@2x.png
--------------------------------------------------------------------------------
/app/components/sponsor-logo/logos/Additional_bumped-alt@3x.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/infinitered/ChainReactApp2019/9dcc2a2b460f35607099c8f563048692f740ed80/app/components/sponsor-logo/logos/Additional_bumped-alt@3x.png
--------------------------------------------------------------------------------
/app/components/sponsor-logo/logos/Bronze_Airship.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/infinitered/ChainReactApp2019/9dcc2a2b460f35607099c8f563048692f740ed80/app/components/sponsor-logo/logos/Bronze_Airship.png
--------------------------------------------------------------------------------
/app/components/sponsor-logo/logos/Bronze_Airship@2x.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/infinitered/ChainReactApp2019/9dcc2a2b460f35607099c8f563048692f740ed80/app/components/sponsor-logo/logos/Bronze_Airship@2x.png
--------------------------------------------------------------------------------
/app/components/sponsor-logo/logos/Bronze_Airship@3x.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/infinitered/ChainReactApp2019/9dcc2a2b460f35607099c8f563048692f740ed80/app/components/sponsor-logo/logos/Bronze_Airship@3x.png
--------------------------------------------------------------------------------
/app/components/sponsor-logo/logos/Bronze_BuilderX.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/infinitered/ChainReactApp2019/9dcc2a2b460f35607099c8f563048692f740ed80/app/components/sponsor-logo/logos/Bronze_BuilderX.png
--------------------------------------------------------------------------------
/app/components/sponsor-logo/logos/Bronze_BuilderX@2x.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/infinitered/ChainReactApp2019/9dcc2a2b460f35607099c8f563048692f740ed80/app/components/sponsor-logo/logos/Bronze_BuilderX@2x.png
--------------------------------------------------------------------------------
/app/components/sponsor-logo/logos/Bronze_BuilderX@3x.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/infinitered/ChainReactApp2019/9dcc2a2b460f35607099c8f563048692f740ed80/app/components/sponsor-logo/logos/Bronze_BuilderX@3x.png
--------------------------------------------------------------------------------
/app/components/sponsor-logo/logos/Bronze_Cambia.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/infinitered/ChainReactApp2019/9dcc2a2b460f35607099c8f563048692f740ed80/app/components/sponsor-logo/logos/Bronze_Cambia.png
--------------------------------------------------------------------------------
/app/components/sponsor-logo/logos/Bronze_Cambia@2x.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/infinitered/ChainReactApp2019/9dcc2a2b460f35607099c8f563048692f740ed80/app/components/sponsor-logo/logos/Bronze_Cambia@2x.png
--------------------------------------------------------------------------------
/app/components/sponsor-logo/logos/Bronze_Cambia@3x.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/infinitered/ChainReactApp2019/9dcc2a2b460f35607099c8f563048692f740ed80/app/components/sponsor-logo/logos/Bronze_Cambia@3x.png
--------------------------------------------------------------------------------
/app/components/sponsor-logo/logos/Bronze_Echobind.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/infinitered/ChainReactApp2019/9dcc2a2b460f35607099c8f563048692f740ed80/app/components/sponsor-logo/logos/Bronze_Echobind.png
--------------------------------------------------------------------------------
/app/components/sponsor-logo/logos/Bronze_Echobind@2x.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/infinitered/ChainReactApp2019/9dcc2a2b460f35607099c8f563048692f740ed80/app/components/sponsor-logo/logos/Bronze_Echobind@2x.png
--------------------------------------------------------------------------------
/app/components/sponsor-logo/logos/Bronze_Echobind@3x.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/infinitered/ChainReactApp2019/9dcc2a2b460f35607099c8f563048692f740ed80/app/components/sponsor-logo/logos/Bronze_Echobind@3x.png
--------------------------------------------------------------------------------
/app/components/sponsor-logo/logos/Bronze_Facebook.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/infinitered/ChainReactApp2019/9dcc2a2b460f35607099c8f563048692f740ed80/app/components/sponsor-logo/logos/Bronze_Facebook.png
--------------------------------------------------------------------------------
/app/components/sponsor-logo/logos/Bronze_Facebook@2x.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/infinitered/ChainReactApp2019/9dcc2a2b460f35607099c8f563048692f740ed80/app/components/sponsor-logo/logos/Bronze_Facebook@2x.png
--------------------------------------------------------------------------------
/app/components/sponsor-logo/logos/Bronze_Facebook@3x.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/infinitered/ChainReactApp2019/9dcc2a2b460f35607099c8f563048692f740ed80/app/components/sponsor-logo/logos/Bronze_Facebook@3x.png
--------------------------------------------------------------------------------
/app/components/sponsor-logo/logos/Bronze_G2i.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/infinitered/ChainReactApp2019/9dcc2a2b460f35607099c8f563048692f740ed80/app/components/sponsor-logo/logos/Bronze_G2i.png
--------------------------------------------------------------------------------
/app/components/sponsor-logo/logos/Bronze_G2i@2x.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/infinitered/ChainReactApp2019/9dcc2a2b460f35607099c8f563048692f740ed80/app/components/sponsor-logo/logos/Bronze_G2i@2x.png
--------------------------------------------------------------------------------
/app/components/sponsor-logo/logos/Bronze_G2i@3x.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/infinitered/ChainReactApp2019/9dcc2a2b460f35607099c8f563048692f740ed80/app/components/sponsor-logo/logos/Bronze_G2i@3x.png
--------------------------------------------------------------------------------
/app/components/sponsor-logo/logos/Bronze_Modus.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/infinitered/ChainReactApp2019/9dcc2a2b460f35607099c8f563048692f740ed80/app/components/sponsor-logo/logos/Bronze_Modus.png
--------------------------------------------------------------------------------
/app/components/sponsor-logo/logos/Bronze_Modus@2x.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/infinitered/ChainReactApp2019/9dcc2a2b460f35607099c8f563048692f740ed80/app/components/sponsor-logo/logos/Bronze_Modus@2x.png
--------------------------------------------------------------------------------
/app/components/sponsor-logo/logos/Bronze_Modus@3x.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/infinitered/ChainReactApp2019/9dcc2a2b460f35607099c8f563048692f740ed80/app/components/sponsor-logo/logos/Bronze_Modus@3x.png
--------------------------------------------------------------------------------
/app/components/sponsor-logo/logos/Gold_Callstack.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/infinitered/ChainReactApp2019/9dcc2a2b460f35607099c8f563048692f740ed80/app/components/sponsor-logo/logos/Gold_Callstack.png
--------------------------------------------------------------------------------
/app/components/sponsor-logo/logos/Gold_Callstack@2x.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/infinitered/ChainReactApp2019/9dcc2a2b460f35607099c8f563048692f740ed80/app/components/sponsor-logo/logos/Gold_Callstack@2x.png
--------------------------------------------------------------------------------
/app/components/sponsor-logo/logos/Gold_Callstack@3x.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/infinitered/ChainReactApp2019/9dcc2a2b460f35607099c8f563048692f740ed80/app/components/sponsor-logo/logos/Gold_Callstack@3x.png
--------------------------------------------------------------------------------
/app/components/sponsor-logo/logos/Gold_Coinbase.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/infinitered/ChainReactApp2019/9dcc2a2b460f35607099c8f563048692f740ed80/app/components/sponsor-logo/logos/Gold_Coinbase.png
--------------------------------------------------------------------------------
/app/components/sponsor-logo/logos/Gold_Coinbase@2x.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/infinitered/ChainReactApp2019/9dcc2a2b460f35607099c8f563048692f740ed80/app/components/sponsor-logo/logos/Gold_Coinbase@2x.png
--------------------------------------------------------------------------------
/app/components/sponsor-logo/logos/Gold_Coinbase@3x.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/infinitered/ChainReactApp2019/9dcc2a2b460f35607099c8f563048692f740ed80/app/components/sponsor-logo/logos/Gold_Coinbase@3x.png
--------------------------------------------------------------------------------
/app/components/sponsor-logo/logos/Gold_Sentry.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/infinitered/ChainReactApp2019/9dcc2a2b460f35607099c8f563048692f740ed80/app/components/sponsor-logo/logos/Gold_Sentry.png
--------------------------------------------------------------------------------
/app/components/sponsor-logo/logos/Gold_Sentry@2x.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/infinitered/ChainReactApp2019/9dcc2a2b460f35607099c8f563048692f740ed80/app/components/sponsor-logo/logos/Gold_Sentry@2x.png
--------------------------------------------------------------------------------
/app/components/sponsor-logo/logos/Gold_Sentry@3x.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/infinitered/ChainReactApp2019/9dcc2a2b460f35607099c8f563048692f740ed80/app/components/sponsor-logo/logos/Gold_Sentry@3x.png
--------------------------------------------------------------------------------
/app/components/sponsor-logo/logos/Platinum_AWS.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/infinitered/ChainReactApp2019/9dcc2a2b460f35607099c8f563048692f740ed80/app/components/sponsor-logo/logos/Platinum_AWS.png
--------------------------------------------------------------------------------
/app/components/sponsor-logo/logos/Platinum_AWS@2x.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/infinitered/ChainReactApp2019/9dcc2a2b460f35607099c8f563048692f740ed80/app/components/sponsor-logo/logos/Platinum_AWS@2x.png
--------------------------------------------------------------------------------
/app/components/sponsor-logo/logos/Platinum_AWS@3x.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/infinitered/ChainReactApp2019/9dcc2a2b460f35607099c8f563048692f740ed80/app/components/sponsor-logo/logos/Platinum_AWS@3x.png
--------------------------------------------------------------------------------
/app/components/sponsor-logo/logos/Platinum_Amazon_Alexa.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/infinitered/ChainReactApp2019/9dcc2a2b460f35607099c8f563048692f740ed80/app/components/sponsor-logo/logos/Platinum_Amazon_Alexa.png
--------------------------------------------------------------------------------
/app/components/sponsor-logo/logos/Platinum_Amazon_Alexa@2x.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/infinitered/ChainReactApp2019/9dcc2a2b460f35607099c8f563048692f740ed80/app/components/sponsor-logo/logos/Platinum_Amazon_Alexa@2x.png
--------------------------------------------------------------------------------
/app/components/sponsor-logo/logos/Platinum_Amazon_Alexa@3x.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/infinitered/ChainReactApp2019/9dcc2a2b460f35607099c8f563048692f740ed80/app/components/sponsor-logo/logos/Platinum_Amazon_Alexa@3x.png
--------------------------------------------------------------------------------
/app/components/sponsor-logo/logos/Silver_AmazonWebService.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/infinitered/ChainReactApp2019/9dcc2a2b460f35607099c8f563048692f740ed80/app/components/sponsor-logo/logos/Silver_AmazonWebService.png
--------------------------------------------------------------------------------
/app/components/sponsor-logo/logos/Silver_AmazonWebService@2x.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/infinitered/ChainReactApp2019/9dcc2a2b460f35607099c8f563048692f740ed80/app/components/sponsor-logo/logos/Silver_AmazonWebService@2x.png
--------------------------------------------------------------------------------
/app/components/sponsor-logo/logos/Silver_AmazonWebService@3x.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/infinitered/ChainReactApp2019/9dcc2a2b460f35607099c8f563048692f740ed80/app/components/sponsor-logo/logos/Silver_AmazonWebService@3x.png
--------------------------------------------------------------------------------
/app/components/sponsor-logo/logos/Silver_Bugsnag.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/infinitered/ChainReactApp2019/9dcc2a2b460f35607099c8f563048692f740ed80/app/components/sponsor-logo/logos/Silver_Bugsnag.png
--------------------------------------------------------------------------------
/app/components/sponsor-logo/logos/Silver_Bugsnag@2x.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/infinitered/ChainReactApp2019/9dcc2a2b460f35607099c8f563048692f740ed80/app/components/sponsor-logo/logos/Silver_Bugsnag@2x.png
--------------------------------------------------------------------------------
/app/components/sponsor-logo/logos/Silver_Bugsnag@3x.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/infinitered/ChainReactApp2019/9dcc2a2b460f35607099c8f563048692f740ed80/app/components/sponsor-logo/logos/Silver_Bugsnag@3x.png
--------------------------------------------------------------------------------
/app/components/sponsor-logo/logos/Silver_GoDaddy.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/infinitered/ChainReactApp2019/9dcc2a2b460f35607099c8f563048692f740ed80/app/components/sponsor-logo/logos/Silver_GoDaddy.png
--------------------------------------------------------------------------------
/app/components/sponsor-logo/logos/Silver_GoDaddy@2x.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/infinitered/ChainReactApp2019/9dcc2a2b460f35607099c8f563048692f740ed80/app/components/sponsor-logo/logos/Silver_GoDaddy@2x.png
--------------------------------------------------------------------------------
/app/components/sponsor-logo/logos/Silver_GoDaddy@3x.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/infinitered/ChainReactApp2019/9dcc2a2b460f35607099c8f563048692f740ed80/app/components/sponsor-logo/logos/Silver_GoDaddy@3x.png
--------------------------------------------------------------------------------
/app/components/sponsor-logo/logos/Silver_ServerlessGuru.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/infinitered/ChainReactApp2019/9dcc2a2b460f35607099c8f563048692f740ed80/app/components/sponsor-logo/logos/Silver_ServerlessGuru.png
--------------------------------------------------------------------------------
/app/components/sponsor-logo/logos/Silver_ServerlessGuru@2x.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/infinitered/ChainReactApp2019/9dcc2a2b460f35607099c8f563048692f740ed80/app/components/sponsor-logo/logos/Silver_ServerlessGuru@2x.png
--------------------------------------------------------------------------------
/app/components/sponsor-logo/logos/Silver_ServerlessGuru@3x.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/infinitered/ChainReactApp2019/9dcc2a2b460f35607099c8f563048692f740ed80/app/components/sponsor-logo/logos/Silver_ServerlessGuru@3x.png
--------------------------------------------------------------------------------
/app/components/sponsor-logo/sponsor-logo.props.ts:
--------------------------------------------------------------------------------
1 | import { ImageStyle, ViewProperties } from "react-native"
2 | import { SponsorLogoSizePresetNames, SponsorNames } from "./sponsor-logo.presets"
3 |
4 | export interface SponsorLogoProps extends ViewProperties {
5 | size?: SponsorLogoSizePresetNames
6 | sponsor?: SponsorNames
7 | style?: ImageStyle
8 | subtitle?: string
9 | }
10 |
--------------------------------------------------------------------------------
/app/components/sponsor-logo/sponsor-logo.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 { SponsorLogo } from "./sponsor-logo"
5 |
6 | storiesOf("SponsorLogo", module)
7 | .addDecorator(fn => {fn()})
8 | .add("Presets", () => (
9 |
10 |
11 |
12 |
13 |
14 |
15 |
16 |
17 |
18 |
19 |
20 |
21 |
22 |
23 |
24 |
25 |
26 | ))
27 |
--------------------------------------------------------------------------------
/app/components/sponsors/index.ts:
--------------------------------------------------------------------------------
1 | export * from "./sponsors"
2 |
--------------------------------------------------------------------------------
/app/components/sponsors/sponsors.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 { Sponsors } from "./sponsors"
5 |
6 | storiesOf("Sponsors", module)
7 | .addDecorator(fn => {fn()})
8 | .add("Presets", () => (
9 |
10 |
11 |
12 |
13 |
14 | ))
15 |
--------------------------------------------------------------------------------
/app/components/survey-link/index.ts:
--------------------------------------------------------------------------------
1 | export * from "./survey-link"
2 |
--------------------------------------------------------------------------------
/app/components/survey-link/survey-link.tsx:
--------------------------------------------------------------------------------
1 | import * as React from "react"
2 | import { Linking } from "react-native"
3 | import { ContentLink } from "../content-link"
4 |
5 | export function SurveyLink() {
6 | const onPressLink = () => {
7 | Linking.openURL("https://www.surveymonkey.com/r/ChainReact2019")
8 | }
9 |
10 | return (
11 |
17 | )
18 | }
19 |
--------------------------------------------------------------------------------
/app/components/switch/index.ts:
--------------------------------------------------------------------------------
1 | export * from "./switch"
2 |
--------------------------------------------------------------------------------
/app/components/switch/switch.props.ts:
--------------------------------------------------------------------------------
1 | import { ViewStyle } from "react-native"
2 |
3 | export interface SwitchProps {
4 | /**
5 | * On or off.
6 | */
7 | value?: boolean
8 | /**
9 | * Fires when the on/off switch triggers.
10 | *
11 | * @param newValue The new value we're switching to.
12 | */
13 | onToggle?: (newValue: boolean) => void
14 |
15 | /**
16 | * A style override to apply to the container. Useful for margins and paddings.
17 | */
18 | style?: ViewStyle
19 |
20 | /**
21 | * Additional track styling when on.
22 | */
23 | trackOnStyle?: ViewStyle
24 |
25 | /**
26 | * Additional track styling when off.
27 | */
28 | trackOffStyle?: ViewStyle
29 |
30 | /**
31 | * Additional thumb styling when on.
32 | */
33 | thumbOnStyle?: ViewStyle
34 |
35 | /**
36 | * Additional thumb styling when off.
37 | */
38 | thumbOffStyle?: ViewStyle
39 | }
40 |
--------------------------------------------------------------------------------
/app/components/tab-icon/icons/calendar.active.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/infinitered/ChainReactApp2019/9dcc2a2b460f35607099c8f563048692f740ed80/app/components/tab-icon/icons/calendar.active.png
--------------------------------------------------------------------------------
/app/components/tab-icon/icons/calendar.active@2x.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/infinitered/ChainReactApp2019/9dcc2a2b460f35607099c8f563048692f740ed80/app/components/tab-icon/icons/calendar.active@2x.png
--------------------------------------------------------------------------------
/app/components/tab-icon/icons/calendar.active@3x.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/infinitered/ChainReactApp2019/9dcc2a2b460f35607099c8f563048692f740ed80/app/components/tab-icon/icons/calendar.active@3x.png
--------------------------------------------------------------------------------
/app/components/tab-icon/icons/calendar.inactive.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/infinitered/ChainReactApp2019/9dcc2a2b460f35607099c8f563048692f740ed80/app/components/tab-icon/icons/calendar.inactive.png
--------------------------------------------------------------------------------
/app/components/tab-icon/icons/calendar.inactive@2x.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/infinitered/ChainReactApp2019/9dcc2a2b460f35607099c8f563048692f740ed80/app/components/tab-icon/icons/calendar.inactive@2x.png
--------------------------------------------------------------------------------
/app/components/tab-icon/icons/calendar.inactive@3x.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/infinitered/ChainReactApp2019/9dcc2a2b460f35607099c8f563048692f740ed80/app/components/tab-icon/icons/calendar.inactive@3x.png
--------------------------------------------------------------------------------
/app/components/tab-icon/icons/info.active.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/infinitered/ChainReactApp2019/9dcc2a2b460f35607099c8f563048692f740ed80/app/components/tab-icon/icons/info.active.png
--------------------------------------------------------------------------------
/app/components/tab-icon/icons/info.active@2x.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/infinitered/ChainReactApp2019/9dcc2a2b460f35607099c8f563048692f740ed80/app/components/tab-icon/icons/info.active@2x.png
--------------------------------------------------------------------------------
/app/components/tab-icon/icons/info.active@3x.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/infinitered/ChainReactApp2019/9dcc2a2b460f35607099c8f563048692f740ed80/app/components/tab-icon/icons/info.active@3x.png
--------------------------------------------------------------------------------
/app/components/tab-icon/icons/info.inactive.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/infinitered/ChainReactApp2019/9dcc2a2b460f35607099c8f563048692f740ed80/app/components/tab-icon/icons/info.inactive.png
--------------------------------------------------------------------------------
/app/components/tab-icon/icons/info.inactive@2x.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/infinitered/ChainReactApp2019/9dcc2a2b460f35607099c8f563048692f740ed80/app/components/tab-icon/icons/info.inactive@2x.png
--------------------------------------------------------------------------------
/app/components/tab-icon/icons/info.inactive@3x.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/infinitered/ChainReactApp2019/9dcc2a2b460f35607099c8f563048692f740ed80/app/components/tab-icon/icons/info.inactive@3x.png
--------------------------------------------------------------------------------
/app/components/tab-icon/icons/map.active.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/infinitered/ChainReactApp2019/9dcc2a2b460f35607099c8f563048692f740ed80/app/components/tab-icon/icons/map.active.png
--------------------------------------------------------------------------------
/app/components/tab-icon/icons/map.active@2x.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/infinitered/ChainReactApp2019/9dcc2a2b460f35607099c8f563048692f740ed80/app/components/tab-icon/icons/map.active@2x.png
--------------------------------------------------------------------------------
/app/components/tab-icon/icons/map.active@3x.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/infinitered/ChainReactApp2019/9dcc2a2b460f35607099c8f563048692f740ed80/app/components/tab-icon/icons/map.active@3x.png
--------------------------------------------------------------------------------
/app/components/tab-icon/icons/map.inactive.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/infinitered/ChainReactApp2019/9dcc2a2b460f35607099c8f563048692f740ed80/app/components/tab-icon/icons/map.inactive.png
--------------------------------------------------------------------------------
/app/components/tab-icon/icons/map.inactive@2x.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/infinitered/ChainReactApp2019/9dcc2a2b460f35607099c8f563048692f740ed80/app/components/tab-icon/icons/map.inactive@2x.png
--------------------------------------------------------------------------------
/app/components/tab-icon/icons/map.inactive@3x.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/infinitered/ChainReactApp2019/9dcc2a2b460f35607099c8f563048692f740ed80/app/components/tab-icon/icons/map.inactive@3x.png
--------------------------------------------------------------------------------
/app/components/tab-icon/icons/profile.active.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/infinitered/ChainReactApp2019/9dcc2a2b460f35607099c8f563048692f740ed80/app/components/tab-icon/icons/profile.active.png
--------------------------------------------------------------------------------
/app/components/tab-icon/icons/profile.active@2x.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/infinitered/ChainReactApp2019/9dcc2a2b460f35607099c8f563048692f740ed80/app/components/tab-icon/icons/profile.active@2x.png
--------------------------------------------------------------------------------
/app/components/tab-icon/icons/profile.active@3x.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/infinitered/ChainReactApp2019/9dcc2a2b460f35607099c8f563048692f740ed80/app/components/tab-icon/icons/profile.active@3x.png
--------------------------------------------------------------------------------
/app/components/tab-icon/icons/profile.inactive.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/infinitered/ChainReactApp2019/9dcc2a2b460f35607099c8f563048692f740ed80/app/components/tab-icon/icons/profile.inactive.png
--------------------------------------------------------------------------------
/app/components/tab-icon/icons/profile.inactive@2x.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/infinitered/ChainReactApp2019/9dcc2a2b460f35607099c8f563048692f740ed80/app/components/tab-icon/icons/profile.inactive@2x.png
--------------------------------------------------------------------------------
/app/components/tab-icon/icons/profile.inactive@3x.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/infinitered/ChainReactApp2019/9dcc2a2b460f35607099c8f563048692f740ed80/app/components/tab-icon/icons/profile.inactive@3x.png
--------------------------------------------------------------------------------
/app/components/tab-icon/index.ts:
--------------------------------------------------------------------------------
1 | export * from "./tab-icon"
2 |
--------------------------------------------------------------------------------
/app/components/tab-icon/tab-icon.tsx:
--------------------------------------------------------------------------------
1 | import * as React from "react"
2 | import { Image, ImageStyle } from "react-native"
3 |
4 | const ICON: ImageStyle = {
5 | position: "absolute",
6 | alignItems: "center",
7 | justifyContent: "center",
8 | maxHeight: 24,
9 | maxWidth: 24,
10 | }
11 |
12 | const TAB_ICONS: any = {
13 | schedule: require("./icons/calendar.inactive.png"),
14 | scheduleActive: require("./icons/calendar.active.png"),
15 | venue: require("./icons/map.inactive.png"),
16 | venueActive: require("./icons/map.active.png"),
17 | info: require("./icons/info.inactive.png"),
18 | infoActive: require("./icons/info.active.png"),
19 | profile: require("./icons/profile.inactive.png"),
20 | profileActive: require("./icons/profile.active.png"),
21 | }
22 |
23 | export const TabIcon = ({ routeName, focused }) => {
24 | const tabName = focused ? `${routeName}Active` : routeName
25 |
26 | return
27 | }
28 |
--------------------------------------------------------------------------------
/app/components/talk-title/index.ts:
--------------------------------------------------------------------------------
1 | export * from "./talk-title"
2 |
--------------------------------------------------------------------------------
/app/components/text-field/index.ts:
--------------------------------------------------------------------------------
1 | export * from "./text-field"
2 |
--------------------------------------------------------------------------------
/app/components/text-field/text-field.props.ts:
--------------------------------------------------------------------------------
1 | import { TextInputProperties, TextStyle, ViewStyle } from "react-native"
2 |
3 | export interface TextFieldProps extends TextInputProperties {
4 | /**
5 | * The placeholder i18n key.
6 | */
7 | placeholderTx?: string
8 |
9 | /**
10 | * The Placeholder text if no placeholderTx is provided.
11 | */
12 | placeholder?: string
13 |
14 | /**
15 | * The label i18n key.
16 | */
17 | labelTx?: string
18 |
19 | /**
20 | * The label text if no labelTx is provided.
21 | */
22 | label?: string
23 |
24 | /**
25 | * Optional container style overrides useful for margins & padding.
26 | */
27 | style?: ViewStyle
28 |
29 | /**
30 | * Optional style overrides for the input.
31 | */
32 | inputStyle?: TextStyle
33 |
34 | /**
35 | * Various look & feels.
36 | */
37 | preset?: "default"
38 | }
39 |
--------------------------------------------------------------------------------
/app/components/text/index.ts:
--------------------------------------------------------------------------------
1 | export * from "./text"
2 |
--------------------------------------------------------------------------------
/app/components/text/text.props.ts:
--------------------------------------------------------------------------------
1 | import { TextProperties, TextStyle } from "react-native"
2 | import { TextPresets } from "./text.presets"
3 |
4 | export interface TextProps extends TextProperties {
5 | /**
6 | * Children components.
7 | */
8 | children?: React.ReactNode
9 |
10 | /**
11 | * Text which is looked up via i18n.
12 | */
13 | tx?: string
14 |
15 | /**
16 | * The text to display if not using `tx` or nested components.
17 | */
18 | text?: string
19 |
20 | /**
21 | * An optional style override useful for padding & margin.
22 | */
23 | style?: TextStyle
24 |
25 | /**
26 | * One of the different types of text presets.
27 | */
28 | preset?: TextPresets
29 | }
30 |
--------------------------------------------------------------------------------
/app/components/text/text.tsx:
--------------------------------------------------------------------------------
1 | import * as React from "react"
2 | import { Text as ReactNativeText } from "react-native"
3 | import { presets } from "./text.presets"
4 | import { TextProps } from "./text.props"
5 | import { translate } from "../../i18n"
6 |
7 | /**
8 | * For your text displaying needs.
9 | *
10 | * This component is a HOC over the built-in React Native one.
11 | */
12 | export function Text(props: TextProps) {
13 | // grab the props
14 | const { preset = "default", tx, text, children, style: styleOverride, ...rest } = props
15 |
16 | // figure out which content to use
17 | const i18nText = tx && translate(tx)
18 | const content = i18nText || text || children
19 |
20 | // assemble the style
21 | const presetToUse = presets[preset] || presets.default
22 | const style = { ...presetToUse, ...styleOverride }
23 |
24 | return (
25 |
26 | {content}
27 |
28 | )
29 | }
30 |
--------------------------------------------------------------------------------
/app/components/title-bar/icon.back-arrow.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/infinitered/ChainReactApp2019/9dcc2a2b460f35607099c8f563048692f740ed80/app/components/title-bar/icon.back-arrow.png
--------------------------------------------------------------------------------
/app/components/title-bar/icon.back-arrow@2x.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/infinitered/ChainReactApp2019/9dcc2a2b460f35607099c8f563048692f740ed80/app/components/title-bar/icon.back-arrow@2x.png
--------------------------------------------------------------------------------
/app/components/title-bar/icon.back-arrow@3x.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/infinitered/ChainReactApp2019/9dcc2a2b460f35607099c8f563048692f740ed80/app/components/title-bar/icon.back-arrow@3x.png
--------------------------------------------------------------------------------
/app/components/title-bar/index.ts:
--------------------------------------------------------------------------------
1 | export * from "./title-bar"
2 |
--------------------------------------------------------------------------------
/app/components/title-bar/title-bar.tsx:
--------------------------------------------------------------------------------
1 | import * as React from "react"
2 | import { NavigationScreenProps } from "react-navigation"
3 | import { View, ViewStyle, Image, TextStyle, ImageStyle } from "react-native"
4 | import { Text } from "../text"
5 | import { palette, spacing } from "../../theme"
6 |
7 | const ROOT: ViewStyle = {
8 | flexDirection: "row",
9 | backgroundColor: palette.portGore,
10 | padding: spacing.large + spacing.tiny,
11 | }
12 |
13 | const BACK_BUTTON: ImageStyle = {
14 | width: 15,
15 | height: 15,
16 | }
17 |
18 | const TITLE: TextStyle = {}
19 |
20 | export interface TitleBarNavigationParams {
21 | title?: string
22 | }
23 | export interface TitleBarProps extends NavigationScreenProps {}
24 |
25 | export class TitleBar extends React.Component {
26 | render() {
27 | return (
28 |
29 |
30 |
31 |
32 | )
33 | }
34 | }
35 |
--------------------------------------------------------------------------------
/app/components/travel-option/Car.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/infinitered/ChainReactApp2019/9dcc2a2b460f35607099c8f563048692f740ed80/app/components/travel-option/Car.png
--------------------------------------------------------------------------------
/app/components/travel-option/Car@2x.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/infinitered/ChainReactApp2019/9dcc2a2b460f35607099c8f563048692f740ed80/app/components/travel-option/Car@2x.png
--------------------------------------------------------------------------------
/app/components/travel-option/Car@3x.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/infinitered/ChainReactApp2019/9dcc2a2b460f35607099c8f563048692f740ed80/app/components/travel-option/Car@3x.png
--------------------------------------------------------------------------------
/app/components/travel-option/Lightrail.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/infinitered/ChainReactApp2019/9dcc2a2b460f35607099c8f563048692f740ed80/app/components/travel-option/Lightrail.png
--------------------------------------------------------------------------------
/app/components/travel-option/Lightrail@2x.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/infinitered/ChainReactApp2019/9dcc2a2b460f35607099c8f563048692f740ed80/app/components/travel-option/Lightrail@2x.png
--------------------------------------------------------------------------------
/app/components/travel-option/Lightrail@3x.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/infinitered/ChainReactApp2019/9dcc2a2b460f35607099c8f563048692f740ed80/app/components/travel-option/Lightrail@3x.png
--------------------------------------------------------------------------------
/app/components/travel-option/index.ts:
--------------------------------------------------------------------------------
1 | export * from "./travel-option"
2 |
--------------------------------------------------------------------------------
/app/components/travel-option/travel-option.presets.ts:
--------------------------------------------------------------------------------
1 | export const presets = {
2 | rideShare: require("./Car.png"),
3 | massTransit: require("./Lightrail.png"),
4 | }
5 |
6 | export type TravelOptionPresets = keyof typeof presets
7 |
--------------------------------------------------------------------------------
/app/components/travel-option/travel-option.props.ts:
--------------------------------------------------------------------------------
1 | import { TextProperties } from "react-native"
2 | import { TravelOptionPresets } from "./travel-option.presets"
3 |
4 | export interface TravelOptionProps extends TextProperties {
5 | preset?: TravelOptionPresets
6 | }
7 |
--------------------------------------------------------------------------------
/app/components/travel-option/travel-option.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 { TravelOption } from "./travel-option"
5 |
6 | storiesOf("TravelOption", module)
7 | .addDecorator(fn => {fn()})
8 | .add("Presets", () => (
9 |
10 |
11 |
12 |
13 |
14 |
15 |
16 |
17 | ))
18 |
--------------------------------------------------------------------------------
/app/components/travel-option/travel-option.tsx:
--------------------------------------------------------------------------------
1 | import * as React from "react"
2 | import { Image, TextStyle, View, ViewStyle } from "react-native"
3 | import { Text } from "../text"
4 | import { spacing } from "../../theme"
5 | import { presets } from "./travel-option.presets"
6 | import { TravelOptionProps } from "./travel-option.props"
7 |
8 | const ROOT: ViewStyle = {
9 | marginTop: spacing.extraLarge,
10 | flexDirection: "row",
11 | }
12 |
13 | const TEXT: TextStyle = {
14 | marginLeft: spacing.large,
15 | paddingVertical: spacing.tiny,
16 | }
17 |
18 | export class TravelOption extends React.Component {
19 | render() {
20 | const { preset } = this.props
21 | return (
22 |
23 |
24 |
29 |
30 | )
31 | }
32 | }
33 |
--------------------------------------------------------------------------------
/app/components/wi-fi/index.ts:
--------------------------------------------------------------------------------
1 | export * from "./wi-fi"
2 |
--------------------------------------------------------------------------------
/app/components/wi-fi/sponsor-logo/playstation.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/infinitered/ChainReactApp2019/9dcc2a2b460f35607099c8f563048692f740ed80/app/components/wi-fi/sponsor-logo/playstation.png
--------------------------------------------------------------------------------
/app/components/wi-fi/sponsor-logo/playstation@2x.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/infinitered/ChainReactApp2019/9dcc2a2b460f35607099c8f563048692f740ed80/app/components/wi-fi/sponsor-logo/playstation@2x.png
--------------------------------------------------------------------------------
/app/components/wi-fi/sponsor-logo/playstation@3x.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/infinitered/ChainReactApp2019/9dcc2a2b460f35607099c8f563048692f740ed80/app/components/wi-fi/sponsor-logo/playstation@3x.png
--------------------------------------------------------------------------------
/app/components/wi-fi/wi-fi.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 { WiFi } from "./wi-fi"
5 |
6 | storiesOf("WiFi", module)
7 | .addDecorator(fn => {fn()})
8 | .add("Presets", () => (
9 |
10 |
11 |
12 |
13 |
14 | ))
15 |
--------------------------------------------------------------------------------
/app/env.ts:
--------------------------------------------------------------------------------
1 | //
2 | // Load environment variables in.
3 | //
4 | // IMPORTANT:
5 | //
6 | // 1. These might be null, so fallback to sane defaults accordingly where you
7 | // make use of these.
8 | //
9 | // 2. You must use this syntax: process.env.NAME_OF_ENV_VAR. No funny stuff
10 | // or the babel plugin won't work.
11 | //
12 | // 3. You must whitelist each one in your `.babelrc` file.
13 | //
14 | // GOTCHA:
15 | //
16 | // Babel will cache things extensively. In dev, to bust this cache to pick up
17 | // new environment variable values, just change this file and resave it.
18 | //
19 | // Or run `yarn start --reset-cache` to nuke babel's cache entirely
20 | // (overkill).
21 | //
22 | // ----------------------------------------------------------------------------
23 |
24 | // tell typescript that there will be a the `node.js` process global variable used
25 | declare var process: any
26 |
27 | /**
28 | * An example importing an environment variable.
29 | */
30 | export const API: string | undefined = process.env.API
31 |
--------------------------------------------------------------------------------
/app/i18n/i18n.ts:
--------------------------------------------------------------------------------
1 | import I18n from "i18n-js"
2 | import * as RNLocalize from "react-native-localize"
3 |
4 | const en = require("./locales/en.json")
5 | const ja = require("./locales/ja.json")
6 |
7 | const locales = RNLocalize.getLocales()
8 |
9 | if (Array.isArray(locales)) {
10 | I18n.locale = locales[0].languageTag
11 | }
12 |
13 | I18n.fallbacks = true
14 | I18n.translations = {
15 | en,
16 | ja,
17 | }
18 |
19 | export default I18n
20 |
--------------------------------------------------------------------------------
/app/i18n/index.ts:
--------------------------------------------------------------------------------
1 | import "./i18n"
2 | export * from "./translate"
3 |
--------------------------------------------------------------------------------
/app/i18n/translate.ts:
--------------------------------------------------------------------------------
1 | import I18n from "./i18n"
2 |
3 | /**
4 | * Translates text.
5 | *
6 | * @param key The i18n key.
7 | */
8 | export function translate(key: string) {
9 | return key ? I18n.t(key) : null
10 | }
11 |
12 | /**
13 | * Translates with variables.
14 | *
15 | * @param key The i18n key
16 | * @param vars Additional values sure to replace.
17 | */
18 | export function translateWithVars(key: string, vars: object) {
19 | return key ? I18n.t(key, vars) : null
20 | }
21 |
--------------------------------------------------------------------------------
/app/models/environment.ts:
--------------------------------------------------------------------------------
1 | import { Reactotron } from "../services/reactotron"
2 | import { Api } from "../services/api"
3 | import DefaultClient from "apollo-boost"
4 |
5 | /**
6 | * The environment is a place where services and shared dependencies between
7 | * models live. They are made available to every model via dependency injection.
8 | */
9 | export class Environment {
10 | /**
11 | * Reactotron is only available in dev.
12 | */
13 | reactotron: Reactotron
14 |
15 | /**
16 | * Our api.
17 | */
18 | api: Api
19 |
20 | /**
21 | * Our graphql client.
22 | */
23 | graphql: DefaultClient
24 | }
25 |
--------------------------------------------------------------------------------
/app/models/navigation-store/index.ts:
--------------------------------------------------------------------------------
1 | export * from "./navigation-store"
2 |
--------------------------------------------------------------------------------
/app/models/root-store/index.ts:
--------------------------------------------------------------------------------
1 | export * from "./root-store"
2 | export * from "./setup-root-store"
3 |
--------------------------------------------------------------------------------
/app/models/root-store/root-store.ts:
--------------------------------------------------------------------------------
1 | import { types } from "mobx-state-tree"
2 | import { NavigationStoreModel } from "../navigation-store"
3 | import { createTalkStoreModel } from "../talk-store"
4 |
5 | /**
6 | * An RootStore model.
7 | */
8 | export const RootStoreModel = types.model("RootStore").props({
9 | navigationStore: types.optional(NavigationStoreModel, {}),
10 | talkStore: createTalkStoreModel(),
11 | })
12 |
13 | /**
14 | * The RootStore instance.
15 | */
16 | export type RootStore = typeof RootStoreModel.Type
17 |
18 | /**
19 | * The data of an RootStore.
20 | */
21 | export type RootStoreSnapshot = typeof RootStoreModel.SnapshotType
22 |
--------------------------------------------------------------------------------
/app/models/setting/index.ts:
--------------------------------------------------------------------------------
1 | export * from "./setting"
2 |
--------------------------------------------------------------------------------
/app/models/setting/setting.ts:
--------------------------------------------------------------------------------
1 | import { types } from "mobx-state-tree"
2 |
3 | export const SettingModel = types.model().props({
4 | name: types.maybeNull(types.string),
5 | value: types.maybeNull(types.boolean),
6 | })
7 | export type SettingSnapshot = typeof SettingModel.SnapshotType
8 |
--------------------------------------------------------------------------------
/app/models/speaker/index.ts:
--------------------------------------------------------------------------------
1 | export * from "./speaker"
2 |
--------------------------------------------------------------------------------
/app/models/speaker/speaker.ts:
--------------------------------------------------------------------------------
1 | import { types } from "mobx-state-tree"
2 |
3 | export const SpeakerModel = types.model().props({
4 | id: types.identifier,
5 | name: types.maybeNull(types.string),
6 | employer: types.maybeNull(types.string),
7 | image: types.maybeNull(types.string),
8 | facebook: types.maybeNull(types.string),
9 | github: types.maybeNull(types.string),
10 | twitter: types.maybeNull(types.string),
11 | medium: types.maybeNull(types.string),
12 | instagram: types.maybeNull(types.string),
13 | dribbble: types.maybeNull(types.string),
14 | websites: types.maybeNull(types.array(types.string)),
15 | bio: types.maybeNull(types.string),
16 | })
17 |
--------------------------------------------------------------------------------
/app/models/talk-store/index.ts:
--------------------------------------------------------------------------------
1 | export * from "./talk-store"
2 |
--------------------------------------------------------------------------------
/app/models/talk/index.ts:
--------------------------------------------------------------------------------
1 | export * from "./talk"
2 |
--------------------------------------------------------------------------------
/app/models/talk/talk.ts:
--------------------------------------------------------------------------------
1 | import { types } from "mobx-state-tree"
2 | import { SpeakerModel } from "../speaker"
3 |
4 | export const TalkModel = types.model().props({
5 | id: types.identifier,
6 | startTime: types.maybeNull(types.string),
7 | endTime: types.maybeNull(types.string),
8 | title: types.maybeNull(types.string),
9 | description: types.maybeNull(types.string),
10 | image: types.maybeNull(types.string),
11 | speakers: types.maybeNull(types.array(SpeakerModel)),
12 | menuItems: types.maybeNull(types.array(types.string)),
13 | sponsor: types.maybeNull(types.string),
14 | talkType: types.maybeNull(types.string),
15 | location: types.maybeNull(types.string),
16 | track: types.maybeNull(types.string),
17 | discussionEnabled: types.maybeNull(types.boolean),
18 | prerequisites: types.maybeNull(types.array(types.string)),
19 | })
20 |
21 | export type Talk = typeof TalkModel.Type
22 |
23 | export type TalkSnapshot = typeof TalkModel.SnapshotType
24 |
--------------------------------------------------------------------------------
/app/navigation/index.ts:
--------------------------------------------------------------------------------
1 | export * from "./stateful-navigator"
2 |
--------------------------------------------------------------------------------
/app/navigation/navigation-config.ts:
--------------------------------------------------------------------------------
1 | export interface NavigationConfig {
2 | /**
3 | * A list of routes from which we're allowed to leave the app when
4 | * the user presses the back button on Android.
5 | *
6 | * Anything not on this list will be a standard `back` action in
7 | * react-navigation.
8 | */
9 | exitRoutes: string[]
10 | }
11 |
12 | /**
13 | * The default navigation config for this app. You'd only really need
14 | * to override this for testing.
15 | */
16 | export const DEFAULT_NAVIGATION_CONFIG: NavigationConfig = {
17 | exitRoutes: ["firstExample"],
18 | }
19 |
--------------------------------------------------------------------------------
/app/navigation/root-navigator.ts:
--------------------------------------------------------------------------------
1 | import { createStackNavigator } from "react-navigation"
2 | import { MainNavigator } from "./main-navigator"
3 | import { WelcomeScreen } from "../screens/welcome-screen"
4 |
5 | export const RootNavigator = createStackNavigator(
6 | {
7 | welcome: { screen: WelcomeScreen },
8 | mainStack: { screen: MainNavigator },
9 | },
10 | {
11 | initialRouteName: "welcome",
12 | headerMode: "none",
13 | navigationOptions: { gesturesEnabled: false },
14 | cardStyle: { shadowColor: "transparent" },
15 | },
16 | )
17 |
--------------------------------------------------------------------------------
/app/screens/code-of-conduct/index.ts:
--------------------------------------------------------------------------------
1 | export * from "./code-of-conduct-screen"
2 |
--------------------------------------------------------------------------------
/app/screens/info-screen/index.ts:
--------------------------------------------------------------------------------
1 | export * from "./info-screen"
2 |
--------------------------------------------------------------------------------
/app/screens/profile-screen/index.ts:
--------------------------------------------------------------------------------
1 | export * from "./profile-screen"
2 |
--------------------------------------------------------------------------------
/app/screens/schedule-screen/index.ts:
--------------------------------------------------------------------------------
1 | export * from "./schedule-screen"
2 |
--------------------------------------------------------------------------------
/app/screens/talk-details/image-dimension-helpers.ts:
--------------------------------------------------------------------------------
1 | import { spacing } from "../../theme"
2 | const IMAGE_ASPECT_RATIO = 1.5
3 |
4 | export const calculateImageDimensions = screenWidth => {
5 | const imageWidth = 0.92 * (screenWidth - 2 * spacing.large) // 92% of the available container, screen width minus twice the screen padding.
6 | const imageHeight = imageWidth / IMAGE_ASPECT_RATIO
7 | return {
8 | height: imageHeight,
9 | width: imageWidth,
10 | }
11 | }
12 |
--------------------------------------------------------------------------------
/app/screens/talk-details/images/bumped.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/infinitered/ChainReactApp2019/9dcc2a2b460f35607099c8f563048692f740ed80/app/screens/talk-details/images/bumped.png
--------------------------------------------------------------------------------
/app/screens/talk-details/images/img.afterparty-g2i.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/infinitered/ChainReactApp2019/9dcc2a2b460f35607099c8f563048692f740ed80/app/screens/talk-details/images/img.afterparty-g2i.png
--------------------------------------------------------------------------------
/app/screens/talk-details/images/img.afterparty-squarespace.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/infinitered/ChainReactApp2019/9dcc2a2b460f35607099c8f563048692f740ed80/app/screens/talk-details/images/img.afterparty-squarespace.png
--------------------------------------------------------------------------------
/app/screens/talk-details/images/img.break.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/infinitered/ChainReactApp2019/9dcc2a2b460f35607099c8f563048692f740ed80/app/screens/talk-details/images/img.break.png
--------------------------------------------------------------------------------
/app/screens/talk-details/images/img.event.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/infinitered/ChainReactApp2019/9dcc2a2b460f35607099c8f563048692f740ed80/app/screens/talk-details/images/img.event.png
--------------------------------------------------------------------------------
/app/screens/talk-details/images/img.event@2x.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/infinitered/ChainReactApp2019/9dcc2a2b460f35607099c8f563048692f740ed80/app/screens/talk-details/images/img.event@2x.png
--------------------------------------------------------------------------------
/app/screens/talk-details/images/img.event@3x.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/infinitered/ChainReactApp2019/9dcc2a2b460f35607099c8f563048692f740ed80/app/screens/talk-details/images/img.event@3x.png
--------------------------------------------------------------------------------
/app/screens/talk-details/images/img.partylogo.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/infinitered/ChainReactApp2019/9dcc2a2b460f35607099c8f563048692f740ed80/app/screens/talk-details/images/img.partylogo.png
--------------------------------------------------------------------------------
/app/screens/talk-details/images/img.partylogo@2x.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/infinitered/ChainReactApp2019/9dcc2a2b460f35607099c8f563048692f740ed80/app/screens/talk-details/images/img.partylogo@2x.png
--------------------------------------------------------------------------------
/app/screens/talk-details/images/img.partylogo@3x.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/infinitered/ChainReactApp2019/9dcc2a2b460f35607099c8f563048692f740ed80/app/screens/talk-details/images/img.partylogo@3x.png
--------------------------------------------------------------------------------
/app/screens/talk-details/images/sponsor-bumped-thumb.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/infinitered/ChainReactApp2019/9dcc2a2b460f35607099c8f563048692f740ed80/app/screens/talk-details/images/sponsor-bumped-thumb.png
--------------------------------------------------------------------------------
/app/screens/talk-details/images/sponsor-bumped.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/infinitered/ChainReactApp2019/9dcc2a2b460f35607099c8f563048692f740ed80/app/screens/talk-details/images/sponsor-bumped.png
--------------------------------------------------------------------------------
/app/screens/talk-details/index.ts:
--------------------------------------------------------------------------------
1 | export * from "./talk-details-screen"
2 |
--------------------------------------------------------------------------------
/app/screens/venue-screen/index.ts:
--------------------------------------------------------------------------------
1 | export * from "./venue-screen"
2 |
--------------------------------------------------------------------------------
/app/screens/welcome-screen/bg.welcome.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/infinitered/ChainReactApp2019/9dcc2a2b460f35607099c8f563048692f740ed80/app/screens/welcome-screen/bg.welcome.png
--------------------------------------------------------------------------------
/app/screens/welcome-screen/bg.welcome@2x.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/infinitered/ChainReactApp2019/9dcc2a2b460f35607099c8f563048692f740ed80/app/screens/welcome-screen/bg.welcome@2x.png
--------------------------------------------------------------------------------
/app/screens/welcome-screen/bg.welcome@3x.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/infinitered/ChainReactApp2019/9dcc2a2b460f35607099c8f563048692f740ed80/app/screens/welcome-screen/bg.welcome@3x.png
--------------------------------------------------------------------------------
/app/screens/welcome-screen/index.ts:
--------------------------------------------------------------------------------
1 | export * from "./welcome-screen"
2 |
--------------------------------------------------------------------------------
/app/services/api/api-config.ts:
--------------------------------------------------------------------------------
1 | import * as env from "../../env"
2 |
3 | /**
4 | * The options used to configure the API.
5 | */
6 | export interface ApiConfig {
7 | /**
8 | * The URL of the api.
9 | */
10 | url: string
11 |
12 | /**
13 | * Milliseconds before we timeout the request.
14 | */
15 | timeout: number
16 | }
17 |
18 | /**
19 | * The default configuration for the app.
20 | */
21 | export const DEFAULT_API_CONFIG: ApiConfig = {
22 | url: env.API || "https://api.github.com",
23 | timeout: 10000,
24 | }
25 |
--------------------------------------------------------------------------------
/app/services/api/api.types.ts:
--------------------------------------------------------------------------------
1 | import { GeneralApiProblem } from "./api-problem"
2 |
3 | export interface Repo {
4 | id: number
5 | name: string
6 | owner: string
7 | }
8 |
9 | export type GetRepoResult = { kind: "ok"; repo: Repo } | GeneralApiProblem
10 |
--------------------------------------------------------------------------------
/app/services/api/index.ts:
--------------------------------------------------------------------------------
1 | export * from "./api"
2 | export * from "./api.types"
3 |
--------------------------------------------------------------------------------
/app/services/reactotron/index.ts:
--------------------------------------------------------------------------------
1 | export * from "./reactotron"
2 |
--------------------------------------------------------------------------------
/app/services/reactotron/reactotron-config.ts:
--------------------------------------------------------------------------------
1 | export interface ReactotronConfig {
2 | /** The name of the app. */
3 | name?: string
4 | /** The host to connect to: default 'localhost'. */
5 | host?: string
6 | /** Should we use async storage */
7 | useAsyncStorage?: boolean
8 | /** Should we clear Reactotron when load? */
9 | clearOnLoad?: boolean
10 | /** Root state logging. */
11 | state?: {
12 | /** log the initial data that we put into the state on startup? */
13 | initial?: boolean
14 | /** log snapshot changes. */
15 | snapshots?: boolean,
16 | }
17 | }
18 |
19 | /**
20 | * The default Reactotron configuration.
21 | */
22 | export const DEFAULT_REACTOTRON_CONFIG: ReactotronConfig = {
23 | clearOnLoad: true,
24 | host: "localhost",
25 | useAsyncStorage: false,
26 | state: {
27 | initial: true,
28 | snapshots: false,
29 | },
30 | }
31 |
--------------------------------------------------------------------------------
/app/services/reactotron/with-custom-actions-reactotron.ts:
--------------------------------------------------------------------------------
1 | import { clear } from "../../utils/storage"
2 | import { RootStore } from "../../models/root-store"
3 |
4 | export type GetRootStore = () => RootStore
5 |
6 | export const withCustomActions = (getRootStore: GetRootStore) => {
7 | return tron => {
8 | return {
9 | onCommand: async command => {
10 | if (command.type !== "custom") return
11 | switch (command.payload) {
12 | case "resetStore":
13 | console.tron.log("clearing store")
14 | clear()
15 | break
16 | case "resetNavigation":
17 | console.tron.log("resetting navigation store")
18 | getRootStore().navigationStore.reset()
19 | break
20 | }
21 | },
22 | }
23 | }
24 | }
25 |
--------------------------------------------------------------------------------
/app/theme/fonts/GothamRnd-Bold.otf:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/infinitered/ChainReactApp2019/9dcc2a2b460f35607099c8f563048692f740ed80/app/theme/fonts/GothamRnd-Bold.otf
--------------------------------------------------------------------------------
/app/theme/fonts/GothamRnd-BoldItal.otf:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/infinitered/ChainReactApp2019/9dcc2a2b460f35607099c8f563048692f740ed80/app/theme/fonts/GothamRnd-BoldItal.otf
--------------------------------------------------------------------------------
/app/theme/fonts/GothamRnd-Book.otf:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/infinitered/ChainReactApp2019/9dcc2a2b460f35607099c8f563048692f740ed80/app/theme/fonts/GothamRnd-Book.otf
--------------------------------------------------------------------------------
/app/theme/fonts/GothamRnd-BookItal.otf:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/infinitered/ChainReactApp2019/9dcc2a2b460f35607099c8f563048692f740ed80/app/theme/fonts/GothamRnd-BookItal.otf
--------------------------------------------------------------------------------
/app/theme/fonts/GothamRnd-Light.otf:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/infinitered/ChainReactApp2019/9dcc2a2b460f35607099c8f563048692f740ed80/app/theme/fonts/GothamRnd-Light.otf
--------------------------------------------------------------------------------
/app/theme/fonts/GothamRnd-LightItal.otf:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/infinitered/ChainReactApp2019/9dcc2a2b460f35607099c8f563048692f740ed80/app/theme/fonts/GothamRnd-LightItal.otf
--------------------------------------------------------------------------------
/app/theme/fonts/GothamRnd-MedItal.otf:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/infinitered/ChainReactApp2019/9dcc2a2b460f35607099c8f563048692f740ed80/app/theme/fonts/GothamRnd-MedItal.otf
--------------------------------------------------------------------------------
/app/theme/fonts/GothamRnd-Medium.otf:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/infinitered/ChainReactApp2019/9dcc2a2b460f35607099c8f563048692f740ed80/app/theme/fonts/GothamRnd-Medium.otf
--------------------------------------------------------------------------------
/app/theme/index.ts:
--------------------------------------------------------------------------------
1 | export * from "./color"
2 | export * from "./spacing"
3 | export * from "./typography"
4 | export * from "./timing"
5 | export * from "./palette"
6 |
--------------------------------------------------------------------------------
/app/theme/palette.ts:
--------------------------------------------------------------------------------
1 | export const palette = {
2 | black: "#1d1d1d",
3 | white: "#ffffff",
4 | offWhite: "#C7C4DB",
5 | crimson: "#EC174F",
6 | ebony: "#10102A",
7 | portGore: "#161637",
8 | portGoreLight: "#1B1840",
9 | portGoreLighter: "#201B48",
10 | waterloo: "#878794",
11 | martinique: "#2C2C4C",
12 | mantiniqueLight: "#36325a",
13 | shamrock: "#56E39F",
14 | vintageRock: "rgba(86,227,159,0.20)",
15 | lightGrey: "#E6EAF4",
16 | lighterGrey: "#CDD4DA",
17 | haiti: "#0F0F30",
18 | angry: "#dd3333",
19 | purple: "#6600FF",
20 | darkPurple: "#0F0F30",
21 | }
22 |
--------------------------------------------------------------------------------
/app/theme/spacing.ts:
--------------------------------------------------------------------------------
1 | import { Dimensions } from "react-native"
2 |
3 | export const spacing = {
4 | tiny: 4,
5 | small: 10,
6 | medium: 14,
7 | large: 20,
8 | extraLarge: 43,
9 | huge: 80,
10 | ginormous: 100,
11 | }
12 |
13 | export const getScreenWidth = () => Dimensions.get("window").width
14 | export const getScreenHeight = () => Dimensions.get("window").height
15 |
16 | export const HIT_SLOP = {
17 | top: 20,
18 | left: 20,
19 | right: 20,
20 | bottom: 20,
21 | }
22 |
--------------------------------------------------------------------------------
/app/theme/timing.ts:
--------------------------------------------------------------------------------
1 | export const timing = {
2 | /**
3 | * The duration (ms) for quick animations.
4 | */
5 | quick: 300,
6 | }
7 |
--------------------------------------------------------------------------------
/app/theme/typography.ts:
--------------------------------------------------------------------------------
1 | import { Platform } from "react-native"
2 | /**
3 | * Just the font names.
4 | *
5 | * The various styles of fonts are defined in the component.
6 | */
7 | export const typography = {
8 | /**
9 | * The primary font. Used in most places.
10 | */
11 | primary: Platform.select({
12 | ios: "Gotham Rounded",
13 | android: "gothamrounded",
14 | }),
15 |
16 | /**
17 | * An alternate font used for perhaps titles and stuff.
18 | */
19 | secondary: Platform.select({
20 | ios: "Gotham Rounded",
21 | android: "gothamrounded",
22 | }),
23 | }
24 |
--------------------------------------------------------------------------------
/app/utils/delay.ts:
--------------------------------------------------------------------------------
1 | /**
2 | * A "modern" sleep statement.
3 | *
4 | * @param ms The number of milliseconds to wait.
5 | */
6 | export const delay = (ms: number) => new Promise(resolve => setTimeout(resolve, ms))
7 |
--------------------------------------------------------------------------------
/app/utils/info.ts:
--------------------------------------------------------------------------------
1 | // Shared info about the conference
2 |
3 | export const TIMEZONE = "America/Los_Angeles"
4 |
--------------------------------------------------------------------------------
/app/utils/storage/index.ts:
--------------------------------------------------------------------------------
1 | export * from "./storage"
2 |
--------------------------------------------------------------------------------
/babel.config.js:
--------------------------------------------------------------------------------
1 | module.exports = {
2 | presets: ["module:metro-react-native-babel-preset", "module:react-native-dotenv"],
3 | env: {
4 | production: {},
5 | },
6 | plugins: [
7 | [
8 | "transform-inline-environment-variables",
9 | {
10 | include: ["NODE_ENV", "API"],
11 | },
12 | ],
13 | [
14 | "@babel/plugin-proposal-decorators",
15 | {
16 | legacy: true,
17 | },
18 | ],
19 | ],
20 | }
21 |
--------------------------------------------------------------------------------
/bin/check:
--------------------------------------------------------------------------------
1 | #!/usr/bin/env bash
2 |
3 | # Checks prerequisites before running ./bin/setup
4 |
5 | # Exit immediately on any failure
6 | set -e
7 | set -o pipefail
8 |
9 | echo ""
10 | echo "🤞 CHECKING PREREQUISITES 🤞"
11 | echo ""
12 |
13 | printf "🔦 Checking git installed..."
14 | if ! [ -x "$(command -v git)" ]; then
15 | echo 'Error: git is not installed.' >&2
16 | echo "Install it and try again"
17 | exit 1
18 | fi
19 | echo "☑️"
20 |
21 | printf "🔦 Checking cocoapods installed..."
22 | if ! [ -x "$(command -v pod)" ]; then
23 | echo 'Error: cocoapods is not installed.' >&2
24 | echo "Run `sudo gem install cocoapods --no-ri --no-rdoc` and try again"
25 | exit 1
26 | fi
27 | echo "☑️"
28 |
29 | printf "🔦 Checking react-native-cli installed..."
30 | if ! [ -x "$(command -v react-native)" ]; then
31 | echo 'Error: react-native-cli is not installed.' >&2
32 | echo "Run `yarn global add react-native-cli` and try again"
33 | exit 1
34 | fi
35 | echo "☑️"
36 |
37 | echo ""
38 | echo "😎 PREREQUISITES GOOD! 😎"
39 | echo ""
40 |
--------------------------------------------------------------------------------
/e2e/config.json:
--------------------------------------------------------------------------------
1 | {
2 | "setupFilesAfterEnv": ["./init.js"],
3 | "testEnvironment": "node",
4 | "reporters": ["detox/runners/jest/streamlineReporter"],
5 | "verbose": true
6 | }
7 |
--------------------------------------------------------------------------------
/e2e/init.js:
--------------------------------------------------------------------------------
1 | const detox = require("detox")
2 | const config = require("../package.json").detox
3 | const adapter = require("detox/runners/jest/adapter")
4 | const specReporter = require("detox/runners/jest/specReporter")
5 |
6 | // Set the default timeout
7 | jest.setTimeout(120000)
8 | jasmine.getEnv().addReporter(adapter)
9 |
10 | // This takes care of generating status logs on a per-spec basis. By default, jest only reports at file-level.
11 | // This is strictly optional.
12 | jasmine.getEnv().addReporter(specReporter)
13 |
14 | beforeAll(async () => {
15 | await detox.init(config, { launchApp: false })
16 | await device.launchApp({ permissions: { notifications: "YES" } })
17 | })
18 |
19 | beforeEach(async () => {
20 | await adapter.beforeEach()
21 | })
22 |
23 | afterAll(async () => {
24 | await adapter.afterAll()
25 | await detox.cleanup()
26 | })
27 |
--------------------------------------------------------------------------------
/e2e/welcome.spec.js:
--------------------------------------------------------------------------------
1 | describe("Viewing the Schedule", () => {
2 | beforeEach(async () => {
3 | await device.reloadReactNative()
4 | })
5 |
6 | it("should have welcome screen", async () => {
7 | await expect(element(by.id("WelcomeScreen"))).toBeVisible()
8 | })
9 | })
10 |
--------------------------------------------------------------------------------
/ignite/ignite.json:
--------------------------------------------------------------------------------
1 | {
2 | "createdWith": "2.0.0",
3 | "examples": "classic",
4 | "navigation": "react-navigation",
5 | "askToOverwrite": true
6 | }
7 |
--------------------------------------------------------------------------------
/ignite/plugins/.gitkeep:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/infinitered/ChainReactApp2019/9dcc2a2b460f35607099c8f563048692f740ed80/ignite/plugins/.gitkeep
--------------------------------------------------------------------------------
/index.js:
--------------------------------------------------------------------------------
1 | // This is the first file that ReactNative will run when it starts up.
2 | //
3 | // We jump out of here immediately and into our main entry point instead.
4 | //
5 | // It is possible to have React Native load our main module first, but we'd have to
6 | // change that in both AppDelegate.m and MainApplication.java. This would have the
7 | // side effect of breaking other tooling like mobile-center and react-native-rename.
8 | //
9 | // It's easier just to leave it here.
10 |
11 | import "./app/app.tsx"
12 |
--------------------------------------------------------------------------------
/ios/AppCenter-Config.plist:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 | AppSecret
6 | 48ebc192-611a-4b89-9122-991da3da3a1c
7 |
8 |
--------------------------------------------------------------------------------
/ios/AppCenter.framework/AppCenter:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/infinitered/ChainReactApp2019/9dcc2a2b460f35607099c8f563048692f740ed80/ios/AppCenter.framework/AppCenter
--------------------------------------------------------------------------------
/ios/AppCenter.framework/Headers/AppCenter.h:
--------------------------------------------------------------------------------
1 | #import
2 |
3 | #import "MSAppCenter.h"
4 | #import "MSAppCenterErrors.h"
5 | #import "MSAbstractLog.h"
6 | #import "MSChannelDelegate.h"
7 | #import "MSChannelGroupProtocol.h"
8 | #import "MSChannelProtocol.h"
9 | #import "MSConstants.h"
10 | #import "MSDevice.h"
11 | #import "MSEnable.h"
12 | #import "MSLog.h"
13 | #import "MSLogger.h"
14 | #import "MSLogWithProperties.h"
15 | #import "MSService.h"
16 | #import "MSServiceAbstract.h"
17 | #import "MSWrapperLogger.h"
18 | #import "MSWrapperSdk.h"
19 |
20 | #if !TARGET_OS_TV
21 | #import "MSCustomProperties.h"
22 | #endif
23 |
--------------------------------------------------------------------------------
/ios/AppCenter.framework/Headers/MSAbstractLog.h:
--------------------------------------------------------------------------------
1 | #import
2 |
3 | @interface MSAbstractLog : NSObject
4 |
5 | @end
6 |
--------------------------------------------------------------------------------
/ios/AppCenter.framework/Headers/MSAppCenterErrors.h:
--------------------------------------------------------------------------------
1 | #import
2 |
3 | NS_ASSUME_NONNULL_BEGIN
4 |
5 | #pragma mark - Domain
6 |
7 | extern NSString *const kMSACErrorDomain;
8 |
9 | #pragma mark - Log
10 |
11 | // Error codes
12 | NS_ENUM(NSInteger){kMSACLogInvalidContainerErrorCode = 1};
13 |
14 | // Error descriptions
15 | extern NSString const *kMSACLogInvalidContainerErrorDesc;
16 |
17 | #pragma mark - Connection
18 |
19 | // Error codes
20 | NS_ENUM(NSInteger){kMSACConnectionSuspendedErrorCode = 100, kMSACConnectionHttpErrorCode = 101};
21 |
22 | // Error descriptions
23 | extern NSString const *kMSACConnectionHttpErrorDesc;
24 | extern NSString const *kMSACConnectionSuspendedErrorDesc;
25 |
26 | // Error user info keys
27 | extern NSString const *kMSACConnectionHttpCodeErrorKey;
28 |
29 | NS_ASSUME_NONNULL_END
30 |
--------------------------------------------------------------------------------
/ios/AppCenter.framework/Headers/MSChannelProtocol.h:
--------------------------------------------------------------------------------
1 | #import
2 |
3 | #import "MSEnable.h"
4 |
5 | NS_ASSUME_NONNULL_BEGIN
6 |
7 | @protocol MSChannelDelegate;
8 |
9 | /**
10 | * `MSChannelProtocol` contains the essential operations of a channel. Channels are
11 | * broadly responsible for enqueuing logs to be sent to the backend and/or stored
12 | * on disk.
13 | */
14 | @protocol MSChannelProtocol
15 |
16 | /**
17 | * Add delegate.
18 | *
19 | * @param delegate delegate.
20 | */
21 | - (void)addDelegate:(id)delegate;
22 |
23 | /**
24 | * Remove delegate.
25 | *
26 | * @param delegate delegate.
27 | */
28 | - (void)removeDelegate:(id)delegate;
29 |
30 | /**
31 | * Suspend operations, logs will be stored but not sent.
32 | */
33 | - (void)suspend;
34 |
35 | /**
36 | * Resume operations, logs can be sent again.
37 | */
38 | - (void)resume;
39 |
40 | @end
41 |
42 | NS_ASSUME_NONNULL_END
43 |
--------------------------------------------------------------------------------
/ios/AppCenter.framework/Headers/MSEnable.h:
--------------------------------------------------------------------------------
1 | #import
2 |
3 | /**
4 | * Protocol to define an instance that can be enabled/disabled.
5 | */
6 | @protocol MSEnable
7 |
8 | @required
9 |
10 | /**
11 | * Enable/disable this instance and delete data on disabled state.
12 | *
13 | * @param isEnabled A boolean value set to YES to enable the instance or NO to disable it.
14 | * @param deleteData A boolean value set to YES to delete data or NO to keep it.
15 | */
16 | - (void)setEnabled:(BOOL)isEnabled andDeleteDataOnDisabled:(BOOL)deleteData;
17 |
18 | @end
19 |
--------------------------------------------------------------------------------
/ios/AppCenter.framework/Headers/MSLogWithProperties.h:
--------------------------------------------------------------------------------
1 | #import
2 |
3 | #import "MSAbstractLog.h"
4 |
5 | @interface MSLogWithProperties : MSAbstractLog
6 |
7 | /**
8 | * Additional key/value pair parameters. [optional]
9 | */
10 | @property(nonatomic) NSDictionary *properties;
11 |
12 | @end
13 |
--------------------------------------------------------------------------------
/ios/AppCenter.framework/Headers/MSService.h:
--------------------------------------------------------------------------------
1 | #import
2 |
3 | /**
4 | * Protocol declaring service logic.
5 | */
6 | @protocol MSService
7 |
8 | /**
9 | * Enable/disable this service.
10 | *
11 | * @param isEnabled whether this service is enabled or not.
12 | * @see isEnabled
13 | */
14 | + (void)setEnabled:(BOOL)isEnabled;
15 |
16 | /**
17 | * Is this service enabled.
18 | *
19 | * @return a boolean whether this service is enabled or not.
20 | * @see setEnabled:
21 | */
22 | + (BOOL)isEnabled;
23 |
24 | @end
25 |
--------------------------------------------------------------------------------
/ios/AppCenter.framework/Headers/MSServiceAbstract.h:
--------------------------------------------------------------------------------
1 | #import
2 |
3 | #import "MSService.h"
4 |
5 | @protocol MSChannelGroupProtocol;
6 |
7 | /**
8 | * Abstraction of services common logic.
9 | * This class is intended to be subclassed only not instantiated directly.
10 | */
11 | @interface MSServiceAbstract : NSObject
12 |
13 | /**
14 | * Start this service with a channel group. Also sets the flag that indicates that a service has been started.
15 | *
16 | * @param channelGroup channel group used to persist and send logs.
17 | * @param appSecret app secret for the SDK.
18 | * @param token default transmission target token for this service.
19 | */
20 | - (void)startWithChannelGroup:(id)channelGroup
21 | appSecret:(NSString *)appSecret
22 | transmissionTargetToken:(NSString *)token;
23 |
24 | /**
25 | * Checks if the service needs the application secret.
26 | *
27 | * @return `YES` if the application secret is required, `NO` otherwise.
28 | */
29 | - (BOOL)isAppSecretRequired;
30 |
31 | @end
32 |
--------------------------------------------------------------------------------
/ios/AppCenter.framework/Headers/MSWrapperLogger.h:
--------------------------------------------------------------------------------
1 | #import
2 |
3 | #import "MSConstants.h"
4 |
5 | /**
6 | * This is a utility for producing App Center style log messages. It is only
7 | * intended for use by App Center services and wrapper SDKs of App Center.
8 | */
9 | @interface MSWrapperLogger : NSObject
10 |
11 | + (void)MSWrapperLog:(MSLogMessageProvider)message tag:(NSString *)tag level:(MSLogLevel)level;
12 |
13 | @end
14 |
--------------------------------------------------------------------------------
/ios/AppCenter.framework/Modules/module.modulemap:
--------------------------------------------------------------------------------
1 | framework module AppCenter {
2 | umbrella header "AppCenter.h"
3 |
4 | export *
5 | module * { export * }
6 |
7 | link framework "Foundation"
8 | link framework "CoreTelephony"
9 | link framework "SystemConfiguration"
10 | link framework "UIKit"
11 | link "sqlite3"
12 | link "z"
13 | }
14 |
--------------------------------------------------------------------------------
/ios/AppCenterAnalytics.framework/AppCenterAnalytics:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/infinitered/ChainReactApp2019/9dcc2a2b460f35607099c8f563048692f740ed80/ios/AppCenterAnalytics.framework/AppCenterAnalytics
--------------------------------------------------------------------------------
/ios/AppCenterAnalytics.framework/Headers/AppCenterAnalytics.h:
--------------------------------------------------------------------------------
1 | #import
2 |
3 | #import "MSAbstractLog.h"
4 | #import "MSAnalytics.h"
5 | #import "MSEventLog.h"
6 | #import "MSAnalyticsTransmissionTarget.h"
7 |
--------------------------------------------------------------------------------
/ios/AppCenterAnalytics.framework/Headers/MSAbstractLog.h:
--------------------------------------------------------------------------------
1 | #import
2 |
3 | @interface MSAbstractLog : NSObject
4 |
5 | @end
6 |
--------------------------------------------------------------------------------
/ios/AppCenterAnalytics.framework/Headers/MSAnalytics.h:
--------------------------------------------------------------------------------
1 | #import "MSServiceAbstract.h"
2 | #import "MSAnalyticsTransmissionTarget.h"
3 |
4 | NS_ASSUME_NONNULL_BEGIN
5 |
6 | /**
7 | * App Center analytics service.
8 | */
9 | @interface MSAnalytics : MSServiceAbstract
10 |
11 | /**
12 | * Track an event.
13 | *
14 | * @param eventName event name.
15 | */
16 | + (void)trackEvent:(NSString *)eventName;
17 |
18 | /**
19 | * Track an event.
20 | *
21 | * @param eventName event name.
22 | * @param properties dictionary of properties.
23 | */
24 | + (void)trackEvent:(NSString *)eventName withProperties:(nullable NSDictionary *)properties;
25 |
26 | /**
27 | * Get a transmission target.
28 | *
29 | * @param token The token of the transmission target to retrieve.
30 | *
31 | * @returns The transmission target object.
32 | */
33 | + (MSAnalyticsTransmissionTarget *)transmissionTargetForToken:(NSString *)token;
34 |
35 | @end
36 |
37 | NS_ASSUME_NONNULL_END
38 |
--------------------------------------------------------------------------------
/ios/AppCenterAnalytics.framework/Headers/MSAnalyticsTransmissionTarget.h:
--------------------------------------------------------------------------------
1 | #import
2 |
3 | NS_ASSUME_NONNULL_BEGIN
4 |
5 | @interface MSAnalyticsTransmissionTarget : NSObject
6 |
7 | /**
8 | * Track an event.
9 | *
10 | * @param eventName event name.
11 | */
12 | - (void)trackEvent:(NSString *)eventName;
13 |
14 | /**
15 | * Track an event.
16 | *
17 | * @param eventName event name.
18 | * @param properties dictionary of properties.
19 | */
20 | - (void)trackEvent:(NSString *)eventName withProperties:(nullable NSDictionary *)properties;
21 |
22 | @end
23 |
24 | NS_ASSUME_NONNULL_END
25 |
--------------------------------------------------------------------------------
/ios/AppCenterAnalytics.framework/Headers/MSEventLog.h:
--------------------------------------------------------------------------------
1 | #import "MSLogWithNameAndProperties.h"
2 |
3 | @interface MSEventLog : MSLogWithNameAndProperties
4 |
5 | /**
6 | * Unique identifier for this event.
7 | */
8 | @property(nonatomic, copy) NSString *eventId;
9 |
10 | @end
11 |
--------------------------------------------------------------------------------
/ios/AppCenterAnalytics.framework/Headers/MSLogWithNameAndProperties.h:
--------------------------------------------------------------------------------
1 | #import
2 |
3 | #import "MSLogWithProperties.h"
4 |
5 | @interface MSLogWithNameAndProperties : MSLogWithProperties
6 |
7 | /**
8 | * Name of the event.
9 | */
10 | @property(nonatomic, copy) NSString *name;
11 |
12 | @end
13 |
--------------------------------------------------------------------------------
/ios/AppCenterAnalytics.framework/Headers/MSLogWithProperties.h:
--------------------------------------------------------------------------------
1 | #import
2 |
3 | #import "MSAbstractLog.h"
4 |
5 | @interface MSLogWithProperties : MSAbstractLog
6 |
7 | /**
8 | * Additional key/value pair parameters. [optional]
9 | */
10 | @property(nonatomic) NSDictionary *properties;
11 |
12 | @end
13 |
--------------------------------------------------------------------------------
/ios/AppCenterAnalytics.framework/Headers/MSService.h:
--------------------------------------------------------------------------------
1 | #import
2 |
3 | /**
4 | * Protocol declaring service logic.
5 | */
6 | @protocol MSService
7 |
8 | /**
9 | * Enable/disable this service.
10 | *
11 | * @param isEnabled whether this service is enabled or not.
12 | * @see isEnabled
13 | */
14 | + (void)setEnabled:(BOOL)isEnabled;
15 |
16 | /**
17 | * Is this service enabled.
18 | *
19 | * @return a boolean whether this service is enabled or not.
20 | * @see setEnabled:
21 | */
22 | + (BOOL)isEnabled;
23 |
24 | @end
25 |
--------------------------------------------------------------------------------
/ios/AppCenterAnalytics.framework/Headers/MSServiceAbstract.h:
--------------------------------------------------------------------------------
1 | #import
2 |
3 | #import "MSService.h"
4 |
5 | @protocol MSChannelGroupProtocol;
6 |
7 | /**
8 | * Abstraction of services common logic.
9 | * This class is intended to be subclassed only not instantiated directly.
10 | */
11 | @interface MSServiceAbstract : NSObject
12 |
13 | /**
14 | * Start this service with a channel group. Also sets the flag that indicates that a service has been started.
15 | *
16 | * @param channelGroup channel group used to persist and send logs.
17 | * @param appSecret app secret for the SDK.
18 | * @param token default transmission target token for this service.
19 | */
20 | - (void)startWithChannelGroup:(id)channelGroup
21 | appSecret:(NSString *)appSecret
22 | transmissionTargetToken:(NSString *)token;
23 |
24 | /**
25 | * Checks if the service needs the application secret.
26 | *
27 | * @return `YES` if the application secret is required, `NO` otherwise.
28 | */
29 | - (BOOL)isAppSecretRequired;
30 |
31 | @end
32 |
--------------------------------------------------------------------------------
/ios/AppCenterAnalytics.framework/Modules/module.modulemap:
--------------------------------------------------------------------------------
1 | framework module AppCenterAnalytics {
2 | umbrella header "AppCenterAnalytics.h"
3 |
4 | export *
5 | module * { export * }
6 |
7 | link framework "Foundation"
8 | link framework "UIKit"
9 | }
10 |
--------------------------------------------------------------------------------
/ios/AppCenterCrashes.framework/AppCenterCrashes:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/infinitered/ChainReactApp2019/9dcc2a2b460f35607099c8f563048692f740ed80/ios/AppCenterCrashes.framework/AppCenterCrashes
--------------------------------------------------------------------------------
/ios/AppCenterCrashes.framework/Headers/AppCenterCrashes.h:
--------------------------------------------------------------------------------
1 | #import
2 |
3 | #import "MSCrashes.h"
4 | #import "MSCrashesDelegate.h"
5 | #import "MSCrashHandlerSetupDelegate.h"
6 | #import "MSErrorAttachmentLog.h"
7 | #import "MSErrorAttachmentLog+Utility.h"
8 | #import "MSWrapperCrashesHelper.h"
9 |
--------------------------------------------------------------------------------
/ios/AppCenterCrashes.framework/Headers/MSAbstractLog.h:
--------------------------------------------------------------------------------
1 | #import
2 |
3 | @interface MSAbstractLog : NSObject
4 |
5 | @end
6 |
--------------------------------------------------------------------------------
/ios/AppCenterCrashes.framework/Headers/MSCrashHandlerSetupDelegate.h:
--------------------------------------------------------------------------------
1 | #import
2 |
3 | /**
4 | * This is required for Wrapper SDKs that need to provide custom behavior surrounding the setup of crash handlers.
5 | */
6 | @protocol MSCrashHandlerSetupDelegate
7 |
8 | @optional
9 |
10 | /**
11 | * Callback method that will be called immediately before crash handlers are set up.
12 | */
13 | - (void)willSetUpCrashHandlers;
14 |
15 | /**
16 | * Callback method that will be called immediately after crash handlers are set up.
17 | */
18 | - (void)didSetUpCrashHandlers;
19 |
20 | /**
21 | * Callback method that gets a value indicating whether the SDK should enable an uncaught exception handler.
22 | *
23 | * @return YES if SDK should enable uncaught exception handler, otherwise NO.
24 | *
25 | * @discussion Do not register an UncaughtExceptionHandler for Xamarin as we rely on the Xamarin runtime to report
26 | * NSExceptions. Registering our own UncaughtExceptionHandler will cause the Xamarin debugger to not work properly (it
27 | * will not stop for NSExceptions).
28 | */
29 | - (BOOL)shouldEnableUncaughtExceptionHandler;
30 |
31 | @end
32 |
--------------------------------------------------------------------------------
/ios/AppCenterCrashes.framework/Headers/MSService.h:
--------------------------------------------------------------------------------
1 | #import
2 |
3 | /**
4 | * Protocol declaring service logic.
5 | */
6 | @protocol MSService
7 |
8 | /**
9 | * Enable/disable this service.
10 | *
11 | * @param isEnabled whether this service is enabled or not.
12 | * @see isEnabled
13 | */
14 | + (void)setEnabled:(BOOL)isEnabled;
15 |
16 | /**
17 | * Is this service enabled.
18 | *
19 | * @return a boolean whether this service is enabled or not.
20 | * @see setEnabled:
21 | */
22 | + (BOOL)isEnabled;
23 |
24 | @end
25 |
--------------------------------------------------------------------------------
/ios/AppCenterCrashes.framework/Headers/MSServiceAbstract.h:
--------------------------------------------------------------------------------
1 | #import
2 |
3 | #import "MSService.h"
4 |
5 | @protocol MSChannelGroupProtocol;
6 |
7 | /**
8 | * Abstraction of services common logic.
9 | * This class is intended to be subclassed only not instantiated directly.
10 | */
11 | @interface MSServiceAbstract : NSObject
12 |
13 | /**
14 | * Start this service with a channel group. Also sets the flag that indicates that a service has been started.
15 | *
16 | * @param channelGroup channel group used to persist and send logs.
17 | * @param appSecret app secret for the SDK.
18 | * @param token default transmission target token for this service.
19 | */
20 | - (void)startWithChannelGroup:(id)channelGroup
21 | appSecret:(NSString *)appSecret
22 | transmissionTargetToken:(NSString *)token;
23 |
24 | /**
25 | * Checks if the service needs the application secret.
26 | *
27 | * @return `YES` if the application secret is required, `NO` otherwise.
28 | */
29 | - (BOOL)isAppSecretRequired;
30 |
31 | @end
32 |
--------------------------------------------------------------------------------
/ios/AppCenterCrashes.framework/Modules/module.modulemap:
--------------------------------------------------------------------------------
1 | framework module AppCenterCrashes {
2 | umbrella header "AppCenterCrashes.h"
3 |
4 | export *
5 | module * { export * }
6 |
7 | link framework "Foundation"
8 | link "c++"
9 | link "z"
10 | }
11 |
--------------------------------------------------------------------------------
/ios/AppCenterReactNativeShared.framework/AppCenterReactNativeShared:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/infinitered/ChainReactApp2019/9dcc2a2b460f35607099c8f563048692f740ed80/ios/AppCenterReactNativeShared.framework/AppCenterReactNativeShared
--------------------------------------------------------------------------------
/ios/AppCenterReactNativeShared.framework/Headers/AppCenterReactNativeShared.h:
--------------------------------------------------------------------------------
1 | #import
2 |
3 | @class MSWrapperSdk;
4 |
5 | @interface AppCenterReactNativeShared : NSObject
6 |
7 | + (void) setAppSecret: (NSString *)secret;
8 |
9 | + (NSString *) getAppSecret;
10 |
11 | + (void) configureAppCenter;
12 |
13 | + (MSWrapperSdk *) getWrapperSdk;
14 |
15 | + (void) setWrapperSdk:(MSWrapperSdk *)sdk;
16 |
17 | @end
18 |
--------------------------------------------------------------------------------
/ios/AppCenterReactNativeShared.framework/Modules/module.modulemap:
--------------------------------------------------------------------------------
1 | framework module AppCenterReactNativeShared {
2 | umbrella header "AppCenterReactNativeShared.h"
3 |
4 | export *
5 | module * { export * }
6 |
7 | link framework "Foundation"
8 | }
9 |
--------------------------------------------------------------------------------
/ios/ChainReactConf.xcworkspace/contents.xcworkspacedata:
--------------------------------------------------------------------------------
1 |
2 |
4 |
6 |
7 |
9 |
10 |
11 |
--------------------------------------------------------------------------------
/ios/ChainReactConf.xcworkspace/xcshareddata/IDEWorkspaceChecks.plist:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 | IDEDidComputeMac32BitWarning
6 |
7 |
8 |
9 |
--------------------------------------------------------------------------------
/ios/ChainReactConf.xcworkspace/xcshareddata/WorkspaceSettings.xcsettings:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 | BuildSystemType
6 | Original
7 |
8 |
9 |
--------------------------------------------------------------------------------
/ios/ChainReactConf/AppCenter-Config.plist:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 | AppSecret
6 | 48ebc192-611a-4b89-9122-991da3da3a1c
7 |
8 |
--------------------------------------------------------------------------------
/ios/ChainReactConf/AppDelegate.h:
--------------------------------------------------------------------------------
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 | #import
10 |
11 | @interface AppDelegate : UIResponder
12 |
13 | @property (nonatomic, strong) UIWindow *window;
14 |
15 | @end
16 |
--------------------------------------------------------------------------------
/ios/ChainReactConf/ChainReactConf.entitlements:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 | aps-environment
6 | development
7 |
8 |
9 |
--------------------------------------------------------------------------------
/ios/ChainReactConf/Images.xcassets/AppIcon.appiconset/Icon-20x20@2x.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/infinitered/ChainReactApp2019/9dcc2a2b460f35607099c8f563048692f740ed80/ios/ChainReactConf/Images.xcassets/AppIcon.appiconset/Icon-20x20@2x.png
--------------------------------------------------------------------------------
/ios/ChainReactConf/Images.xcassets/AppIcon.appiconset/Icon-20x20@3x.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/infinitered/ChainReactApp2019/9dcc2a2b460f35607099c8f563048692f740ed80/ios/ChainReactConf/Images.xcassets/AppIcon.appiconset/Icon-20x20@3x.png
--------------------------------------------------------------------------------
/ios/ChainReactConf/Images.xcassets/AppIcon.appiconset/Icon-29x29@2x.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/infinitered/ChainReactApp2019/9dcc2a2b460f35607099c8f563048692f740ed80/ios/ChainReactConf/Images.xcassets/AppIcon.appiconset/Icon-29x29@2x.png
--------------------------------------------------------------------------------
/ios/ChainReactConf/Images.xcassets/AppIcon.appiconset/Icon-29x29@3x.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/infinitered/ChainReactApp2019/9dcc2a2b460f35607099c8f563048692f740ed80/ios/ChainReactConf/Images.xcassets/AppIcon.appiconset/Icon-29x29@3x.png
--------------------------------------------------------------------------------
/ios/ChainReactConf/Images.xcassets/AppIcon.appiconset/Icon-40x40@2x.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/infinitered/ChainReactApp2019/9dcc2a2b460f35607099c8f563048692f740ed80/ios/ChainReactConf/Images.xcassets/AppIcon.appiconset/Icon-40x40@2x.png
--------------------------------------------------------------------------------
/ios/ChainReactConf/Images.xcassets/AppIcon.appiconset/Icon-40x40@3x.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/infinitered/ChainReactApp2019/9dcc2a2b460f35607099c8f563048692f740ed80/ios/ChainReactConf/Images.xcassets/AppIcon.appiconset/Icon-40x40@3x.png
--------------------------------------------------------------------------------
/ios/ChainReactConf/Images.xcassets/AppIcon.appiconset/Icon-60x60@2x.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/infinitered/ChainReactApp2019/9dcc2a2b460f35607099c8f563048692f740ed80/ios/ChainReactConf/Images.xcassets/AppIcon.appiconset/Icon-60x60@2x.png
--------------------------------------------------------------------------------
/ios/ChainReactConf/Images.xcassets/AppIcon.appiconset/Icon-60x60@3x.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/infinitered/ChainReactApp2019/9dcc2a2b460f35607099c8f563048692f740ed80/ios/ChainReactConf/Images.xcassets/AppIcon.appiconset/Icon-60x60@3x.png
--------------------------------------------------------------------------------
/ios/ChainReactConf/Images.xcassets/AppIcon.appiconset/Icon-marketing-1024x1024.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/infinitered/ChainReactApp2019/9dcc2a2b460f35607099c8f563048692f740ed80/ios/ChainReactConf/Images.xcassets/AppIcon.appiconset/Icon-marketing-1024x1024.png
--------------------------------------------------------------------------------
/ios/ChainReactConf/Images.xcassets/Contents.json:
--------------------------------------------------------------------------------
1 | {
2 | "info" : {
3 | "version" : 1,
4 | "author" : "xcode"
5 | }
6 | }
--------------------------------------------------------------------------------
/ios/ChainReactConf/Images.xcassets/LaunchImage.launchimage/Default-1125h.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/infinitered/ChainReactApp2019/9dcc2a2b460f35607099c8f563048692f740ed80/ios/ChainReactConf/Images.xcassets/LaunchImage.launchimage/Default-1125h.png
--------------------------------------------------------------------------------
/ios/ChainReactConf/Images.xcassets/LaunchImage.launchimage/Default-568h@2x-1.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/infinitered/ChainReactApp2019/9dcc2a2b460f35607099c8f563048692f740ed80/ios/ChainReactConf/Images.xcassets/LaunchImage.launchimage/Default-568h@2x-1.png
--------------------------------------------------------------------------------
/ios/ChainReactConf/Images.xcassets/LaunchImage.launchimage/Default-568h@2x-2.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/infinitered/ChainReactApp2019/9dcc2a2b460f35607099c8f563048692f740ed80/ios/ChainReactConf/Images.xcassets/LaunchImage.launchimage/Default-568h@2x-2.png
--------------------------------------------------------------------------------
/ios/ChainReactConf/Images.xcassets/LaunchImage.launchimage/Default-568h@2x.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/infinitered/ChainReactApp2019/9dcc2a2b460f35607099c8f563048692f740ed80/ios/ChainReactConf/Images.xcassets/LaunchImage.launchimage/Default-568h@2x.png
--------------------------------------------------------------------------------
/ios/ChainReactConf/Images.xcassets/LaunchImage.launchimage/Default-667h@2x.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/infinitered/ChainReactApp2019/9dcc2a2b460f35607099c8f563048692f740ed80/ios/ChainReactConf/Images.xcassets/LaunchImage.launchimage/Default-667h@2x.png
--------------------------------------------------------------------------------
/ios/ChainReactConf/Images.xcassets/LaunchImage.launchimage/Default-736h@3x.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/infinitered/ChainReactApp2019/9dcc2a2b460f35607099c8f563048692f740ed80/ios/ChainReactConf/Images.xcassets/LaunchImage.launchimage/Default-736h@3x.png
--------------------------------------------------------------------------------
/ios/ChainReactConf/Images.xcassets/LaunchImage.launchimage/Default-Landscape.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/infinitered/ChainReactApp2019/9dcc2a2b460f35607099c8f563048692f740ed80/ios/ChainReactConf/Images.xcassets/LaunchImage.launchimage/Default-Landscape.png
--------------------------------------------------------------------------------
/ios/ChainReactConf/Images.xcassets/LaunchImage.launchimage/Default-Landscape@2x.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/infinitered/ChainReactApp2019/9dcc2a2b460f35607099c8f563048692f740ed80/ios/ChainReactConf/Images.xcassets/LaunchImage.launchimage/Default-Landscape@2x.png
--------------------------------------------------------------------------------
/ios/ChainReactConf/Images.xcassets/LaunchImage.launchimage/Default-Portrait.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/infinitered/ChainReactApp2019/9dcc2a2b460f35607099c8f563048692f740ed80/ios/ChainReactConf/Images.xcassets/LaunchImage.launchimage/Default-Portrait.png
--------------------------------------------------------------------------------
/ios/ChainReactConf/Images.xcassets/LaunchImage.launchimage/Default-Portrait@2x.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/infinitered/ChainReactApp2019/9dcc2a2b460f35607099c8f563048692f740ed80/ios/ChainReactConf/Images.xcassets/LaunchImage.launchimage/Default-Portrait@2x.png
--------------------------------------------------------------------------------
/ios/ChainReactConf/Images.xcassets/LaunchImage.launchimage/Default.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/infinitered/ChainReactApp2019/9dcc2a2b460f35607099c8f563048692f740ed80/ios/ChainReactConf/Images.xcassets/LaunchImage.launchimage/Default.png
--------------------------------------------------------------------------------
/ios/ChainReactConf/Images.xcassets/LaunchImage.launchimage/Default@2x.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/infinitered/ChainReactApp2019/9dcc2a2b460f35607099c8f563048692f740ed80/ios/ChainReactConf/Images.xcassets/LaunchImage.launchimage/Default@2x.png
--------------------------------------------------------------------------------
/ios/ChainReactConf/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 |
--------------------------------------------------------------------------------
/ios/ChainReactConfTests/Info.plist:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 | CFBundleDevelopmentRegion
6 | en
7 | CFBundleExecutable
8 | $(EXECUTABLE_NAME)
9 | CFBundleIdentifier
10 | $(PRODUCT_BUNDLE_IDENTIFIER)
11 | CFBundleInfoDictionaryVersion
12 | 6.0
13 | CFBundleName
14 | $(PRODUCT_NAME)
15 | CFBundlePackageType
16 | BNDL
17 | CFBundleShortVersionString
18 | 1.0
19 | CFBundleSignature
20 | ????
21 | CFBundleVersion
22 | 49
23 |
24 |
25 |
--------------------------------------------------------------------------------
/ios/Gemfile:
--------------------------------------------------------------------------------
1 | # Autogenerated by fastlane
2 | #
3 | # Ensure this file is checked in to source control!
4 |
5 | source "https://rubygems.org"
6 |
7 | gem 'fastlane'
8 | gem 'cocoapods', '= 1.6.1'
9 |
10 | plugins_path = File.join(File.dirname(__FILE__), 'fastlane', 'Pluginfile')
11 | eval_gemfile(plugins_path) if File.exist?(plugins_path)
12 |
--------------------------------------------------------------------------------
/ios/fastlane/Appfile:
--------------------------------------------------------------------------------
1 | app_identifier "infinitered.stage.ChainReactConf" # The bundle identifier of your app
2 |
3 | team_id "L7YNDPLSEB" # Developer Portal Team ID
4 |
5 | itc_team_id "2079189"
6 |
7 | # you can even provide different app identifiers, Apple IDs and team names per lane:
8 | # More information: https://github.com/fastlane/fastlane/blob/master/fastlane/docs/Appfile.md
9 |
--------------------------------------------------------------------------------
/ios/fastlane/Deliverfile:
--------------------------------------------------------------------------------
1 | app_identifier "infinitered.stage.ChainReactConf" # The bundle identifier of your app
2 | username "gantman@gmail.com" # your Apple ID user
3 |
--------------------------------------------------------------------------------
/ios/fastlane/Matchfile:
--------------------------------------------------------------------------------
1 | git_url "git@github.com:infinitered/ChainReactApp-Certs.git"
2 |
3 | type "development" # The default type, can be: appstore, adhoc, enterprise or development
4 |
5 | # app_identifier ["tools.fastlane.app", "tools.fastlane.app2"]
6 | # username "user@fastlane.tools" # Your Apple Developer Portal username
7 |
8 | # For all available options run `fastlane match --help`
9 | # Remove the # in the beginning of the line to enable the other options
10 |
--------------------------------------------------------------------------------
/metro.config.js:
--------------------------------------------------------------------------------
1 | /**
2 | * Metro configuration for React Native
3 | * https://github.com/facebook/react-native
4 | *
5 | * Adding because of https://github.com/wix/react-native-navigation/issues/4757#issuecomment-468133753
6 | *
7 | * @format
8 | */
9 |
10 | module.exports = {
11 | transformer: {
12 | getTransformOptions: async () => ({
13 | transform: {
14 | experimentalImportSupport: false,
15 | inlineRequires: false,
16 | },
17 | }),
18 | },
19 | }
20 |
--------------------------------------------------------------------------------
/newclear.sh:
--------------------------------------------------------------------------------
1 | watchman watch-del-all
2 | rm -rf ~/Library/Caches/CocoaPods
3 | rm -rf ~/Library/Developer/Xcode/DerivedData
4 | yarn cache clean
5 | rm -rf node_modules
6 | rm -rf ios/build
7 | rm -rf ios/Pods
8 | yarn
9 | cd ios
10 | pod install
11 | rm -rf $TMPDIR/react-*
12 | fastlane beta
13 | cd -
14 |
--------------------------------------------------------------------------------
/patches/@redux-offline+redux-offline+2.2.1.patch:
--------------------------------------------------------------------------------
1 | diff --git a/node_modules/@redux-offline/redux-offline/lib/defaults/detectNetwork.native.js b/node_modules/@redux-offline/redux-offline/lib/defaults/detectNetwork.native.js
2 | index 4a51cb8..2f8f077 100644
3 | --- a/node_modules/@redux-offline/redux-offline/lib/defaults/detectNetwork.native.js
4 | +++ b/node_modules/@redux-offline/redux-offline/lib/defaults/detectNetwork.native.js
5 | @@ -20,7 +20,7 @@ var _createClass2 = require('babel-runtime/helpers/createClass');
6 |
7 | var _createClass3 = _interopRequireDefault(_createClass2);
8 |
9 | -var _reactNative = require('react-native');
10 | +var _reactNative = require('react-native');_reactNative.NetInfo=require('@react-native-community/netinfo');
11 |
12 | var _detectNetworkNative = require('./detectNetwork.native.legacy');
13 |
14 |
--------------------------------------------------------------------------------
/react-native.config.js:
--------------------------------------------------------------------------------
1 | module.exports = {
2 | // config for a library is scoped under "dependency" key
3 | dependency: {
4 | assets: ["./app/theme/fonts"],
5 | },
6 | }
7 |
--------------------------------------------------------------------------------
/storybook/index.ts:
--------------------------------------------------------------------------------
1 | // this is the native storybook entry point
2 | // import { StorybookUI } from "./config"
3 |
4 | export * from "./storybook"
5 |
--------------------------------------------------------------------------------
/storybook/storybook.ts:
--------------------------------------------------------------------------------
1 | import { configure, getStorybookUI } from "@storybook/react-native"
2 |
3 | configure(() => {
4 | require("./storybook-registry")
5 | })
6 |
7 | export const StorybookUI = getStorybookUI({ port: 9001, host: "localhost", onDeviceUI: true })
8 |
--------------------------------------------------------------------------------
/storybook/views/index.ts:
--------------------------------------------------------------------------------
1 | export * from "./story-screen"
2 | export * from "./story"
3 | export * from "./use-case"
4 |
--------------------------------------------------------------------------------
/storybook/views/story-screen.tsx:
--------------------------------------------------------------------------------
1 | import * as React from "react"
2 | import { KeyboardAvoidingView, Platform, SafeAreaView, ViewStyle } from "react-native"
3 |
4 | const ROOT: ViewStyle = { backgroundColor: "#f0f0f0", flex: 1 }
5 |
6 | export interface StoryScreenProps {
7 | children?: React.ReactNode
8 | }
9 |
10 | const behavior = Platform.OS === "ios" ? "padding" : null
11 | export const StoryScreen = props => (
12 |
13 |
14 | {props.children}
15 |
16 |
17 | )
18 |
--------------------------------------------------------------------------------
/storybook/views/story.tsx:
--------------------------------------------------------------------------------
1 | import * as React from "react"
2 | import { ScrollView, View, ViewStyle } from "react-native"
3 | import { color } from "../../app/theme"
4 |
5 | export interface StoryProps {
6 | children?: React.ReactNode
7 | }
8 |
9 | const ROOT: ViewStyle = { flex: 1, backgroundColor: color.background }
10 |
11 | export function Story(props: StoryProps) {
12 | return (
13 |
14 | {props.children}
15 |
16 | )
17 | }
18 |
--------------------------------------------------------------------------------
/test/mock-async-storage.ts:
--------------------------------------------------------------------------------
1 | import mockAsyncStorage from "@react-native-community/async-storage/jest/async-storage-mock"
2 |
3 | jest.mock("@react-native-community/async-storage", () => mockAsyncStorage)
4 |
--------------------------------------------------------------------------------
/test/mock-i18n.ts:
--------------------------------------------------------------------------------
1 | jest.mock("react-native-localize", () => {
2 | return {
3 | getLocales: () => [
4 | // you can choose / add the locales you want
5 | { countryCode: "US", languageTag: "en-US", languageCode: "en", isRTL: false },
6 | { countryCode: "JP", languageTag: "ja-JA", languageCode: "ja", isRTL: false },
7 | ],
8 | }
9 | })
10 |
--------------------------------------------------------------------------------
/test/mock-reactotron.ts:
--------------------------------------------------------------------------------
1 | declare var tron
2 | tron = null
3 |
--------------------------------------------------------------------------------
/test/mock-text-input.ts:
--------------------------------------------------------------------------------
1 | // https://github.com/facebook/jest/issues/3707#issuecomment-311169259
2 |
3 | jest.mock("TextInput", () => {
4 | const RealComponent = require.requireActual("TextInput")
5 | const React = require("React")
6 | class TextInput extends React.Component {
7 | render() {
8 | delete this.props.autoFocus
9 | return React.createElement("TextInput", this.props, this.props.children)
10 | }
11 | }
12 | TextInput.propTypes = RealComponent.propTypes
13 | return TextInput
14 | })
15 |
--------------------------------------------------------------------------------
/test/setup.ts:
--------------------------------------------------------------------------------
1 | // we always make sure 'react-native' gets included first
2 | import "react-native"
3 |
4 | // libraries to mock
5 | import "./mock-async-storage"
6 | import "./mock-i18n"
7 | import "./mock-reactotron"
8 | import "./mock-text-input"
9 |
--------------------------------------------------------------------------------
/test/storyshots.test.ts:
--------------------------------------------------------------------------------
1 | import initStoryshots from "@storybook/addon-storyshots"
2 |
3 | initStoryshots({
4 | configPath: "./storybook",
5 | framework: "react-native",
6 | })
7 |
--------------------------------------------------------------------------------
/tsconfig.json:
--------------------------------------------------------------------------------
1 | {
2 | "compilerOptions": {
3 | "allowJs": false,
4 | "allowSyntheticDefaultImports": false,
5 | "experimentalDecorators": true,
6 | "jsx": "react-native",
7 | "module": "es2015",
8 | "moduleResolution": "node",
9 | "noImplicitAny": false,
10 | "noImplicitReturns": true,
11 | "noImplicitThis": true,
12 | "noUnusedLocals": true,
13 | "sourceMap": true,
14 | "target": "es2015",
15 | "lib": ["dom", "es6", "es2016", "es2017", "es2018", "esnext.asynciterable"]
16 | },
17 | "exclude": ["node_modules"],
18 | "include": ["app", "test", "storybook"]
19 | }
20 |
--------------------------------------------------------------------------------
/tslint.json:
--------------------------------------------------------------------------------
1 | {
2 | "extends": "tslint-config-prettier",
3 | "rules": {
4 | "quotemark": [true, "double", "jsx-double", "avoid-escape"],
5 | "semicolon": [true, "never"],
6 | "ordered-imports": [true, { "import-sources-order": "any" }],
7 | "trailing-comma": [
8 | true,
9 | {
10 | "multiline": "always",
11 | "singleline": "never",
12 | "esSpecCompliant": true
13 | }
14 | ]
15 | }
16 | }
17 |
--------------------------------------------------------------------------------