diff --git a/.circleci/config.yml b/.circleci/config.yml index 8203bba7d..c2195c3b2 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 build_experimental + 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..d2bba5818 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`] = ` + + Sequential empty spaces + + + + + a b c + + + a b c d e + + a b c + @@ -11384,6 +11840,7 @@ exports[`Storyshots Markdown list Markdown 1`] = ` "fontFamily": "System", "fontSize": 16, "fontWeight": "400", + "textAlign": "left", }, Array [ Object {}, @@ -11400,6 +11857,7 @@ exports[`Storyshots Markdown list Markdown 1`] = ` "fontFamily": "System", "fontSize": 16, "fontWeight": "400", + "textAlign": "left", }, ], ] @@ -11417,6 +11875,7 @@ exports[`Storyshots Markdown list Markdown 1`] = ` "fontFamily": "System", "fontSize": 16, "fontWeight": "400", + "textAlign": "left", }, Array [ Object {}, @@ -11445,6 +11904,7 @@ exports[`Storyshots Markdown list Markdown 1`] = ` "color": "#2f343d", "fontFamily": "Courier New", "fontWeight": "400", + "textAlign": "left", }, ] } @@ -11455,6 +11915,13 @@ exports[`Storyshots Markdown list Markdown 1`] = ` @@ -11484,6 +11952,7 @@ exports[`Storyshots Markdown list Markdown 1`] = ` "fontFamily": "System", "fontSize": 16, "fontWeight": "400", + "textAlign": "left", }, Array [ Object {}, @@ -11500,6 +11969,7 @@ exports[`Storyshots Markdown list Markdown 1`] = ` "fontFamily": "System", "fontSize": 16, "fontWeight": "400", + "textAlign": "left", }, ], ] @@ -11517,6 +11987,7 @@ exports[`Storyshots Markdown list Markdown 1`] = ` "fontFamily": "System", "fontSize": 16, "fontWeight": "400", + "textAlign": "left", }, Array [ Object {}, @@ -11545,6 +12016,7 @@ exports[`Storyshots Markdown list Markdown 1`] = ` "color": "#2f343d", "fontFamily": "Courier New", "fontWeight": "400", + "textAlign": "left", }, ] } @@ -11584,6 +12056,13 @@ exports[`Storyshots Markdown list Markdown 1`] = ` - - Message removed + + + diego.mello + + + + Message removed + @@ -40717,14 +42275,9 @@ exports[`Storyshots Message list message 1`] = ` > - - Has joined the channel + + + diego.mello + + + + has joined the channel + @@ -40883,14 +42460,9 @@ exports[`Storyshots Message list message 1`] = ` > - - Message pinned + + + diego.mello + + + + Message pinned + @@ -41215,14 +42807,9 @@ exports[`Storyshots Message list message 1`] = ` > - - Has left the channel + + + diego.mello + + + + has left the channel + @@ -41381,14 +42992,9 @@ exports[`Storyshots Message list message 1`] = ` > + + Ignored + + + + + + + + + + + + + + + + Message ignored. Tap to display it. + + + + + + + @@ -44510,6 +46300,7 @@ exports[`Storyshots Message list message 1`] = ` "fontFamily": "System", "fontSize": 16, "fontWeight": "400", + "textAlign": "left", }, Array [ Object {}, @@ -44526,6 +46317,7 @@ exports[`Storyshots Message list message 1`] = ` "fontFamily": "System", "fontSize": 16, "fontWeight": "400", + "textAlign": "left", }, ], ] @@ -44544,6 +46336,7 @@ exports[`Storyshots Message list message 1`] = ` "fontFamily": "System", "fontSize": 16, "fontWeight": "400", + "textAlign": "left", }, Array [ Object {}, @@ -44571,6 +46364,7 @@ exports[`Storyshots Message list message 1`] = ` "fontFamily": "System", "fontSize": 16, "fontWeight": "400", + "textAlign": "left", } } > @@ -44584,6 +46378,7 @@ exports[`Storyshots Message list message 1`] = ` "fontFamily": "System", "fontSize": 16, "fontWeight": "400", + "textAlign": "left", }, Array [ Object {}, @@ -44600,6 +46395,7 @@ exports[`Storyshots Message list message 1`] = ` "fontFamily": "System", "fontSize": 16, "fontWeight": "400", + "textAlign": "left", }, ], ] @@ -44618,6 +46414,7 @@ exports[`Storyshots Message list message 1`] = ` "fontFamily": "System", "fontSize": 16, "fontWeight": "400", + "textAlign": "left", }, Array [ Object {}, @@ -44645,6 +46442,7 @@ exports[`Storyshots Message list message 1`] = ` "fontFamily": "System", "fontSize": 16, "fontWeight": "400", + "textAlign": "left", } } > @@ -44658,6 +46456,7 @@ exports[`Storyshots Message list message 1`] = ` "fontFamily": "System", "fontSize": 16, "fontWeight": "400", + "textAlign": "left", }, Array [ Object {}, @@ -44674,6 +46473,7 @@ exports[`Storyshots Message list message 1`] = ` "fontFamily": "System", "fontSize": 16, "fontWeight": "400", + "textAlign": "left", }, ], ] @@ -44864,6 +46664,7 @@ exports[`Storyshots Message list message 1`] = ` "fontSize": 16, "fontWeight": "500", "lineHeight": 22, + "textAlign": "left", }, Object { "color": "#0d0e12", @@ -44882,7 +46683,8 @@ exports[`Storyshots Message list message 1`] = ` "fontFamily": "System", "fontSize": 12, "fontWeight": "400", - "paddingLeft": 8, + "marginLeft": 8, + "textAlign": "left", }, Object { "color": "#9ca2a8", @@ -44898,6 +46700,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 +46910,7 @@ exports[`Storyshots Message list message 1`] = ` "fontSize": 16, "fontWeight": "500", "lineHeight": 22, + "textAlign": "left", }, Object { "color": "#0d0e12", @@ -45119,7 +46929,8 @@ exports[`Storyshots Message list message 1`] = ` "fontFamily": "System", "fontSize": 12, "fontWeight": "400", - "paddingLeft": 8, + "marginLeft": 8, + "textAlign": "left", }, Object { "color": "#9ca2a8", @@ -45135,6 +46946,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 +46970,7 @@ exports[`Storyshots Message list message 1`] = ` "fontFamily": "System", "fontSize": 16, "fontWeight": "400", + "textAlign": "left", }, Array [ Object {}, @@ -45180,6 +46999,7 @@ exports[`Storyshots Message list message 1`] = ` "color": "#2f343d", "fontFamily": "Courier New", "fontWeight": "400", + "textAlign": "left", }, ] } @@ -45196,6 +47016,7 @@ exports[`Storyshots Message list message 1`] = ` "fontFamily": "System", "fontSize": 16, "fontWeight": "400", + "textAlign": "left", }, Array [ Object {}, @@ -45224,6 +47045,7 @@ exports[`Storyshots Message list message 1`] = ` "color": "#2f343d", "fontFamily": "Courier New", "fontWeight": "400", + "textAlign": "left", }, ] } @@ -45240,6 +47062,7 @@ exports[`Storyshots Message list message 1`] = ` "fontFamily": "System", "fontSize": 16, "fontWeight": "400", + "textAlign": "left", }, Array [ Object {}, @@ -45270,6 +47093,7 @@ exports[`Storyshots Message list message 1`] = ` "fontFamily": "Courier New", "fontWeight": "400", "padding": 4, + "textAlign": "left", }, ] } @@ -45458,6 +47282,7 @@ exports[`Storyshots Message list message 1`] = ` "fontSize": 16, "fontWeight": "500", "lineHeight": 22, + "textAlign": "left", }, Object { "color": "#0d0e12", @@ -45476,7 +47301,8 @@ exports[`Storyshots Message list message 1`] = ` "fontFamily": "System", "fontSize": 12, "fontWeight": "400", - "paddingLeft": 8, + "marginLeft": 8, + "textAlign": "left", }, Object { "color": "#9ca2a8", @@ -45521,6 +47347,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 +47371,7 @@ exports[`Storyshots Message list message 1`] = ` "fontFamily": "System", "fontSize": 16, "fontWeight": "400", + "textAlign": "left", }, Array [ Object {}, @@ -45740,6 +47574,7 @@ exports[`Storyshots Message list message 1`] = ` "fontSize": 16, "fontWeight": "500", "lineHeight": 22, + "textAlign": "left", }, Object { "color": "#0d0e12", @@ -45758,7 +47593,8 @@ exports[`Storyshots Message list message 1`] = ` "fontFamily": "System", "fontSize": 12, "fontWeight": "400", - "paddingLeft": 8, + "marginLeft": 8, + "textAlign": "left", }, Object { "color": "#9ca2a8", @@ -45877,6 +47713,7 @@ exports[`Storyshots Message list message 1`] = ` "fontFamily": "System", "fontSize": 16, "fontWeight": "400", + "textAlign": "left", }, Array [ Object {}, @@ -45931,6 +47768,7 @@ exports[`Storyshots Message list message 1`] = ` "fontFamily": "System", "fontSize": 16, "fontWeight": "400", + "textAlign": "left", }, Array [ Object {}, @@ -46004,6 +47842,7 @@ exports[`Storyshots Message list message 1`] = ` "fontFamily": "System", "fontSize": 16, "fontWeight": "400", + "textAlign": "left", }, Array [ Object {}, @@ -46058,6 +47897,7 @@ exports[`Storyshots Message list message 1`] = ` "fontFamily": "System", "fontSize": 16, "fontWeight": "400", + "textAlign": "left", }, Array [ Object {}, @@ -46128,6 +47968,7 @@ exports[`Storyshots Message list message 1`] = ` "fontFamily": "System", "fontSize": 16, "fontWeight": "400", + "textAlign": "left", }, Array [ Object {}, @@ -46182,6 +48023,7 @@ exports[`Storyshots Message list message 1`] = ` "fontFamily": "System", "fontSize": 16, "fontWeight": "400", + "textAlign": "left", }, Array [ Object {}, @@ -46212,6 +48054,7 @@ exports[`Storyshots Message list message 1`] = ` "fontSize": 16, "fontStyle": "italic", "fontWeight": "400", + "textAlign": "left", }, Object { "color": "#9ca2a8", @@ -46300,11 +48143,6 @@ exports[`Storyshots RoomItem list roomitem 1`] = ` "position": "absolute", "right": 0, "top": 0, - "transform": Array [ - Object { - "translateX": 0, - }, - ], } } > @@ -46338,6 +48176,7 @@ exports[`Storyshots RoomItem list roomitem 1`] = ` "fontWeight": "600", "justifyContent": "center", "marginTop": 4, + "textAlign": "left", }, Object { "color": "#ffffff", @@ -46409,6 +48248,7 @@ exports[`Storyshots RoomItem list roomitem 1`] = ` "fontWeight": "600", "justifyContent": "center", "marginTop": 4, + "textAlign": "left", }, Object { "color": "#ffffff", @@ -46465,6 +48305,7 @@ exports[`Storyshots RoomItem list roomitem 1`] = ` "fontWeight": "600", "justifyContent": "center", "marginTop": 4, + "textAlign": "left", }, Object { "color": "#ffffff", @@ -46606,6 +48447,7 @@ exports[`Storyshots RoomItem list roomitem 1`] = ` "fontSize": 17, "fontWeight": "500", "lineHeight": 20, + "textAlign": "left", }, undefined, Object { @@ -46680,11 +48522,6 @@ exports[`Storyshots RoomItem list roomitem 1`] = ` "position": "absolute", "right": 0, "top": 0, - "transform": Array [ - Object { - "translateX": 0, - }, - ], } } > @@ -46718,6 +48555,7 @@ exports[`Storyshots RoomItem list roomitem 1`] = ` "fontWeight": "600", "justifyContent": "center", "marginTop": 4, + "textAlign": "left", }, Object { "color": "#ffffff", @@ -46789,6 +48627,7 @@ exports[`Storyshots RoomItem list roomitem 1`] = ` "fontWeight": "600", "justifyContent": "center", "marginTop": 4, + "textAlign": "left", }, Object { "color": "#ffffff", @@ -46845,6 +48684,7 @@ exports[`Storyshots RoomItem list roomitem 1`] = ` "fontWeight": "600", "justifyContent": "center", "marginTop": 4, + "textAlign": "left", }, Object { "color": "#ffffff", @@ -46986,6 +48826,7 @@ exports[`Storyshots RoomItem list roomitem 1`] = ` "fontSize": 17, "fontWeight": "500", "lineHeight": 20, + "textAlign": "left", }, undefined, Object { @@ -47042,11 +48883,6 @@ exports[`Storyshots RoomItem list roomitem 1`] = ` "position": "absolute", "right": 0, "top": 0, - "transform": Array [ - Object { - "translateX": 0, - }, - ], } } > @@ -47080,6 +48916,7 @@ exports[`Storyshots RoomItem list roomitem 1`] = ` "fontWeight": "600", "justifyContent": "center", "marginTop": 4, + "textAlign": "left", }, Object { "color": "#ffffff", @@ -47151,6 +48988,7 @@ exports[`Storyshots RoomItem list roomitem 1`] = ` "fontWeight": "600", "justifyContent": "center", "marginTop": 4, + "textAlign": "left", }, Object { "color": "#ffffff", @@ -47207,6 +49045,7 @@ exports[`Storyshots RoomItem list roomitem 1`] = ` "fontWeight": "600", "justifyContent": "center", "marginTop": 4, + "textAlign": "left", }, Object { "color": "#ffffff", @@ -47348,6 +49187,7 @@ exports[`Storyshots RoomItem list roomitem 1`] = ` "fontSize": 17, "fontWeight": "500", "lineHeight": 20, + "textAlign": "left", }, undefined, Object { @@ -47422,11 +49262,6 @@ exports[`Storyshots RoomItem list roomitem 1`] = ` "position": "absolute", "right": 0, "top": 0, - "transform": Array [ - Object { - "translateX": 0, - }, - ], } } > @@ -47460,6 +49295,7 @@ exports[`Storyshots RoomItem list roomitem 1`] = ` "fontWeight": "600", "justifyContent": "center", "marginTop": 4, + "textAlign": "left", }, Object { "color": "#ffffff", @@ -47531,6 +49367,7 @@ exports[`Storyshots RoomItem list roomitem 1`] = ` "fontWeight": "600", "justifyContent": "center", "marginTop": 4, + "textAlign": "left", }, Object { "color": "#ffffff", @@ -47587,6 +49424,7 @@ exports[`Storyshots RoomItem list roomitem 1`] = ` "fontWeight": "600", "justifyContent": "center", "marginTop": 4, + "textAlign": "left", }, Object { "color": "#ffffff", @@ -47728,6 +49566,7 @@ exports[`Storyshots RoomItem list roomitem 1`] = ` "fontSize": 17, "fontWeight": "500", "lineHeight": 20, + "textAlign": "left", }, undefined, Object { @@ -47784,11 +49623,6 @@ exports[`Storyshots RoomItem list roomitem 1`] = ` "position": "absolute", "right": 0, "top": 0, - "transform": Array [ - Object { - "translateX": 0, - }, - ], } } > @@ -47822,6 +49656,7 @@ exports[`Storyshots RoomItem list roomitem 1`] = ` "fontWeight": "600", "justifyContent": "center", "marginTop": 4, + "textAlign": "left", }, Object { "color": "#ffffff", @@ -47893,6 +49728,7 @@ exports[`Storyshots RoomItem list roomitem 1`] = ` "fontWeight": "600", "justifyContent": "center", "marginTop": 4, + "textAlign": "left", }, Object { "color": "#ffffff", @@ -47949,6 +49785,7 @@ exports[`Storyshots RoomItem list roomitem 1`] = ` "fontWeight": "600", "justifyContent": "center", "marginTop": 4, + "textAlign": "left", }, Object { "color": "#ffffff", @@ -48101,6 +49938,7 @@ exports[`Storyshots RoomItem list roomitem 1`] = ` "fontSize": 17, "fontWeight": "500", "lineHeight": 20, + "textAlign": "left", }, undefined, Object { @@ -48157,11 +49995,6 @@ exports[`Storyshots RoomItem list roomitem 1`] = ` "position": "absolute", "right": 0, "top": 0, - "transform": Array [ - Object { - "translateX": 0, - }, - ], } } > @@ -48195,6 +50028,7 @@ exports[`Storyshots RoomItem list roomitem 1`] = ` "fontWeight": "600", "justifyContent": "center", "marginTop": 4, + "textAlign": "left", }, Object { "color": "#ffffff", @@ -48266,6 +50100,7 @@ exports[`Storyshots RoomItem list roomitem 1`] = ` "fontWeight": "600", "justifyContent": "center", "marginTop": 4, + "textAlign": "left", }, Object { "color": "#ffffff", @@ -48322,6 +50157,7 @@ exports[`Storyshots RoomItem list roomitem 1`] = ` "fontWeight": "600", "justifyContent": "center", "marginTop": 4, + "textAlign": "left", }, Object { "color": "#ffffff", @@ -48474,6 +50310,7 @@ exports[`Storyshots RoomItem list roomitem 1`] = ` "fontSize": 17, "fontWeight": "500", "lineHeight": 20, + "textAlign": "left", }, undefined, Object { @@ -48530,11 +50367,6 @@ exports[`Storyshots RoomItem list roomitem 1`] = ` "position": "absolute", "right": 0, "top": 0, - "transform": Array [ - Object { - "translateX": 0, - }, - ], } } > @@ -48568,6 +50400,7 @@ exports[`Storyshots RoomItem list roomitem 1`] = ` "fontWeight": "600", "justifyContent": "center", "marginTop": 4, + "textAlign": "left", }, Object { "color": "#ffffff", @@ -48639,6 +50472,7 @@ exports[`Storyshots RoomItem list roomitem 1`] = ` "fontWeight": "600", "justifyContent": "center", "marginTop": 4, + "textAlign": "left", }, Object { "color": "#ffffff", @@ -48695,6 +50529,7 @@ exports[`Storyshots RoomItem list roomitem 1`] = ` "fontWeight": "600", "justifyContent": "center", "marginTop": 4, + "textAlign": "left", }, Object { "color": "#ffffff", @@ -48847,6 +50682,7 @@ exports[`Storyshots RoomItem list roomitem 1`] = ` "fontSize": 17, "fontWeight": "500", "lineHeight": 20, + "textAlign": "left", }, undefined, Object { @@ -48903,11 +50739,6 @@ exports[`Storyshots RoomItem list roomitem 1`] = ` "position": "absolute", "right": 0, "top": 0, - "transform": Array [ - Object { - "translateX": 0, - }, - ], } } > @@ -48941,6 +50772,7 @@ exports[`Storyshots RoomItem list roomitem 1`] = ` "fontWeight": "600", "justifyContent": "center", "marginTop": 4, + "textAlign": "left", }, Object { "color": "#ffffff", @@ -49012,6 +50844,7 @@ exports[`Storyshots RoomItem list roomitem 1`] = ` "fontWeight": "600", "justifyContent": "center", "marginTop": 4, + "textAlign": "left", }, Object { "color": "#ffffff", @@ -49068,6 +50901,7 @@ exports[`Storyshots RoomItem list roomitem 1`] = ` "fontWeight": "600", "justifyContent": "center", "marginTop": 4, + "textAlign": "left", }, Object { "color": "#ffffff", @@ -49220,6 +51054,7 @@ exports[`Storyshots RoomItem list roomitem 1`] = ` "fontSize": 17, "fontWeight": "500", "lineHeight": 20, + "textAlign": "left", }, undefined, Object { @@ -49276,11 +51111,6 @@ exports[`Storyshots RoomItem list roomitem 1`] = ` "position": "absolute", "right": 0, "top": 0, - "transform": Array [ - Object { - "translateX": 0, - }, - ], } } > @@ -49314,6 +51144,7 @@ exports[`Storyshots RoomItem list roomitem 1`] = ` "fontWeight": "600", "justifyContent": "center", "marginTop": 4, + "textAlign": "left", }, Object { "color": "#ffffff", @@ -49385,6 +51216,7 @@ exports[`Storyshots RoomItem list roomitem 1`] = ` "fontWeight": "600", "justifyContent": "center", "marginTop": 4, + "textAlign": "left", }, Object { "color": "#ffffff", @@ -49441,6 +51273,7 @@ exports[`Storyshots RoomItem list roomitem 1`] = ` "fontWeight": "600", "justifyContent": "center", "marginTop": 4, + "textAlign": "left", }, Object { "color": "#ffffff", @@ -49593,6 +51426,7 @@ exports[`Storyshots RoomItem list roomitem 1`] = ` "fontSize": 17, "fontWeight": "500", "lineHeight": 20, + "textAlign": "left", }, undefined, Object { @@ -49649,11 +51483,6 @@ exports[`Storyshots RoomItem list roomitem 1`] = ` "position": "absolute", "right": 0, "top": 0, - "transform": Array [ - Object { - "translateX": 0, - }, - ], } } > @@ -49687,6 +51516,7 @@ exports[`Storyshots RoomItem list roomitem 1`] = ` "fontWeight": "600", "justifyContent": "center", "marginTop": 4, + "textAlign": "left", }, Object { "color": "#ffffff", @@ -49758,6 +51588,7 @@ exports[`Storyshots RoomItem list roomitem 1`] = ` "fontWeight": "600", "justifyContent": "center", "marginTop": 4, + "textAlign": "left", }, Object { "color": "#ffffff", @@ -49814,6 +51645,7 @@ exports[`Storyshots RoomItem list roomitem 1`] = ` "fontWeight": "600", "justifyContent": "center", "marginTop": 4, + "textAlign": "left", }, Object { "color": "#ffffff", @@ -49966,6 +51798,7 @@ exports[`Storyshots RoomItem list roomitem 1`] = ` "fontSize": 17, "fontWeight": "500", "lineHeight": 20, + "textAlign": "left", }, undefined, Object { @@ -50040,11 +51873,6 @@ exports[`Storyshots RoomItem list roomitem 1`] = ` "position": "absolute", "right": 0, "top": 0, - "transform": Array [ - Object { - "translateX": 0, - }, - ], } } > @@ -50078,6 +51906,7 @@ exports[`Storyshots RoomItem list roomitem 1`] = ` "fontWeight": "600", "justifyContent": "center", "marginTop": 4, + "textAlign": "left", }, Object { "color": "#ffffff", @@ -50149,6 +51978,7 @@ exports[`Storyshots RoomItem list roomitem 1`] = ` "fontWeight": "600", "justifyContent": "center", "marginTop": 4, + "textAlign": "left", }, Object { "color": "#ffffff", @@ -50205,6 +52035,7 @@ exports[`Storyshots RoomItem list roomitem 1`] = ` "fontWeight": "600", "justifyContent": "center", "marginTop": 4, + "textAlign": "left", }, Object { "color": "#ffffff", @@ -50346,6 +52177,7 @@ exports[`Storyshots RoomItem list roomitem 1`] = ` "fontSize": 17, "fontWeight": "500", "lineHeight": 20, + "textAlign": "left", }, undefined, Object { @@ -50402,11 +52234,6 @@ exports[`Storyshots RoomItem list roomitem 1`] = ` "position": "absolute", "right": 0, "top": 0, - "transform": Array [ - Object { - "translateX": 0, - }, - ], } } > @@ -50440,6 +52267,7 @@ exports[`Storyshots RoomItem list roomitem 1`] = ` "fontWeight": "600", "justifyContent": "center", "marginTop": 4, + "textAlign": "left", }, Object { "color": "#ffffff", @@ -50511,6 +52339,7 @@ exports[`Storyshots RoomItem list roomitem 1`] = ` "fontWeight": "600", "justifyContent": "center", "marginTop": 4, + "textAlign": "left", }, Object { "color": "#ffffff", @@ -50567,6 +52396,7 @@ exports[`Storyshots RoomItem list roomitem 1`] = ` "fontWeight": "600", "justifyContent": "center", "marginTop": 4, + "textAlign": "left", }, Object { "color": "#ffffff", @@ -50708,6 +52538,7 @@ exports[`Storyshots RoomItem list roomitem 1`] = ` "fontSize": 17, "fontWeight": "500", "lineHeight": 20, + "textAlign": "left", }, undefined, Object { @@ -50764,11 +52595,6 @@ exports[`Storyshots RoomItem list roomitem 1`] = ` "position": "absolute", "right": 0, "top": 0, - "transform": Array [ - Object { - "translateX": 0, - }, - ], } } > @@ -50802,6 +52628,7 @@ exports[`Storyshots RoomItem list roomitem 1`] = ` "fontWeight": "600", "justifyContent": "center", "marginTop": 4, + "textAlign": "left", }, Object { "color": "#ffffff", @@ -50873,6 +52700,7 @@ exports[`Storyshots RoomItem list roomitem 1`] = ` "fontWeight": "600", "justifyContent": "center", "marginTop": 4, + "textAlign": "left", }, Object { "color": "#ffffff", @@ -50929,6 +52757,7 @@ exports[`Storyshots RoomItem list roomitem 1`] = ` "fontWeight": "600", "justifyContent": "center", "marginTop": 4, + "textAlign": "left", }, Object { "color": "#ffffff", @@ -51070,6 +52899,7 @@ exports[`Storyshots RoomItem list roomitem 1`] = ` "fontSize": 17, "fontWeight": "500", "lineHeight": 20, + "textAlign": "left", }, undefined, Object { @@ -51126,11 +52956,6 @@ exports[`Storyshots RoomItem list roomitem 1`] = ` "position": "absolute", "right": 0, "top": 0, - "transform": Array [ - Object { - "translateX": 0, - }, - ], } } > @@ -51164,6 +52989,7 @@ exports[`Storyshots RoomItem list roomitem 1`] = ` "fontWeight": "600", "justifyContent": "center", "marginTop": 4, + "textAlign": "left", }, Object { "color": "#ffffff", @@ -51235,6 +53061,7 @@ exports[`Storyshots RoomItem list roomitem 1`] = ` "fontWeight": "600", "justifyContent": "center", "marginTop": 4, + "textAlign": "left", }, Object { "color": "#ffffff", @@ -51291,6 +53118,7 @@ exports[`Storyshots RoomItem list roomitem 1`] = ` "fontWeight": "600", "justifyContent": "center", "marginTop": 4, + "textAlign": "left", }, Object { "color": "#ffffff", @@ -51432,6 +53260,7 @@ exports[`Storyshots RoomItem list roomitem 1`] = ` "fontSize": 17, "fontWeight": "500", "lineHeight": 20, + "textAlign": "left", }, undefined, Object { @@ -51488,11 +53317,6 @@ exports[`Storyshots RoomItem list roomitem 1`] = ` "position": "absolute", "right": 0, "top": 0, - "transform": Array [ - Object { - "translateX": 0, - }, - ], } } > @@ -51526,6 +53350,7 @@ exports[`Storyshots RoomItem list roomitem 1`] = ` "fontWeight": "600", "justifyContent": "center", "marginTop": 4, + "textAlign": "left", }, Object { "color": "#ffffff", @@ -51597,6 +53422,7 @@ exports[`Storyshots RoomItem list roomitem 1`] = ` "fontWeight": "600", "justifyContent": "center", "marginTop": 4, + "textAlign": "left", }, Object { "color": "#ffffff", @@ -51653,6 +53479,7 @@ exports[`Storyshots RoomItem list roomitem 1`] = ` "fontWeight": "600", "justifyContent": "center", "marginTop": 4, + "textAlign": "left", }, Object { "color": "#ffffff", @@ -51794,6 +53621,7 @@ exports[`Storyshots RoomItem list roomitem 1`] = ` "fontSize": 17, "fontWeight": "500", "lineHeight": 20, + "textAlign": "left", }, undefined, Object { @@ -51868,11 +53696,6 @@ exports[`Storyshots RoomItem list roomitem 1`] = ` "position": "absolute", "right": 0, "top": 0, - "transform": Array [ - Object { - "translateX": 0, - }, - ], } } > @@ -51906,6 +53729,7 @@ exports[`Storyshots RoomItem list roomitem 1`] = ` "fontWeight": "600", "justifyContent": "center", "marginTop": 4, + "textAlign": "left", }, Object { "color": "#ffffff", @@ -51977,6 +53801,7 @@ exports[`Storyshots RoomItem list roomitem 1`] = ` "fontWeight": "600", "justifyContent": "center", "marginTop": 4, + "textAlign": "left", }, Object { "color": "#ffffff", @@ -52033,6 +53858,7 @@ exports[`Storyshots RoomItem list roomitem 1`] = ` "fontWeight": "600", "justifyContent": "center", "marginTop": 4, + "textAlign": "left", }, Object { "color": "#ffffff", @@ -52174,11 +54000,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 +54062,6 @@ exports[`Storyshots RoomItem list roomitem 1`] = ` "position": "absolute", "right": 0, "top": 0, - "transform": Array [ - Object { - "translateX": 0, - }, - ], } } > @@ -52272,6 +54095,7 @@ exports[`Storyshots RoomItem list roomitem 1`] = ` "fontWeight": "600", "justifyContent": "center", "marginTop": 4, + "textAlign": "left", }, Object { "color": "#ffffff", @@ -52343,6 +54167,7 @@ exports[`Storyshots RoomItem list roomitem 1`] = ` "fontWeight": "600", "justifyContent": "center", "marginTop": 4, + "textAlign": "left", }, Object { "color": "#ffffff", @@ -52399,6 +54224,7 @@ exports[`Storyshots RoomItem list roomitem 1`] = ` "fontWeight": "600", "justifyContent": "center", "marginTop": 4, + "textAlign": "left", }, Object { "color": "#ffffff", @@ -52540,11 +54366,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 +54411,7 @@ exports[`Storyshots RoomItem list roomitem 1`] = ` "fontFamily": "System", "fontSize": 13, "fontWeight": "600", + "textAlign": "left", }, undefined, Object { @@ -52640,11 +54469,6 @@ exports[`Storyshots RoomItem list roomitem 1`] = ` "position": "absolute", "right": 0, "top": 0, - "transform": Array [ - Object { - "translateX": 0, - }, - ], } } > @@ -52678,6 +54502,7 @@ exports[`Storyshots RoomItem list roomitem 1`] = ` "fontWeight": "600", "justifyContent": "center", "marginTop": 4, + "textAlign": "left", }, Object { "color": "#ffffff", @@ -52749,6 +54574,7 @@ exports[`Storyshots RoomItem list roomitem 1`] = ` "fontWeight": "600", "justifyContent": "center", "marginTop": 4, + "textAlign": "left", }, Object { "color": "#ffffff", @@ -52805,6 +54631,7 @@ exports[`Storyshots RoomItem list roomitem 1`] = ` "fontWeight": "600", "justifyContent": "center", "marginTop": 4, + "textAlign": "left", }, Object { "color": "#ffffff", @@ -52946,11 +54773,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 +54818,7 @@ exports[`Storyshots RoomItem list roomitem 1`] = ` "fontFamily": "System", "fontSize": 13, "fontWeight": "600", + "textAlign": "left", }, undefined, Object { @@ -53046,11 +54876,6 @@ exports[`Storyshots RoomItem list roomitem 1`] = ` "position": "absolute", "right": 0, "top": 0, - "transform": Array [ - Object { - "translateX": 0, - }, - ], } } > @@ -53084,6 +54909,7 @@ exports[`Storyshots RoomItem list roomitem 1`] = ` "fontWeight": "600", "justifyContent": "center", "marginTop": 4, + "textAlign": "left", }, Object { "color": "#ffffff", @@ -53155,6 +54981,7 @@ exports[`Storyshots RoomItem list roomitem 1`] = ` "fontWeight": "600", "justifyContent": "center", "marginTop": 4, + "textAlign": "left", }, Object { "color": "#ffffff", @@ -53211,6 +55038,7 @@ exports[`Storyshots RoomItem list roomitem 1`] = ` "fontWeight": "600", "justifyContent": "center", "marginTop": 4, + "textAlign": "left", }, Object { "color": "#ffffff", @@ -53352,11 +55180,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 +55225,7 @@ exports[`Storyshots RoomItem list roomitem 1`] = ` "fontFamily": "System", "fontSize": 13, "fontWeight": "600", + "textAlign": "left", }, undefined, Object { @@ -53452,11 +55283,6 @@ exports[`Storyshots RoomItem list roomitem 1`] = ` "position": "absolute", "right": 0, "top": 0, - "transform": Array [ - Object { - "translateX": 0, - }, - ], } } > @@ -53490,6 +55316,7 @@ exports[`Storyshots RoomItem list roomitem 1`] = ` "fontWeight": "600", "justifyContent": "center", "marginTop": 4, + "textAlign": "left", }, Object { "color": "#ffffff", @@ -53561,6 +55388,7 @@ exports[`Storyshots RoomItem list roomitem 1`] = ` "fontWeight": "600", "justifyContent": "center", "marginTop": 4, + "textAlign": "left", }, Object { "color": "#ffffff", @@ -53617,6 +55445,7 @@ exports[`Storyshots RoomItem list roomitem 1`] = ` "fontWeight": "600", "justifyContent": "center", "marginTop": 4, + "textAlign": "left", }, Object { "color": "#ffffff", @@ -53758,11 +55587,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 +55632,7 @@ exports[`Storyshots RoomItem list roomitem 1`] = ` "fontFamily": "System", "fontSize": 13, "fontWeight": "600", + "textAlign": "left", }, undefined, Object { @@ -53858,11 +55690,6 @@ exports[`Storyshots RoomItem list roomitem 1`] = ` "position": "absolute", "right": 0, "top": 0, - "transform": Array [ - Object { - "translateX": 0, - }, - ], } } > @@ -53896,6 +55723,7 @@ exports[`Storyshots RoomItem list roomitem 1`] = ` "fontWeight": "600", "justifyContent": "center", "marginTop": 4, + "textAlign": "left", }, Object { "color": "#ffffff", @@ -53967,6 +55795,7 @@ exports[`Storyshots RoomItem list roomitem 1`] = ` "fontWeight": "600", "justifyContent": "center", "marginTop": 4, + "textAlign": "left", }, Object { "color": "#ffffff", @@ -54023,6 +55852,7 @@ exports[`Storyshots RoomItem list roomitem 1`] = ` "fontWeight": "600", "justifyContent": "center", "marginTop": 4, + "textAlign": "left", }, Object { "color": "#ffffff", @@ -54164,11 +55994,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 +56039,7 @@ exports[`Storyshots RoomItem list roomitem 1`] = ` "fontFamily": "System", "fontSize": 13, "fontWeight": "600", + "textAlign": "left", }, undefined, Object { @@ -54264,11 +56097,6 @@ exports[`Storyshots RoomItem list roomitem 1`] = ` "position": "absolute", "right": 0, "top": 0, - "transform": Array [ - Object { - "translateX": 0, - }, - ], } } > @@ -54302,6 +56130,7 @@ exports[`Storyshots RoomItem list roomitem 1`] = ` "fontWeight": "600", "justifyContent": "center", "marginTop": 4, + "textAlign": "left", }, Object { "color": "#ffffff", @@ -54373,6 +56202,7 @@ exports[`Storyshots RoomItem list roomitem 1`] = ` "fontWeight": "600", "justifyContent": "center", "marginTop": 4, + "textAlign": "left", }, Object { "color": "#ffffff", @@ -54429,6 +56259,7 @@ exports[`Storyshots RoomItem list roomitem 1`] = ` "fontWeight": "600", "justifyContent": "center", "marginTop": 4, + "textAlign": "left", }, Object { "color": "#ffffff", @@ -54570,11 +56401,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 +56446,7 @@ exports[`Storyshots RoomItem list roomitem 1`] = ` "fontFamily": "System", "fontSize": 13, "fontWeight": "600", + "textAlign": "left", }, undefined, Object { @@ -54670,11 +56504,6 @@ exports[`Storyshots RoomItem list roomitem 1`] = ` "position": "absolute", "right": 0, "top": 0, - "transform": Array [ - Object { - "translateX": 0, - }, - ], } } > @@ -54708,6 +56537,7 @@ exports[`Storyshots RoomItem list roomitem 1`] = ` "fontWeight": "600", "justifyContent": "center", "marginTop": 4, + "textAlign": "left", }, Object { "color": "#ffffff", @@ -54779,6 +56609,7 @@ exports[`Storyshots RoomItem list roomitem 1`] = ` "fontWeight": "600", "justifyContent": "center", "marginTop": 4, + "textAlign": "left", }, Object { "color": "#ffffff", @@ -54835,6 +56666,7 @@ exports[`Storyshots RoomItem list roomitem 1`] = ` "fontWeight": "600", "justifyContent": "center", "marginTop": 4, + "textAlign": "left", }, Object { "color": "#ffffff", @@ -54976,11 +56808,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 +56853,7 @@ exports[`Storyshots RoomItem list roomitem 1`] = ` "fontFamily": "System", "fontSize": 13, "fontWeight": "600", + "textAlign": "left", }, undefined, Object { @@ -55076,11 +56911,6 @@ exports[`Storyshots RoomItem list roomitem 1`] = ` "position": "absolute", "right": 0, "top": 0, - "transform": Array [ - Object { - "translateX": 0, - }, - ], } } > @@ -55114,6 +56944,7 @@ exports[`Storyshots RoomItem list roomitem 1`] = ` "fontWeight": "600", "justifyContent": "center", "marginTop": 4, + "textAlign": "left", }, Object { "color": "#ffffff", @@ -55185,6 +57016,7 @@ exports[`Storyshots RoomItem list roomitem 1`] = ` "fontWeight": "600", "justifyContent": "center", "marginTop": 4, + "textAlign": "left", }, Object { "color": "#ffffff", @@ -55241,6 +57073,7 @@ exports[`Storyshots RoomItem list roomitem 1`] = ` "fontWeight": "600", "justifyContent": "center", "marginTop": 4, + "textAlign": "left", }, Object { "color": "#ffffff", @@ -55382,11 +57215,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 +57260,7 @@ exports[`Storyshots RoomItem list roomitem 1`] = ` "fontFamily": "System", "fontSize": 13, "fontWeight": "600", + "textAlign": "left", }, undefined, Object { @@ -55482,11 +57318,6 @@ exports[`Storyshots RoomItem list roomitem 1`] = ` "position": "absolute", "right": 0, "top": 0, - "transform": Array [ - Object { - "translateX": 0, - }, - ], } } > @@ -55520,6 +57351,7 @@ exports[`Storyshots RoomItem list roomitem 1`] = ` "fontWeight": "600", "justifyContent": "center", "marginTop": 4, + "textAlign": "left", }, Object { "color": "#ffffff", @@ -55591,6 +57423,7 @@ exports[`Storyshots RoomItem list roomitem 1`] = ` "fontWeight": "600", "justifyContent": "center", "marginTop": 4, + "textAlign": "left", }, Object { "color": "#ffffff", @@ -55647,6 +57480,7 @@ exports[`Storyshots RoomItem list roomitem 1`] = ` "fontWeight": "600", "justifyContent": "center", "marginTop": 4, + "textAlign": "left", }, Object { "color": "#ffffff", @@ -55788,11 +57622,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 +57667,7 @@ exports[`Storyshots RoomItem list roomitem 1`] = ` "fontFamily": "System", "fontSize": 13, "fontWeight": "600", + "textAlign": "left", }, undefined, Object { @@ -55888,11 +57725,6 @@ exports[`Storyshots RoomItem list roomitem 1`] = ` "position": "absolute", "right": 0, "top": 0, - "transform": Array [ - Object { - "translateX": 0, - }, - ], } } > @@ -55926,6 +57758,7 @@ exports[`Storyshots RoomItem list roomitem 1`] = ` "fontWeight": "600", "justifyContent": "center", "marginTop": 4, + "textAlign": "left", }, Object { "color": "#ffffff", @@ -55997,6 +57830,7 @@ exports[`Storyshots RoomItem list roomitem 1`] = ` "fontWeight": "600", "justifyContent": "center", "marginTop": 4, + "textAlign": "left", }, Object { "color": "#ffffff", @@ -56053,6 +57887,7 @@ exports[`Storyshots RoomItem list roomitem 1`] = ` "fontWeight": "600", "justifyContent": "center", "marginTop": 4, + "textAlign": "left", }, Object { "color": "#ffffff", @@ -56194,11 +58029,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 +58074,7 @@ exports[`Storyshots RoomItem list roomitem 1`] = ` "fontFamily": "System", "fontSize": 13, "fontWeight": "600", + "textAlign": "left", }, undefined, Object { @@ -56312,11 +58150,6 @@ exports[`Storyshots RoomItem list roomitem 1`] = ` "position": "absolute", "right": 0, "top": 0, - "transform": Array [ - Object { - "translateX": 0, - }, - ], } } > @@ -56350,6 +58183,7 @@ exports[`Storyshots RoomItem list roomitem 1`] = ` "fontWeight": "600", "justifyContent": "center", "marginTop": 4, + "textAlign": "left", }, Object { "color": "#ffffff", @@ -56421,6 +58255,7 @@ exports[`Storyshots RoomItem list roomitem 1`] = ` "fontWeight": "600", "justifyContent": "center", "marginTop": 4, + "textAlign": "left", }, Object { "color": "#ffffff", @@ -56477,6 +58312,7 @@ exports[`Storyshots RoomItem list roomitem 1`] = ` "fontWeight": "600", "justifyContent": "center", "marginTop": 4, + "textAlign": "left", }, Object { "color": "#ffffff", @@ -56613,6 +58449,7 @@ exports[`Storyshots RoomItem list roomitem 1`] = ` "fontSize": 17, "fontWeight": "500", "lineHeight": 20, + "textAlign": "left", }, undefined, Object { @@ -56634,6 +58471,7 @@ exports[`Storyshots RoomItem list roomitem 1`] = ` "fontSize": 13, "fontWeight": "400", "marginLeft": 4, + "textAlign": "left", }, Object { "color": "#9ca2a8", @@ -56664,6 +58502,7 @@ exports[`Storyshots RoomItem list roomitem 1`] = ` "fontFamily": "System", "fontSize": 16, "fontWeight": "400", + "textAlign": "left", }, Object { "color": "#2f343d", @@ -56675,6 +58514,7 @@ exports[`Storyshots RoomItem list roomitem 1`] = ` "fontSize": 14, "fontWeight": "400", "lineHeight": 17, + "textAlign": "left", }, Object { "color": "#9ca2a8", @@ -56730,11 +58570,6 @@ exports[`Storyshots RoomItem list roomitem 1`] = ` "position": "absolute", "right": 0, "top": 0, - "transform": Array [ - Object { - "translateX": 0, - }, - ], } } > @@ -56768,6 +58603,7 @@ exports[`Storyshots RoomItem list roomitem 1`] = ` "fontWeight": "600", "justifyContent": "center", "marginTop": 4, + "textAlign": "left", }, Object { "color": "#ffffff", @@ -56839,6 +58675,7 @@ exports[`Storyshots RoomItem list roomitem 1`] = ` "fontWeight": "600", "justifyContent": "center", "marginTop": 4, + "textAlign": "left", }, Object { "color": "#ffffff", @@ -56895,6 +58732,7 @@ exports[`Storyshots RoomItem list roomitem 1`] = ` "fontWeight": "600", "justifyContent": "center", "marginTop": 4, + "textAlign": "left", }, Object { "color": "#ffffff", @@ -57031,6 +58869,7 @@ exports[`Storyshots RoomItem list roomitem 1`] = ` "fontSize": 17, "fontWeight": "500", "lineHeight": 20, + "textAlign": "left", }, undefined, Object { @@ -57052,6 +58891,7 @@ exports[`Storyshots RoomItem list roomitem 1`] = ` "fontSize": 13, "fontWeight": "400", "marginLeft": 4, + "textAlign": "left", }, Object { "color": "#9ca2a8", @@ -57082,6 +58922,7 @@ exports[`Storyshots RoomItem list roomitem 1`] = ` "fontFamily": "System", "fontSize": 16, "fontWeight": "400", + "textAlign": "left", }, Object { "color": "#2f343d", @@ -57093,6 +58934,7 @@ exports[`Storyshots RoomItem list roomitem 1`] = ` "fontSize": 14, "fontWeight": "400", "lineHeight": 17, + "textAlign": "left", }, Object { "color": "#9ca2a8", @@ -57148,11 +58990,6 @@ exports[`Storyshots RoomItem list roomitem 1`] = ` "position": "absolute", "right": 0, "top": 0, - "transform": Array [ - Object { - "translateX": 0, - }, - ], } } > @@ -57186,6 +59023,7 @@ exports[`Storyshots RoomItem list roomitem 1`] = ` "fontWeight": "600", "justifyContent": "center", "marginTop": 4, + "textAlign": "left", }, Object { "color": "#ffffff", @@ -57257,6 +59095,7 @@ exports[`Storyshots RoomItem list roomitem 1`] = ` "fontWeight": "600", "justifyContent": "center", "marginTop": 4, + "textAlign": "left", }, Object { "color": "#ffffff", @@ -57313,6 +59152,7 @@ exports[`Storyshots RoomItem list roomitem 1`] = ` "fontWeight": "600", "justifyContent": "center", "marginTop": 4, + "textAlign": "left", }, Object { "color": "#ffffff", @@ -57449,6 +59289,7 @@ exports[`Storyshots RoomItem list roomitem 1`] = ` "fontSize": 17, "fontWeight": "500", "lineHeight": 20, + "textAlign": "left", }, undefined, Object { @@ -57470,6 +59311,7 @@ exports[`Storyshots RoomItem list roomitem 1`] = ` "fontSize": 13, "fontWeight": "400", "marginLeft": 4, + "textAlign": "left", }, Object { "color": "#9ca2a8", @@ -57500,6 +59342,7 @@ exports[`Storyshots RoomItem list roomitem 1`] = ` "fontFamily": "System", "fontSize": 16, "fontWeight": "400", + "textAlign": "left", }, Object { "color": "#2f343d", @@ -57511,6 +59354,7 @@ exports[`Storyshots RoomItem list roomitem 1`] = ` "fontSize": 14, "fontWeight": "400", "lineHeight": 17, + "textAlign": "left", }, Object { "color": "#9ca2a8", @@ -57566,11 +59410,6 @@ exports[`Storyshots RoomItem list roomitem 1`] = ` "position": "absolute", "right": 0, "top": 0, - "transform": Array [ - Object { - "translateX": 0, - }, - ], } } > @@ -57604,6 +59443,7 @@ exports[`Storyshots RoomItem list roomitem 1`] = ` "fontWeight": "600", "justifyContent": "center", "marginTop": 4, + "textAlign": "left", }, Object { "color": "#ffffff", @@ -57675,6 +59515,7 @@ exports[`Storyshots RoomItem list roomitem 1`] = ` "fontWeight": "600", "justifyContent": "center", "marginTop": 4, + "textAlign": "left", }, Object { "color": "#ffffff", @@ -57731,6 +59572,7 @@ exports[`Storyshots RoomItem list roomitem 1`] = ` "fontWeight": "600", "justifyContent": "center", "marginTop": 4, + "textAlign": "left", }, Object { "color": "#ffffff", @@ -57867,6 +59709,7 @@ exports[`Storyshots RoomItem list roomitem 1`] = ` "fontSize": 17, "fontWeight": "500", "lineHeight": 20, + "textAlign": "left", }, undefined, Object { @@ -57888,6 +59731,7 @@ exports[`Storyshots RoomItem list roomitem 1`] = ` "fontSize": 13, "fontWeight": "400", "marginLeft": 4, + "textAlign": "left", }, Object { "color": "#9ca2a8", @@ -57918,6 +59762,7 @@ exports[`Storyshots RoomItem list roomitem 1`] = ` "fontFamily": "System", "fontSize": 16, "fontWeight": "400", + "textAlign": "left", }, Object { "color": "#2f343d", @@ -57929,6 +59774,7 @@ exports[`Storyshots RoomItem list roomitem 1`] = ` "fontSize": 14, "fontWeight": "400", "lineHeight": 17, + "textAlign": "left", }, Object { "color": "#9ca2a8", @@ -57984,11 +59830,6 @@ exports[`Storyshots RoomItem list roomitem 1`] = ` "position": "absolute", "right": 0, "top": 0, - "transform": Array [ - Object { - "translateX": 0, - }, - ], } } > @@ -58022,6 +59863,7 @@ exports[`Storyshots RoomItem list roomitem 1`] = ` "fontWeight": "600", "justifyContent": "center", "marginTop": 4, + "textAlign": "left", }, Object { "color": "#ffffff", @@ -58093,6 +59935,7 @@ exports[`Storyshots RoomItem list roomitem 1`] = ` "fontWeight": "600", "justifyContent": "center", "marginTop": 4, + "textAlign": "left", }, Object { "color": "#ffffff", @@ -58149,6 +59992,7 @@ exports[`Storyshots RoomItem list roomitem 1`] = ` "fontWeight": "600", "justifyContent": "center", "marginTop": 4, + "textAlign": "left", }, Object { "color": "#ffffff", @@ -58285,11 +60129,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 +60156,7 @@ exports[`Storyshots RoomItem list roomitem 1`] = ` "fontSize": 13, "fontWeight": "400", "marginLeft": 4, + "textAlign": "left", }, Object { "color": "#9ca2a8", @@ -58319,6 +60166,7 @@ exports[`Storyshots RoomItem list roomitem 1`] = ` "backgroundColor": "transparent", "fontFamily": "System", "fontWeight": "600", + "textAlign": "left", }, Object { "color": "#1d74f5", @@ -58349,6 +60197,7 @@ exports[`Storyshots RoomItem list roomitem 1`] = ` "fontFamily": "System", "fontSize": 16, "fontWeight": "400", + "textAlign": "left", }, Object { "color": "#2f343d", @@ -58360,6 +60209,7 @@ exports[`Storyshots RoomItem list roomitem 1`] = ` "fontSize": 14, "fontWeight": "400", "lineHeight": 17, + "textAlign": "left", }, Object { "color": "#2f343d", @@ -58398,6 +60248,7 @@ exports[`Storyshots RoomItem list roomitem 1`] = ` "fontFamily": "System", "fontSize": 13, "fontWeight": "600", + "textAlign": "left", }, undefined, Object { @@ -58455,11 +60306,6 @@ exports[`Storyshots RoomItem list roomitem 1`] = ` "position": "absolute", "right": 0, "top": 0, - "transform": Array [ - Object { - "translateX": 0, - }, - ], } } > @@ -58493,6 +60339,7 @@ exports[`Storyshots RoomItem list roomitem 1`] = ` "fontWeight": "600", "justifyContent": "center", "marginTop": 4, + "textAlign": "left", }, Object { "color": "#ffffff", @@ -58564,6 +60411,7 @@ exports[`Storyshots RoomItem list roomitem 1`] = ` "fontWeight": "600", "justifyContent": "center", "marginTop": 4, + "textAlign": "left", }, Object { "color": "#ffffff", @@ -58620,6 +60468,7 @@ exports[`Storyshots RoomItem list roomitem 1`] = ` "fontWeight": "600", "justifyContent": "center", "marginTop": 4, + "textAlign": "left", }, Object { "color": "#ffffff", @@ -58756,11 +60605,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 +60632,7 @@ exports[`Storyshots RoomItem list roomitem 1`] = ` "fontSize": 13, "fontWeight": "400", "marginLeft": 4, + "textAlign": "left", }, Object { "color": "#9ca2a8", @@ -58790,6 +60642,7 @@ exports[`Storyshots RoomItem list roomitem 1`] = ` "backgroundColor": "transparent", "fontFamily": "System", "fontWeight": "600", + "textAlign": "left", }, Object { "color": "#1d74f5", @@ -58820,6 +60673,7 @@ exports[`Storyshots RoomItem list roomitem 1`] = ` "fontFamily": "System", "fontSize": 16, "fontWeight": "400", + "textAlign": "left", }, Object { "color": "#2f343d", @@ -58831,6 +60685,7 @@ exports[`Storyshots RoomItem list roomitem 1`] = ` "fontSize": 14, "fontWeight": "400", "lineHeight": 17, + "textAlign": "left", }, Object { "color": "#2f343d", @@ -58869,6 +60724,7 @@ exports[`Storyshots RoomItem list roomitem 1`] = ` "fontFamily": "System", "fontSize": 13, "fontWeight": "600", + "textAlign": "left", }, undefined, Object { @@ -58926,11 +60782,6 @@ exports[`Storyshots RoomItem list roomitem 1`] = ` "position": "absolute", "right": 0, "top": 0, - "transform": Array [ - Object { - "translateX": 0, - }, - ], } } > @@ -58964,6 +60815,7 @@ exports[`Storyshots RoomItem list roomitem 1`] = ` "fontWeight": "600", "justifyContent": "center", "marginTop": 4, + "textAlign": "left", }, Object { "color": "#ffffff", @@ -59035,6 +60887,7 @@ exports[`Storyshots RoomItem list roomitem 1`] = ` "fontWeight": "600", "justifyContent": "center", "marginTop": 4, + "textAlign": "left", }, Object { "color": "#ffffff", @@ -59091,6 +60944,7 @@ exports[`Storyshots RoomItem list roomitem 1`] = ` "fontWeight": "600", "justifyContent": "center", "marginTop": 4, + "textAlign": "left", }, Object { "color": "#ffffff", @@ -59227,11 +61081,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 +61108,7 @@ exports[`Storyshots RoomItem list roomitem 1`] = ` "fontSize": 13, "fontWeight": "400", "marginLeft": 4, + "textAlign": "left", }, Object { "color": "#9ca2a8", @@ -59261,6 +61118,7 @@ exports[`Storyshots RoomItem list roomitem 1`] = ` "backgroundColor": "transparent", "fontFamily": "System", "fontWeight": "600", + "textAlign": "left", }, Object { "color": "#1d74f5", @@ -59291,6 +61149,7 @@ exports[`Storyshots RoomItem list roomitem 1`] = ` "fontFamily": "System", "fontSize": 16, "fontWeight": "400", + "textAlign": "left", }, Object { "color": "#2f343d", @@ -59302,6 +61161,7 @@ exports[`Storyshots RoomItem list roomitem 1`] = ` "fontSize": 14, "fontWeight": "400", "lineHeight": 17, + "textAlign": "left", }, Object { "color": "#2f343d", @@ -59340,6 +61200,7 @@ exports[`Storyshots RoomItem list roomitem 1`] = ` "fontFamily": "System", "fontSize": 13, "fontWeight": "600", + "textAlign": "left", }, undefined, Object { @@ -59460,6 +61321,7 @@ exports[`Storyshots Thread Messages.Item badge 1`] = ` "fontFamily": "System", "fontSize": 18, "fontWeight": "500", + "textAlign": "left", }, Object { "color": "#0d0e12", @@ -59478,6 +61340,7 @@ exports[`Storyshots Thread Messages.Item badge 1`] = ` "fontSize": 14, "fontWeight": "400", "marginLeft": 4, + "textAlign": "left", }, Object { "color": "#9ca2a8", @@ -59498,6 +61361,7 @@ exports[`Storyshots Thread Messages.Item badge 1`] = ` "fontFamily": "System", "fontSize": 16, "fontWeight": "400", + "textAlign": "left", }, Object { "color": "#2f343d", @@ -59554,6 +61418,7 @@ exports[`Storyshots Thread Messages.Item badge 1`] = ` "fontSize": 10, "fontWeight": "600", "marginLeft": 2, + "textAlign": "left", }, Object { "color": "#9ca2a8", @@ -59603,6 +61468,7 @@ exports[`Storyshots Thread Messages.Item badge 1`] = ` "fontSize": 10, "fontWeight": "600", "marginLeft": 2, + "textAlign": "left", }, Object { "color": "#9ca2a8", @@ -59652,6 +61518,7 @@ exports[`Storyshots Thread Messages.Item badge 1`] = ` "fontSize": 10, "fontWeight": "600", "marginLeft": 2, + "textAlign": "left", }, Object { "color": "#9ca2a8", @@ -59785,6 +61652,7 @@ exports[`Storyshots Thread Messages.Item badge 1`] = ` "fontFamily": "System", "fontSize": 18, "fontWeight": "500", + "textAlign": "left", }, Object { "color": "#0d0e12", @@ -59803,6 +61671,7 @@ exports[`Storyshots Thread Messages.Item badge 1`] = ` "fontSize": 14, "fontWeight": "400", "marginLeft": 4, + "textAlign": "left", }, Object { "color": "#9ca2a8", @@ -59823,6 +61692,7 @@ exports[`Storyshots Thread Messages.Item badge 1`] = ` "fontFamily": "System", "fontSize": 16, "fontWeight": "400", + "textAlign": "left", }, Object { "color": "#2f343d", @@ -59879,6 +61749,7 @@ exports[`Storyshots Thread Messages.Item badge 1`] = ` "fontSize": 10, "fontWeight": "600", "marginLeft": 2, + "textAlign": "left", }, Object { "color": "#9ca2a8", @@ -59928,6 +61799,7 @@ exports[`Storyshots Thread Messages.Item badge 1`] = ` "fontSize": 10, "fontWeight": "600", "marginLeft": 2, + "textAlign": "left", }, Object { "color": "#9ca2a8", @@ -59977,6 +61849,7 @@ exports[`Storyshots Thread Messages.Item badge 1`] = ` "fontSize": 10, "fontWeight": "600", "marginLeft": 2, + "textAlign": "left", }, Object { "color": "#9ca2a8", @@ -60110,6 +61983,7 @@ exports[`Storyshots Thread Messages.Item badge 1`] = ` "fontFamily": "System", "fontSize": 18, "fontWeight": "500", + "textAlign": "left", }, Object { "color": "#0d0e12", @@ -60128,6 +62002,7 @@ exports[`Storyshots Thread Messages.Item badge 1`] = ` "fontSize": 14, "fontWeight": "400", "marginLeft": 4, + "textAlign": "left", }, Object { "color": "#9ca2a8", @@ -60148,6 +62023,7 @@ exports[`Storyshots Thread Messages.Item badge 1`] = ` "fontFamily": "System", "fontSize": 16, "fontWeight": "400", + "textAlign": "left", }, Object { "color": "#2f343d", @@ -60204,6 +62080,7 @@ exports[`Storyshots Thread Messages.Item badge 1`] = ` "fontSize": 10, "fontWeight": "600", "marginLeft": 2, + "textAlign": "left", }, Object { "color": "#9ca2a8", @@ -60253,6 +62130,7 @@ exports[`Storyshots Thread Messages.Item badge 1`] = ` "fontSize": 10, "fontWeight": "600", "marginLeft": 2, + "textAlign": "left", }, Object { "color": "#9ca2a8", @@ -60302,6 +62180,7 @@ exports[`Storyshots Thread Messages.Item badge 1`] = ` "fontSize": 10, "fontWeight": "600", "marginLeft": 2, + "textAlign": "left", }, Object { "color": "#9ca2a8", @@ -60422,6 +62301,7 @@ exports[`Storyshots Thread Messages.Item badge 1`] = ` "fontFamily": "System", "fontSize": 18, "fontWeight": "500", + "textAlign": "left", }, Object { "color": "#0d0e12", @@ -60440,6 +62320,7 @@ exports[`Storyshots Thread Messages.Item badge 1`] = ` "fontSize": 14, "fontWeight": "400", "marginLeft": 4, + "textAlign": "left", }, Object { "color": "#9ca2a8", @@ -60460,6 +62341,7 @@ exports[`Storyshots Thread Messages.Item badge 1`] = ` "fontFamily": "System", "fontSize": 16, "fontWeight": "400", + "textAlign": "left", }, Object { "color": "#2f343d", @@ -60516,6 +62398,7 @@ exports[`Storyshots Thread Messages.Item badge 1`] = ` "fontSize": 10, "fontWeight": "600", "marginLeft": 2, + "textAlign": "left", }, Object { "color": "#9ca2a8", @@ -60565,6 +62448,7 @@ exports[`Storyshots Thread Messages.Item badge 1`] = ` "fontSize": 10, "fontWeight": "600", "marginLeft": 2, + "textAlign": "left", }, Object { "color": "#9ca2a8", @@ -60614,6 +62498,7 @@ exports[`Storyshots Thread Messages.Item badge 1`] = ` "fontSize": 10, "fontWeight": "600", "marginLeft": 2, + "textAlign": "left", }, Object { "color": "#9ca2a8", @@ -60767,6 +62652,7 @@ exports[`Storyshots Thread Messages.Item content 1`] = ` "fontFamily": "System", "fontSize": 18, "fontWeight": "500", + "textAlign": "left", }, Object { "color": "#0d0e12", @@ -60785,6 +62671,7 @@ exports[`Storyshots Thread Messages.Item content 1`] = ` "fontSize": 14, "fontWeight": "400", "marginLeft": 4, + "textAlign": "left", }, Object { "color": "#9ca2a8", @@ -60805,6 +62692,7 @@ exports[`Storyshots Thread Messages.Item content 1`] = ` "fontFamily": "System", "fontSize": 16, "fontWeight": "400", + "textAlign": "left", }, Object { "color": "#2f343d", @@ -60861,6 +62749,7 @@ exports[`Storyshots Thread Messages.Item content 1`] = ` "fontSize": 10, "fontWeight": "600", "marginLeft": 2, + "textAlign": "left", }, Object { "color": "#9ca2a8", @@ -60910,6 +62799,7 @@ exports[`Storyshots Thread Messages.Item content 1`] = ` "fontSize": 10, "fontWeight": "600", "marginLeft": 2, + "textAlign": "left", }, Object { "color": "#9ca2a8", @@ -60959,6 +62849,7 @@ exports[`Storyshots Thread Messages.Item content 1`] = ` "fontSize": 10, "fontWeight": "600", "marginLeft": 2, + "textAlign": "left", }, Object { "color": "#9ca2a8", @@ -61069,6 +62960,7 @@ exports[`Storyshots Thread Messages.Item content 1`] = ` "fontFamily": "System", "fontSize": 18, "fontWeight": "500", + "textAlign": "left", }, Object { "color": "#0d0e12", @@ -61087,6 +62979,7 @@ exports[`Storyshots Thread Messages.Item content 1`] = ` "fontSize": 14, "fontWeight": "400", "marginLeft": 4, + "textAlign": "left", }, Object { "color": "#9ca2a8", @@ -61107,6 +63000,7 @@ exports[`Storyshots Thread Messages.Item content 1`] = ` "fontFamily": "System", "fontSize": 16, "fontWeight": "400", + "textAlign": "left", }, Object { "color": "#2f343d", @@ -61163,6 +63057,7 @@ exports[`Storyshots Thread Messages.Item content 1`] = ` "fontSize": 10, "fontWeight": "600", "marginLeft": 2, + "textAlign": "left", }, Object { "color": "#9ca2a8", @@ -61212,6 +63107,7 @@ exports[`Storyshots Thread Messages.Item content 1`] = ` "fontSize": 10, "fontWeight": "600", "marginLeft": 2, + "textAlign": "left", }, Object { "color": "#9ca2a8", @@ -61261,6 +63157,7 @@ exports[`Storyshots Thread Messages.Item content 1`] = ` "fontSize": 10, "fontWeight": "600", "marginLeft": 2, + "textAlign": "left", }, Object { "color": "#9ca2a8", @@ -61371,6 +63268,7 @@ exports[`Storyshots Thread Messages.Item content 1`] = ` "fontFamily": "System", "fontSize": 18, "fontWeight": "500", + "textAlign": "left", }, Object { "color": "#0d0e12", @@ -61389,6 +63287,7 @@ exports[`Storyshots Thread Messages.Item content 1`] = ` "fontSize": 14, "fontWeight": "400", "marginLeft": 4, + "textAlign": "left", }, Object { "color": "#9ca2a8", @@ -61409,6 +63308,7 @@ exports[`Storyshots Thread Messages.Item content 1`] = ` "fontFamily": "System", "fontSize": 16, "fontWeight": "400", + "textAlign": "left", }, Object { "color": "#2f343d", @@ -61465,6 +63365,7 @@ exports[`Storyshots Thread Messages.Item content 1`] = ` "fontSize": 10, "fontWeight": "600", "marginLeft": 2, + "textAlign": "left", }, Object { "color": "#9ca2a8", @@ -61514,6 +63415,7 @@ exports[`Storyshots Thread Messages.Item content 1`] = ` "fontSize": 10, "fontWeight": "600", "marginLeft": 2, + "textAlign": "left", }, Object { "color": "#9ca2a8", @@ -61563,6 +63465,7 @@ exports[`Storyshots Thread Messages.Item content 1`] = ` "fontSize": 10, "fontWeight": "600", "marginLeft": 2, + "textAlign": "left", }, Object { "color": "#9ca2a8", @@ -61673,6 +63576,7 @@ exports[`Storyshots Thread Messages.Item content 1`] = ` "fontFamily": "System", "fontSize": 18, "fontWeight": "500", + "textAlign": "left", }, Object { "color": "#0d0e12", @@ -61691,6 +63595,7 @@ exports[`Storyshots Thread Messages.Item content 1`] = ` "fontSize": 14, "fontWeight": "400", "marginLeft": 4, + "textAlign": "left", }, Object { "color": "#9ca2a8", @@ -61711,6 +63616,7 @@ exports[`Storyshots Thread Messages.Item content 1`] = ` "fontFamily": "System", "fontSize": 16, "fontWeight": "400", + "textAlign": "left", }, Object { "color": "#2f343d", @@ -61767,6 +63673,7 @@ exports[`Storyshots Thread Messages.Item content 1`] = ` "fontSize": 10, "fontWeight": "600", "marginLeft": 2, + "textAlign": "left", }, Object { "color": "#9ca2a8", @@ -61816,6 +63723,7 @@ exports[`Storyshots Thread Messages.Item content 1`] = ` "fontSize": 10, "fontWeight": "600", "marginLeft": 2, + "textAlign": "left", }, Object { "color": "#9ca2a8", @@ -61865,6 +63773,7 @@ exports[`Storyshots Thread Messages.Item content 1`] = ` "fontSize": 10, "fontWeight": "600", "marginLeft": 2, + "textAlign": "left", }, Object { "color": "#9ca2a8", @@ -61975,6 +63884,7 @@ exports[`Storyshots Thread Messages.Item content 1`] = ` "fontFamily": "System", "fontSize": 18, "fontWeight": "500", + "textAlign": "left", }, Object { "color": "#0d0e12", @@ -61993,6 +63903,7 @@ exports[`Storyshots Thread Messages.Item content 1`] = ` "fontSize": 14, "fontWeight": "400", "marginLeft": 4, + "textAlign": "left", }, Object { "color": "#9ca2a8", @@ -62013,6 +63924,7 @@ exports[`Storyshots Thread Messages.Item content 1`] = ` "fontFamily": "System", "fontSize": 16, "fontWeight": "400", + "textAlign": "left", }, Object { "color": "#2f343d", @@ -62069,6 +63981,7 @@ exports[`Storyshots Thread Messages.Item content 1`] = ` "fontSize": 10, "fontWeight": "600", "marginLeft": 2, + "textAlign": "left", }, Object { "color": "#9ca2a8", @@ -62118,6 +64031,7 @@ exports[`Storyshots Thread Messages.Item content 1`] = ` "fontSize": 10, "fontWeight": "600", "marginLeft": 2, + "textAlign": "left", }, Object { "color": "#9ca2a8", @@ -62167,6 +64081,7 @@ exports[`Storyshots Thread Messages.Item content 1`] = ` "fontSize": 10, "fontWeight": "600", "marginLeft": 2, + "textAlign": "left", }, Object { "color": "#9ca2a8", @@ -62297,6 +64212,7 @@ exports[`Storyshots Thread Messages.Item themes 1`] = ` "fontFamily": "System", "fontSize": 18, "fontWeight": "500", + "textAlign": "left", }, Object { "color": "#0d0e12", @@ -62315,6 +64231,7 @@ exports[`Storyshots Thread Messages.Item themes 1`] = ` "fontSize": 14, "fontWeight": "400", "marginLeft": 4, + "textAlign": "left", }, Object { "color": "#9ca2a8", @@ -62335,6 +64252,7 @@ exports[`Storyshots Thread Messages.Item themes 1`] = ` "fontFamily": "System", "fontSize": 16, "fontWeight": "400", + "textAlign": "left", }, Object { "color": "#2f343d", @@ -62391,6 +64309,7 @@ exports[`Storyshots Thread Messages.Item themes 1`] = ` "fontSize": 10, "fontWeight": "600", "marginLeft": 2, + "textAlign": "left", }, Object { "color": "#9ca2a8", @@ -62440,6 +64359,7 @@ exports[`Storyshots Thread Messages.Item themes 1`] = ` "fontSize": 10, "fontWeight": "600", "marginLeft": 2, + "textAlign": "left", }, Object { "color": "#9ca2a8", @@ -62489,6 +64409,7 @@ exports[`Storyshots Thread Messages.Item themes 1`] = ` "fontSize": 10, "fontWeight": "600", "marginLeft": 2, + "textAlign": "left", }, Object { "color": "#9ca2a8", @@ -62609,6 +64530,7 @@ exports[`Storyshots Thread Messages.Item themes 1`] = ` "fontFamily": "System", "fontSize": 18, "fontWeight": "500", + "textAlign": "left", }, Object { "color": "#f9f9f9", @@ -62627,6 +64549,7 @@ exports[`Storyshots Thread Messages.Item themes 1`] = ` "fontSize": 14, "fontWeight": "400", "marginLeft": 4, + "textAlign": "left", }, Object { "color": "#9297a2", @@ -62647,6 +64570,7 @@ exports[`Storyshots Thread Messages.Item themes 1`] = ` "fontFamily": "System", "fontSize": 16, "fontWeight": "400", + "textAlign": "left", }, Object { "color": "#e8ebed", @@ -62703,6 +64627,7 @@ exports[`Storyshots Thread Messages.Item themes 1`] = ` "fontSize": 10, "fontWeight": "600", "marginLeft": 2, + "textAlign": "left", }, Object { "color": "#9297a2", @@ -62752,6 +64677,7 @@ exports[`Storyshots Thread Messages.Item themes 1`] = ` "fontSize": 10, "fontWeight": "600", "marginLeft": 2, + "textAlign": "left", }, Object { "color": "#9297a2", @@ -62801,6 +64727,7 @@ exports[`Storyshots Thread Messages.Item themes 1`] = ` "fontSize": 10, "fontWeight": "600", "marginLeft": 2, + "textAlign": "left", }, Object { "color": "#9297a2", @@ -62921,6 +64848,7 @@ exports[`Storyshots Thread Messages.Item themes 1`] = ` "fontFamily": "System", "fontSize": 18, "fontWeight": "500", + "textAlign": "left", }, Object { "color": "#f9f9f9", @@ -62939,6 +64867,7 @@ exports[`Storyshots Thread Messages.Item themes 1`] = ` "fontSize": 14, "fontWeight": "400", "marginLeft": 4, + "textAlign": "left", }, Object { "color": "#b2b8c6", @@ -62959,6 +64888,7 @@ exports[`Storyshots Thread Messages.Item themes 1`] = ` "fontFamily": "System", "fontSize": 16, "fontWeight": "400", + "textAlign": "left", }, Object { "color": "#e8ebed", @@ -63015,6 +64945,7 @@ exports[`Storyshots Thread Messages.Item themes 1`] = ` "fontSize": 10, "fontWeight": "600", "marginLeft": 2, + "textAlign": "left", }, Object { "color": "#b2b8c6", @@ -63064,6 +64995,7 @@ exports[`Storyshots Thread Messages.Item themes 1`] = ` "fontSize": 10, "fontWeight": "600", "marginLeft": 2, + "textAlign": "left", }, Object { "color": "#b2b8c6", @@ -63113,6 +65045,7 @@ exports[`Storyshots Thread Messages.Item themes 1`] = ` "fontSize": 10, "fontWeight": "600", "marginLeft": 2, + "textAlign": "left", }, Object { "color": "#b2b8c6", @@ -63676,6 +65609,7 @@ exports[`Storyshots Unread Badge all 1`] = ` "fontFamily": "System", "fontSize": 13, "fontWeight": "600", + "textAlign": "left", }, Object { "fontSize": 10, @@ -63714,6 +65648,7 @@ exports[`Storyshots Unread Badge all 1`] = ` "fontFamily": "System", "fontSize": 13, "fontWeight": "600", + "textAlign": "left", }, Object { "fontSize": 10, @@ -63756,6 +65691,7 @@ exports[`Storyshots Unread Badge all 1`] = ` "fontFamily": "System", "fontSize": 13, "fontWeight": "600", + "textAlign": "left", }, undefined, Object { @@ -63796,6 +65732,7 @@ exports[`Storyshots Unread Badge all 1`] = ` "fontFamily": "System", "fontSize": 13, "fontWeight": "600", + "textAlign": "left", }, undefined, Object { @@ -63836,6 +65773,7 @@ exports[`Storyshots Unread Badge all 1`] = ` "fontFamily": "System", "fontSize": 13, "fontWeight": "600", + "textAlign": "left", }, undefined, Object { @@ -63876,6 +65814,7 @@ exports[`Storyshots Unread Badge all 1`] = ` "fontFamily": "System", "fontSize": 13, "fontWeight": "600", + "textAlign": "left", }, undefined, Object { @@ -63916,6 +65855,7 @@ exports[`Storyshots Unread Badge all 1`] = ` "fontFamily": "System", "fontSize": 13, "fontWeight": "600", + "textAlign": "left", }, undefined, Object { @@ -63970,6 +65910,7 @@ exports[`Storyshots Unread Badge different mention types 1`] = ` "fontFamily": "System", "fontSize": 13, "fontWeight": "600", + "textAlign": "left", }, undefined, Object { @@ -64010,6 +65951,7 @@ exports[`Storyshots Unread Badge different mention types 1`] = ` "fontFamily": "System", "fontSize": 13, "fontWeight": "600", + "textAlign": "left", }, undefined, Object { @@ -64050,6 +65992,7 @@ exports[`Storyshots Unread Badge different mention types 1`] = ` "fontFamily": "System", "fontSize": 13, "fontWeight": "600", + "textAlign": "left", }, undefined, Object { @@ -64090,6 +66033,7 @@ exports[`Storyshots Unread Badge different mention types 1`] = ` "fontFamily": "System", "fontSize": 13, "fontWeight": "600", + "textAlign": "left", }, undefined, Object { @@ -64130,6 +66074,7 @@ exports[`Storyshots Unread Badge different mention types 1`] = ` "fontFamily": "System", "fontSize": 13, "fontWeight": "600", + "textAlign": "left", }, undefined, Object { @@ -64170,6 +66115,7 @@ exports[`Storyshots Unread Badge different mention types 1`] = ` "fontFamily": "System", "fontSize": 13, "fontWeight": "600", + "textAlign": "left", }, undefined, Object { @@ -64210,6 +66156,7 @@ exports[`Storyshots Unread Badge different mention types 1`] = ` "fontFamily": "System", "fontSize": 13, "fontWeight": "600", + "textAlign": "left", }, undefined, Object { @@ -64264,6 +66211,7 @@ exports[`Storyshots Unread Badge normal 1`] = ` "fontFamily": "System", "fontSize": 13, "fontWeight": "600", + "textAlign": "left", }, undefined, Object { @@ -64304,6 +66252,7 @@ exports[`Storyshots Unread Badge normal 1`] = ` "fontFamily": "System", "fontSize": 13, "fontWeight": "600", + "textAlign": "left", }, undefined, Object { @@ -64354,6 +66303,7 @@ exports[`Storyshots Unread Badge small 1`] = ` "fontFamily": "System", "fontSize": 13, "fontWeight": "600", + "textAlign": "left", }, Object { "fontSize": 10, @@ -64392,6 +66342,7 @@ exports[`Storyshots Unread Badge small 1`] = ` "fontFamily": "System", "fontSize": 13, "fontWeight": "600", + "textAlign": "left", }, Object { "fontSize": 10, @@ -64449,6 +66400,7 @@ Array [ "fontFamily": "System", "fontSize": 13, "fontWeight": "600", + "textAlign": "left", }, undefined, Object { @@ -64489,6 +66441,7 @@ Array [ "fontFamily": "System", "fontSize": 13, "fontWeight": "600", + "textAlign": "left", }, undefined, Object { @@ -64529,6 +66482,7 @@ Array [ "fontFamily": "System", "fontSize": 13, "fontWeight": "600", + "textAlign": "left", }, undefined, Object { @@ -64569,6 +66523,7 @@ Array [ "fontFamily": "System", "fontSize": 13, "fontWeight": "600", + "textAlign": "left", }, undefined, Object { @@ -64620,6 +66575,7 @@ Array [ "fontFamily": "System", "fontSize": 13, "fontWeight": "600", + "textAlign": "left", }, undefined, Object { @@ -64660,6 +66616,7 @@ Array [ "fontFamily": "System", "fontSize": 13, "fontWeight": "600", + "textAlign": "left", }, undefined, Object { @@ -64700,6 +66657,7 @@ Array [ "fontFamily": "System", "fontSize": 13, "fontWeight": "600", + "textAlign": "left", }, undefined, Object { @@ -64740,6 +66698,7 @@ Array [ "fontFamily": "System", "fontSize": 13, "fontWeight": "600", + "textAlign": "left", }, undefined, Object { @@ -64791,6 +66750,7 @@ Array [ "fontFamily": "System", "fontSize": 13, "fontWeight": "600", + "textAlign": "left", }, undefined, Object { @@ -64831,6 +66791,7 @@ Array [ "fontFamily": "System", "fontSize": 13, "fontWeight": "600", + "textAlign": "left", }, undefined, Object { @@ -64871,6 +66832,7 @@ Array [ "fontFamily": "System", "fontSize": 13, "fontWeight": "600", + "textAlign": "left", }, undefined, Object { @@ -64911,6 +66873,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 160e678cf..d25d0425f 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 "chat.rocket.reactnative" + applicationId APPLICATION_ID minSdkVersion rootProject.ext.minSdkVersion targetSdkVersion rootProject.ext.targetSdkVersion versionCode VERSIONCODE as Integer - versionName "4.12.1" + 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