diff --git a/.circleci/config.yml b/.circleci/config.yml index 8203bba7d..2541bbeb6 100644 --- a/.circleci/config.yml +++ b/.circleci/config.yml @@ -8,6 +8,11 @@ macos: &macos bash-env: &bash-env BASH_ENV: "~/.nvm/nvm.sh" +android-env: &android-env + JAVA_OPTS: '-Xms512m -Xmx2g' + GRADLE_OPTS: '-Xmx3g -Dorg.gradle.daemon=false -Dorg.gradle.jvmargs="-Xmx2g -XX:+HeapDumpOnOutOfMemoryError"' + TERM: dumb + install-npm-modules: &install-npm-modules name: Install NPM modules command: yarn @@ -75,6 +80,231 @@ restore_cache: &restore-gradle-cache name: Restore gradle cache key: android-{{ checksum "android/build.gradle" }}-{{ checksum "android/app/build.gradle" }} +# COMMANDS +commands: + + android-build: + description: "Build Android app" + steps: + - checkout + + - run: *install-node + + - restore_cache: *restore-npm-cache-linux + + - run: *install-npm-modules + + - restore_cache: *restore-gradle-cache + + - run: + name: Configure Gradle + command: | + echo -e "" > ./gradle.properties + # echo -e "android.enableAapt2=false" >> ./gradle.properties + echo -e "android.useAndroidX=true" >> ./gradle.properties + echo -e "android.enableJetifier=true" >> ./gradle.properties + echo -e "FLIPPER_VERSION=0.51.0" >> ./gradle.properties + echo -e "VERSIONCODE=$CIRCLE_BUILD_NUM" >> ./gradle.properties + + if [[ $CIRCLE_JOB == "android-build-official" ]]; then + echo -e "APPLICATION_ID=chat.rocket.android" >> ./gradle.properties + echo -e "BugsnagAPIKey=$BUGSNAG_KEY_OFFICIAL" >> ./gradle.properties + echo $CHAT_ROCKET_ANDROID_STORE_FILE_BASE64_JKS | base64 --decode > ./app/$KEYSTORE_OFFICIAL + echo -e "KEYSTORE=$KEYSTORE_OFFICIAL" >> ./gradle.properties + echo -e "KEYSTORE_PASSWORD=$CHAT_ROCKET_ANDROID_STORE_PASSWORD" >> ./gradle.properties + echo -e "KEY_ALIAS=$CHAT_ROCKET_ANDROID_KEY_ALIAS" >> ./gradle.properties + echo -e "KEY_PASSWORD=$CHAT_ROCKET_ANDROID_KEY_PASSWORD" >> ./gradle.properties + else + echo -e "APPLICATION_ID=chat.rocket.reactnative" >> ./gradle.properties + echo -e "BugsnagAPIKey=$BUGSNAG_KEY" >> ./gradle.properties + echo $KEYSTORE_BASE64 | base64 --decode > ./app/$KEYSTORE + echo -e "KEYSTORE=$KEYSTORE" >> ./gradle.properties + echo -e "KEYSTORE_PASSWORD=$KEYSTORE_PASSWORD" >> ./gradle.properties + echo -e "KEY_ALIAS=$KEY_ALIAS" >> ./gradle.properties + echo -e "KEY_PASSWORD=$KEYSTORE_PASSWORD" >> ./gradle.properties + fi + working_directory: android + + - run: + name: Set Google Services + command: | + if [[ $KEYSTORE ]]; then + echo $GOOGLE_SERVICES_ANDROID | base64 --decode > google-services.json + fi + working_directory: android/app + + - run: + name: Config variables + command: | + if [[ $CIRCLE_JOB == "android-build-official" ]]; then + echo -e "export default { BUGSNAG_API_KEY: '$BUGSNAG_KEY_OFFICIAL' };" > ./config.js + else + echo -e "export default { BUGSNAG_API_KEY: '$BUGSNAG_KEY' };" > ./config.js + fi + + - run: + name: Build App + command: | + if [[ $CIRCLE_JOB == "android-build-official" ]]; then + ./gradlew bundleOfficialPlayRelease + fi + if [[ $CIRCLE_JOB == "android-build-experimental" ]]; then + ./gradlew bundleExperimentalPlayRelease + fi + if [[ ! $KEYSTORE ]]; then + ./gradlew assembleExperimentalPlayDebug + fi + working_directory: android + + - run: + name: Upload sourcemaps to Bugsnag + command: | + if [[ $CIRCLE_JOB == "android-build-official" ]]; then + yarn generate-source-maps-android upload \ + --api-key=$BUGSNAG_KEY_OFFICIAL \ + --app-version=$CIRCLE_BUILD_NUM \ + --minifiedFile=android/app/build/generated/assets/react/officialPlay/release/app.bundle \ + --source-map=android/app/build/generated/sourcemaps/react/officialPlay/release/app.bundle.map \ + --minified-url=app.bundle \ + --upload-sources + fi + if [[ $CIRCLE_JOB == "android-build-experimental" ]]; then + yarn generate-source-maps-android upload \ + --api-key=$BUGSNAG_KEY \ + --app-version=$CIRCLE_BUILD_NUM \ + --minifiedFile=android/app/build/generated/assets/react/experimentalPlay/release/app.bundle \ + --source-map=android/app/build/generated/sourcemaps/react/experimentalPlay/release/app.bundle.map \ + --minified-url=app.bundle \ + --upload-sources + fi + + - store_artifacts: + path: android/app/build/outputs + + - save_cache: *save-npm-cache-linux + + - save_cache: *save-gradle-cache + + - persist_to_workspace: + root: . + paths: + - android/app/build/outputs + + ios-build: + description: "Build iOS app" + steps: + - checkout + - restore_cache: *restore-gems-cache + - restore_cache: *restore-npm-cache-mac + - run: *install-node + - run: *install-npm-modules + - run: *update-fastlane-ios + - run: + name: Set Google Services + command: | + if [[ $KEYSTORE ]]; then + echo $GOOGLE_SERVICES_IOS | base64 --decode > GoogleService-Info.plist + fi + working_directory: ios + - run: + name: Upload sourcemaps to Bugsnag + command: | + if [[ $CIRCLE_JOB == "ios-build-official" ]]; then + yarn generate-source-maps-ios + curl https://upload.bugsnag.com/react-native-source-map \ + -F apiKey=$BUGSNAG_KEY_OFFICIAL \ + -F appBundleVersion=$CIRCLE_BUILD_NUM \ + -F dev=false \ + -F platform=ios \ + -F sourceMap=@ios-release.bundle.map \ + -F bundle=@ios-release.bundle + fi + if [[ $CIRCLE_JOB == "ios-build-experimental" ]]; then + yarn generate-source-maps-ios + curl https://upload.bugsnag.com/react-native-source-map \ + -F apiKey=$BUGSNAG_KEY \ + -F appBundleVersion=$CIRCLE_BUILD_NUM \ + -F dev=false \ + -F platform=ios \ + -F sourceMap=@ios-release.bundle.map \ + -F bundle=@ios-release.bundle + fi + - run: + name: Fastlane Build + no_output_timeout: 1200 + command: | + agvtool new-version -all $CIRCLE_BUILD_NUM + if [[ $CIRCLE_JOB == "ios-build-official" ]]; then + /usr/libexec/PlistBuddy -c "Set BugsnagAPIKey $BUGSNAG_KEY_OFFICIAL" ./RocketChatRN/Info.plist + /usr/libexec/PlistBuddy -c "Set IS_OFFICIAL YES" ./RocketChatRN/Info.plist + else + /usr/libexec/PlistBuddy -c "Set BugsnagAPIKey $BUGSNAG_KEY" ./RocketChatRN/Info.plist + /usr/libexec/PlistBuddy -c "Set IS_OFFICIAL NO" ./RocketChatRN/Info.plist + fi + + if [[ $APP_STORE_CONNECT_API_KEY ]]; then + echo $APP_STORE_CONNECT_API_KEY | base64 --decode > ./fastlane/app_store_connect_api_key.p8 + if [[ $CIRCLE_JOB == "ios-build-official" ]]; then + bundle exec fastlane ios build_official + else + if [[ $KEYSTORE ]]; then + bundle exec fastlane ios release # TODO: rename + else + bundle exec fastlane ios build_fork + fi + fi + fi + working_directory: ios + - save_cache: *save-npm-cache-mac + - save_cache: *save-gems-cache + - store_artifacts: + path: ios/Rocket.Chat.ipa + - store_artifacts: + path: ios/Rocket.Chat.app.dSYM.zip + - persist_to_workspace: + root: . + paths: + - ios/*.ipa + - ios/*.zip + + upload-to-google-play-beta: + description: "Upload to Google Play beta" + parameters: + official: + type: boolean + steps: + - checkout + - attach_workspace: + at: android + - run: + name: Store the google service account key + command: echo "$FASTLANE_GOOGLE_SERVICE_ACCOUNT" | base64 --decode > service_account.json + working_directory: android + - run: *update-fastlane-android + - run: + name: Fastlane Play Store Upload + command: bundle exec fastlane android beta official:<< parameters.official >> + working_directory: android + + upload-to-testflight: + description: "Upload to TestFlight" + parameters: + official: + type: boolean + steps: + - checkout + - attach_workspace: + at: ios + - restore_cache: *restore-gems-cache + - run: *update-fastlane-ios + - run: + name: Fastlane Tesflight Upload + command: | + echo $APP_STORE_CONNECT_API_KEY | base64 --decode > ./fastlane/app_store_connect_api_key.p8 + bundle exec fastlane ios beta official:<< parameters.official >> + working_directory: ios + - save_cache: *save-gems-cache + version: 2.1 # EXECUTORS @@ -119,303 +349,124 @@ jobs: - save_cache: *save-npm-cache-linux # Android builds - android-play-build: + android-build-experimental: <<: *defaults docker: - image: circleci/android:api-28-node - environment: - JAVA_OPTS: '-Xms512m -Xmx2g' - GRADLE_OPTS: '-Xmx3g -Dorg.gradle.daemon=false -Dorg.gradle.jvmargs="-Xmx2g -XX:+HeapDumpOnOutOfMemoryError"' - TERM: dumb + <<: *android-env <<: *bash-env - steps: - - checkout - - - run: *install-node - - - restore_cache: *restore-npm-cache-linux - - - run: *install-npm-modules - - - run: *update-fastlane-android - - - restore_cache: *restore-gradle-cache - - - run: - name: Configure Gradle - command: | - echo -e "" > ./gradle.properties - # echo -e "android.enableAapt2=false" >> ./gradle.properties - echo -e "android.useAndroidX=true" >> ./gradle.properties - echo -e "android.enableJetifier=true" >> ./gradle.properties - echo -e "FLIPPER_VERSION=0.51.0" >> ./gradle.properties - - if [[ $KEYSTORE ]]; then - echo $KEYSTORE_BASE64 | base64 --decode > ./app/$KEYSTORE - echo -e "KEYSTORE=$KEYSTORE" >> ./gradle.properties - echo -e "KEYSTORE_PASSWORD=$KEYSTORE_PASSWORD" >> ./gradle.properties - echo -e "KEY_ALIAS=$KEY_ALIAS" >> ./gradle.properties - echo -e "KEY_PASSWORD=$KEYSTORE_PASSWORD" >> ./gradle.properties - fi - - echo -e "VERSIONCODE=$CIRCLE_BUILD_NUM" >> ./gradle.properties - echo -e "BugsnagAPIKey=$BUGSNAG_KEY" >> ./gradle.properties - working_directory: android - - - run: - name: Set Google Services - command: | - if [[ $KEYSTORE ]]; then - echo $GOOGLE_SERVICES_ANDROID | base64 --decode > google-services.json - fi - working_directory: android/app/src/play - - - run: - name: Config variables - command: | - echo -e "export default { BUGSNAG_API_KEY: '$BUGSNAG_KEY' };" > ./config.js - - - run: - name: Build Android Play App - command: | - if [[ $KEYSTORE ]]; then - bundle exec fastlane android playRelease - else - bundle exec fastlane android playBuild - fi - working_directory: android - - - run: - name: Upload sourcemaps to Bugsnag - command: | - if [[ $BUGSNAG_KEY ]]; then - yarn generate-source-maps-android upload \ - --api-key=$BUGSNAG_KEY \ - --app-version=$CIRCLE_BUILD_NUM \ - --minifiedFile=android/app/build/generated/assets/react/play/release/app.bundle \ - --source-map=android/app/build/generated/sourcemaps/react/play/release/app.bundle.map \ - --minified-url=app.bundle \ - --upload-sources - fi - - - store_artifacts: - path: android/app/build/outputs - - - save_cache: *save-npm-cache-linux - - - save_cache: *save-gradle-cache - - - persist_to_workspace: - root: . - paths: - - android/fastlane/report.xml - - android/app/build/outputs - - android-foss-build: + - android-build + + android-build-official: <<: *defaults docker: - image: circleci/android:api-28-node - environment: - JAVA_OPTS: '-Xms512m -Xmx2g' - GRADLE_OPTS: '-Xmx3g -Dorg.gradle.daemon=false -Dorg.gradle.jvmargs="-Xmx2g -XX:+HeapDumpOnOutOfMemoryError"' - TERM: dumb + <<: *android-env <<: *bash-env - steps: - - checkout + - android-build - - run: *install-node - - - restore_cache: *restore-npm-cache-linux - - - run: *install-npm-modules - - - run: *update-fastlane-android - - - restore_cache: *restore-gradle-cache - - - run: - name: Configure Gradle - command: | - echo -e "" > ./gradle.properties - # echo -e "android.enableAapt2=false" >> ./gradle.properties - echo -e "android.useAndroidX=true" >> ./gradle.properties - echo -e "android.enableJetifier=true" >> ./gradle.properties - echo -e "FLIPPER_VERSION=0.51.0" >> ./gradle.properties - echo -e "VERSIONCODE=$CIRCLE_BUILD_NUM" >> ./gradle.properties - - if [[ $KEYSTORE ]]; then - echo $KEYSTORE_BASE64 | base64 --decode > ./app/$KEYSTORE - echo -e "KEYSTORE=$KEYSTORE" >> ./gradle.properties - echo -e "KEYSTORE_PASSWORD=$KEYSTORE_PASSWORD" >> ./gradle.properties - echo -e "KEY_ALIAS=$KEY_ALIAS" >> ./gradle.properties - echo -e "KEY_PASSWORD=$KEYSTORE_PASSWORD" >> ./gradle.properties - fi - working_directory: android - - - run: - name: Build Android Foss App - command: bundle exec fastlane android fossRelease - working_directory: android - - - store_artifacts: - path: android/app/build/outputs - - - save_cache: *save-npm-cache-linux - - - save_cache: *save-gradle-cache - - - persist_to_workspace: - root: . - paths: - - android/fastlane/report.xml - - android/app/build/outputs - - android-google-play-beta: + android-google-play-beta-experimental: <<: *defaults docker: - image: circleci/android:api-28-node steps: - - checkout + - upload-to-google-play-beta: + official: false - - attach_workspace: - at: android + android-google-play-beta-official: + <<: *defaults + docker: + - image: circleci/android:api-28-node - - run: - name: Store the google service account key - command: echo "$FASTLANE_GOOGLE_SERVICE_ACCOUNT" | base64 --decode > service_account.json - working_directory: android - - - run: *update-fastlane-android - - - run: - name: Fastlane Play Store Upload - command: bundle exec fastlane android beta - working_directory: android + steps: + - upload-to-google-play-beta: + official: true # iOS builds - ios-build: + ios-build-experimental: executor: mac-env - steps: - - checkout + - ios-build - - restore_cache: *restore-gems-cache - - - restore_cache: *restore-npm-cache-mac - - - run: *install-node - - - run: *install-npm-modules - - - run: *update-fastlane-ios - - - run: - name: Set Google Services - command: | - if [[ $KEYSTORE ]]; then - echo $GOOGLE_SERVICES_REACTNATIVE | base64 --decode > GoogleService-Info.plist - fi - working_directory: ios - - - run: - name: Upload sourcemaps to Bugsnag - command: | - if [[ $BUGSNAG_KEY ]]; then - yarn generate-source-maps-ios - curl https://upload.bugsnag.com/react-native-source-map \ - -F apiKey=$BUGSNAG_KEY \ - -F appBundleVersion=$CIRCLE_BUILD_NUM \ - -F dev=false \ - -F platform=ios \ - -F sourceMap=@ios-release.bundle.map \ - -F bundle=@ios-release.bundle - fi - - - run: - name: Fastlane Build - no_output_timeout: 1200 - command: | - agvtool new-version -all $CIRCLE_BUILD_NUM - /usr/libexec/PlistBuddy -c "Set BugsnagAPIKey $BUGSNAG_KEY" ./RocketChatRN/Info.plist - - if [[ $APP_STORE_CONNECT_API_KEY ]]; then - echo $APP_STORE_CONNECT_API_KEY | base64 --decode > ./fastlane/app_store_connect_api_key.p8 - bundle exec fastlane ios release - else - bundle exec fastlane ios build_fork - fi - working_directory: ios - - - save_cache: *save-npm-cache-mac - - - save_cache: *save-gems-cache - - - store_artifacts: - path: ios/RocketChatRN.ipa - - - persist_to_workspace: - root: . - paths: - - ios/*.ipa - - ios/fastlane/report.xml - - ios-testflight: + ios-build-official: executor: mac-env - steps: - - checkout + - ios-build - - attach_workspace: - at: ios + ios-testflight-experimental: + executor: mac-env + steps: + - upload-to-testflight: + official: false - - restore_cache: *restore-gems-cache - - - run: *update-fastlane-ios - - - run: - name: Fastlane Tesflight Upload - command: | - echo $APP_STORE_CONNECT_API_KEY | base64 --decode > ./fastlane/app_store_connect_api_key.p8 - bundle exec fastlane ios beta - working_directory: ios - - - save_cache: *save-gems-cache + ios-testflight-official: + executor: mac-env + steps: + - upload-to-testflight: + official: true workflows: build-and-test: jobs: - lint-testunit - - ios-build: + # iOS Experimental + - ios-build-experimental: requires: - lint-testunit - - ios-hold-testflight: + - ios-hold-testflight-experimental: type: approval requires: - - ios-build - - ios-testflight: + - ios-build-experimental + - ios-testflight-experimental: requires: - - ios-hold-testflight + - ios-hold-testflight-experimental - - android-play-build: - requires: - - lint-testunit - - android-hold-google-play-beta: - type: approval - requires: - - android-play-build - - android-google-play-beta: - requires: - - android-hold-google-play-beta - - android-hold-foss-build: + # iOS Official + - ios-hold-build-official: type: approval requires: - lint-testunit - - android-foss-build: + - ios-build-official: requires: - - android-hold-foss-build + - ios-hold-build-official + - ios-hold-testflight-official: + type: approval + requires: + - ios-build-official + - ios-testflight-official: + requires: + - ios-hold-testflight-official + + # Android Experimental + - android-build-experimental: + requires: + - lint-testunit + - android-hold-google-play-beta-experimental: + type: approval + requires: + - android-build-experimental + - android-google-play-beta-experimental: + requires: + - android-hold-google-play-beta-experimental + + # Android Official + - android-hold-build-official: + type: approval + requires: + - lint-testunit + - android-build-official: + requires: + - android-hold-build-official + - android-hold-google-play-beta-official: + type: approval + requires: + - android-build-official + - android-google-play-beta-official: + requires: + - android-hold-google-play-beta-official diff --git a/.gitignore b/.gitignore index 3d1baa215..d34d28671 100644 --- a/.gitignore +++ b/.gitignore @@ -21,6 +21,7 @@ DerivedData *.ipa *.xcuserstate project.xcworkspace +*.mobileprovision # Android/IntelliJ # diff --git a/__tests__/__snapshots__/Storyshots.test.js.snap b/__tests__/__snapshots__/Storyshots.test.js.snap index 7d0605ac7..f247b28de 100644 --- a/__tests__/__snapshots__/Storyshots.test.js.snap +++ b/__tests__/__snapshots__/Storyshots.test.js.snap @@ -1163,6 +1163,7 @@ exports[`Storyshots Header Buttons badge 1`] = ` "fontFamily": "System", "fontSize": 13, "fontWeight": "600", + "textAlign": "left", }, Object { "fontSize": 10, @@ -1255,6 +1256,7 @@ exports[`Storyshots Header Buttons badge 1`] = ` "fontFamily": "System", "fontSize": 13, "fontWeight": "600", + "textAlign": "left", }, Object { "fontSize": 10, @@ -1347,6 +1349,7 @@ exports[`Storyshots Header Buttons badge 1`] = ` "fontFamily": "System", "fontSize": 13, "fontWeight": "600", + "textAlign": "left", }, Object { "fontSize": 10, @@ -1658,6 +1661,7 @@ Array [ "fontFamily": "System", "fontSize": 17, "fontWeight": "400", + "textAlign": "left", }, Object { "color": "#6C727A", @@ -2661,6 +2665,7 @@ Array [ "fontFamily": "System", "fontSize": 17, "fontWeight": "400", + "textAlign": "left", }, Object { "color": "#6C727A", @@ -2749,6 +2754,7 @@ Array [ "fontFamily": "System", "fontSize": 13, "fontWeight": "600", + "textAlign": "left", }, Object { "fontSize": 10, @@ -2913,6 +2919,7 @@ Array [ "fontFamily": "System", "fontSize": 17, "fontWeight": "400", + "textAlign": "left", }, Object { "color": "#f9f9f9", @@ -3001,6 +3008,7 @@ Array [ "fontFamily": "System", "fontSize": 13, "fontWeight": "600", + "textAlign": "left", }, Object { "fontSize": 10, @@ -3165,6 +3173,7 @@ Array [ "fontFamily": "System", "fontSize": 17, "fontWeight": "400", + "textAlign": "left", }, Object { "color": "#f9f9f9", @@ -3253,6 +3262,7 @@ Array [ "fontFamily": "System", "fontSize": 13, "fontWeight": "600", + "textAlign": "left", }, Object { "fontSize": 10, @@ -3354,6 +3364,7 @@ Array [ "fontFamily": "System", "fontSize": 17, "fontWeight": "400", + "textAlign": "left", }, Object { "color": "#6C727A", @@ -3419,6 +3430,7 @@ Array [ "fontFamily": "System", "fontSize": 17, "fontWeight": "400", + "textAlign": "left", }, Object { "color": "#6C727A", @@ -3511,6 +3523,7 @@ Array [ "fontFamily": "System", "fontSize": 17, "fontWeight": "400", + "textAlign": "left", }, Object { "color": "#6C727A", @@ -3554,6 +3567,7 @@ Array [ "fontFamily": "System", "fontSize": 17, "fontWeight": "400", + "textAlign": "left", }, Object { "color": "#6C727A", @@ -3619,6 +3633,7 @@ Array [ "fontFamily": "System", "fontSize": 17, "fontWeight": "400", + "textAlign": "left", }, Object { "color": "#6C727A", @@ -3662,6 +3677,7 @@ Array [ "fontFamily": "System", "fontSize": 17, "fontWeight": "400", + "textAlign": "left", }, Object { "color": "#6C727A", @@ -3712,6 +3728,7 @@ exports[`Storyshots List header 1`] = ` "fontFamily": "System", "fontSize": 16, "fontWeight": "400", + "textAlign": "left", }, Object { "color": "#6d6d72", @@ -3739,6 +3756,7 @@ exports[`Storyshots List header 1`] = ` "fontFamily": "System", "fontSize": 16, "fontWeight": "400", + "textAlign": "left", }, Object { "color": "#6d6d72", @@ -3772,10 +3790,13 @@ exports[`Storyshots List icon 1`] = ` @@ -11384,6 +11746,7 @@ exports[`Storyshots Markdown list Markdown 1`] = ` "fontFamily": "System", "fontSize": 16, "fontWeight": "400", + "textAlign": "left", }, Array [ Object {}, @@ -11400,6 +11763,7 @@ exports[`Storyshots Markdown list Markdown 1`] = ` "fontFamily": "System", "fontSize": 16, "fontWeight": "400", + "textAlign": "left", }, ], ] @@ -11417,6 +11781,7 @@ exports[`Storyshots Markdown list Markdown 1`] = ` "fontFamily": "System", "fontSize": 16, "fontWeight": "400", + "textAlign": "left", }, Array [ Object {}, @@ -11445,6 +11810,7 @@ exports[`Storyshots Markdown list Markdown 1`] = ` "color": "#2f343d", "fontFamily": "Courier New", "fontWeight": "400", + "textAlign": "left", }, ] } @@ -11455,6 +11821,13 @@ exports[`Storyshots Markdown list Markdown 1`] = ` @@ -11484,6 +11858,7 @@ exports[`Storyshots Markdown list Markdown 1`] = ` "fontFamily": "System", "fontSize": 16, "fontWeight": "400", + "textAlign": "left", }, Array [ Object {}, @@ -11500,6 +11875,7 @@ exports[`Storyshots Markdown list Markdown 1`] = ` "fontFamily": "System", "fontSize": 16, "fontWeight": "400", + "textAlign": "left", }, ], ] @@ -11517,6 +11893,7 @@ exports[`Storyshots Markdown list Markdown 1`] = ` "fontFamily": "System", "fontSize": 16, "fontWeight": "400", + "textAlign": "left", }, Array [ Object {}, @@ -11545,6 +11922,7 @@ exports[`Storyshots Markdown list Markdown 1`] = ` "color": "#2f343d", "fontFamily": "Courier New", "fontWeight": "400", + "textAlign": "left", }, ] } @@ -11584,6 +11962,13 @@ exports[`Storyshots Markdown list Markdown 1`] = ` - - Message removed + + + diego.mello + + + + Message removed + @@ -40717,14 +42082,9 @@ exports[`Storyshots Message list message 1`] = ` > - - Has joined the channel + + + diego.mello + + + + has joined the channel + @@ -40883,14 +42267,9 @@ exports[`Storyshots Message list message 1`] = ` > - - Message pinned + + + diego.mello + + + + Message pinned + @@ -41215,14 +42614,9 @@ exports[`Storyshots Message list message 1`] = ` > - - Has left the channel + + + diego.mello + + + + has left the channel + @@ -41381,14 +42799,9 @@ exports[`Storyshots Message list message 1`] = ` > + + Ignored + + + + + + + + + + + + + + + + Message ignored. Tap to display it. + + + + + + + @@ -44510,6 +46107,7 @@ exports[`Storyshots Message list message 1`] = ` "fontFamily": "System", "fontSize": 16, "fontWeight": "400", + "textAlign": "left", }, Array [ Object {}, @@ -44526,6 +46124,7 @@ exports[`Storyshots Message list message 1`] = ` "fontFamily": "System", "fontSize": 16, "fontWeight": "400", + "textAlign": "left", }, ], ] @@ -44544,6 +46143,7 @@ exports[`Storyshots Message list message 1`] = ` "fontFamily": "System", "fontSize": 16, "fontWeight": "400", + "textAlign": "left", }, Array [ Object {}, @@ -44571,6 +46171,7 @@ exports[`Storyshots Message list message 1`] = ` "fontFamily": "System", "fontSize": 16, "fontWeight": "400", + "textAlign": "left", } } > @@ -44584,6 +46185,7 @@ exports[`Storyshots Message list message 1`] = ` "fontFamily": "System", "fontSize": 16, "fontWeight": "400", + "textAlign": "left", }, Array [ Object {}, @@ -44600,6 +46202,7 @@ exports[`Storyshots Message list message 1`] = ` "fontFamily": "System", "fontSize": 16, "fontWeight": "400", + "textAlign": "left", }, ], ] @@ -44618,6 +46221,7 @@ exports[`Storyshots Message list message 1`] = ` "fontFamily": "System", "fontSize": 16, "fontWeight": "400", + "textAlign": "left", }, Array [ Object {}, @@ -44645,6 +46249,7 @@ exports[`Storyshots Message list message 1`] = ` "fontFamily": "System", "fontSize": 16, "fontWeight": "400", + "textAlign": "left", } } > @@ -44658,6 +46263,7 @@ exports[`Storyshots Message list message 1`] = ` "fontFamily": "System", "fontSize": 16, "fontWeight": "400", + "textAlign": "left", }, Array [ Object {}, @@ -44674,6 +46280,7 @@ exports[`Storyshots Message list message 1`] = ` "fontFamily": "System", "fontSize": 16, "fontWeight": "400", + "textAlign": "left", }, ], ] @@ -44864,6 +46471,7 @@ exports[`Storyshots Message list message 1`] = ` "fontSize": 16, "fontWeight": "500", "lineHeight": 22, + "textAlign": "left", }, Object { "color": "#0d0e12", @@ -44882,7 +46490,8 @@ exports[`Storyshots Message list message 1`] = ` "fontFamily": "System", "fontSize": 12, "fontWeight": "400", - "paddingLeft": 8, + "marginLeft": 8, + "textAlign": "left", }, Object { "color": "#9ca2a8", @@ -44898,6 +46507,13 @@ exports[`Storyshots Message list message 1`] = ` numberOfLines={0} style={ Array [ + Object { + "backgroundColor": "transparent", + "fontFamily": "System", + "fontSize": 16, + "fontWeight": "400", + "textAlign": "left", + }, undefined, Object { "color": "#2f343d", @@ -45101,6 +46717,7 @@ exports[`Storyshots Message list message 1`] = ` "fontSize": 16, "fontWeight": "500", "lineHeight": 22, + "textAlign": "left", }, Object { "color": "#0d0e12", @@ -45119,7 +46736,8 @@ exports[`Storyshots Message list message 1`] = ` "fontFamily": "System", "fontSize": 12, "fontWeight": "400", - "paddingLeft": 8, + "marginLeft": 8, + "textAlign": "left", }, Object { "color": "#9ca2a8", @@ -45135,6 +46753,13 @@ exports[`Storyshots Message list message 1`] = ` numberOfLines={0} style={ Array [ + Object { + "backgroundColor": "transparent", + "fontFamily": "System", + "fontSize": 16, + "fontWeight": "400", + "textAlign": "left", + }, undefined, Object { "color": "#2f343d", @@ -45152,6 +46777,7 @@ exports[`Storyshots Message list message 1`] = ` "fontFamily": "System", "fontSize": 16, "fontWeight": "400", + "textAlign": "left", }, Array [ Object {}, @@ -45180,6 +46806,7 @@ exports[`Storyshots Message list message 1`] = ` "color": "#2f343d", "fontFamily": "Courier New", "fontWeight": "400", + "textAlign": "left", }, ] } @@ -45196,6 +46823,7 @@ exports[`Storyshots Message list message 1`] = ` "fontFamily": "System", "fontSize": 16, "fontWeight": "400", + "textAlign": "left", }, Array [ Object {}, @@ -45224,6 +46852,7 @@ exports[`Storyshots Message list message 1`] = ` "color": "#2f343d", "fontFamily": "Courier New", "fontWeight": "400", + "textAlign": "left", }, ] } @@ -45240,6 +46869,7 @@ exports[`Storyshots Message list message 1`] = ` "fontFamily": "System", "fontSize": 16, "fontWeight": "400", + "textAlign": "left", }, Array [ Object {}, @@ -45270,6 +46900,7 @@ exports[`Storyshots Message list message 1`] = ` "fontFamily": "Courier New", "fontWeight": "400", "padding": 4, + "textAlign": "left", }, ] } @@ -45458,6 +47089,7 @@ exports[`Storyshots Message list message 1`] = ` "fontSize": 16, "fontWeight": "500", "lineHeight": 22, + "textAlign": "left", }, Object { "color": "#0d0e12", @@ -45476,7 +47108,8 @@ exports[`Storyshots Message list message 1`] = ` "fontFamily": "System", "fontSize": 12, "fontWeight": "400", - "paddingLeft": 8, + "marginLeft": 8, + "textAlign": "left", }, Object { "color": "#9ca2a8", @@ -45521,6 +47154,13 @@ exports[`Storyshots Message list message 1`] = ` numberOfLines={0} style={ Array [ + Object { + "backgroundColor": "transparent", + "fontFamily": "System", + "fontSize": 16, + "fontWeight": "400", + "textAlign": "left", + }, undefined, Object { "color": "#2f343d", @@ -45538,6 +47178,7 @@ exports[`Storyshots Message list message 1`] = ` "fontFamily": "System", "fontSize": 16, "fontWeight": "400", + "textAlign": "left", }, Array [ Object {}, @@ -45740,6 +47381,7 @@ exports[`Storyshots Message list message 1`] = ` "fontSize": 16, "fontWeight": "500", "lineHeight": 22, + "textAlign": "left", }, Object { "color": "#0d0e12", @@ -45758,7 +47400,8 @@ exports[`Storyshots Message list message 1`] = ` "fontFamily": "System", "fontSize": 12, "fontWeight": "400", - "paddingLeft": 8, + "marginLeft": 8, + "textAlign": "left", }, Object { "color": "#9ca2a8", @@ -45877,6 +47520,7 @@ exports[`Storyshots Message list message 1`] = ` "fontFamily": "System", "fontSize": 16, "fontWeight": "400", + "textAlign": "left", }, Array [ Object {}, @@ -45931,6 +47575,7 @@ exports[`Storyshots Message list message 1`] = ` "fontFamily": "System", "fontSize": 16, "fontWeight": "400", + "textAlign": "left", }, Array [ Object {}, @@ -46004,6 +47649,7 @@ exports[`Storyshots Message list message 1`] = ` "fontFamily": "System", "fontSize": 16, "fontWeight": "400", + "textAlign": "left", }, Array [ Object {}, @@ -46058,6 +47704,7 @@ exports[`Storyshots Message list message 1`] = ` "fontFamily": "System", "fontSize": 16, "fontWeight": "400", + "textAlign": "left", }, Array [ Object {}, @@ -46128,6 +47775,7 @@ exports[`Storyshots Message list message 1`] = ` "fontFamily": "System", "fontSize": 16, "fontWeight": "400", + "textAlign": "left", }, Array [ Object {}, @@ -46182,6 +47830,7 @@ exports[`Storyshots Message list message 1`] = ` "fontFamily": "System", "fontSize": 16, "fontWeight": "400", + "textAlign": "left", }, Array [ Object {}, @@ -46212,6 +47861,7 @@ exports[`Storyshots Message list message 1`] = ` "fontSize": 16, "fontStyle": "italic", "fontWeight": "400", + "textAlign": "left", }, Object { "color": "#9ca2a8", @@ -46300,11 +47950,6 @@ exports[`Storyshots RoomItem list roomitem 1`] = ` "position": "absolute", "right": 0, "top": 0, - "transform": Array [ - Object { - "translateX": 0, - }, - ], } } > @@ -46338,6 +47983,7 @@ exports[`Storyshots RoomItem list roomitem 1`] = ` "fontWeight": "600", "justifyContent": "center", "marginTop": 4, + "textAlign": "left", }, Object { "color": "#ffffff", @@ -46409,6 +48055,7 @@ exports[`Storyshots RoomItem list roomitem 1`] = ` "fontWeight": "600", "justifyContent": "center", "marginTop": 4, + "textAlign": "left", }, Object { "color": "#ffffff", @@ -46465,6 +48112,7 @@ exports[`Storyshots RoomItem list roomitem 1`] = ` "fontWeight": "600", "justifyContent": "center", "marginTop": 4, + "textAlign": "left", }, Object { "color": "#ffffff", @@ -46606,6 +48254,7 @@ exports[`Storyshots RoomItem list roomitem 1`] = ` "fontSize": 17, "fontWeight": "500", "lineHeight": 20, + "textAlign": "left", }, undefined, Object { @@ -46680,11 +48329,6 @@ exports[`Storyshots RoomItem list roomitem 1`] = ` "position": "absolute", "right": 0, "top": 0, - "transform": Array [ - Object { - "translateX": 0, - }, - ], } } > @@ -46718,6 +48362,7 @@ exports[`Storyshots RoomItem list roomitem 1`] = ` "fontWeight": "600", "justifyContent": "center", "marginTop": 4, + "textAlign": "left", }, Object { "color": "#ffffff", @@ -46789,6 +48434,7 @@ exports[`Storyshots RoomItem list roomitem 1`] = ` "fontWeight": "600", "justifyContent": "center", "marginTop": 4, + "textAlign": "left", }, Object { "color": "#ffffff", @@ -46845,6 +48491,7 @@ exports[`Storyshots RoomItem list roomitem 1`] = ` "fontWeight": "600", "justifyContent": "center", "marginTop": 4, + "textAlign": "left", }, Object { "color": "#ffffff", @@ -46986,6 +48633,7 @@ exports[`Storyshots RoomItem list roomitem 1`] = ` "fontSize": 17, "fontWeight": "500", "lineHeight": 20, + "textAlign": "left", }, undefined, Object { @@ -47042,11 +48690,6 @@ exports[`Storyshots RoomItem list roomitem 1`] = ` "position": "absolute", "right": 0, "top": 0, - "transform": Array [ - Object { - "translateX": 0, - }, - ], } } > @@ -47080,6 +48723,7 @@ exports[`Storyshots RoomItem list roomitem 1`] = ` "fontWeight": "600", "justifyContent": "center", "marginTop": 4, + "textAlign": "left", }, Object { "color": "#ffffff", @@ -47151,6 +48795,7 @@ exports[`Storyshots RoomItem list roomitem 1`] = ` "fontWeight": "600", "justifyContent": "center", "marginTop": 4, + "textAlign": "left", }, Object { "color": "#ffffff", @@ -47207,6 +48852,7 @@ exports[`Storyshots RoomItem list roomitem 1`] = ` "fontWeight": "600", "justifyContent": "center", "marginTop": 4, + "textAlign": "left", }, Object { "color": "#ffffff", @@ -47348,6 +48994,7 @@ exports[`Storyshots RoomItem list roomitem 1`] = ` "fontSize": 17, "fontWeight": "500", "lineHeight": 20, + "textAlign": "left", }, undefined, Object { @@ -47422,11 +49069,6 @@ exports[`Storyshots RoomItem list roomitem 1`] = ` "position": "absolute", "right": 0, "top": 0, - "transform": Array [ - Object { - "translateX": 0, - }, - ], } } > @@ -47460,6 +49102,7 @@ exports[`Storyshots RoomItem list roomitem 1`] = ` "fontWeight": "600", "justifyContent": "center", "marginTop": 4, + "textAlign": "left", }, Object { "color": "#ffffff", @@ -47531,6 +49174,7 @@ exports[`Storyshots RoomItem list roomitem 1`] = ` "fontWeight": "600", "justifyContent": "center", "marginTop": 4, + "textAlign": "left", }, Object { "color": "#ffffff", @@ -47587,6 +49231,7 @@ exports[`Storyshots RoomItem list roomitem 1`] = ` "fontWeight": "600", "justifyContent": "center", "marginTop": 4, + "textAlign": "left", }, Object { "color": "#ffffff", @@ -47728,6 +49373,7 @@ exports[`Storyshots RoomItem list roomitem 1`] = ` "fontSize": 17, "fontWeight": "500", "lineHeight": 20, + "textAlign": "left", }, undefined, Object { @@ -47784,11 +49430,6 @@ exports[`Storyshots RoomItem list roomitem 1`] = ` "position": "absolute", "right": 0, "top": 0, - "transform": Array [ - Object { - "translateX": 0, - }, - ], } } > @@ -47822,6 +49463,7 @@ exports[`Storyshots RoomItem list roomitem 1`] = ` "fontWeight": "600", "justifyContent": "center", "marginTop": 4, + "textAlign": "left", }, Object { "color": "#ffffff", @@ -47893,6 +49535,7 @@ exports[`Storyshots RoomItem list roomitem 1`] = ` "fontWeight": "600", "justifyContent": "center", "marginTop": 4, + "textAlign": "left", }, Object { "color": "#ffffff", @@ -47949,6 +49592,7 @@ exports[`Storyshots RoomItem list roomitem 1`] = ` "fontWeight": "600", "justifyContent": "center", "marginTop": 4, + "textAlign": "left", }, Object { "color": "#ffffff", @@ -48101,6 +49745,7 @@ exports[`Storyshots RoomItem list roomitem 1`] = ` "fontSize": 17, "fontWeight": "500", "lineHeight": 20, + "textAlign": "left", }, undefined, Object { @@ -48157,11 +49802,6 @@ exports[`Storyshots RoomItem list roomitem 1`] = ` "position": "absolute", "right": 0, "top": 0, - "transform": Array [ - Object { - "translateX": 0, - }, - ], } } > @@ -48195,6 +49835,7 @@ exports[`Storyshots RoomItem list roomitem 1`] = ` "fontWeight": "600", "justifyContent": "center", "marginTop": 4, + "textAlign": "left", }, Object { "color": "#ffffff", @@ -48266,6 +49907,7 @@ exports[`Storyshots RoomItem list roomitem 1`] = ` "fontWeight": "600", "justifyContent": "center", "marginTop": 4, + "textAlign": "left", }, Object { "color": "#ffffff", @@ -48322,6 +49964,7 @@ exports[`Storyshots RoomItem list roomitem 1`] = ` "fontWeight": "600", "justifyContent": "center", "marginTop": 4, + "textAlign": "left", }, Object { "color": "#ffffff", @@ -48474,6 +50117,7 @@ exports[`Storyshots RoomItem list roomitem 1`] = ` "fontSize": 17, "fontWeight": "500", "lineHeight": 20, + "textAlign": "left", }, undefined, Object { @@ -48530,11 +50174,6 @@ exports[`Storyshots RoomItem list roomitem 1`] = ` "position": "absolute", "right": 0, "top": 0, - "transform": Array [ - Object { - "translateX": 0, - }, - ], } } > @@ -48568,6 +50207,7 @@ exports[`Storyshots RoomItem list roomitem 1`] = ` "fontWeight": "600", "justifyContent": "center", "marginTop": 4, + "textAlign": "left", }, Object { "color": "#ffffff", @@ -48639,6 +50279,7 @@ exports[`Storyshots RoomItem list roomitem 1`] = ` "fontWeight": "600", "justifyContent": "center", "marginTop": 4, + "textAlign": "left", }, Object { "color": "#ffffff", @@ -48695,6 +50336,7 @@ exports[`Storyshots RoomItem list roomitem 1`] = ` "fontWeight": "600", "justifyContent": "center", "marginTop": 4, + "textAlign": "left", }, Object { "color": "#ffffff", @@ -48847,6 +50489,7 @@ exports[`Storyshots RoomItem list roomitem 1`] = ` "fontSize": 17, "fontWeight": "500", "lineHeight": 20, + "textAlign": "left", }, undefined, Object { @@ -48903,11 +50546,6 @@ exports[`Storyshots RoomItem list roomitem 1`] = ` "position": "absolute", "right": 0, "top": 0, - "transform": Array [ - Object { - "translateX": 0, - }, - ], } } > @@ -48941,6 +50579,7 @@ exports[`Storyshots RoomItem list roomitem 1`] = ` "fontWeight": "600", "justifyContent": "center", "marginTop": 4, + "textAlign": "left", }, Object { "color": "#ffffff", @@ -49012,6 +50651,7 @@ exports[`Storyshots RoomItem list roomitem 1`] = ` "fontWeight": "600", "justifyContent": "center", "marginTop": 4, + "textAlign": "left", }, Object { "color": "#ffffff", @@ -49068,6 +50708,7 @@ exports[`Storyshots RoomItem list roomitem 1`] = ` "fontWeight": "600", "justifyContent": "center", "marginTop": 4, + "textAlign": "left", }, Object { "color": "#ffffff", @@ -49220,6 +50861,7 @@ exports[`Storyshots RoomItem list roomitem 1`] = ` "fontSize": 17, "fontWeight": "500", "lineHeight": 20, + "textAlign": "left", }, undefined, Object { @@ -49276,11 +50918,6 @@ exports[`Storyshots RoomItem list roomitem 1`] = ` "position": "absolute", "right": 0, "top": 0, - "transform": Array [ - Object { - "translateX": 0, - }, - ], } } > @@ -49314,6 +50951,7 @@ exports[`Storyshots RoomItem list roomitem 1`] = ` "fontWeight": "600", "justifyContent": "center", "marginTop": 4, + "textAlign": "left", }, Object { "color": "#ffffff", @@ -49385,6 +51023,7 @@ exports[`Storyshots RoomItem list roomitem 1`] = ` "fontWeight": "600", "justifyContent": "center", "marginTop": 4, + "textAlign": "left", }, Object { "color": "#ffffff", @@ -49441,6 +51080,7 @@ exports[`Storyshots RoomItem list roomitem 1`] = ` "fontWeight": "600", "justifyContent": "center", "marginTop": 4, + "textAlign": "left", }, Object { "color": "#ffffff", @@ -49593,6 +51233,7 @@ exports[`Storyshots RoomItem list roomitem 1`] = ` "fontSize": 17, "fontWeight": "500", "lineHeight": 20, + "textAlign": "left", }, undefined, Object { @@ -49649,11 +51290,6 @@ exports[`Storyshots RoomItem list roomitem 1`] = ` "position": "absolute", "right": 0, "top": 0, - "transform": Array [ - Object { - "translateX": 0, - }, - ], } } > @@ -49687,6 +51323,7 @@ exports[`Storyshots RoomItem list roomitem 1`] = ` "fontWeight": "600", "justifyContent": "center", "marginTop": 4, + "textAlign": "left", }, Object { "color": "#ffffff", @@ -49758,6 +51395,7 @@ exports[`Storyshots RoomItem list roomitem 1`] = ` "fontWeight": "600", "justifyContent": "center", "marginTop": 4, + "textAlign": "left", }, Object { "color": "#ffffff", @@ -49814,6 +51452,7 @@ exports[`Storyshots RoomItem list roomitem 1`] = ` "fontWeight": "600", "justifyContent": "center", "marginTop": 4, + "textAlign": "left", }, Object { "color": "#ffffff", @@ -49966,6 +51605,7 @@ exports[`Storyshots RoomItem list roomitem 1`] = ` "fontSize": 17, "fontWeight": "500", "lineHeight": 20, + "textAlign": "left", }, undefined, Object { @@ -50040,11 +51680,6 @@ exports[`Storyshots RoomItem list roomitem 1`] = ` "position": "absolute", "right": 0, "top": 0, - "transform": Array [ - Object { - "translateX": 0, - }, - ], } } > @@ -50078,6 +51713,7 @@ exports[`Storyshots RoomItem list roomitem 1`] = ` "fontWeight": "600", "justifyContent": "center", "marginTop": 4, + "textAlign": "left", }, Object { "color": "#ffffff", @@ -50149,6 +51785,7 @@ exports[`Storyshots RoomItem list roomitem 1`] = ` "fontWeight": "600", "justifyContent": "center", "marginTop": 4, + "textAlign": "left", }, Object { "color": "#ffffff", @@ -50205,6 +51842,7 @@ exports[`Storyshots RoomItem list roomitem 1`] = ` "fontWeight": "600", "justifyContent": "center", "marginTop": 4, + "textAlign": "left", }, Object { "color": "#ffffff", @@ -50346,6 +51984,7 @@ exports[`Storyshots RoomItem list roomitem 1`] = ` "fontSize": 17, "fontWeight": "500", "lineHeight": 20, + "textAlign": "left", }, undefined, Object { @@ -50402,11 +52041,6 @@ exports[`Storyshots RoomItem list roomitem 1`] = ` "position": "absolute", "right": 0, "top": 0, - "transform": Array [ - Object { - "translateX": 0, - }, - ], } } > @@ -50440,6 +52074,7 @@ exports[`Storyshots RoomItem list roomitem 1`] = ` "fontWeight": "600", "justifyContent": "center", "marginTop": 4, + "textAlign": "left", }, Object { "color": "#ffffff", @@ -50511,6 +52146,7 @@ exports[`Storyshots RoomItem list roomitem 1`] = ` "fontWeight": "600", "justifyContent": "center", "marginTop": 4, + "textAlign": "left", }, Object { "color": "#ffffff", @@ -50567,6 +52203,7 @@ exports[`Storyshots RoomItem list roomitem 1`] = ` "fontWeight": "600", "justifyContent": "center", "marginTop": 4, + "textAlign": "left", }, Object { "color": "#ffffff", @@ -50708,6 +52345,7 @@ exports[`Storyshots RoomItem list roomitem 1`] = ` "fontSize": 17, "fontWeight": "500", "lineHeight": 20, + "textAlign": "left", }, undefined, Object { @@ -50764,11 +52402,6 @@ exports[`Storyshots RoomItem list roomitem 1`] = ` "position": "absolute", "right": 0, "top": 0, - "transform": Array [ - Object { - "translateX": 0, - }, - ], } } > @@ -50802,6 +52435,7 @@ exports[`Storyshots RoomItem list roomitem 1`] = ` "fontWeight": "600", "justifyContent": "center", "marginTop": 4, + "textAlign": "left", }, Object { "color": "#ffffff", @@ -50873,6 +52507,7 @@ exports[`Storyshots RoomItem list roomitem 1`] = ` "fontWeight": "600", "justifyContent": "center", "marginTop": 4, + "textAlign": "left", }, Object { "color": "#ffffff", @@ -50929,6 +52564,7 @@ exports[`Storyshots RoomItem list roomitem 1`] = ` "fontWeight": "600", "justifyContent": "center", "marginTop": 4, + "textAlign": "left", }, Object { "color": "#ffffff", @@ -51070,6 +52706,7 @@ exports[`Storyshots RoomItem list roomitem 1`] = ` "fontSize": 17, "fontWeight": "500", "lineHeight": 20, + "textAlign": "left", }, undefined, Object { @@ -51126,11 +52763,6 @@ exports[`Storyshots RoomItem list roomitem 1`] = ` "position": "absolute", "right": 0, "top": 0, - "transform": Array [ - Object { - "translateX": 0, - }, - ], } } > @@ -51164,6 +52796,7 @@ exports[`Storyshots RoomItem list roomitem 1`] = ` "fontWeight": "600", "justifyContent": "center", "marginTop": 4, + "textAlign": "left", }, Object { "color": "#ffffff", @@ -51235,6 +52868,7 @@ exports[`Storyshots RoomItem list roomitem 1`] = ` "fontWeight": "600", "justifyContent": "center", "marginTop": 4, + "textAlign": "left", }, Object { "color": "#ffffff", @@ -51291,6 +52925,7 @@ exports[`Storyshots RoomItem list roomitem 1`] = ` "fontWeight": "600", "justifyContent": "center", "marginTop": 4, + "textAlign": "left", }, Object { "color": "#ffffff", @@ -51432,6 +53067,7 @@ exports[`Storyshots RoomItem list roomitem 1`] = ` "fontSize": 17, "fontWeight": "500", "lineHeight": 20, + "textAlign": "left", }, undefined, Object { @@ -51488,11 +53124,6 @@ exports[`Storyshots RoomItem list roomitem 1`] = ` "position": "absolute", "right": 0, "top": 0, - "transform": Array [ - Object { - "translateX": 0, - }, - ], } } > @@ -51526,6 +53157,7 @@ exports[`Storyshots RoomItem list roomitem 1`] = ` "fontWeight": "600", "justifyContent": "center", "marginTop": 4, + "textAlign": "left", }, Object { "color": "#ffffff", @@ -51597,6 +53229,7 @@ exports[`Storyshots RoomItem list roomitem 1`] = ` "fontWeight": "600", "justifyContent": "center", "marginTop": 4, + "textAlign": "left", }, Object { "color": "#ffffff", @@ -51653,6 +53286,7 @@ exports[`Storyshots RoomItem list roomitem 1`] = ` "fontWeight": "600", "justifyContent": "center", "marginTop": 4, + "textAlign": "left", }, Object { "color": "#ffffff", @@ -51794,6 +53428,7 @@ exports[`Storyshots RoomItem list roomitem 1`] = ` "fontSize": 17, "fontWeight": "500", "lineHeight": 20, + "textAlign": "left", }, undefined, Object { @@ -51868,11 +53503,6 @@ exports[`Storyshots RoomItem list roomitem 1`] = ` "position": "absolute", "right": 0, "top": 0, - "transform": Array [ - Object { - "translateX": 0, - }, - ], } } > @@ -51906,6 +53536,7 @@ exports[`Storyshots RoomItem list roomitem 1`] = ` "fontWeight": "600", "justifyContent": "center", "marginTop": 4, + "textAlign": "left", }, Object { "color": "#ffffff", @@ -51977,6 +53608,7 @@ exports[`Storyshots RoomItem list roomitem 1`] = ` "fontWeight": "600", "justifyContent": "center", "marginTop": 4, + "textAlign": "left", }, Object { "color": "#ffffff", @@ -52033,6 +53665,7 @@ exports[`Storyshots RoomItem list roomitem 1`] = ` "fontWeight": "600", "justifyContent": "center", "marginTop": 4, + "textAlign": "left", }, Object { "color": "#ffffff", @@ -52174,11 +53807,13 @@ exports[`Storyshots RoomItem list roomitem 1`] = ` "fontSize": 17, "fontWeight": "500", "lineHeight": 20, + "textAlign": "left", }, Object { "backgroundColor": "transparent", "fontFamily": "System", "fontWeight": "600", + "textAlign": "left", }, Object { "color": "#0d0e12", @@ -52234,11 +53869,6 @@ exports[`Storyshots RoomItem list roomitem 1`] = ` "position": "absolute", "right": 0, "top": 0, - "transform": Array [ - Object { - "translateX": 0, - }, - ], } } > @@ -52272,6 +53902,7 @@ exports[`Storyshots RoomItem list roomitem 1`] = ` "fontWeight": "600", "justifyContent": "center", "marginTop": 4, + "textAlign": "left", }, Object { "color": "#ffffff", @@ -52343,6 +53974,7 @@ exports[`Storyshots RoomItem list roomitem 1`] = ` "fontWeight": "600", "justifyContent": "center", "marginTop": 4, + "textAlign": "left", }, Object { "color": "#ffffff", @@ -52399,6 +54031,7 @@ exports[`Storyshots RoomItem list roomitem 1`] = ` "fontWeight": "600", "justifyContent": "center", "marginTop": 4, + "textAlign": "left", }, Object { "color": "#ffffff", @@ -52540,11 +54173,13 @@ exports[`Storyshots RoomItem list roomitem 1`] = ` "fontSize": 17, "fontWeight": "500", "lineHeight": 20, + "textAlign": "left", }, Object { "backgroundColor": "transparent", "fontFamily": "System", "fontWeight": "600", + "textAlign": "left", }, Object { "color": "#0d0e12", @@ -52583,6 +54218,7 @@ exports[`Storyshots RoomItem list roomitem 1`] = ` "fontFamily": "System", "fontSize": 13, "fontWeight": "600", + "textAlign": "left", }, undefined, Object { @@ -52640,11 +54276,6 @@ exports[`Storyshots RoomItem list roomitem 1`] = ` "position": "absolute", "right": 0, "top": 0, - "transform": Array [ - Object { - "translateX": 0, - }, - ], } } > @@ -52678,6 +54309,7 @@ exports[`Storyshots RoomItem list roomitem 1`] = ` "fontWeight": "600", "justifyContent": "center", "marginTop": 4, + "textAlign": "left", }, Object { "color": "#ffffff", @@ -52749,6 +54381,7 @@ exports[`Storyshots RoomItem list roomitem 1`] = ` "fontWeight": "600", "justifyContent": "center", "marginTop": 4, + "textAlign": "left", }, Object { "color": "#ffffff", @@ -52805,6 +54438,7 @@ exports[`Storyshots RoomItem list roomitem 1`] = ` "fontWeight": "600", "justifyContent": "center", "marginTop": 4, + "textAlign": "left", }, Object { "color": "#ffffff", @@ -52946,11 +54580,13 @@ exports[`Storyshots RoomItem list roomitem 1`] = ` "fontSize": 17, "fontWeight": "500", "lineHeight": 20, + "textAlign": "left", }, Object { "backgroundColor": "transparent", "fontFamily": "System", "fontWeight": "600", + "textAlign": "left", }, Object { "color": "#0d0e12", @@ -52989,6 +54625,7 @@ exports[`Storyshots RoomItem list roomitem 1`] = ` "fontFamily": "System", "fontSize": 13, "fontWeight": "600", + "textAlign": "left", }, undefined, Object { @@ -53046,11 +54683,6 @@ exports[`Storyshots RoomItem list roomitem 1`] = ` "position": "absolute", "right": 0, "top": 0, - "transform": Array [ - Object { - "translateX": 0, - }, - ], } } > @@ -53084,6 +54716,7 @@ exports[`Storyshots RoomItem list roomitem 1`] = ` "fontWeight": "600", "justifyContent": "center", "marginTop": 4, + "textAlign": "left", }, Object { "color": "#ffffff", @@ -53155,6 +54788,7 @@ exports[`Storyshots RoomItem list roomitem 1`] = ` "fontWeight": "600", "justifyContent": "center", "marginTop": 4, + "textAlign": "left", }, Object { "color": "#ffffff", @@ -53211,6 +54845,7 @@ exports[`Storyshots RoomItem list roomitem 1`] = ` "fontWeight": "600", "justifyContent": "center", "marginTop": 4, + "textAlign": "left", }, Object { "color": "#ffffff", @@ -53352,11 +54987,13 @@ exports[`Storyshots RoomItem list roomitem 1`] = ` "fontSize": 17, "fontWeight": "500", "lineHeight": 20, + "textAlign": "left", }, Object { "backgroundColor": "transparent", "fontFamily": "System", "fontWeight": "600", + "textAlign": "left", }, Object { "color": "#0d0e12", @@ -53395,6 +55032,7 @@ exports[`Storyshots RoomItem list roomitem 1`] = ` "fontFamily": "System", "fontSize": 13, "fontWeight": "600", + "textAlign": "left", }, undefined, Object { @@ -53452,11 +55090,6 @@ exports[`Storyshots RoomItem list roomitem 1`] = ` "position": "absolute", "right": 0, "top": 0, - "transform": Array [ - Object { - "translateX": 0, - }, - ], } } > @@ -53490,6 +55123,7 @@ exports[`Storyshots RoomItem list roomitem 1`] = ` "fontWeight": "600", "justifyContent": "center", "marginTop": 4, + "textAlign": "left", }, Object { "color": "#ffffff", @@ -53561,6 +55195,7 @@ exports[`Storyshots RoomItem list roomitem 1`] = ` "fontWeight": "600", "justifyContent": "center", "marginTop": 4, + "textAlign": "left", }, Object { "color": "#ffffff", @@ -53617,6 +55252,7 @@ exports[`Storyshots RoomItem list roomitem 1`] = ` "fontWeight": "600", "justifyContent": "center", "marginTop": 4, + "textAlign": "left", }, Object { "color": "#ffffff", @@ -53758,11 +55394,13 @@ exports[`Storyshots RoomItem list roomitem 1`] = ` "fontSize": 17, "fontWeight": "500", "lineHeight": 20, + "textAlign": "left", }, Object { "backgroundColor": "transparent", "fontFamily": "System", "fontWeight": "600", + "textAlign": "left", }, Object { "color": "#0d0e12", @@ -53801,6 +55439,7 @@ exports[`Storyshots RoomItem list roomitem 1`] = ` "fontFamily": "System", "fontSize": 13, "fontWeight": "600", + "textAlign": "left", }, undefined, Object { @@ -53858,11 +55497,6 @@ exports[`Storyshots RoomItem list roomitem 1`] = ` "position": "absolute", "right": 0, "top": 0, - "transform": Array [ - Object { - "translateX": 0, - }, - ], } } > @@ -53896,6 +55530,7 @@ exports[`Storyshots RoomItem list roomitem 1`] = ` "fontWeight": "600", "justifyContent": "center", "marginTop": 4, + "textAlign": "left", }, Object { "color": "#ffffff", @@ -53967,6 +55602,7 @@ exports[`Storyshots RoomItem list roomitem 1`] = ` "fontWeight": "600", "justifyContent": "center", "marginTop": 4, + "textAlign": "left", }, Object { "color": "#ffffff", @@ -54023,6 +55659,7 @@ exports[`Storyshots RoomItem list roomitem 1`] = ` "fontWeight": "600", "justifyContent": "center", "marginTop": 4, + "textAlign": "left", }, Object { "color": "#ffffff", @@ -54164,11 +55801,13 @@ exports[`Storyshots RoomItem list roomitem 1`] = ` "fontSize": 17, "fontWeight": "500", "lineHeight": 20, + "textAlign": "left", }, Object { "backgroundColor": "transparent", "fontFamily": "System", "fontWeight": "600", + "textAlign": "left", }, Object { "color": "#0d0e12", @@ -54207,6 +55846,7 @@ exports[`Storyshots RoomItem list roomitem 1`] = ` "fontFamily": "System", "fontSize": 13, "fontWeight": "600", + "textAlign": "left", }, undefined, Object { @@ -54264,11 +55904,6 @@ exports[`Storyshots RoomItem list roomitem 1`] = ` "position": "absolute", "right": 0, "top": 0, - "transform": Array [ - Object { - "translateX": 0, - }, - ], } } > @@ -54302,6 +55937,7 @@ exports[`Storyshots RoomItem list roomitem 1`] = ` "fontWeight": "600", "justifyContent": "center", "marginTop": 4, + "textAlign": "left", }, Object { "color": "#ffffff", @@ -54373,6 +56009,7 @@ exports[`Storyshots RoomItem list roomitem 1`] = ` "fontWeight": "600", "justifyContent": "center", "marginTop": 4, + "textAlign": "left", }, Object { "color": "#ffffff", @@ -54429,6 +56066,7 @@ exports[`Storyshots RoomItem list roomitem 1`] = ` "fontWeight": "600", "justifyContent": "center", "marginTop": 4, + "textAlign": "left", }, Object { "color": "#ffffff", @@ -54570,11 +56208,13 @@ exports[`Storyshots RoomItem list roomitem 1`] = ` "fontSize": 17, "fontWeight": "500", "lineHeight": 20, + "textAlign": "left", }, Object { "backgroundColor": "transparent", "fontFamily": "System", "fontWeight": "600", + "textAlign": "left", }, Object { "color": "#0d0e12", @@ -54613,6 +56253,7 @@ exports[`Storyshots RoomItem list roomitem 1`] = ` "fontFamily": "System", "fontSize": 13, "fontWeight": "600", + "textAlign": "left", }, undefined, Object { @@ -54670,11 +56311,6 @@ exports[`Storyshots RoomItem list roomitem 1`] = ` "position": "absolute", "right": 0, "top": 0, - "transform": Array [ - Object { - "translateX": 0, - }, - ], } } > @@ -54708,6 +56344,7 @@ exports[`Storyshots RoomItem list roomitem 1`] = ` "fontWeight": "600", "justifyContent": "center", "marginTop": 4, + "textAlign": "left", }, Object { "color": "#ffffff", @@ -54779,6 +56416,7 @@ exports[`Storyshots RoomItem list roomitem 1`] = ` "fontWeight": "600", "justifyContent": "center", "marginTop": 4, + "textAlign": "left", }, Object { "color": "#ffffff", @@ -54835,6 +56473,7 @@ exports[`Storyshots RoomItem list roomitem 1`] = ` "fontWeight": "600", "justifyContent": "center", "marginTop": 4, + "textAlign": "left", }, Object { "color": "#ffffff", @@ -54976,11 +56615,13 @@ exports[`Storyshots RoomItem list roomitem 1`] = ` "fontSize": 17, "fontWeight": "500", "lineHeight": 20, + "textAlign": "left", }, Object { "backgroundColor": "transparent", "fontFamily": "System", "fontWeight": "600", + "textAlign": "left", }, Object { "color": "#0d0e12", @@ -55019,6 +56660,7 @@ exports[`Storyshots RoomItem list roomitem 1`] = ` "fontFamily": "System", "fontSize": 13, "fontWeight": "600", + "textAlign": "left", }, undefined, Object { @@ -55076,11 +56718,6 @@ exports[`Storyshots RoomItem list roomitem 1`] = ` "position": "absolute", "right": 0, "top": 0, - "transform": Array [ - Object { - "translateX": 0, - }, - ], } } > @@ -55114,6 +56751,7 @@ exports[`Storyshots RoomItem list roomitem 1`] = ` "fontWeight": "600", "justifyContent": "center", "marginTop": 4, + "textAlign": "left", }, Object { "color": "#ffffff", @@ -55185,6 +56823,7 @@ exports[`Storyshots RoomItem list roomitem 1`] = ` "fontWeight": "600", "justifyContent": "center", "marginTop": 4, + "textAlign": "left", }, Object { "color": "#ffffff", @@ -55241,6 +56880,7 @@ exports[`Storyshots RoomItem list roomitem 1`] = ` "fontWeight": "600", "justifyContent": "center", "marginTop": 4, + "textAlign": "left", }, Object { "color": "#ffffff", @@ -55382,11 +57022,13 @@ exports[`Storyshots RoomItem list roomitem 1`] = ` "fontSize": 17, "fontWeight": "500", "lineHeight": 20, + "textAlign": "left", }, Object { "backgroundColor": "transparent", "fontFamily": "System", "fontWeight": "600", + "textAlign": "left", }, Object { "color": "#0d0e12", @@ -55425,6 +57067,7 @@ exports[`Storyshots RoomItem list roomitem 1`] = ` "fontFamily": "System", "fontSize": 13, "fontWeight": "600", + "textAlign": "left", }, undefined, Object { @@ -55482,11 +57125,6 @@ exports[`Storyshots RoomItem list roomitem 1`] = ` "position": "absolute", "right": 0, "top": 0, - "transform": Array [ - Object { - "translateX": 0, - }, - ], } } > @@ -55520,6 +57158,7 @@ exports[`Storyshots RoomItem list roomitem 1`] = ` "fontWeight": "600", "justifyContent": "center", "marginTop": 4, + "textAlign": "left", }, Object { "color": "#ffffff", @@ -55591,6 +57230,7 @@ exports[`Storyshots RoomItem list roomitem 1`] = ` "fontWeight": "600", "justifyContent": "center", "marginTop": 4, + "textAlign": "left", }, Object { "color": "#ffffff", @@ -55647,6 +57287,7 @@ exports[`Storyshots RoomItem list roomitem 1`] = ` "fontWeight": "600", "justifyContent": "center", "marginTop": 4, + "textAlign": "left", }, Object { "color": "#ffffff", @@ -55788,11 +57429,13 @@ exports[`Storyshots RoomItem list roomitem 1`] = ` "fontSize": 17, "fontWeight": "500", "lineHeight": 20, + "textAlign": "left", }, Object { "backgroundColor": "transparent", "fontFamily": "System", "fontWeight": "600", + "textAlign": "left", }, Object { "color": "#0d0e12", @@ -55831,6 +57474,7 @@ exports[`Storyshots RoomItem list roomitem 1`] = ` "fontFamily": "System", "fontSize": 13, "fontWeight": "600", + "textAlign": "left", }, undefined, Object { @@ -55888,11 +57532,6 @@ exports[`Storyshots RoomItem list roomitem 1`] = ` "position": "absolute", "right": 0, "top": 0, - "transform": Array [ - Object { - "translateX": 0, - }, - ], } } > @@ -55926,6 +57565,7 @@ exports[`Storyshots RoomItem list roomitem 1`] = ` "fontWeight": "600", "justifyContent": "center", "marginTop": 4, + "textAlign": "left", }, Object { "color": "#ffffff", @@ -55997,6 +57637,7 @@ exports[`Storyshots RoomItem list roomitem 1`] = ` "fontWeight": "600", "justifyContent": "center", "marginTop": 4, + "textAlign": "left", }, Object { "color": "#ffffff", @@ -56053,6 +57694,7 @@ exports[`Storyshots RoomItem list roomitem 1`] = ` "fontWeight": "600", "justifyContent": "center", "marginTop": 4, + "textAlign": "left", }, Object { "color": "#ffffff", @@ -56194,11 +57836,13 @@ exports[`Storyshots RoomItem list roomitem 1`] = ` "fontSize": 17, "fontWeight": "500", "lineHeight": 20, + "textAlign": "left", }, Object { "backgroundColor": "transparent", "fontFamily": "System", "fontWeight": "600", + "textAlign": "left", }, Object { "color": "#0d0e12", @@ -56237,6 +57881,7 @@ exports[`Storyshots RoomItem list roomitem 1`] = ` "fontFamily": "System", "fontSize": 13, "fontWeight": "600", + "textAlign": "left", }, undefined, Object { @@ -56312,11 +57957,6 @@ exports[`Storyshots RoomItem list roomitem 1`] = ` "position": "absolute", "right": 0, "top": 0, - "transform": Array [ - Object { - "translateX": 0, - }, - ], } } > @@ -56350,6 +57990,7 @@ exports[`Storyshots RoomItem list roomitem 1`] = ` "fontWeight": "600", "justifyContent": "center", "marginTop": 4, + "textAlign": "left", }, Object { "color": "#ffffff", @@ -56421,6 +58062,7 @@ exports[`Storyshots RoomItem list roomitem 1`] = ` "fontWeight": "600", "justifyContent": "center", "marginTop": 4, + "textAlign": "left", }, Object { "color": "#ffffff", @@ -56477,6 +58119,7 @@ exports[`Storyshots RoomItem list roomitem 1`] = ` "fontWeight": "600", "justifyContent": "center", "marginTop": 4, + "textAlign": "left", }, Object { "color": "#ffffff", @@ -56613,6 +58256,7 @@ exports[`Storyshots RoomItem list roomitem 1`] = ` "fontSize": 17, "fontWeight": "500", "lineHeight": 20, + "textAlign": "left", }, undefined, Object { @@ -56634,6 +58278,7 @@ exports[`Storyshots RoomItem list roomitem 1`] = ` "fontSize": 13, "fontWeight": "400", "marginLeft": 4, + "textAlign": "left", }, Object { "color": "#9ca2a8", @@ -56664,6 +58309,7 @@ exports[`Storyshots RoomItem list roomitem 1`] = ` "fontFamily": "System", "fontSize": 16, "fontWeight": "400", + "textAlign": "left", }, Object { "color": "#2f343d", @@ -56675,6 +58321,7 @@ exports[`Storyshots RoomItem list roomitem 1`] = ` "fontSize": 14, "fontWeight": "400", "lineHeight": 17, + "textAlign": "left", }, Object { "color": "#9ca2a8", @@ -56730,11 +58377,6 @@ exports[`Storyshots RoomItem list roomitem 1`] = ` "position": "absolute", "right": 0, "top": 0, - "transform": Array [ - Object { - "translateX": 0, - }, - ], } } > @@ -56768,6 +58410,7 @@ exports[`Storyshots RoomItem list roomitem 1`] = ` "fontWeight": "600", "justifyContent": "center", "marginTop": 4, + "textAlign": "left", }, Object { "color": "#ffffff", @@ -56839,6 +58482,7 @@ exports[`Storyshots RoomItem list roomitem 1`] = ` "fontWeight": "600", "justifyContent": "center", "marginTop": 4, + "textAlign": "left", }, Object { "color": "#ffffff", @@ -56895,6 +58539,7 @@ exports[`Storyshots RoomItem list roomitem 1`] = ` "fontWeight": "600", "justifyContent": "center", "marginTop": 4, + "textAlign": "left", }, Object { "color": "#ffffff", @@ -57031,6 +58676,7 @@ exports[`Storyshots RoomItem list roomitem 1`] = ` "fontSize": 17, "fontWeight": "500", "lineHeight": 20, + "textAlign": "left", }, undefined, Object { @@ -57052,6 +58698,7 @@ exports[`Storyshots RoomItem list roomitem 1`] = ` "fontSize": 13, "fontWeight": "400", "marginLeft": 4, + "textAlign": "left", }, Object { "color": "#9ca2a8", @@ -57082,6 +58729,7 @@ exports[`Storyshots RoomItem list roomitem 1`] = ` "fontFamily": "System", "fontSize": 16, "fontWeight": "400", + "textAlign": "left", }, Object { "color": "#2f343d", @@ -57093,6 +58741,7 @@ exports[`Storyshots RoomItem list roomitem 1`] = ` "fontSize": 14, "fontWeight": "400", "lineHeight": 17, + "textAlign": "left", }, Object { "color": "#9ca2a8", @@ -57148,11 +58797,6 @@ exports[`Storyshots RoomItem list roomitem 1`] = ` "position": "absolute", "right": 0, "top": 0, - "transform": Array [ - Object { - "translateX": 0, - }, - ], } } > @@ -57186,6 +58830,7 @@ exports[`Storyshots RoomItem list roomitem 1`] = ` "fontWeight": "600", "justifyContent": "center", "marginTop": 4, + "textAlign": "left", }, Object { "color": "#ffffff", @@ -57257,6 +58902,7 @@ exports[`Storyshots RoomItem list roomitem 1`] = ` "fontWeight": "600", "justifyContent": "center", "marginTop": 4, + "textAlign": "left", }, Object { "color": "#ffffff", @@ -57313,6 +58959,7 @@ exports[`Storyshots RoomItem list roomitem 1`] = ` "fontWeight": "600", "justifyContent": "center", "marginTop": 4, + "textAlign": "left", }, Object { "color": "#ffffff", @@ -57449,6 +59096,7 @@ exports[`Storyshots RoomItem list roomitem 1`] = ` "fontSize": 17, "fontWeight": "500", "lineHeight": 20, + "textAlign": "left", }, undefined, Object { @@ -57470,6 +59118,7 @@ exports[`Storyshots RoomItem list roomitem 1`] = ` "fontSize": 13, "fontWeight": "400", "marginLeft": 4, + "textAlign": "left", }, Object { "color": "#9ca2a8", @@ -57500,6 +59149,7 @@ exports[`Storyshots RoomItem list roomitem 1`] = ` "fontFamily": "System", "fontSize": 16, "fontWeight": "400", + "textAlign": "left", }, Object { "color": "#2f343d", @@ -57511,6 +59161,7 @@ exports[`Storyshots RoomItem list roomitem 1`] = ` "fontSize": 14, "fontWeight": "400", "lineHeight": 17, + "textAlign": "left", }, Object { "color": "#9ca2a8", @@ -57566,11 +59217,6 @@ exports[`Storyshots RoomItem list roomitem 1`] = ` "position": "absolute", "right": 0, "top": 0, - "transform": Array [ - Object { - "translateX": 0, - }, - ], } } > @@ -57604,6 +59250,7 @@ exports[`Storyshots RoomItem list roomitem 1`] = ` "fontWeight": "600", "justifyContent": "center", "marginTop": 4, + "textAlign": "left", }, Object { "color": "#ffffff", @@ -57675,6 +59322,7 @@ exports[`Storyshots RoomItem list roomitem 1`] = ` "fontWeight": "600", "justifyContent": "center", "marginTop": 4, + "textAlign": "left", }, Object { "color": "#ffffff", @@ -57731,6 +59379,7 @@ exports[`Storyshots RoomItem list roomitem 1`] = ` "fontWeight": "600", "justifyContent": "center", "marginTop": 4, + "textAlign": "left", }, Object { "color": "#ffffff", @@ -57867,6 +59516,7 @@ exports[`Storyshots RoomItem list roomitem 1`] = ` "fontSize": 17, "fontWeight": "500", "lineHeight": 20, + "textAlign": "left", }, undefined, Object { @@ -57888,6 +59538,7 @@ exports[`Storyshots RoomItem list roomitem 1`] = ` "fontSize": 13, "fontWeight": "400", "marginLeft": 4, + "textAlign": "left", }, Object { "color": "#9ca2a8", @@ -57918,6 +59569,7 @@ exports[`Storyshots RoomItem list roomitem 1`] = ` "fontFamily": "System", "fontSize": 16, "fontWeight": "400", + "textAlign": "left", }, Object { "color": "#2f343d", @@ -57929,6 +59581,7 @@ exports[`Storyshots RoomItem list roomitem 1`] = ` "fontSize": 14, "fontWeight": "400", "lineHeight": 17, + "textAlign": "left", }, Object { "color": "#9ca2a8", @@ -57984,11 +59637,6 @@ exports[`Storyshots RoomItem list roomitem 1`] = ` "position": "absolute", "right": 0, "top": 0, - "transform": Array [ - Object { - "translateX": 0, - }, - ], } } > @@ -58022,6 +59670,7 @@ exports[`Storyshots RoomItem list roomitem 1`] = ` "fontWeight": "600", "justifyContent": "center", "marginTop": 4, + "textAlign": "left", }, Object { "color": "#ffffff", @@ -58093,6 +59742,7 @@ exports[`Storyshots RoomItem list roomitem 1`] = ` "fontWeight": "600", "justifyContent": "center", "marginTop": 4, + "textAlign": "left", }, Object { "color": "#ffffff", @@ -58149,6 +59799,7 @@ exports[`Storyshots RoomItem list roomitem 1`] = ` "fontWeight": "600", "justifyContent": "center", "marginTop": 4, + "textAlign": "left", }, Object { "color": "#ffffff", @@ -58285,11 +59936,13 @@ exports[`Storyshots RoomItem list roomitem 1`] = ` "fontSize": 17, "fontWeight": "500", "lineHeight": 20, + "textAlign": "left", }, Object { "backgroundColor": "transparent", "fontFamily": "System", "fontWeight": "600", + "textAlign": "left", }, Object { "color": "#0d0e12", @@ -58310,6 +59963,7 @@ exports[`Storyshots RoomItem list roomitem 1`] = ` "fontSize": 13, "fontWeight": "400", "marginLeft": 4, + "textAlign": "left", }, Object { "color": "#9ca2a8", @@ -58319,6 +59973,7 @@ exports[`Storyshots RoomItem list roomitem 1`] = ` "backgroundColor": "transparent", "fontFamily": "System", "fontWeight": "600", + "textAlign": "left", }, Object { "color": "#1d74f5", @@ -58349,6 +60004,7 @@ exports[`Storyshots RoomItem list roomitem 1`] = ` "fontFamily": "System", "fontSize": 16, "fontWeight": "400", + "textAlign": "left", }, Object { "color": "#2f343d", @@ -58360,6 +60016,7 @@ exports[`Storyshots RoomItem list roomitem 1`] = ` "fontSize": 14, "fontWeight": "400", "lineHeight": 17, + "textAlign": "left", }, Object { "color": "#2f343d", @@ -58398,6 +60055,7 @@ exports[`Storyshots RoomItem list roomitem 1`] = ` "fontFamily": "System", "fontSize": 13, "fontWeight": "600", + "textAlign": "left", }, undefined, Object { @@ -58455,11 +60113,6 @@ exports[`Storyshots RoomItem list roomitem 1`] = ` "position": "absolute", "right": 0, "top": 0, - "transform": Array [ - Object { - "translateX": 0, - }, - ], } } > @@ -58493,6 +60146,7 @@ exports[`Storyshots RoomItem list roomitem 1`] = ` "fontWeight": "600", "justifyContent": "center", "marginTop": 4, + "textAlign": "left", }, Object { "color": "#ffffff", @@ -58564,6 +60218,7 @@ exports[`Storyshots RoomItem list roomitem 1`] = ` "fontWeight": "600", "justifyContent": "center", "marginTop": 4, + "textAlign": "left", }, Object { "color": "#ffffff", @@ -58620,6 +60275,7 @@ exports[`Storyshots RoomItem list roomitem 1`] = ` "fontWeight": "600", "justifyContent": "center", "marginTop": 4, + "textAlign": "left", }, Object { "color": "#ffffff", @@ -58756,11 +60412,13 @@ exports[`Storyshots RoomItem list roomitem 1`] = ` "fontSize": 17, "fontWeight": "500", "lineHeight": 20, + "textAlign": "left", }, Object { "backgroundColor": "transparent", "fontFamily": "System", "fontWeight": "600", + "textAlign": "left", }, Object { "color": "#0d0e12", @@ -58781,6 +60439,7 @@ exports[`Storyshots RoomItem list roomitem 1`] = ` "fontSize": 13, "fontWeight": "400", "marginLeft": 4, + "textAlign": "left", }, Object { "color": "#9ca2a8", @@ -58790,6 +60449,7 @@ exports[`Storyshots RoomItem list roomitem 1`] = ` "backgroundColor": "transparent", "fontFamily": "System", "fontWeight": "600", + "textAlign": "left", }, Object { "color": "#1d74f5", @@ -58820,6 +60480,7 @@ exports[`Storyshots RoomItem list roomitem 1`] = ` "fontFamily": "System", "fontSize": 16, "fontWeight": "400", + "textAlign": "left", }, Object { "color": "#2f343d", @@ -58831,6 +60492,7 @@ exports[`Storyshots RoomItem list roomitem 1`] = ` "fontSize": 14, "fontWeight": "400", "lineHeight": 17, + "textAlign": "left", }, Object { "color": "#2f343d", @@ -58869,6 +60531,7 @@ exports[`Storyshots RoomItem list roomitem 1`] = ` "fontFamily": "System", "fontSize": 13, "fontWeight": "600", + "textAlign": "left", }, undefined, Object { @@ -58926,11 +60589,6 @@ exports[`Storyshots RoomItem list roomitem 1`] = ` "position": "absolute", "right": 0, "top": 0, - "transform": Array [ - Object { - "translateX": 0, - }, - ], } } > @@ -58964,6 +60622,7 @@ exports[`Storyshots RoomItem list roomitem 1`] = ` "fontWeight": "600", "justifyContent": "center", "marginTop": 4, + "textAlign": "left", }, Object { "color": "#ffffff", @@ -59035,6 +60694,7 @@ exports[`Storyshots RoomItem list roomitem 1`] = ` "fontWeight": "600", "justifyContent": "center", "marginTop": 4, + "textAlign": "left", }, Object { "color": "#ffffff", @@ -59091,6 +60751,7 @@ exports[`Storyshots RoomItem list roomitem 1`] = ` "fontWeight": "600", "justifyContent": "center", "marginTop": 4, + "textAlign": "left", }, Object { "color": "#ffffff", @@ -59227,11 +60888,13 @@ exports[`Storyshots RoomItem list roomitem 1`] = ` "fontSize": 17, "fontWeight": "500", "lineHeight": 20, + "textAlign": "left", }, Object { "backgroundColor": "transparent", "fontFamily": "System", "fontWeight": "600", + "textAlign": "left", }, Object { "color": "#0d0e12", @@ -59252,6 +60915,7 @@ exports[`Storyshots RoomItem list roomitem 1`] = ` "fontSize": 13, "fontWeight": "400", "marginLeft": 4, + "textAlign": "left", }, Object { "color": "#9ca2a8", @@ -59261,6 +60925,7 @@ exports[`Storyshots RoomItem list roomitem 1`] = ` "backgroundColor": "transparent", "fontFamily": "System", "fontWeight": "600", + "textAlign": "left", }, Object { "color": "#1d74f5", @@ -59291,6 +60956,7 @@ exports[`Storyshots RoomItem list roomitem 1`] = ` "fontFamily": "System", "fontSize": 16, "fontWeight": "400", + "textAlign": "left", }, Object { "color": "#2f343d", @@ -59302,6 +60968,7 @@ exports[`Storyshots RoomItem list roomitem 1`] = ` "fontSize": 14, "fontWeight": "400", "lineHeight": 17, + "textAlign": "left", }, Object { "color": "#2f343d", @@ -59340,6 +61007,7 @@ exports[`Storyshots RoomItem list roomitem 1`] = ` "fontFamily": "System", "fontSize": 13, "fontWeight": "600", + "textAlign": "left", }, undefined, Object { @@ -59460,6 +61128,7 @@ exports[`Storyshots Thread Messages.Item badge 1`] = ` "fontFamily": "System", "fontSize": 18, "fontWeight": "500", + "textAlign": "left", }, Object { "color": "#0d0e12", @@ -59478,6 +61147,7 @@ exports[`Storyshots Thread Messages.Item badge 1`] = ` "fontSize": 14, "fontWeight": "400", "marginLeft": 4, + "textAlign": "left", }, Object { "color": "#9ca2a8", @@ -59498,6 +61168,7 @@ exports[`Storyshots Thread Messages.Item badge 1`] = ` "fontFamily": "System", "fontSize": 16, "fontWeight": "400", + "textAlign": "left", }, Object { "color": "#2f343d", @@ -59554,6 +61225,7 @@ exports[`Storyshots Thread Messages.Item badge 1`] = ` "fontSize": 10, "fontWeight": "600", "marginLeft": 2, + "textAlign": "left", }, Object { "color": "#9ca2a8", @@ -59603,6 +61275,7 @@ exports[`Storyshots Thread Messages.Item badge 1`] = ` "fontSize": 10, "fontWeight": "600", "marginLeft": 2, + "textAlign": "left", }, Object { "color": "#9ca2a8", @@ -59652,6 +61325,7 @@ exports[`Storyshots Thread Messages.Item badge 1`] = ` "fontSize": 10, "fontWeight": "600", "marginLeft": 2, + "textAlign": "left", }, Object { "color": "#9ca2a8", @@ -59785,6 +61459,7 @@ exports[`Storyshots Thread Messages.Item badge 1`] = ` "fontFamily": "System", "fontSize": 18, "fontWeight": "500", + "textAlign": "left", }, Object { "color": "#0d0e12", @@ -59803,6 +61478,7 @@ exports[`Storyshots Thread Messages.Item badge 1`] = ` "fontSize": 14, "fontWeight": "400", "marginLeft": 4, + "textAlign": "left", }, Object { "color": "#9ca2a8", @@ -59823,6 +61499,7 @@ exports[`Storyshots Thread Messages.Item badge 1`] = ` "fontFamily": "System", "fontSize": 16, "fontWeight": "400", + "textAlign": "left", }, Object { "color": "#2f343d", @@ -59879,6 +61556,7 @@ exports[`Storyshots Thread Messages.Item badge 1`] = ` "fontSize": 10, "fontWeight": "600", "marginLeft": 2, + "textAlign": "left", }, Object { "color": "#9ca2a8", @@ -59928,6 +61606,7 @@ exports[`Storyshots Thread Messages.Item badge 1`] = ` "fontSize": 10, "fontWeight": "600", "marginLeft": 2, + "textAlign": "left", }, Object { "color": "#9ca2a8", @@ -59977,6 +61656,7 @@ exports[`Storyshots Thread Messages.Item badge 1`] = ` "fontSize": 10, "fontWeight": "600", "marginLeft": 2, + "textAlign": "left", }, Object { "color": "#9ca2a8", @@ -60110,6 +61790,7 @@ exports[`Storyshots Thread Messages.Item badge 1`] = ` "fontFamily": "System", "fontSize": 18, "fontWeight": "500", + "textAlign": "left", }, Object { "color": "#0d0e12", @@ -60128,6 +61809,7 @@ exports[`Storyshots Thread Messages.Item badge 1`] = ` "fontSize": 14, "fontWeight": "400", "marginLeft": 4, + "textAlign": "left", }, Object { "color": "#9ca2a8", @@ -60148,6 +61830,7 @@ exports[`Storyshots Thread Messages.Item badge 1`] = ` "fontFamily": "System", "fontSize": 16, "fontWeight": "400", + "textAlign": "left", }, Object { "color": "#2f343d", @@ -60204,6 +61887,7 @@ exports[`Storyshots Thread Messages.Item badge 1`] = ` "fontSize": 10, "fontWeight": "600", "marginLeft": 2, + "textAlign": "left", }, Object { "color": "#9ca2a8", @@ -60253,6 +61937,7 @@ exports[`Storyshots Thread Messages.Item badge 1`] = ` "fontSize": 10, "fontWeight": "600", "marginLeft": 2, + "textAlign": "left", }, Object { "color": "#9ca2a8", @@ -60302,6 +61987,7 @@ exports[`Storyshots Thread Messages.Item badge 1`] = ` "fontSize": 10, "fontWeight": "600", "marginLeft": 2, + "textAlign": "left", }, Object { "color": "#9ca2a8", @@ -60422,6 +62108,7 @@ exports[`Storyshots Thread Messages.Item badge 1`] = ` "fontFamily": "System", "fontSize": 18, "fontWeight": "500", + "textAlign": "left", }, Object { "color": "#0d0e12", @@ -60440,6 +62127,7 @@ exports[`Storyshots Thread Messages.Item badge 1`] = ` "fontSize": 14, "fontWeight": "400", "marginLeft": 4, + "textAlign": "left", }, Object { "color": "#9ca2a8", @@ -60460,6 +62148,7 @@ exports[`Storyshots Thread Messages.Item badge 1`] = ` "fontFamily": "System", "fontSize": 16, "fontWeight": "400", + "textAlign": "left", }, Object { "color": "#2f343d", @@ -60516,6 +62205,7 @@ exports[`Storyshots Thread Messages.Item badge 1`] = ` "fontSize": 10, "fontWeight": "600", "marginLeft": 2, + "textAlign": "left", }, Object { "color": "#9ca2a8", @@ -60565,6 +62255,7 @@ exports[`Storyshots Thread Messages.Item badge 1`] = ` "fontSize": 10, "fontWeight": "600", "marginLeft": 2, + "textAlign": "left", }, Object { "color": "#9ca2a8", @@ -60614,6 +62305,7 @@ exports[`Storyshots Thread Messages.Item badge 1`] = ` "fontSize": 10, "fontWeight": "600", "marginLeft": 2, + "textAlign": "left", }, Object { "color": "#9ca2a8", @@ -60767,6 +62459,7 @@ exports[`Storyshots Thread Messages.Item content 1`] = ` "fontFamily": "System", "fontSize": 18, "fontWeight": "500", + "textAlign": "left", }, Object { "color": "#0d0e12", @@ -60785,6 +62478,7 @@ exports[`Storyshots Thread Messages.Item content 1`] = ` "fontSize": 14, "fontWeight": "400", "marginLeft": 4, + "textAlign": "left", }, Object { "color": "#9ca2a8", @@ -60805,6 +62499,7 @@ exports[`Storyshots Thread Messages.Item content 1`] = ` "fontFamily": "System", "fontSize": 16, "fontWeight": "400", + "textAlign": "left", }, Object { "color": "#2f343d", @@ -60861,6 +62556,7 @@ exports[`Storyshots Thread Messages.Item content 1`] = ` "fontSize": 10, "fontWeight": "600", "marginLeft": 2, + "textAlign": "left", }, Object { "color": "#9ca2a8", @@ -60910,6 +62606,7 @@ exports[`Storyshots Thread Messages.Item content 1`] = ` "fontSize": 10, "fontWeight": "600", "marginLeft": 2, + "textAlign": "left", }, Object { "color": "#9ca2a8", @@ -60959,6 +62656,7 @@ exports[`Storyshots Thread Messages.Item content 1`] = ` "fontSize": 10, "fontWeight": "600", "marginLeft": 2, + "textAlign": "left", }, Object { "color": "#9ca2a8", @@ -61069,6 +62767,7 @@ exports[`Storyshots Thread Messages.Item content 1`] = ` "fontFamily": "System", "fontSize": 18, "fontWeight": "500", + "textAlign": "left", }, Object { "color": "#0d0e12", @@ -61087,6 +62786,7 @@ exports[`Storyshots Thread Messages.Item content 1`] = ` "fontSize": 14, "fontWeight": "400", "marginLeft": 4, + "textAlign": "left", }, Object { "color": "#9ca2a8", @@ -61107,6 +62807,7 @@ exports[`Storyshots Thread Messages.Item content 1`] = ` "fontFamily": "System", "fontSize": 16, "fontWeight": "400", + "textAlign": "left", }, Object { "color": "#2f343d", @@ -61163,6 +62864,7 @@ exports[`Storyshots Thread Messages.Item content 1`] = ` "fontSize": 10, "fontWeight": "600", "marginLeft": 2, + "textAlign": "left", }, Object { "color": "#9ca2a8", @@ -61212,6 +62914,7 @@ exports[`Storyshots Thread Messages.Item content 1`] = ` "fontSize": 10, "fontWeight": "600", "marginLeft": 2, + "textAlign": "left", }, Object { "color": "#9ca2a8", @@ -61261,6 +62964,7 @@ exports[`Storyshots Thread Messages.Item content 1`] = ` "fontSize": 10, "fontWeight": "600", "marginLeft": 2, + "textAlign": "left", }, Object { "color": "#9ca2a8", @@ -61371,6 +63075,7 @@ exports[`Storyshots Thread Messages.Item content 1`] = ` "fontFamily": "System", "fontSize": 18, "fontWeight": "500", + "textAlign": "left", }, Object { "color": "#0d0e12", @@ -61389,6 +63094,7 @@ exports[`Storyshots Thread Messages.Item content 1`] = ` "fontSize": 14, "fontWeight": "400", "marginLeft": 4, + "textAlign": "left", }, Object { "color": "#9ca2a8", @@ -61409,6 +63115,7 @@ exports[`Storyshots Thread Messages.Item content 1`] = ` "fontFamily": "System", "fontSize": 16, "fontWeight": "400", + "textAlign": "left", }, Object { "color": "#2f343d", @@ -61465,6 +63172,7 @@ exports[`Storyshots Thread Messages.Item content 1`] = ` "fontSize": 10, "fontWeight": "600", "marginLeft": 2, + "textAlign": "left", }, Object { "color": "#9ca2a8", @@ -61514,6 +63222,7 @@ exports[`Storyshots Thread Messages.Item content 1`] = ` "fontSize": 10, "fontWeight": "600", "marginLeft": 2, + "textAlign": "left", }, Object { "color": "#9ca2a8", @@ -61563,6 +63272,7 @@ exports[`Storyshots Thread Messages.Item content 1`] = ` "fontSize": 10, "fontWeight": "600", "marginLeft": 2, + "textAlign": "left", }, Object { "color": "#9ca2a8", @@ -61673,6 +63383,7 @@ exports[`Storyshots Thread Messages.Item content 1`] = ` "fontFamily": "System", "fontSize": 18, "fontWeight": "500", + "textAlign": "left", }, Object { "color": "#0d0e12", @@ -61691,6 +63402,7 @@ exports[`Storyshots Thread Messages.Item content 1`] = ` "fontSize": 14, "fontWeight": "400", "marginLeft": 4, + "textAlign": "left", }, Object { "color": "#9ca2a8", @@ -61711,6 +63423,7 @@ exports[`Storyshots Thread Messages.Item content 1`] = ` "fontFamily": "System", "fontSize": 16, "fontWeight": "400", + "textAlign": "left", }, Object { "color": "#2f343d", @@ -61767,6 +63480,7 @@ exports[`Storyshots Thread Messages.Item content 1`] = ` "fontSize": 10, "fontWeight": "600", "marginLeft": 2, + "textAlign": "left", }, Object { "color": "#9ca2a8", @@ -61816,6 +63530,7 @@ exports[`Storyshots Thread Messages.Item content 1`] = ` "fontSize": 10, "fontWeight": "600", "marginLeft": 2, + "textAlign": "left", }, Object { "color": "#9ca2a8", @@ -61865,6 +63580,7 @@ exports[`Storyshots Thread Messages.Item content 1`] = ` "fontSize": 10, "fontWeight": "600", "marginLeft": 2, + "textAlign": "left", }, Object { "color": "#9ca2a8", @@ -61975,6 +63691,7 @@ exports[`Storyshots Thread Messages.Item content 1`] = ` "fontFamily": "System", "fontSize": 18, "fontWeight": "500", + "textAlign": "left", }, Object { "color": "#0d0e12", @@ -61993,6 +63710,7 @@ exports[`Storyshots Thread Messages.Item content 1`] = ` "fontSize": 14, "fontWeight": "400", "marginLeft": 4, + "textAlign": "left", }, Object { "color": "#9ca2a8", @@ -62013,6 +63731,7 @@ exports[`Storyshots Thread Messages.Item content 1`] = ` "fontFamily": "System", "fontSize": 16, "fontWeight": "400", + "textAlign": "left", }, Object { "color": "#2f343d", @@ -62069,6 +63788,7 @@ exports[`Storyshots Thread Messages.Item content 1`] = ` "fontSize": 10, "fontWeight": "600", "marginLeft": 2, + "textAlign": "left", }, Object { "color": "#9ca2a8", @@ -62118,6 +63838,7 @@ exports[`Storyshots Thread Messages.Item content 1`] = ` "fontSize": 10, "fontWeight": "600", "marginLeft": 2, + "textAlign": "left", }, Object { "color": "#9ca2a8", @@ -62167,6 +63888,7 @@ exports[`Storyshots Thread Messages.Item content 1`] = ` "fontSize": 10, "fontWeight": "600", "marginLeft": 2, + "textAlign": "left", }, Object { "color": "#9ca2a8", @@ -62297,6 +64019,7 @@ exports[`Storyshots Thread Messages.Item themes 1`] = ` "fontFamily": "System", "fontSize": 18, "fontWeight": "500", + "textAlign": "left", }, Object { "color": "#0d0e12", @@ -62315,6 +64038,7 @@ exports[`Storyshots Thread Messages.Item themes 1`] = ` "fontSize": 14, "fontWeight": "400", "marginLeft": 4, + "textAlign": "left", }, Object { "color": "#9ca2a8", @@ -62335,6 +64059,7 @@ exports[`Storyshots Thread Messages.Item themes 1`] = ` "fontFamily": "System", "fontSize": 16, "fontWeight": "400", + "textAlign": "left", }, Object { "color": "#2f343d", @@ -62391,6 +64116,7 @@ exports[`Storyshots Thread Messages.Item themes 1`] = ` "fontSize": 10, "fontWeight": "600", "marginLeft": 2, + "textAlign": "left", }, Object { "color": "#9ca2a8", @@ -62440,6 +64166,7 @@ exports[`Storyshots Thread Messages.Item themes 1`] = ` "fontSize": 10, "fontWeight": "600", "marginLeft": 2, + "textAlign": "left", }, Object { "color": "#9ca2a8", @@ -62489,6 +64216,7 @@ exports[`Storyshots Thread Messages.Item themes 1`] = ` "fontSize": 10, "fontWeight": "600", "marginLeft": 2, + "textAlign": "left", }, Object { "color": "#9ca2a8", @@ -62609,6 +64337,7 @@ exports[`Storyshots Thread Messages.Item themes 1`] = ` "fontFamily": "System", "fontSize": 18, "fontWeight": "500", + "textAlign": "left", }, Object { "color": "#f9f9f9", @@ -62627,6 +64356,7 @@ exports[`Storyshots Thread Messages.Item themes 1`] = ` "fontSize": 14, "fontWeight": "400", "marginLeft": 4, + "textAlign": "left", }, Object { "color": "#9297a2", @@ -62647,6 +64377,7 @@ exports[`Storyshots Thread Messages.Item themes 1`] = ` "fontFamily": "System", "fontSize": 16, "fontWeight": "400", + "textAlign": "left", }, Object { "color": "#e8ebed", @@ -62703,6 +64434,7 @@ exports[`Storyshots Thread Messages.Item themes 1`] = ` "fontSize": 10, "fontWeight": "600", "marginLeft": 2, + "textAlign": "left", }, Object { "color": "#9297a2", @@ -62752,6 +64484,7 @@ exports[`Storyshots Thread Messages.Item themes 1`] = ` "fontSize": 10, "fontWeight": "600", "marginLeft": 2, + "textAlign": "left", }, Object { "color": "#9297a2", @@ -62801,6 +64534,7 @@ exports[`Storyshots Thread Messages.Item themes 1`] = ` "fontSize": 10, "fontWeight": "600", "marginLeft": 2, + "textAlign": "left", }, Object { "color": "#9297a2", @@ -62921,6 +64655,7 @@ exports[`Storyshots Thread Messages.Item themes 1`] = ` "fontFamily": "System", "fontSize": 18, "fontWeight": "500", + "textAlign": "left", }, Object { "color": "#f9f9f9", @@ -62939,6 +64674,7 @@ exports[`Storyshots Thread Messages.Item themes 1`] = ` "fontSize": 14, "fontWeight": "400", "marginLeft": 4, + "textAlign": "left", }, Object { "color": "#b2b8c6", @@ -62959,6 +64695,7 @@ exports[`Storyshots Thread Messages.Item themes 1`] = ` "fontFamily": "System", "fontSize": 16, "fontWeight": "400", + "textAlign": "left", }, Object { "color": "#e8ebed", @@ -63015,6 +64752,7 @@ exports[`Storyshots Thread Messages.Item themes 1`] = ` "fontSize": 10, "fontWeight": "600", "marginLeft": 2, + "textAlign": "left", }, Object { "color": "#b2b8c6", @@ -63064,6 +64802,7 @@ exports[`Storyshots Thread Messages.Item themes 1`] = ` "fontSize": 10, "fontWeight": "600", "marginLeft": 2, + "textAlign": "left", }, Object { "color": "#b2b8c6", @@ -63113,6 +64852,7 @@ exports[`Storyshots Thread Messages.Item themes 1`] = ` "fontSize": 10, "fontWeight": "600", "marginLeft": 2, + "textAlign": "left", }, Object { "color": "#b2b8c6", @@ -63676,6 +65416,7 @@ exports[`Storyshots Unread Badge all 1`] = ` "fontFamily": "System", "fontSize": 13, "fontWeight": "600", + "textAlign": "left", }, Object { "fontSize": 10, @@ -63714,6 +65455,7 @@ exports[`Storyshots Unread Badge all 1`] = ` "fontFamily": "System", "fontSize": 13, "fontWeight": "600", + "textAlign": "left", }, Object { "fontSize": 10, @@ -63756,6 +65498,7 @@ exports[`Storyshots Unread Badge all 1`] = ` "fontFamily": "System", "fontSize": 13, "fontWeight": "600", + "textAlign": "left", }, undefined, Object { @@ -63796,6 +65539,7 @@ exports[`Storyshots Unread Badge all 1`] = ` "fontFamily": "System", "fontSize": 13, "fontWeight": "600", + "textAlign": "left", }, undefined, Object { @@ -63836,6 +65580,7 @@ exports[`Storyshots Unread Badge all 1`] = ` "fontFamily": "System", "fontSize": 13, "fontWeight": "600", + "textAlign": "left", }, undefined, Object { @@ -63876,6 +65621,7 @@ exports[`Storyshots Unread Badge all 1`] = ` "fontFamily": "System", "fontSize": 13, "fontWeight": "600", + "textAlign": "left", }, undefined, Object { @@ -63916,6 +65662,7 @@ exports[`Storyshots Unread Badge all 1`] = ` "fontFamily": "System", "fontSize": 13, "fontWeight": "600", + "textAlign": "left", }, undefined, Object { @@ -63970,6 +65717,7 @@ exports[`Storyshots Unread Badge different mention types 1`] = ` "fontFamily": "System", "fontSize": 13, "fontWeight": "600", + "textAlign": "left", }, undefined, Object { @@ -64010,6 +65758,7 @@ exports[`Storyshots Unread Badge different mention types 1`] = ` "fontFamily": "System", "fontSize": 13, "fontWeight": "600", + "textAlign": "left", }, undefined, Object { @@ -64050,6 +65799,7 @@ exports[`Storyshots Unread Badge different mention types 1`] = ` "fontFamily": "System", "fontSize": 13, "fontWeight": "600", + "textAlign": "left", }, undefined, Object { @@ -64090,6 +65840,7 @@ exports[`Storyshots Unread Badge different mention types 1`] = ` "fontFamily": "System", "fontSize": 13, "fontWeight": "600", + "textAlign": "left", }, undefined, Object { @@ -64130,6 +65881,7 @@ exports[`Storyshots Unread Badge different mention types 1`] = ` "fontFamily": "System", "fontSize": 13, "fontWeight": "600", + "textAlign": "left", }, undefined, Object { @@ -64170,6 +65922,7 @@ exports[`Storyshots Unread Badge different mention types 1`] = ` "fontFamily": "System", "fontSize": 13, "fontWeight": "600", + "textAlign": "left", }, undefined, Object { @@ -64210,6 +65963,7 @@ exports[`Storyshots Unread Badge different mention types 1`] = ` "fontFamily": "System", "fontSize": 13, "fontWeight": "600", + "textAlign": "left", }, undefined, Object { @@ -64264,6 +66018,7 @@ exports[`Storyshots Unread Badge normal 1`] = ` "fontFamily": "System", "fontSize": 13, "fontWeight": "600", + "textAlign": "left", }, undefined, Object { @@ -64304,6 +66059,7 @@ exports[`Storyshots Unread Badge normal 1`] = ` "fontFamily": "System", "fontSize": 13, "fontWeight": "600", + "textAlign": "left", }, undefined, Object { @@ -64354,6 +66110,7 @@ exports[`Storyshots Unread Badge small 1`] = ` "fontFamily": "System", "fontSize": 13, "fontWeight": "600", + "textAlign": "left", }, Object { "fontSize": 10, @@ -64392,6 +66149,7 @@ exports[`Storyshots Unread Badge small 1`] = ` "fontFamily": "System", "fontSize": 13, "fontWeight": "600", + "textAlign": "left", }, Object { "fontSize": 10, @@ -64449,6 +66207,7 @@ Array [ "fontFamily": "System", "fontSize": 13, "fontWeight": "600", + "textAlign": "left", }, undefined, Object { @@ -64489,6 +66248,7 @@ Array [ "fontFamily": "System", "fontSize": 13, "fontWeight": "600", + "textAlign": "left", }, undefined, Object { @@ -64529,6 +66289,7 @@ Array [ "fontFamily": "System", "fontSize": 13, "fontWeight": "600", + "textAlign": "left", }, undefined, Object { @@ -64569,6 +66330,7 @@ Array [ "fontFamily": "System", "fontSize": 13, "fontWeight": "600", + "textAlign": "left", }, undefined, Object { @@ -64620,6 +66382,7 @@ Array [ "fontFamily": "System", "fontSize": 13, "fontWeight": "600", + "textAlign": "left", }, undefined, Object { @@ -64660,6 +66423,7 @@ Array [ "fontFamily": "System", "fontSize": 13, "fontWeight": "600", + "textAlign": "left", }, undefined, Object { @@ -64700,6 +66464,7 @@ Array [ "fontFamily": "System", "fontSize": 13, "fontWeight": "600", + "textAlign": "left", }, undefined, Object { @@ -64740,6 +66505,7 @@ Array [ "fontFamily": "System", "fontSize": 13, "fontWeight": "600", + "textAlign": "left", }, undefined, Object { @@ -64791,6 +66557,7 @@ Array [ "fontFamily": "System", "fontSize": 13, "fontWeight": "600", + "textAlign": "left", }, undefined, Object { @@ -64831,6 +66598,7 @@ Array [ "fontFamily": "System", "fontSize": 13, "fontWeight": "600", + "textAlign": "left", }, undefined, Object { @@ -64871,6 +66639,7 @@ Array [ "fontFamily": "System", "fontSize": 13, "fontWeight": "600", + "textAlign": "left", }, undefined, Object { @@ -64911,6 +66680,7 @@ Array [ "fontFamily": "System", "fontSize": 13, "fontWeight": "600", + "textAlign": "left", }, undefined, Object { diff --git a/android/app/build.gradle b/android/app/build.gradle index f62fda5d0..18e508ea1 100644 --- a/android/app/build.gradle +++ b/android/app/build.gradle @@ -1,10 +1,10 @@ def taskRequests = getGradle().getStartParameter().getTaskRequests().toString().toLowerCase() -def isPlay = !taskRequests.contains("foss") +def isFoss = taskRequests.contains("foss") apply plugin: "com.android.application" apply plugin: 'kotlin-android' -if (isPlay) { +if (!isFoss) { apply plugin: 'com.google.firebase.crashlytics' apply plugin: 'com.bugsnag.android.gradle' } @@ -140,13 +140,13 @@ android { } defaultConfig { - applicationId APPLICATIONID as String + applicationId APPLICATION_ID minSdkVersion rootProject.ext.minSdkVersion targetSdkVersion rootProject.ext.targetSdkVersion - versionCode VERSIONCODE as Integer - versionName VERSIONNAME as String + versionCode VERSIONCODE + versionName "4.13.0" vectorDrawables.useSupportLibrary = true - if (isPlay) { + if (!isFoss) { manifestPlaceholders = [BugsnagAPIKey: BugsnagAPIKey as String] missingDimensionStrategy "RNNotifications.reactNativeVersion", "reactNative60" // See note below! } @@ -176,7 +176,7 @@ android { minifyEnabled enableProguardInReleaseBuilds setProguardFiles([getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.pro']) signingConfig signingConfigs.release - if (isPlay) { + if (!isFoss) { firebaseCrashlytics { nativeSymbolUploadEnabled true } @@ -193,10 +193,17 @@ android { // applicationVariants are e.g. debug, release - flavorDimensions "type" + flavorDimensions "app", "type" productFlavors { + official { + dimension = "app" + buildConfigField "boolean", "IS_OFFICIAL", "true" + } + experimental { + dimension = "app" + buildConfigField "boolean", "IS_OFFICIAL", "false" + } foss { - applicationId "chat.rocket.android" dimension = "type" buildConfigField "boolean", "FDROID_BUILD", "true" } @@ -206,11 +213,20 @@ android { } } sourceSets { - playDebug { + // TODO: refactor making sure notifications are working properly both on debug and release + experimentalPlayDebug { java.srcDirs = ['src/main/java', 'src/play/java'] manifest.srcFile 'src/play/AndroidManifest.xml' } - playRelease { + experimentalPlayRelease { + java.srcDirs = ['src/main/java', 'src/play/java'] + manifest.srcFile 'src/play/AndroidManifest.xml' + } + officialPlayDebug { + java.srcDirs = ['src/main/java', 'src/play/java'] + manifest.srcFile 'src/play/AndroidManifest.xml' + } + officialPlayRelease { java.srcDirs = ['src/main/java', 'src/play/java'] manifest.srcFile 'src/play/AndroidManifest.xml' } @@ -245,7 +261,6 @@ android { dependencies { addUnimodulesDependencies() implementation project(':watermelondb') - implementation project(":reactnativekeyboardinput") implementation project(':@react-native-community_viewpager') playImplementation project(':reactnativenotifications') playImplementation project(':@react-native-firebase_app') @@ -288,6 +303,6 @@ task copyDownloadableDepsToLibs(type: Copy) { } apply from: file("../../node_modules/@react-native-community/cli-platform-android/native_modules.gradle"); applyNativeModulesAppBuildGradle(project) -if (isPlay) { +if (!isFoss) { apply plugin: 'com.google.gms.google-services' } diff --git a/android/app/google-services.json b/android/app/google-services.json new file mode 100644 index 000000000..f5014f14c --- /dev/null +++ b/android/app/google-services.json @@ -0,0 +1,83 @@ +{ + "project_info": { + "project_number": "115198584049", + "firebase_url": "https://rocketchat-reactnative-test.firebaseio.com", + "project_id": "rocketchat-reactnative-test", + "storage_bucket": "rocketchat-reactnative-test.appspot.com" + }, + "client": [ + { + "client_info": { + "mobilesdk_app_id": "1:115198584049:android:a79216ae48935d2c9ab550", + "android_client_info": { + "package_name": "chat.rocket.android" + } + }, + "oauth_client": [ + { + "client_id": "115198584049-ack609b1338b827fta26s9rd2ab1aad5.apps.googleusercontent.com", + "client_type": 3 + } + ], + "api_key": [ + { + "current_key": "AIzaSyAWwowhAfACHBw3YxmDOXY3QyakgjhJLqc" + } + ], + "services": { + "appinvite_service": { + "other_platform_oauth_client": [ + { + "client_id": "115198584049-ack609b1338b827fta26s9rd2ab1aad5.apps.googleusercontent.com", + "client_type": 3 + }, + { + "client_id": "115198584049-0efgfvm0oh9ap55g7epmqnjm27mq3j4e.apps.googleusercontent.com", + "client_type": 2, + "ios_info": { + "bundle_id": "chat.rocket.reactnative" + } + } + ] + } + } + }, + { + "client_info": { + "mobilesdk_app_id": "1:115198584049:android:8be27b1f7c42a2ed", + "android_client_info": { + "package_name": "chat.rocket.reactnative" + } + }, + "oauth_client": [ + { + "client_id": "115198584049-ack609b1338b827fta26s9rd2ab1aad5.apps.googleusercontent.com", + "client_type": 3 + } + ], + "api_key": [ + { + "current_key": "AIzaSyAWwowhAfACHBw3YxmDOXY3QyakgjhJLqc" + } + ], + "services": { + "appinvite_service": { + "other_platform_oauth_client": [ + { + "client_id": "115198584049-ack609b1338b827fta26s9rd2ab1aad5.apps.googleusercontent.com", + "client_type": 3 + }, + { + "client_id": "115198584049-0efgfvm0oh9ap55g7epmqnjm27mq3j4e.apps.googleusercontent.com", + "client_type": 2, + "ios_info": { + "bundle_id": "chat.rocket.reactnative" + } + } + ] + } + } + } + ], + "configuration_version": "1" +} \ No newline at end of file diff --git a/android/app/src/debug/AndroidManifest.xml b/android/app/src/debug/AndroidManifest.xml index bc6c63eab..5d83092fd 100644 --- a/android/app/src/debug/AndroidManifest.xml +++ b/android/app/src/debug/AndroidManifest.xml @@ -1,10 +1,9 @@ + xmlns:tools="http://schemas.android.com/tools"> - - #000000 - diff --git a/android/app/src/foss/res/values/styles.xml b/android/app/src/foss/res/values/styles.xml deleted file mode 100644 index 50861d8e0..000000000 --- a/android/app/src/foss/res/values/styles.xml +++ /dev/null @@ -1,28 +0,0 @@ - - - - - - - - - diff --git a/android/app/src/main/AndroidManifest.xml b/android/app/src/main/AndroidManifest.xml index 81171a699..8c3ab8d18 100644 --- a/android/app/src/main/AndroidManifest.xml +++ b/android/app/src/main/AndroidManifest.xml @@ -1,64 +1,78 @@ + xmlns:tools="http://schemas.android.com/tools" + package="chat.rocket.reactnative"> - - - + + + - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/android/app/src/main/assets/fonts/custom.ttf b/android/app/src/main/assets/fonts/custom.ttf index 686383213..41bf2cf78 100644 Binary files a/android/app/src/main/assets/fonts/custom.ttf and b/android/app/src/main/assets/fonts/custom.ttf differ diff --git a/android/app/src/main/java/chat/rocket/reactnative/MainApplication.java b/android/app/src/main/java/chat/rocket/reactnative/MainApplication.java index 480089dba..33e246b55 100644 --- a/android/app/src/main/java/chat/rocket/reactnative/MainApplication.java +++ b/android/app/src/main/java/chat/rocket/reactnative/MainApplication.java @@ -11,7 +11,6 @@ import com.facebook.react.ReactPackage; import com.facebook.soloader.SoLoader; import com.nozbe.watermelondb.WatermelonDBPackage; import com.reactnativecommunity.viewpager.RNCViewPagerPackage; -import com.wix.reactnativekeyboardinput.KeyboardInputPackage; import org.unimodules.adapters.react.ModuleRegistryAdapter; import org.unimodules.adapters.react.ReactModuleRegistryProvider; @@ -20,6 +19,7 @@ import java.util.Arrays; import java.util.List; import chat.rocket.reactnative.generated.BasePackageList; +import chat.rocket.reactnative.networking.SSLPinningPackage; public class MainApplication extends Application implements ReactApplication { @@ -35,9 +35,9 @@ public class MainApplication extends Application implements ReactApplication { protected List getPackages() { @SuppressWarnings("UnnecessaryLocalVariable") List packages = new PackageList(this).getPackages(); - packages.add(new KeyboardInputPackage(MainApplication.this)); packages.add(new WatermelonDBPackage()); packages.add(new RNCViewPagerPackage()); + packages.add(new SSLPinningPackage()); List unimodules = Arrays.asList( new ModuleRegistryAdapter(mModuleRegistryProvider) ); diff --git a/android/app/src/main/java/chat/rocket/reactnative/networking/SSLPinningModule.java b/android/app/src/main/java/chat/rocket/reactnative/networking/SSLPinningModule.java new file mode 100644 index 000000000..6a690a180 --- /dev/null +++ b/android/app/src/main/java/chat/rocket/reactnative/networking/SSLPinningModule.java @@ -0,0 +1,193 @@ +package chat.rocket.reactnative.networking; + +import com.facebook.react.bridge.ReactApplicationContext; +import com.facebook.react.bridge.ReactContextBaseJavaModule; +import com.facebook.react.modules.network.NetworkingModule; +import com.facebook.react.modules.network.CustomClientBuilder; +import com.facebook.react.modules.network.ReactCookieJarContainer; +import com.facebook.react.modules.websocket.WebSocketModule; +import com.facebook.react.modules.fresco.ReactOkHttpNetworkFetcher; +import com.facebook.react.bridge.ReactMethod; +import com.facebook.react.bridge.Promise; + +import java.net.Socket; +import java.security.Principal; +import java.security.cert.CertificateException; +import java.security.cert.X509Certificate; +import javax.net.ssl.X509ExtendedKeyManager; +import java.security.PrivateKey; +import javax.net.ssl.SSLContext; +import javax.net.ssl.X509TrustManager; +import javax.net.ssl.SSLSocketFactory; +import javax.net.ssl.TrustManager; +import okhttp3.OkHttpClient; +import java.lang.InterruptedException; +import android.app.Activity; +import javax.net.ssl.KeyManager; +import android.security.KeyChain; +import android.security.KeyChainAliasCallback; +import java.util.concurrent.TimeUnit; + +import com.RNFetchBlob.RNFetchBlob; + +import com.reactnativecommunity.webview.RNCWebViewManager; + +import com.dylanvann.fastimage.FastImageOkHttpUrlLoader; + +import expo.modules.av.player.datasource.SharedCookiesDataSourceFactory; + +public class SSLPinningModule extends ReactContextBaseJavaModule implements KeyChainAliasCallback { + + private Promise promise; + private static String alias; + private static ReactApplicationContext reactContext; + + public SSLPinningModule(ReactApplicationContext reactContext) { + super(reactContext); + this.reactContext = reactContext; + } + + public class CustomClient implements CustomClientBuilder { + @Override + public void apply(OkHttpClient.Builder builder) { + if (alias != null) { + SSLSocketFactory sslSocketFactory = getSSLFactory(alias); + if (sslSocketFactory != null) { + builder.sslSocketFactory(sslSocketFactory); + } + } + } + } + + protected OkHttpClient getOkHttpClient() { + OkHttpClient.Builder builder = new OkHttpClient.Builder() + .connectTimeout(0, TimeUnit.MILLISECONDS) + .readTimeout(0, TimeUnit.MILLISECONDS) + .writeTimeout(0, TimeUnit.MILLISECONDS) + .cookieJar(new ReactCookieJarContainer()); + + if (alias != null) { + SSLSocketFactory sslSocketFactory = getSSLFactory(alias); + if (sslSocketFactory != null) { + builder.sslSocketFactory(sslSocketFactory); + } + } + + return builder.build(); + } + + @Override + public String getName() { + return "SSLPinning"; + } + + @Override + public void alias(String alias) { + this.alias = alias; + + this.promise.resolve(alias); + } + + @ReactMethod + public void setCertificate(String data, Promise promise) { + this.alias = data; + + // HTTP Fetch react-native layer + NetworkingModule.setCustomClientBuilder(new CustomClient()); + // Websocket react-native layer + WebSocketModule.setCustomClientBuilder(new CustomClient()); + // Image networking react-native layer + ReactOkHttpNetworkFetcher.setOkHttpClient(getOkHttpClient()); + // RNFetchBlob networking layer + RNFetchBlob.applyCustomOkHttpClient(getOkHttpClient()); + // RNCWebView onReceivedClientCertRequest + RNCWebViewManager.setCertificateAlias(data); + // FastImage Glide network layer + FastImageOkHttpUrlLoader.setOkHttpClient(getOkHttpClient()); + // Expo AV network layer + SharedCookiesDataSourceFactory.setOkHttpClient(getOkHttpClient()); + + promise.resolve(null); + } + + @ReactMethod + public void pickCertificate(Promise promise) { + Activity activity = getCurrentActivity(); + + this.promise = promise; + + KeyChain.choosePrivateKeyAlias(activity, + this, // Callback + null, // Any key types. + null, // Any issuers. + null, // Any host + -1, // Any port + "RocketChat"); + } + + public static SSLSocketFactory getSSLFactory(final String alias) { + try { + final PrivateKey privKey = KeyChain.getPrivateKey(reactContext, alias); + final X509Certificate[] certChain = KeyChain.getCertificateChain(reactContext, alias); + + final X509ExtendedKeyManager keyManager = new X509ExtendedKeyManager() { + @Override + public String chooseClientAlias(String[] strings, Principal[] principals, Socket socket) { + return alias; + } + + @Override + public String chooseServerAlias(String s, Principal[] principals, Socket socket) { + return alias; + } + + @Override + public X509Certificate[] getCertificateChain(String s) { + return certChain; + } + + @Override + public String[] getClientAliases(String s, Principal[] principals) { + return new String[]{alias}; + } + + @Override + public String[] getServerAliases(String s, Principal[] principals) { + return new String[]{alias}; + } + + @Override + public PrivateKey getPrivateKey(String s) { + return privKey; + } + }; + + final TrustManager[] trustAllCerts = new TrustManager[] { + new X509TrustManager() { + @Override + public void checkClientTrusted(java.security.cert.X509Certificate[] chain, String authType) throws CertificateException { + } + + @Override + public void checkServerTrusted(java.security.cert.X509Certificate[] chain, String authType) throws CertificateException { + } + + @Override + public java.security.cert.X509Certificate[] getAcceptedIssuers() { + return certChain; + } + } + }; + + final SSLContext sslContext = SSLContext.getInstance("TLS"); + sslContext.init(new KeyManager[]{keyManager}, trustAllCerts, new java.security.SecureRandom()); + SSLContext.setDefault(sslContext); + + final SSLSocketFactory sslSocketFactory = sslContext.getSocketFactory(); + + return sslSocketFactory; + } catch (Exception e) { + return null; + } + } +} diff --git a/android/app/src/main/java/chat/rocket/reactnative/networking/SSLPinningPackage.java b/android/app/src/main/java/chat/rocket/reactnative/networking/SSLPinningPackage.java new file mode 100644 index 000000000..cc8492434 --- /dev/null +++ b/android/app/src/main/java/chat/rocket/reactnative/networking/SSLPinningPackage.java @@ -0,0 +1,23 @@ +package chat.rocket.reactnative.networking; + +import java.util.Arrays; +import java.util.Collections; +import java.util.List; + +import com.facebook.react.ReactPackage; +import com.facebook.react.bridge.NativeModule; +import com.facebook.react.bridge.ReactApplicationContext; +import com.facebook.react.uimanager.ViewManager; +import com.facebook.react.bridge.JavaScriptModule; + +public class SSLPinningPackage implements ReactPackage { + @Override + public List createNativeModules(ReactApplicationContext reactContext) { + return Arrays.asList(new SSLPinningModule(reactContext)); + } + + @Override + public List createViewManagers(ReactApplicationContext reactContext) { + return Collections.emptyList(); + } +} diff --git a/android/app/src/main/res/values-night/colors.xml b/android/app/src/main/res/values-night/colors.xml index d5d36f2f5..3c1a14f89 100644 --- a/android/app/src/main/res/values-night/colors.xml +++ b/android/app/src/main/res/values-night/colors.xml @@ -1,5 +1,4 @@ #000000 - #1D74F5 - \ No newline at end of file + diff --git a/android/app/src/main/res/values/styles.xml b/android/app/src/main/res/values/styles.xml index 50861d8e0..1377b4820 100644 --- a/android/app/src/main/res/values/styles.xml +++ b/android/app/src/main/res/values/styles.xml @@ -3,6 +3,7 @@ #aaaaaa @color/splashBackground @color/splashBackground + false