diff --git a/__tests__/containers/RoomItem/__snapshots__/RoomItem.stories.storyshot b/__tests__/containers/RoomItem/__snapshots__/RoomItem.stories.storyshot
index b3130db85..64a056d0e 100644
--- a/__tests__/containers/RoomItem/__snapshots__/RoomItem.stories.storyshot
+++ b/__tests__/containers/RoomItem/__snapshots__/RoomItem.stories.storyshot
@@ -22,4 +22,4 @@ exports[`Storyshots RoomItem Type 1`] = `"[{\\"type\\":\\"View\\",\\"props\\":{}
exports[`Storyshots RoomItem User 1`] = `"[{\\"type\\":\\"View\\",\\"props\\":{},\\"children\\":[{\\"type\\":\\"View\\",\\"props\\":{},\\"children\\":[{\\"type\\":\\"View\\",\\"props\\":{\\"style\\":[{\\"position\\":\\"absolute\\",\\"left\\":0,\\"right\\":0,\\"height\\":150},{\\"flexDirection\\":\\"row\\",\\"position\\":\\"absolute\\",\\"left\\":0,\\"right\\":0,\\"height\\":150}],\\"pointerEvents\\":\\"box-none\\"},\\"children\\":[{\\"type\\":\\"View\\",\\"props\\":{\\"style\\":[{\\"position\\":\\"absolute\\",\\"height\\":150,\\"justifyContent\\":\\"center\\",\\"top\\":0,\\"right\\":0},{\\"width\\":1500,\\"backgroundColor\\":\\"#1d74f5\\",\\"right\\":\\"100%\\"},null,{\\"transform\\":[{\\"translateX\\":0}]}]},\\"children\\":[{\\"type\\":\\"View\\",\\"props\\":{\\"style\\":[{\\"position\\":\\"absolute\\",\\"height\\":150,\\"justifyContent\\":\\"center\\",\\"top\\":0,\\"right\\":0},null]},\\"children\\":[{\\"type\\":\\"Text\\",\\"props\\":{\\"selectable\\":false,\\"allowFontScaling\\":false,\\"style\\":[{\\"fontSize\\":28,\\"color\\":\\"#ffffff\\"},null,{\\"fontFamily\\":\\"custom\\",\\"fontWeight\\":\\"normal\\",\\"fontStyle\\":\\"normal\\"},{}]},\\"children\\":[\\"\\"]}]}]}]},{\\"type\\":\\"View\\",\\"props\\":{\\"style\\":[{\\"flexDirection\\":\\"row\\",\\"position\\":\\"absolute\\",\\"left\\":0,\\"right\\":0,\\"height\\":150},null],\\"pointerEvents\\":\\"box-none\\"},\\"children\\":[{\\"type\\":\\"View\\",\\"props\\":{\\"style\\":[{\\"position\\":\\"absolute\\",\\"height\\":150,\\"justifyContent\\":\\"center\\",\\"top\\":0},{\\"width\\":750,\\"backgroundColor\\":\\"#ffbb00\\",\\"left\\":\\"100%\\"},null,{\\"transform\\":[{\\"translateX\\":0}]}]},\\"children\\":[{\\"type\\":\\"Text\\",\\"props\\":{\\"selectable\\":false,\\"allowFontScaling\\":false,\\"style\\":[{\\"fontSize\\":28,\\"color\\":\\"#ffffff\\"},null,{\\"fontFamily\\":\\"custom\\",\\"fontWeight\\":\\"normal\\",\\"fontStyle\\":\\"normal\\"},{}]},\\"children\\":[\\"\\"]}]},{\\"type\\":\\"View\\",\\"props\\":{\\"style\\":[{\\"position\\":\\"absolute\\",\\"height\\":150,\\"justifyContent\\":\\"center\\",\\"top\\":0},{\\"width\\":1500,\\"backgroundColor\\":\\"#54585e\\",\\"left\\":\\"100%\\"},false,{\\"transform\\":[{\\"translateX\\":80}]}]},\\"children\\":[{\\"type\\":\\"Text\\",\\"props\\":{\\"selectable\\":false,\\"allowFontScaling\\":false,\\"style\\":[{\\"fontSize\\":28,\\"color\\":\\"#ffffff\\"},null,{\\"fontFamily\\":\\"custom\\",\\"fontWeight\\":\\"normal\\",\\"fontStyle\\":\\"normal\\"},{}]},\\"children\\":[\\"\\"]}]}]},{\\"type\\":\\"View\\",\\"props\\":{\\"style\\":{\\"transform\\":[{\\"translateX\\":0}]}},\\"children\\":[{\\"type\\":\\"View\\",\\"props\\":{\\"style\\":[{\\"flexDirection\\":\\"row\\",\\"alignItems\\":\\"center\\",\\"paddingLeft\\":14,\\"height\\":150},false]},\\"children\\":[{\\"type\\":\\"View\\",\\"props\\":{\\"style\\":[{\\"width\\":48,\\"height\\":48,\\"borderRadius\\":4},{\\"marginRight\\":10}],\\"testID\\":\\"avatar\\"},\\"children\\":[{\\"type\\":\\"View\\",\\"props\\":{\\"style\\":[{\\"overflow\\":\\"hidden\\"},{\\"width\\":48,\\"height\\":48,\\"borderRadius\\":4}]},\\"children\\":[{\\"type\\":\\"FastImageView\\",\\"props\\":{\\"style\\":{\\"position\\":\\"absolute\\",\\"left\\":0,\\"right\\":0,\\"top\\":0,\\"bottom\\":0},\\"source\\":{\\"uri\\":\\"https://open.rocket.chat/avatar/diego.mello?format=png&size=96\\",\\"headers\\":{\\"User-Agent\\":\\"RC Mobile; ios unknown; vunknown (unknown)\\"},\\"priority\\":\\"high\\"},\\"resizeMode\\":\\"cover\\"},\\"children\\":null}]}]},{\\"type\\":\\"View\\",\\"props\\":{\\"style\\":[{\\"flex\\":1,\\"paddingVertical\\":10,\\"paddingRight\\":14,\\"borderBottomWidth\\":0.5},{\\"borderColor\\":\\"#cbcbcc\\"}]},\\"children\\":[{\\"type\\":\\"View\\",\\"props\\":{\\"style\\":[{\\"width\\":\\"100%\\",\\"flexDirection\\":\\"row\\",\\"alignItems\\":\\"center\\",\\"justifyContent\\":\\"center\\"},{\\"flex\\":1}]},\\"children\\":[{\\"type\\":\\"Text\\",\\"props\\":{\\"selectable\\":false,\\"allowFontScaling\\":false,\\"style\\":[{\\"fontSize\\":22,\\"color\\":\\"#cbced1\\"},[{\\"width\\":22,\\"height\\":22,\\"textAlignVertical\\":\\"center\\"},[[{\\"marginRight\\":4},{\\"color\\":\\"#0d0e12\\"},{\\"marginRight\\":8}],{\\"color\\":\\"#cbced1\\"}]],{\\"fontFamily\\":\\"custom\\",\\"fontWeight\\":\\"normal\\",\\"fontStyle\\":\\"normal\\"},{}]},\\"children\\":[\\"\\"]},{\\"type\\":\\"Text\\",\\"props\\":{\\"style\\":[{\\"flex\\":1,\\"fontSize\\":17,\\"textAlign\\":\\"left\\",\\"backgroundColor\\":\\"transparent\\",\\"fontFamily\\":\\"Inter\\",\\"fontWeight\\":\\"500\\"},null,{\\"color\\":\\"#0d0e12\\"}],\\"ellipsizeMode\\":\\"tail\\",\\"numberOfLines\\":1},\\"children\\":[\\"diego.mello\\"]},{\\"type\\":\\"View\\",\\"props\\":{\\"style\\":{\\"alignItems\\":\\"flex-end\\"}},\\"children\\":[{\\"type\\":\\"Text\\",\\"props\\":{\\"style\\":[{\\"fontSize\\":13,\\"marginLeft\\":4,\\"textAlign\\":\\"left\\",\\"backgroundColor\\":\\"transparent\\",\\"fontFamily\\":\\"Inter\\",\\"fontWeight\\":\\"400\\"},{\\"color\\":\\"#9ca2a8\\"},null],\\"ellipsizeMode\\":\\"tail\\",\\"numberOfLines\\":1},\\"children\\":[\\"10:00\\"]}]}]}]}]}]}]}]},{\\"type\\":\\"View\\",\\"props\\":{},\\"children\\":[{\\"type\\":\\"View\\",\\"props\\":{},\\"children\\":[{\\"type\\":\\"View\\",\\"props\\":{\\"style\\":[{\\"position\\":\\"absolute\\",\\"left\\":0,\\"right\\":0,\\"height\\":150},{\\"flexDirection\\":\\"row\\",\\"position\\":\\"absolute\\",\\"left\\":0,\\"right\\":0,\\"height\\":150}],\\"pointerEvents\\":\\"box-none\\"},\\"children\\":[{\\"type\\":\\"View\\",\\"props\\":{\\"style\\":[{\\"position\\":\\"absolute\\",\\"height\\":150,\\"justifyContent\\":\\"center\\",\\"top\\":0,\\"right\\":0},{\\"width\\":1500,\\"backgroundColor\\":\\"#1d74f5\\",\\"right\\":\\"100%\\"},null,{\\"transform\\":[{\\"translateX\\":0}]}]},\\"children\\":[{\\"type\\":\\"View\\",\\"props\\":{\\"style\\":[{\\"position\\":\\"absolute\\",\\"height\\":150,\\"justifyContent\\":\\"center\\",\\"top\\":0,\\"right\\":0},null]},\\"children\\":[{\\"type\\":\\"Text\\",\\"props\\":{\\"selectable\\":false,\\"allowFontScaling\\":false,\\"style\\":[{\\"fontSize\\":28,\\"color\\":\\"#ffffff\\"},null,{\\"fontFamily\\":\\"custom\\",\\"fontWeight\\":\\"normal\\",\\"fontStyle\\":\\"normal\\"},{}]},\\"children\\":[\\"\\"]}]}]}]},{\\"type\\":\\"View\\",\\"props\\":{\\"style\\":[{\\"flexDirection\\":\\"row\\",\\"position\\":\\"absolute\\",\\"left\\":0,\\"right\\":0,\\"height\\":150},null],\\"pointerEvents\\":\\"box-none\\"},\\"children\\":[{\\"type\\":\\"View\\",\\"props\\":{\\"style\\":[{\\"position\\":\\"absolute\\",\\"height\\":150,\\"justifyContent\\":\\"center\\",\\"top\\":0},{\\"width\\":750,\\"backgroundColor\\":\\"#ffbb00\\",\\"left\\":\\"100%\\"},null,{\\"transform\\":[{\\"translateX\\":0}]}]},\\"children\\":[{\\"type\\":\\"Text\\",\\"props\\":{\\"selectable\\":false,\\"allowFontScaling\\":false,\\"style\\":[{\\"fontSize\\":28,\\"color\\":\\"#ffffff\\"},null,{\\"fontFamily\\":\\"custom\\",\\"fontWeight\\":\\"normal\\",\\"fontStyle\\":\\"normal\\"},{}]},\\"children\\":[\\"\\"]}]},{\\"type\\":\\"View\\",\\"props\\":{\\"style\\":[{\\"position\\":\\"absolute\\",\\"height\\":150,\\"justifyContent\\":\\"center\\",\\"top\\":0},{\\"width\\":1500,\\"backgroundColor\\":\\"#54585e\\",\\"left\\":\\"100%\\"},false,{\\"transform\\":[{\\"translateX\\":80}]}]},\\"children\\":[{\\"type\\":\\"Text\\",\\"props\\":{\\"selectable\\":false,\\"allowFontScaling\\":false,\\"style\\":[{\\"fontSize\\":28,\\"color\\":\\"#ffffff\\"},null,{\\"fontFamily\\":\\"custom\\",\\"fontWeight\\":\\"normal\\",\\"fontStyle\\":\\"normal\\"},{}]},\\"children\\":[\\"\\"]}]}]},{\\"type\\":\\"View\\",\\"props\\":{\\"style\\":{\\"transform\\":[{\\"translateX\\":0}]}},\\"children\\":[{\\"type\\":\\"View\\",\\"props\\":{\\"style\\":[{\\"flexDirection\\":\\"row\\",\\"alignItems\\":\\"center\\",\\"paddingLeft\\":14,\\"height\\":150},false]},\\"children\\":[{\\"type\\":\\"View\\",\\"props\\":{\\"style\\":[{\\"width\\":48,\\"height\\":48,\\"borderRadius\\":4},{\\"marginRight\\":10}],\\"testID\\":\\"avatar\\"},\\"children\\":[{\\"type\\":\\"View\\",\\"props\\":{\\"style\\":[{\\"overflow\\":\\"hidden\\"},{\\"width\\":48,\\"height\\":48,\\"borderRadius\\":4}]},\\"children\\":[{\\"type\\":\\"FastImageView\\",\\"props\\":{\\"style\\":{\\"position\\":\\"absolute\\",\\"left\\":0,\\"right\\":0,\\"top\\":0,\\"bottom\\":0},\\"source\\":{\\"uri\\":\\"https://open.rocket.chat/avatar/rocket.cat?format=png&size=96\\",\\"headers\\":{\\"User-Agent\\":\\"RC Mobile; ios unknown; vunknown (unknown)\\"},\\"priority\\":\\"high\\"},\\"resizeMode\\":\\"cover\\"},\\"children\\":null}]}]},{\\"type\\":\\"View\\",\\"props\\":{\\"style\\":[{\\"flex\\":1,\\"paddingVertical\\":10,\\"paddingRight\\":14,\\"borderBottomWidth\\":0.5},{\\"borderColor\\":\\"#cbcbcc\\"}]},\\"children\\":[{\\"type\\":\\"View\\",\\"props\\":{\\"style\\":[{\\"width\\":\\"100%\\",\\"flexDirection\\":\\"row\\",\\"alignItems\\":\\"center\\",\\"justifyContent\\":\\"center\\"},{\\"flex\\":1}]},\\"children\\":[{\\"type\\":\\"Text\\",\\"props\\":{\\"selectable\\":false,\\"allowFontScaling\\":false,\\"style\\":[{\\"fontSize\\":22,\\"color\\":\\"#cbced1\\"},[{\\"width\\":22,\\"height\\":22,\\"textAlignVertical\\":\\"center\\"},[[{\\"marginRight\\":4},{\\"color\\":\\"#0d0e12\\"},{\\"marginRight\\":8}],{\\"color\\":\\"#cbced1\\"}]],{\\"fontFamily\\":\\"custom\\",\\"fontWeight\\":\\"normal\\",\\"fontStyle\\":\\"normal\\"},{}]},\\"children\\":[\\"\\"]},{\\"type\\":\\"Text\\",\\"props\\":{\\"style\\":[{\\"flex\\":1,\\"fontSize\\":17,\\"textAlign\\":\\"left\\",\\"backgroundColor\\":\\"transparent\\",\\"fontFamily\\":\\"Inter\\",\\"fontWeight\\":\\"500\\"},null,{\\"color\\":\\"#0d0e12\\"}],\\"ellipsizeMode\\":\\"tail\\",\\"numberOfLines\\":1},\\"children\\":[\\"Lorem Ipsum is simply dummy text of the printing and typesetting industry. Lorem Ipsum has been the industrys standard dummy text ever since the 1500s, when an unknown printer took a galley of type and scrambled it to make a type specimen book. It has survived not only five centuries\\"]},{\\"type\\":\\"View\\",\\"props\\":{\\"style\\":{\\"alignItems\\":\\"flex-end\\"}},\\"children\\":[{\\"type\\":\\"Text\\",\\"props\\":{\\"style\\":[{\\"fontSize\\":13,\\"marginLeft\\":4,\\"textAlign\\":\\"left\\",\\"backgroundColor\\":\\"transparent\\",\\"fontFamily\\":\\"Inter\\",\\"fontWeight\\":\\"400\\"},{\\"color\\":\\"#9ca2a8\\"},null],\\"ellipsizeMode\\":\\"tail\\",\\"numberOfLines\\":1},\\"children\\":[\\"10:00\\"]}]}]}]}]}]}]}]}]"`;
-exports[`Storyshots RoomItem User Status 1`] = `"[{\\"type\\":\\"View\\",\\"props\\":{},\\"children\\":[{\\"type\\":\\"View\\",\\"props\\":{},\\"children\\":[{\\"type\\":\\"View\\",\\"props\\":{\\"style\\":[{\\"position\\":\\"absolute\\",\\"left\\":0,\\"right\\":0,\\"height\\":150},{\\"flexDirection\\":\\"row\\",\\"position\\":\\"absolute\\",\\"left\\":0,\\"right\\":0,\\"height\\":150}],\\"pointerEvents\\":\\"box-none\\"},\\"children\\":[{\\"type\\":\\"View\\",\\"props\\":{\\"style\\":[{\\"position\\":\\"absolute\\",\\"height\\":150,\\"justifyContent\\":\\"center\\",\\"top\\":0,\\"right\\":0},{\\"width\\":1500,\\"backgroundColor\\":\\"#1d74f5\\",\\"right\\":\\"100%\\"},null,{\\"transform\\":[{\\"translateX\\":0}]}]},\\"children\\":[{\\"type\\":\\"View\\",\\"props\\":{\\"style\\":[{\\"position\\":\\"absolute\\",\\"height\\":150,\\"justifyContent\\":\\"center\\",\\"top\\":0,\\"right\\":0},null]},\\"children\\":[{\\"type\\":\\"Text\\",\\"props\\":{\\"selectable\\":false,\\"allowFontScaling\\":false,\\"style\\":[{\\"fontSize\\":28,\\"color\\":\\"#ffffff\\"},null,{\\"fontFamily\\":\\"custom\\",\\"fontWeight\\":\\"normal\\",\\"fontStyle\\":\\"normal\\"},{}]},\\"children\\":[\\"\\"]}]}]}]},{\\"type\\":\\"View\\",\\"props\\":{\\"style\\":[{\\"flexDirection\\":\\"row\\",\\"position\\":\\"absolute\\",\\"left\\":0,\\"right\\":0,\\"height\\":150},null],\\"pointerEvents\\":\\"box-none\\"},\\"children\\":[{\\"type\\":\\"View\\",\\"props\\":{\\"style\\":[{\\"position\\":\\"absolute\\",\\"height\\":150,\\"justifyContent\\":\\"center\\",\\"top\\":0},{\\"width\\":750,\\"backgroundColor\\":\\"#ffbb00\\",\\"left\\":\\"100%\\"},null,{\\"transform\\":[{\\"translateX\\":0}]}]},\\"children\\":[{\\"type\\":\\"Text\\",\\"props\\":{\\"selectable\\":false,\\"allowFontScaling\\":false,\\"style\\":[{\\"fontSize\\":28,\\"color\\":\\"#ffffff\\"},null,{\\"fontFamily\\":\\"custom\\",\\"fontWeight\\":\\"normal\\",\\"fontStyle\\":\\"normal\\"},{}]},\\"children\\":[\\"\\"]}]},{\\"type\\":\\"View\\",\\"props\\":{\\"style\\":[{\\"position\\":\\"absolute\\",\\"height\\":150,\\"justifyContent\\":\\"center\\",\\"top\\":0},{\\"width\\":1500,\\"backgroundColor\\":\\"#54585e\\",\\"left\\":\\"100%\\"},false,{\\"transform\\":[{\\"translateX\\":80}]}]},\\"children\\":[{\\"type\\":\\"Text\\",\\"props\\":{\\"selectable\\":false,\\"allowFontScaling\\":false,\\"style\\":[{\\"fontSize\\":28,\\"color\\":\\"#ffffff\\"},null,{\\"fontFamily\\":\\"custom\\",\\"fontWeight\\":\\"normal\\",\\"fontStyle\\":\\"normal\\"},{}]},\\"children\\":[\\"\\"]}]}]},{\\"type\\":\\"View\\",\\"props\\":{\\"style\\":{\\"transform\\":[{\\"translateX\\":0}]}},\\"children\\":[{\\"type\\":\\"View\\",\\"props\\":{\\"style\\":[{\\"flexDirection\\":\\"row\\",\\"alignItems\\":\\"center\\",\\"paddingLeft\\":14,\\"height\\":150},false]},\\"children\\":[{\\"type\\":\\"View\\",\\"props\\":{\\"style\\":[{\\"width\\":48,\\"height\\":48,\\"borderRadius\\":4},{\\"marginRight\\":10}],\\"testID\\":\\"avatar\\"},\\"children\\":[{\\"type\\":\\"View\\",\\"props\\":{\\"style\\":[{\\"overflow\\":\\"hidden\\"},{\\"width\\":48,\\"height\\":48,\\"borderRadius\\":4}]},\\"children\\":[{\\"type\\":\\"FastImageView\\",\\"props\\":{\\"style\\":{\\"position\\":\\"absolute\\",\\"left\\":0,\\"right\\":0,\\"top\\":0,\\"bottom\\":0},\\"source\\":{\\"uri\\":\\"https://open.rocket.chat/avatar/rocket.cat?format=png&size=96\\",\\"headers\\":{\\"User-Agent\\":\\"RC Mobile; ios unknown; vunknown (unknown)\\"},\\"priority\\":\\"high\\"},\\"resizeMode\\":\\"cover\\"},\\"children\\":null}]}]},{\\"type\\":\\"View\\",\\"props\\":{\\"style\\":[{\\"flex\\":1,\\"paddingVertical\\":10,\\"paddingRight\\":14,\\"borderBottomWidth\\":0.5},{\\"borderColor\\":\\"#cbcbcc\\"}]},\\"children\\":[{\\"type\\":\\"View\\",\\"props\\":{\\"style\\":[{\\"width\\":\\"100%\\",\\"flexDirection\\":\\"row\\",\\"alignItems\\":\\"center\\",\\"justifyContent\\":\\"center\\"},{\\"flex\\":1}]},\\"children\\":[{\\"type\\":\\"Text\\",\\"props\\":{\\"selectable\\":false,\\"allowFontScaling\\":false,\\"style\\":[{\\"fontSize\\":22,\\"color\\":\\"#2de0a5\\"},[{\\"width\\":22,\\"height\\":22,\\"textAlignVertical\\":\\"center\\"},[[{\\"marginRight\\":4},{\\"color\\":\\"#0d0e12\\"},{\\"marginRight\\":8}],{\\"color\\":\\"#2de0a5\\"}]],{\\"fontFamily\\":\\"custom\\",\\"fontWeight\\":\\"normal\\",\\"fontStyle\\":\\"normal\\"},{}]},\\"children\\":[\\"\\"]},{\\"type\\":\\"Text\\",\\"props\\":{\\"style\\":[{\\"flex\\":1,\\"fontSize\\":17,\\"textAlign\\":\\"left\\",\\"backgroundColor\\":\\"transparent\\",\\"fontFamily\\":\\"Inter\\",\\"fontWeight\\":\\"500\\"},null,{\\"color\\":\\"#0d0e12\\"}],\\"ellipsizeMode\\":\\"tail\\",\\"numberOfLines\\":1},\\"children\\":[\\"rocket.cat\\"]},{\\"type\\":\\"View\\",\\"props\\":{\\"style\\":{\\"alignItems\\":\\"flex-end\\"}},\\"children\\":[{\\"type\\":\\"Text\\",\\"props\\":{\\"style\\":[{\\"fontSize\\":13,\\"marginLeft\\":4,\\"textAlign\\":\\"left\\",\\"backgroundColor\\":\\"transparent\\",\\"fontFamily\\":\\"Inter\\",\\"fontWeight\\":\\"400\\"},{\\"color\\":\\"#9ca2a8\\"},null],\\"ellipsizeMode\\":\\"tail\\",\\"numberOfLines\\":1},\\"children\\":[\\"10:00\\"]}]}]}]}]}]}]}]},{\\"type\\":\\"View\\",\\"props\\":{},\\"children\\":[{\\"type\\":\\"View\\",\\"props\\":{},\\"children\\":[{\\"type\\":\\"View\\",\\"props\\":{\\"style\\":[{\\"position\\":\\"absolute\\",\\"left\\":0,\\"right\\":0,\\"height\\":150},{\\"flexDirection\\":\\"row\\",\\"position\\":\\"absolute\\",\\"left\\":0,\\"right\\":0,\\"height\\":150}],\\"pointerEvents\\":\\"box-none\\"},\\"children\\":[{\\"type\\":\\"View\\",\\"props\\":{\\"style\\":[{\\"position\\":\\"absolute\\",\\"height\\":150,\\"justifyContent\\":\\"center\\",\\"top\\":0,\\"right\\":0},{\\"width\\":1500,\\"backgroundColor\\":\\"#1d74f5\\",\\"right\\":\\"100%\\"},null,{\\"transform\\":[{\\"translateX\\":0}]}]},\\"children\\":[{\\"type\\":\\"View\\",\\"props\\":{\\"style\\":[{\\"position\\":\\"absolute\\",\\"height\\":150,\\"justifyContent\\":\\"center\\",\\"top\\":0,\\"right\\":0},null]},\\"children\\":[{\\"type\\":\\"Text\\",\\"props\\":{\\"selectable\\":false,\\"allowFontScaling\\":false,\\"style\\":[{\\"fontSize\\":28,\\"color\\":\\"#ffffff\\"},null,{\\"fontFamily\\":\\"custom\\",\\"fontWeight\\":\\"normal\\",\\"fontStyle\\":\\"normal\\"},{}]},\\"children\\":[\\"\\"]}]}]}]},{\\"type\\":\\"View\\",\\"props\\":{\\"style\\":[{\\"flexDirection\\":\\"row\\",\\"position\\":\\"absolute\\",\\"left\\":0,\\"right\\":0,\\"height\\":150},null],\\"pointerEvents\\":\\"box-none\\"},\\"children\\":[{\\"type\\":\\"View\\",\\"props\\":{\\"style\\":[{\\"position\\":\\"absolute\\",\\"height\\":150,\\"justifyContent\\":\\"center\\",\\"top\\":0},{\\"width\\":750,\\"backgroundColor\\":\\"#ffbb00\\",\\"left\\":\\"100%\\"},null,{\\"transform\\":[{\\"translateX\\":0}]}]},\\"children\\":[{\\"type\\":\\"Text\\",\\"props\\":{\\"selectable\\":false,\\"allowFontScaling\\":false,\\"style\\":[{\\"fontSize\\":28,\\"color\\":\\"#ffffff\\"},null,{\\"fontFamily\\":\\"custom\\",\\"fontWeight\\":\\"normal\\",\\"fontStyle\\":\\"normal\\"},{}]},\\"children\\":[\\"\\"]}]},{\\"type\\":\\"View\\",\\"props\\":{\\"style\\":[{\\"position\\":\\"absolute\\",\\"height\\":150,\\"justifyContent\\":\\"center\\",\\"top\\":0},{\\"width\\":1500,\\"backgroundColor\\":\\"#54585e\\",\\"left\\":\\"100%\\"},false,{\\"transform\\":[{\\"translateX\\":80}]}]},\\"children\\":[{\\"type\\":\\"Text\\",\\"props\\":{\\"selectable\\":false,\\"allowFontScaling\\":false,\\"style\\":[{\\"fontSize\\":28,\\"color\\":\\"#ffffff\\"},null,{\\"fontFamily\\":\\"custom\\",\\"fontWeight\\":\\"normal\\",\\"fontStyle\\":\\"normal\\"},{}]},\\"children\\":[\\"\\"]}]}]},{\\"type\\":\\"View\\",\\"props\\":{\\"style\\":{\\"transform\\":[{\\"translateX\\":0}]}},\\"children\\":[{\\"type\\":\\"View\\",\\"props\\":{\\"style\\":[{\\"flexDirection\\":\\"row\\",\\"alignItems\\":\\"center\\",\\"paddingLeft\\":14,\\"height\\":150},false]},\\"children\\":[{\\"type\\":\\"View\\",\\"props\\":{\\"style\\":[{\\"width\\":48,\\"height\\":48,\\"borderRadius\\":4},{\\"marginRight\\":10}],\\"testID\\":\\"avatar\\"},\\"children\\":[{\\"type\\":\\"View\\",\\"props\\":{\\"style\\":[{\\"overflow\\":\\"hidden\\"},{\\"width\\":48,\\"height\\":48,\\"borderRadius\\":4}]},\\"children\\":[{\\"type\\":\\"FastImageView\\",\\"props\\":{\\"style\\":{\\"position\\":\\"absolute\\",\\"left\\":0,\\"right\\":0,\\"top\\":0,\\"bottom\\":0},\\"source\\":{\\"uri\\":\\"https://open.rocket.chat/avatar/rocket.cat?format=png&size=96\\",\\"headers\\":{\\"User-Agent\\":\\"RC Mobile; ios unknown; vunknown (unknown)\\"},\\"priority\\":\\"high\\"},\\"resizeMode\\":\\"cover\\"},\\"children\\":null}]}]},{\\"type\\":\\"View\\",\\"props\\":{\\"style\\":[{\\"flex\\":1,\\"paddingVertical\\":10,\\"paddingRight\\":14,\\"borderBottomWidth\\":0.5},{\\"borderColor\\":\\"#cbcbcc\\"}]},\\"children\\":[{\\"type\\":\\"View\\",\\"props\\":{\\"style\\":[{\\"width\\":\\"100%\\",\\"flexDirection\\":\\"row\\",\\"alignItems\\":\\"center\\",\\"justifyContent\\":\\"center\\"},{\\"flex\\":1}]},\\"children\\":[{\\"type\\":\\"Text\\",\\"props\\":{\\"selectable\\":false,\\"allowFontScaling\\":false,\\"style\\":[{\\"fontSize\\":22,\\"color\\":\\"#ffd21f\\"},[{\\"width\\":22,\\"height\\":22,\\"textAlignVertical\\":\\"center\\"},[[{\\"marginRight\\":4},{\\"color\\":\\"#0d0e12\\"},{\\"marginRight\\":8}],{\\"color\\":\\"#ffd21f\\"}]],{\\"fontFamily\\":\\"custom\\",\\"fontWeight\\":\\"normal\\",\\"fontStyle\\":\\"normal\\"},{}]},\\"children\\":[\\"\\"]},{\\"type\\":\\"Text\\",\\"props\\":{\\"style\\":[{\\"flex\\":1,\\"fontSize\\":17,\\"textAlign\\":\\"left\\",\\"backgroundColor\\":\\"transparent\\",\\"fontFamily\\":\\"Inter\\",\\"fontWeight\\":\\"500\\"},null,{\\"color\\":\\"#0d0e12\\"}],\\"ellipsizeMode\\":\\"tail\\",\\"numberOfLines\\":1},\\"children\\":[\\"rocket.cat\\"]},{\\"type\\":\\"View\\",\\"props\\":{\\"style\\":{\\"alignItems\\":\\"flex-end\\"}},\\"children\\":[{\\"type\\":\\"Text\\",\\"props\\":{\\"style\\":[{\\"fontSize\\":13,\\"marginLeft\\":4,\\"textAlign\\":\\"left\\",\\"backgroundColor\\":\\"transparent\\",\\"fontFamily\\":\\"Inter\\",\\"fontWeight\\":\\"400\\"},{\\"color\\":\\"#9ca2a8\\"},null],\\"ellipsizeMode\\":\\"tail\\",\\"numberOfLines\\":1},\\"children\\":[\\"10:00\\"]}]}]}]}]}]}]}]},{\\"type\\":\\"View\\",\\"props\\":{},\\"children\\":[{\\"type\\":\\"View\\",\\"props\\":{},\\"children\\":[{\\"type\\":\\"View\\",\\"props\\":{\\"style\\":[{\\"position\\":\\"absolute\\",\\"left\\":0,\\"right\\":0,\\"height\\":150},{\\"flexDirection\\":\\"row\\",\\"position\\":\\"absolute\\",\\"left\\":0,\\"right\\":0,\\"height\\":150}],\\"pointerEvents\\":\\"box-none\\"},\\"children\\":[{\\"type\\":\\"View\\",\\"props\\":{\\"style\\":[{\\"position\\":\\"absolute\\",\\"height\\":150,\\"justifyContent\\":\\"center\\",\\"top\\":0,\\"right\\":0},{\\"width\\":1500,\\"backgroundColor\\":\\"#1d74f5\\",\\"right\\":\\"100%\\"},null,{\\"transform\\":[{\\"translateX\\":0}]}]},\\"children\\":[{\\"type\\":\\"View\\",\\"props\\":{\\"style\\":[{\\"position\\":\\"absolute\\",\\"height\\":150,\\"justifyContent\\":\\"center\\",\\"top\\":0,\\"right\\":0},null]},\\"children\\":[{\\"type\\":\\"Text\\",\\"props\\":{\\"selectable\\":false,\\"allowFontScaling\\":false,\\"style\\":[{\\"fontSize\\":28,\\"color\\":\\"#ffffff\\"},null,{\\"fontFamily\\":\\"custom\\",\\"fontWeight\\":\\"normal\\",\\"fontStyle\\":\\"normal\\"},{}]},\\"children\\":[\\"\\"]}]}]}]},{\\"type\\":\\"View\\",\\"props\\":{\\"style\\":[{\\"flexDirection\\":\\"row\\",\\"position\\":\\"absolute\\",\\"left\\":0,\\"right\\":0,\\"height\\":150},null],\\"pointerEvents\\":\\"box-none\\"},\\"children\\":[{\\"type\\":\\"View\\",\\"props\\":{\\"style\\":[{\\"position\\":\\"absolute\\",\\"height\\":150,\\"justifyContent\\":\\"center\\",\\"top\\":0},{\\"width\\":750,\\"backgroundColor\\":\\"#ffbb00\\",\\"left\\":\\"100%\\"},null,{\\"transform\\":[{\\"translateX\\":0}]}]},\\"children\\":[{\\"type\\":\\"Text\\",\\"props\\":{\\"selectable\\":false,\\"allowFontScaling\\":false,\\"style\\":[{\\"fontSize\\":28,\\"color\\":\\"#ffffff\\"},null,{\\"fontFamily\\":\\"custom\\",\\"fontWeight\\":\\"normal\\",\\"fontStyle\\":\\"normal\\"},{}]},\\"children\\":[\\"\\"]}]},{\\"type\\":\\"View\\",\\"props\\":{\\"style\\":[{\\"position\\":\\"absolute\\",\\"height\\":150,\\"justifyContent\\":\\"center\\",\\"top\\":0},{\\"width\\":1500,\\"backgroundColor\\":\\"#54585e\\",\\"left\\":\\"100%\\"},false,{\\"transform\\":[{\\"translateX\\":80}]}]},\\"children\\":[{\\"type\\":\\"Text\\",\\"props\\":{\\"selectable\\":false,\\"allowFontScaling\\":false,\\"style\\":[{\\"fontSize\\":28,\\"color\\":\\"#ffffff\\"},null,{\\"fontFamily\\":\\"custom\\",\\"fontWeight\\":\\"normal\\",\\"fontStyle\\":\\"normal\\"},{}]},\\"children\\":[\\"\\"]}]}]},{\\"type\\":\\"View\\",\\"props\\":{\\"style\\":{\\"transform\\":[{\\"translateX\\":0}]}},\\"children\\":[{\\"type\\":\\"View\\",\\"props\\":{\\"style\\":[{\\"flexDirection\\":\\"row\\",\\"alignItems\\":\\"center\\",\\"paddingLeft\\":14,\\"height\\":150},false]},\\"children\\":[{\\"type\\":\\"View\\",\\"props\\":{\\"style\\":[{\\"width\\":48,\\"height\\":48,\\"borderRadius\\":4},{\\"marginRight\\":10}],\\"testID\\":\\"avatar\\"},\\"children\\":[{\\"type\\":\\"View\\",\\"props\\":{\\"style\\":[{\\"overflow\\":\\"hidden\\"},{\\"width\\":48,\\"height\\":48,\\"borderRadius\\":4}]},\\"children\\":[{\\"type\\":\\"FastImageView\\",\\"props\\":{\\"style\\":{\\"position\\":\\"absolute\\",\\"left\\":0,\\"right\\":0,\\"top\\":0,\\"bottom\\":0},\\"source\\":{\\"uri\\":\\"https://open.rocket.chat/avatar/rocket.cat?format=png&size=96\\",\\"headers\\":{\\"User-Agent\\":\\"RC Mobile; ios unknown; vunknown (unknown)\\"},\\"priority\\":\\"high\\"},\\"resizeMode\\":\\"cover\\"},\\"children\\":null}]}]},{\\"type\\":\\"View\\",\\"props\\":{\\"style\\":[{\\"flex\\":1,\\"paddingVertical\\":10,\\"paddingRight\\":14,\\"borderBottomWidth\\":0.5},{\\"borderColor\\":\\"#cbcbcc\\"}]},\\"children\\":[{\\"type\\":\\"View\\",\\"props\\":{\\"style\\":[{\\"width\\":\\"100%\\",\\"flexDirection\\":\\"row\\",\\"alignItems\\":\\"center\\",\\"justifyContent\\":\\"center\\"},{\\"flex\\":1}]},\\"children\\":[{\\"type\\":\\"Text\\",\\"props\\":{\\"selectable\\":false,\\"allowFontScaling\\":false,\\"style\\":[{\\"fontSize\\":22,\\"color\\":\\"#f5455c\\"},[{\\"width\\":22,\\"height\\":22,\\"textAlignVertical\\":\\"center\\"},[[{\\"marginRight\\":4},{\\"color\\":\\"#0d0e12\\"},{\\"marginRight\\":8}],{\\"color\\":\\"#f5455c\\"}]],{\\"fontFamily\\":\\"custom\\",\\"fontWeight\\":\\"normal\\",\\"fontStyle\\":\\"normal\\"},{}]},\\"children\\":[\\"\\"]},{\\"type\\":\\"Text\\",\\"props\\":{\\"style\\":[{\\"flex\\":1,\\"fontSize\\":17,\\"textAlign\\":\\"left\\",\\"backgroundColor\\":\\"transparent\\",\\"fontFamily\\":\\"Inter\\",\\"fontWeight\\":\\"500\\"},null,{\\"color\\":\\"#0d0e12\\"}],\\"ellipsizeMode\\":\\"tail\\",\\"numberOfLines\\":1},\\"children\\":[\\"rocket.cat\\"]},{\\"type\\":\\"View\\",\\"props\\":{\\"style\\":{\\"alignItems\\":\\"flex-end\\"}},\\"children\\":[{\\"type\\":\\"Text\\",\\"props\\":{\\"style\\":[{\\"fontSize\\":13,\\"marginLeft\\":4,\\"textAlign\\":\\"left\\",\\"backgroundColor\\":\\"transparent\\",\\"fontFamily\\":\\"Inter\\",\\"fontWeight\\":\\"400\\"},{\\"color\\":\\"#9ca2a8\\"},null],\\"ellipsizeMode\\":\\"tail\\",\\"numberOfLines\\":1},\\"children\\":[\\"10:00\\"]}]}]}]}]}]}]}]},{\\"type\\":\\"View\\",\\"props\\":{},\\"children\\":[{\\"type\\":\\"View\\",\\"props\\":{},\\"children\\":[{\\"type\\":\\"View\\",\\"props\\":{\\"style\\":[{\\"position\\":\\"absolute\\",\\"left\\":0,\\"right\\":0,\\"height\\":150},{\\"flexDirection\\":\\"row\\",\\"position\\":\\"absolute\\",\\"left\\":0,\\"right\\":0,\\"height\\":150}],\\"pointerEvents\\":\\"box-none\\"},\\"children\\":[{\\"type\\":\\"View\\",\\"props\\":{\\"style\\":[{\\"position\\":\\"absolute\\",\\"height\\":150,\\"justifyContent\\":\\"center\\",\\"top\\":0,\\"right\\":0},{\\"width\\":1500,\\"backgroundColor\\":\\"#1d74f5\\",\\"right\\":\\"100%\\"},null,{\\"transform\\":[{\\"translateX\\":0}]}]},\\"children\\":[{\\"type\\":\\"View\\",\\"props\\":{\\"style\\":[{\\"position\\":\\"absolute\\",\\"height\\":150,\\"justifyContent\\":\\"center\\",\\"top\\":0,\\"right\\":0},null]},\\"children\\":[{\\"type\\":\\"Text\\",\\"props\\":{\\"selectable\\":false,\\"allowFontScaling\\":false,\\"style\\":[{\\"fontSize\\":28,\\"color\\":\\"#ffffff\\"},null,{\\"fontFamily\\":\\"custom\\",\\"fontWeight\\":\\"normal\\",\\"fontStyle\\":\\"normal\\"},{}]},\\"children\\":[\\"\\"]}]}]}]},{\\"type\\":\\"View\\",\\"props\\":{\\"style\\":[{\\"flexDirection\\":\\"row\\",\\"position\\":\\"absolute\\",\\"left\\":0,\\"right\\":0,\\"height\\":150},null],\\"pointerEvents\\":\\"box-none\\"},\\"children\\":[{\\"type\\":\\"View\\",\\"props\\":{\\"style\\":[{\\"position\\":\\"absolute\\",\\"height\\":150,\\"justifyContent\\":\\"center\\",\\"top\\":0},{\\"width\\":750,\\"backgroundColor\\":\\"#ffbb00\\",\\"left\\":\\"100%\\"},null,{\\"transform\\":[{\\"translateX\\":0}]}]},\\"children\\":[{\\"type\\":\\"Text\\",\\"props\\":{\\"selectable\\":false,\\"allowFontScaling\\":false,\\"style\\":[{\\"fontSize\\":28,\\"color\\":\\"#ffffff\\"},null,{\\"fontFamily\\":\\"custom\\",\\"fontWeight\\":\\"normal\\",\\"fontStyle\\":\\"normal\\"},{}]},\\"children\\":[\\"\\"]}]},{\\"type\\":\\"View\\",\\"props\\":{\\"style\\":[{\\"position\\":\\"absolute\\",\\"height\\":150,\\"justifyContent\\":\\"center\\",\\"top\\":0},{\\"width\\":1500,\\"backgroundColor\\":\\"#54585e\\",\\"left\\":\\"100%\\"},false,{\\"transform\\":[{\\"translateX\\":80}]}]},\\"children\\":[{\\"type\\":\\"Text\\",\\"props\\":{\\"selectable\\":false,\\"allowFontScaling\\":false,\\"style\\":[{\\"fontSize\\":28,\\"color\\":\\"#ffffff\\"},null,{\\"fontFamily\\":\\"custom\\",\\"fontWeight\\":\\"normal\\",\\"fontStyle\\":\\"normal\\"},{}]},\\"children\\":[\\"\\"]}]}]},{\\"type\\":\\"View\\",\\"props\\":{\\"style\\":{\\"transform\\":[{\\"translateX\\":0}]}},\\"children\\":[{\\"type\\":\\"View\\",\\"props\\":{\\"style\\":[{\\"flexDirection\\":\\"row\\",\\"alignItems\\":\\"center\\",\\"paddingLeft\\":14,\\"height\\":150},false]},\\"children\\":[{\\"type\\":\\"View\\",\\"props\\":{\\"style\\":[{\\"width\\":48,\\"height\\":48,\\"borderRadius\\":4},{\\"marginRight\\":10}],\\"testID\\":\\"avatar\\"},\\"children\\":[{\\"type\\":\\"View\\",\\"props\\":{\\"style\\":[{\\"overflow\\":\\"hidden\\"},{\\"width\\":48,\\"height\\":48,\\"borderRadius\\":4}]},\\"children\\":[{\\"type\\":\\"FastImageView\\",\\"props\\":{\\"style\\":{\\"position\\":\\"absolute\\",\\"left\\":0,\\"right\\":0,\\"top\\":0,\\"bottom\\":0},\\"source\\":{\\"uri\\":\\"https://open.rocket.chat/avatar/rocket.cat?format=png&size=96\\",\\"headers\\":{\\"User-Agent\\":\\"RC Mobile; ios unknown; vunknown (unknown)\\"},\\"priority\\":\\"high\\"},\\"resizeMode\\":\\"cover\\"},\\"children\\":null}]}]},{\\"type\\":\\"View\\",\\"props\\":{\\"style\\":[{\\"flex\\":1,\\"paddingVertical\\":10,\\"paddingRight\\":14,\\"borderBottomWidth\\":0.5},{\\"borderColor\\":\\"#cbcbcc\\"}]},\\"children\\":[{\\"type\\":\\"View\\",\\"props\\":{\\"style\\":[{\\"width\\":\\"100%\\",\\"flexDirection\\":\\"row\\",\\"alignItems\\":\\"center\\",\\"justifyContent\\":\\"center\\"},{\\"flex\\":1}]},\\"children\\":[{\\"type\\":\\"Text\\",\\"props\\":{\\"selectable\\":false,\\"allowFontScaling\\":false,\\"style\\":[{\\"fontSize\\":22,\\"color\\":\\"#cbced1\\"},[{\\"width\\":22,\\"height\\":22,\\"textAlignVertical\\":\\"center\\"},[[{\\"marginRight\\":4},{\\"color\\":\\"#0d0e12\\"},{\\"marginRight\\":8}],{\\"color\\":\\"#cbced1\\"}]],{\\"fontFamily\\":\\"custom\\",\\"fontWeight\\":\\"normal\\",\\"fontStyle\\":\\"normal\\"},{}]},\\"children\\":[\\"\\"]},{\\"type\\":\\"Text\\",\\"props\\":{\\"style\\":[{\\"flex\\":1,\\"fontSize\\":17,\\"textAlign\\":\\"left\\",\\"backgroundColor\\":\\"transparent\\",\\"fontFamily\\":\\"Inter\\",\\"fontWeight\\":\\"500\\"},null,{\\"color\\":\\"#0d0e12\\"}],\\"ellipsizeMode\\":\\"tail\\",\\"numberOfLines\\":1},\\"children\\":[\\"rocket.cat\\"]},{\\"type\\":\\"View\\",\\"props\\":{\\"style\\":{\\"alignItems\\":\\"flex-end\\"}},\\"children\\":[{\\"type\\":\\"Text\\",\\"props\\":{\\"style\\":[{\\"fontSize\\":13,\\"marginLeft\\":4,\\"textAlign\\":\\"left\\",\\"backgroundColor\\":\\"transparent\\",\\"fontFamily\\":\\"Inter\\",\\"fontWeight\\":\\"400\\"},{\\"color\\":\\"#9ca2a8\\"},null],\\"ellipsizeMode\\":\\"tail\\",\\"numberOfLines\\":1},\\"children\\":[\\"10:00\\"]}]}]}]}]}]}]}]},{\\"type\\":\\"View\\",\\"props\\":{},\\"children\\":[{\\"type\\":\\"View\\",\\"props\\":{},\\"children\\":[{\\"type\\":\\"View\\",\\"props\\":{\\"style\\":[{\\"position\\":\\"absolute\\",\\"left\\":0,\\"right\\":0,\\"height\\":150},{\\"flexDirection\\":\\"row\\",\\"position\\":\\"absolute\\",\\"left\\":0,\\"right\\":0,\\"height\\":150}],\\"pointerEvents\\":\\"box-none\\"},\\"children\\":[{\\"type\\":\\"View\\",\\"props\\":{\\"style\\":[{\\"position\\":\\"absolute\\",\\"height\\":150,\\"justifyContent\\":\\"center\\",\\"top\\":0,\\"right\\":0},{\\"width\\":1500,\\"backgroundColor\\":\\"#1d74f5\\",\\"right\\":\\"100%\\"},null,{\\"transform\\":[{\\"translateX\\":0}]}]},\\"children\\":[{\\"type\\":\\"View\\",\\"props\\":{\\"style\\":[{\\"position\\":\\"absolute\\",\\"height\\":150,\\"justifyContent\\":\\"center\\",\\"top\\":0,\\"right\\":0},null]},\\"children\\":[{\\"type\\":\\"Text\\",\\"props\\":{\\"selectable\\":false,\\"allowFontScaling\\":false,\\"style\\":[{\\"fontSize\\":28,\\"color\\":\\"#ffffff\\"},null,{\\"fontFamily\\":\\"custom\\",\\"fontWeight\\":\\"normal\\",\\"fontStyle\\":\\"normal\\"},{}]},\\"children\\":[\\"\\"]}]}]}]},{\\"type\\":\\"View\\",\\"props\\":{\\"style\\":[{\\"flexDirection\\":\\"row\\",\\"position\\":\\"absolute\\",\\"left\\":0,\\"right\\":0,\\"height\\":150},null],\\"pointerEvents\\":\\"box-none\\"},\\"children\\":[{\\"type\\":\\"View\\",\\"props\\":{\\"style\\":[{\\"position\\":\\"absolute\\",\\"height\\":150,\\"justifyContent\\":\\"center\\",\\"top\\":0},{\\"width\\":750,\\"backgroundColor\\":\\"#ffbb00\\",\\"left\\":\\"100%\\"},null,{\\"transform\\":[{\\"translateX\\":0}]}]},\\"children\\":[{\\"type\\":\\"Text\\",\\"props\\":{\\"selectable\\":false,\\"allowFontScaling\\":false,\\"style\\":[{\\"fontSize\\":28,\\"color\\":\\"#ffffff\\"},null,{\\"fontFamily\\":\\"custom\\",\\"fontWeight\\":\\"normal\\",\\"fontStyle\\":\\"normal\\"},{}]},\\"children\\":[\\"\\"]}]},{\\"type\\":\\"View\\",\\"props\\":{\\"style\\":[{\\"position\\":\\"absolute\\",\\"height\\":150,\\"justifyContent\\":\\"center\\",\\"top\\":0},{\\"width\\":1500,\\"backgroundColor\\":\\"#54585e\\",\\"left\\":\\"100%\\"},false,{\\"transform\\":[{\\"translateX\\":80}]}]},\\"children\\":[{\\"type\\":\\"Text\\",\\"props\\":{\\"selectable\\":false,\\"allowFontScaling\\":false,\\"style\\":[{\\"fontSize\\":28,\\"color\\":\\"#ffffff\\"},null,{\\"fontFamily\\":\\"custom\\",\\"fontWeight\\":\\"normal\\",\\"fontStyle\\":\\"normal\\"},{}]},\\"children\\":[\\"\\"]}]}]},{\\"type\\":\\"View\\",\\"props\\":{\\"style\\":{\\"transform\\":[{\\"translateX\\":0}]}},\\"children\\":[{\\"type\\":\\"View\\",\\"props\\":{\\"style\\":[{\\"flexDirection\\":\\"row\\",\\"alignItems\\":\\"center\\",\\"paddingLeft\\":14,\\"height\\":150},false]},\\"children\\":[{\\"type\\":\\"View\\",\\"props\\":{\\"style\\":[{\\"width\\":48,\\"height\\":48,\\"borderRadius\\":4},{\\"marginRight\\":10}],\\"testID\\":\\"avatar\\"},\\"children\\":[{\\"type\\":\\"View\\",\\"props\\":{\\"style\\":[{\\"overflow\\":\\"hidden\\"},{\\"width\\":48,\\"height\\":48,\\"borderRadius\\":4}]},\\"children\\":[{\\"type\\":\\"FastImageView\\",\\"props\\":{\\"style\\":{\\"position\\":\\"absolute\\",\\"left\\":0,\\"right\\":0,\\"top\\":0,\\"bottom\\":0},\\"source\\":{\\"uri\\":\\"https://open.rocket.chat/avatar/rocket.cat?format=png&size=96\\",\\"headers\\":{\\"User-Agent\\":\\"RC Mobile; ios unknown; vunknown (unknown)\\"},\\"priority\\":\\"high\\"},\\"resizeMode\\":\\"cover\\"},\\"children\\":null}]}]},{\\"type\\":\\"View\\",\\"props\\":{\\"style\\":[{\\"flex\\":1,\\"paddingVertical\\":10,\\"paddingRight\\":14,\\"borderBottomWidth\\":0.5},{\\"borderColor\\":\\"#cbcbcc\\"}]},\\"children\\":[{\\"type\\":\\"View\\",\\"props\\":{\\"style\\":[{\\"width\\":\\"100%\\",\\"flexDirection\\":\\"row\\",\\"alignItems\\":\\"center\\",\\"justifyContent\\":\\"center\\"},{\\"flex\\":1}]},\\"children\\":[{\\"type\\":\\"Text\\",\\"props\\":{\\"selectable\\":false,\\"allowFontScaling\\":false,\\"style\\":[{\\"fontSize\\":22,\\"color\\":\\"#9ea2a8\\"},[{\\"width\\":22,\\"height\\":22,\\"textAlignVertical\\":\\"center\\"},[[{\\"marginRight\\":4},{\\"color\\":\\"#0d0e12\\"},{\\"marginRight\\":8}],{\\"color\\":\\"#9ea2a8\\"}]],{\\"fontFamily\\":\\"custom\\",\\"fontWeight\\":\\"normal\\",\\"fontStyle\\":\\"normal\\"},{}]},\\"children\\":[\\"\\"]},{\\"type\\":\\"Text\\",\\"props\\":{\\"style\\":[{\\"flex\\":1,\\"fontSize\\":17,\\"textAlign\\":\\"left\\",\\"backgroundColor\\":\\"transparent\\",\\"fontFamily\\":\\"Inter\\",\\"fontWeight\\":\\"500\\"},null,{\\"color\\":\\"#0d0e12\\"}],\\"ellipsizeMode\\":\\"tail\\",\\"numberOfLines\\":1},\\"children\\":[\\"rocket.cat\\"]},{\\"type\\":\\"View\\",\\"props\\":{\\"style\\":{\\"alignItems\\":\\"flex-end\\"}},\\"children\\":[{\\"type\\":\\"Text\\",\\"props\\":{\\"style\\":[{\\"fontSize\\":13,\\"marginLeft\\":4,\\"textAlign\\":\\"left\\",\\"backgroundColor\\":\\"transparent\\",\\"fontFamily\\":\\"Inter\\",\\"fontWeight\\":\\"400\\"},{\\"color\\":\\"#9ca2a8\\"},null],\\"ellipsizeMode\\":\\"tail\\",\\"numberOfLines\\":1},\\"children\\":[\\"10:00\\"]}]}]}]}]}]}]}]},{\\"type\\":\\"View\\",\\"props\\":{},\\"children\\":[{\\"type\\":\\"View\\",\\"props\\":{},\\"children\\":[{\\"type\\":\\"View\\",\\"props\\":{\\"style\\":[{\\"position\\":\\"absolute\\",\\"left\\":0,\\"right\\":0,\\"height\\":150},{\\"flexDirection\\":\\"row\\",\\"position\\":\\"absolute\\",\\"left\\":0,\\"right\\":0,\\"height\\":150}],\\"pointerEvents\\":\\"box-none\\"},\\"children\\":[{\\"type\\":\\"View\\",\\"props\\":{\\"style\\":[{\\"position\\":\\"absolute\\",\\"height\\":150,\\"justifyContent\\":\\"center\\",\\"top\\":0,\\"right\\":0},{\\"width\\":1500,\\"backgroundColor\\":\\"#1d74f5\\",\\"right\\":\\"100%\\"},null,{\\"transform\\":[{\\"translateX\\":0}]}]},\\"children\\":[{\\"type\\":\\"View\\",\\"props\\":{\\"style\\":[{\\"position\\":\\"absolute\\",\\"height\\":150,\\"justifyContent\\":\\"center\\",\\"top\\":0,\\"right\\":0},null]},\\"children\\":[{\\"type\\":\\"Text\\",\\"props\\":{\\"selectable\\":false,\\"allowFontScaling\\":false,\\"style\\":[{\\"fontSize\\":28,\\"color\\":\\"#ffffff\\"},null,{\\"fontFamily\\":\\"custom\\",\\"fontWeight\\":\\"normal\\",\\"fontStyle\\":\\"normal\\"},{}]},\\"children\\":[\\"\\"]}]}]}]},{\\"type\\":\\"View\\",\\"props\\":{\\"style\\":[{\\"flexDirection\\":\\"row\\",\\"position\\":\\"absolute\\",\\"left\\":0,\\"right\\":0,\\"height\\":150},null],\\"pointerEvents\\":\\"box-none\\"},\\"children\\":[{\\"type\\":\\"View\\",\\"props\\":{\\"style\\":[{\\"position\\":\\"absolute\\",\\"height\\":150,\\"justifyContent\\":\\"center\\",\\"top\\":0},{\\"width\\":750,\\"backgroundColor\\":\\"#ffbb00\\",\\"left\\":\\"100%\\"},null,{\\"transform\\":[{\\"translateX\\":0}]}]},\\"children\\":[{\\"type\\":\\"Text\\",\\"props\\":{\\"selectable\\":false,\\"allowFontScaling\\":false,\\"style\\":[{\\"fontSize\\":28,\\"color\\":\\"#ffffff\\"},null,{\\"fontFamily\\":\\"custom\\",\\"fontWeight\\":\\"normal\\",\\"fontStyle\\":\\"normal\\"},{}]},\\"children\\":[\\"\\"]}]},{\\"type\\":\\"View\\",\\"props\\":{\\"style\\":[{\\"position\\":\\"absolute\\",\\"height\\":150,\\"justifyContent\\":\\"center\\",\\"top\\":0},{\\"width\\":1500,\\"backgroundColor\\":\\"#54585e\\",\\"left\\":\\"100%\\"},false,{\\"transform\\":[{\\"translateX\\":80}]}]},\\"children\\":[{\\"type\\":\\"Text\\",\\"props\\":{\\"selectable\\":false,\\"allowFontScaling\\":false,\\"style\\":[{\\"fontSize\\":28,\\"color\\":\\"#ffffff\\"},null,{\\"fontFamily\\":\\"custom\\",\\"fontWeight\\":\\"normal\\",\\"fontStyle\\":\\"normal\\"},{}]},\\"children\\":[\\"\\"]}]}]},{\\"type\\":\\"View\\",\\"props\\":{\\"style\\":{\\"transform\\":[{\\"translateX\\":0}]}},\\"children\\":[{\\"type\\":\\"View\\",\\"props\\":{\\"style\\":[{\\"flexDirection\\":\\"row\\",\\"alignItems\\":\\"center\\",\\"paddingLeft\\":14,\\"height\\":150},false]},\\"children\\":[{\\"type\\":\\"View\\",\\"props\\":{\\"style\\":[{\\"width\\":48,\\"height\\":48,\\"borderRadius\\":4},{\\"marginRight\\":10}],\\"testID\\":\\"avatar\\"},\\"children\\":[{\\"type\\":\\"View\\",\\"props\\":{\\"style\\":[{\\"overflow\\":\\"hidden\\"},{\\"width\\":48,\\"height\\":48,\\"borderRadius\\":4}]},\\"children\\":[{\\"type\\":\\"FastImageView\\",\\"props\\":{\\"style\\":{\\"position\\":\\"absolute\\",\\"left\\":0,\\"right\\":0,\\"top\\":0,\\"bottom\\":0},\\"source\\":{\\"uri\\":\\"https://open.rocket.chat/avatar/rocket.cat?format=png&size=96\\",\\"headers\\":{\\"User-Agent\\":\\"RC Mobile; ios unknown; vunknown (unknown)\\"},\\"priority\\":\\"high\\"},\\"resizeMode\\":\\"cover\\"},\\"children\\":null}]}]},{\\"type\\":\\"View\\",\\"props\\":{\\"style\\":[{\\"flex\\":1,\\"paddingVertical\\":10,\\"paddingRight\\":14,\\"borderBottomWidth\\":0.5},{\\"borderColor\\":\\"#cbcbcc\\"}]},\\"children\\":[{\\"type\\":\\"View\\",\\"props\\":{\\"style\\":[{\\"width\\":\\"100%\\",\\"flexDirection\\":\\"row\\",\\"alignItems\\":\\"center\\",\\"justifyContent\\":\\"center\\"},{\\"flex\\":1}]},\\"children\\":[{\\"type\\":\\"Text\\",\\"props\\":{\\"selectable\\":false,\\"allowFontScaling\\":false,\\"style\\":[{\\"fontSize\\":22,\\"color\\":\\"#cbced1\\"},[{\\"width\\":22,\\"height\\":22,\\"textAlignVertical\\":\\"center\\"},[[{\\"marginRight\\":4},{\\"color\\":\\"#0d0e12\\"},{\\"marginRight\\":8}],{}]],{\\"fontFamily\\":\\"custom\\",\\"fontWeight\\":\\"normal\\",\\"fontStyle\\":\\"normal\\"},{}]},\\"children\\":[\\"\\"]},{\\"type\\":\\"Text\\",\\"props\\":{\\"style\\":[{\\"flex\\":1,\\"fontSize\\":17,\\"textAlign\\":\\"left\\",\\"backgroundColor\\":\\"transparent\\",\\"fontFamily\\":\\"Inter\\",\\"fontWeight\\":\\"500\\"},null,{\\"color\\":\\"#0d0e12\\"}],\\"ellipsizeMode\\":\\"tail\\",\\"numberOfLines\\":1},\\"children\\":[\\"rocket.cat\\"]},{\\"type\\":\\"View\\",\\"props\\":{\\"style\\":{\\"alignItems\\":\\"flex-end\\"}},\\"children\\":[{\\"type\\":\\"Text\\",\\"props\\":{\\"style\\":[{\\"fontSize\\":13,\\"marginLeft\\":4,\\"textAlign\\":\\"left\\",\\"backgroundColor\\":\\"transparent\\",\\"fontFamily\\":\\"Inter\\",\\"fontWeight\\":\\"400\\"},{\\"color\\":\\"#9ca2a8\\"},null],\\"ellipsizeMode\\":\\"tail\\",\\"numberOfLines\\":1},\\"children\\":[\\"10:00\\"]}]}]}]}]}]}]}]}]"`;
+exports[`Storyshots RoomItem User Status 1`] = `"[{\\"type\\":\\"View\\",\\"props\\":{},\\"children\\":[{\\"type\\":\\"View\\",\\"props\\":{},\\"children\\":[{\\"type\\":\\"View\\",\\"props\\":{\\"style\\":[{\\"position\\":\\"absolute\\",\\"left\\":0,\\"right\\":0,\\"height\\":150},{\\"flexDirection\\":\\"row\\",\\"position\\":\\"absolute\\",\\"left\\":0,\\"right\\":0,\\"height\\":150}],\\"pointerEvents\\":\\"box-none\\"},\\"children\\":[{\\"type\\":\\"View\\",\\"props\\":{\\"style\\":[{\\"position\\":\\"absolute\\",\\"height\\":150,\\"justifyContent\\":\\"center\\",\\"top\\":0,\\"right\\":0},{\\"width\\":1500,\\"backgroundColor\\":\\"#1d74f5\\",\\"right\\":\\"100%\\"},null,{\\"transform\\":[{\\"translateX\\":0}]}]},\\"children\\":[{\\"type\\":\\"View\\",\\"props\\":{\\"style\\":[{\\"position\\":\\"absolute\\",\\"height\\":150,\\"justifyContent\\":\\"center\\",\\"top\\":0,\\"right\\":0},null]},\\"children\\":[{\\"type\\":\\"Text\\",\\"props\\":{\\"selectable\\":false,\\"allowFontScaling\\":false,\\"style\\":[{\\"fontSize\\":28,\\"color\\":\\"#ffffff\\"},null,{\\"fontFamily\\":\\"custom\\",\\"fontWeight\\":\\"normal\\",\\"fontStyle\\":\\"normal\\"},{}]},\\"children\\":[\\"\\"]}]}]}]},{\\"type\\":\\"View\\",\\"props\\":{\\"style\\":[{\\"flexDirection\\":\\"row\\",\\"position\\":\\"absolute\\",\\"left\\":0,\\"right\\":0,\\"height\\":150},null],\\"pointerEvents\\":\\"box-none\\"},\\"children\\":[{\\"type\\":\\"View\\",\\"props\\":{\\"style\\":[{\\"position\\":\\"absolute\\",\\"height\\":150,\\"justifyContent\\":\\"center\\",\\"top\\":0},{\\"width\\":750,\\"backgroundColor\\":\\"#ffbb00\\",\\"left\\":\\"100%\\"},null,{\\"transform\\":[{\\"translateX\\":0}]}]},\\"children\\":[{\\"type\\":\\"Text\\",\\"props\\":{\\"selectable\\":false,\\"allowFontScaling\\":false,\\"style\\":[{\\"fontSize\\":28,\\"color\\":\\"#ffffff\\"},null,{\\"fontFamily\\":\\"custom\\",\\"fontWeight\\":\\"normal\\",\\"fontStyle\\":\\"normal\\"},{}]},\\"children\\":[\\"\\"]}]},{\\"type\\":\\"View\\",\\"props\\":{\\"style\\":[{\\"position\\":\\"absolute\\",\\"height\\":150,\\"justifyContent\\":\\"center\\",\\"top\\":0},{\\"width\\":1500,\\"backgroundColor\\":\\"#54585e\\",\\"left\\":\\"100%\\"},false,{\\"transform\\":[{\\"translateX\\":80}]}]},\\"children\\":[{\\"type\\":\\"Text\\",\\"props\\":{\\"selectable\\":false,\\"allowFontScaling\\":false,\\"style\\":[{\\"fontSize\\":28,\\"color\\":\\"#ffffff\\"},null,{\\"fontFamily\\":\\"custom\\",\\"fontWeight\\":\\"normal\\",\\"fontStyle\\":\\"normal\\"},{}]},\\"children\\":[\\"\\"]}]}]},{\\"type\\":\\"View\\",\\"props\\":{\\"style\\":{\\"transform\\":[{\\"translateX\\":0}]}},\\"children\\":[{\\"type\\":\\"View\\",\\"props\\":{\\"style\\":[{\\"flexDirection\\":\\"row\\",\\"alignItems\\":\\"center\\",\\"paddingLeft\\":14,\\"height\\":150},false]},\\"children\\":[{\\"type\\":\\"View\\",\\"props\\":{\\"style\\":[{\\"width\\":48,\\"height\\":48,\\"borderRadius\\":4},{\\"marginRight\\":10}],\\"testID\\":\\"avatar\\"},\\"children\\":[{\\"type\\":\\"View\\",\\"props\\":{\\"style\\":[{\\"overflow\\":\\"hidden\\"},{\\"width\\":48,\\"height\\":48,\\"borderRadius\\":4}]},\\"children\\":[{\\"type\\":\\"FastImageView\\",\\"props\\":{\\"style\\":{\\"position\\":\\"absolute\\",\\"left\\":0,\\"right\\":0,\\"top\\":0,\\"bottom\\":0},\\"source\\":{\\"uri\\":\\"https://open.rocket.chat/avatar/rocket.cat?format=png&size=96\\",\\"headers\\":{\\"User-Agent\\":\\"RC Mobile; ios unknown; vunknown (unknown)\\"},\\"priority\\":\\"high\\"},\\"resizeMode\\":\\"cover\\"},\\"children\\":null}]}]},{\\"type\\":\\"View\\",\\"props\\":{\\"style\\":[{\\"flex\\":1,\\"paddingVertical\\":10,\\"paddingRight\\":14,\\"borderBottomWidth\\":0.5},{\\"borderColor\\":\\"#cbcbcc\\"}]},\\"children\\":[{\\"type\\":\\"View\\",\\"props\\":{\\"style\\":[{\\"width\\":\\"100%\\",\\"flexDirection\\":\\"row\\",\\"alignItems\\":\\"center\\",\\"justifyContent\\":\\"center\\"},{\\"flex\\":1}]},\\"children\\":[{\\"type\\":\\"Text\\",\\"props\\":{\\"selectable\\":false,\\"allowFontScaling\\":false,\\"style\\":[{\\"fontSize\\":22,\\"color\\":\\"#2de0a5\\"},[{\\"width\\":22,\\"height\\":22,\\"textAlignVertical\\":\\"center\\"},[[{\\"marginRight\\":4},{\\"color\\":\\"#0d0e12\\"},{\\"marginRight\\":8}],{\\"color\\":\\"#2de0a5\\"}]],{\\"fontFamily\\":\\"custom\\",\\"fontWeight\\":\\"normal\\",\\"fontStyle\\":\\"normal\\"},{}]},\\"children\\":[\\"\\"]},{\\"type\\":\\"Text\\",\\"props\\":{\\"style\\":[{\\"flex\\":1,\\"fontSize\\":17,\\"textAlign\\":\\"left\\",\\"backgroundColor\\":\\"transparent\\",\\"fontFamily\\":\\"Inter\\",\\"fontWeight\\":\\"500\\"},null,{\\"color\\":\\"#0d0e12\\"}],\\"ellipsizeMode\\":\\"tail\\",\\"numberOfLines\\":1},\\"children\\":[\\"rocket.cat\\"]},{\\"type\\":\\"View\\",\\"props\\":{\\"style\\":{\\"alignItems\\":\\"flex-end\\"}},\\"children\\":[{\\"type\\":\\"Text\\",\\"props\\":{\\"style\\":[{\\"fontSize\\":13,\\"marginLeft\\":4,\\"textAlign\\":\\"left\\",\\"backgroundColor\\":\\"transparent\\",\\"fontFamily\\":\\"Inter\\",\\"fontWeight\\":\\"400\\"},{\\"color\\":\\"#9ca2a8\\"},null],\\"ellipsizeMode\\":\\"tail\\",\\"numberOfLines\\":1},\\"children\\":[\\"10:00\\"]}]}]}]}]}]}]}]},{\\"type\\":\\"View\\",\\"props\\":{},\\"children\\":[{\\"type\\":\\"View\\",\\"props\\":{},\\"children\\":[{\\"type\\":\\"View\\",\\"props\\":{\\"style\\":[{\\"position\\":\\"absolute\\",\\"left\\":0,\\"right\\":0,\\"height\\":150},{\\"flexDirection\\":\\"row\\",\\"position\\":\\"absolute\\",\\"left\\":0,\\"right\\":0,\\"height\\":150}],\\"pointerEvents\\":\\"box-none\\"},\\"children\\":[{\\"type\\":\\"View\\",\\"props\\":{\\"style\\":[{\\"position\\":\\"absolute\\",\\"height\\":150,\\"justifyContent\\":\\"center\\",\\"top\\":0,\\"right\\":0},{\\"width\\":1500,\\"backgroundColor\\":\\"#1d74f5\\",\\"right\\":\\"100%\\"},null,{\\"transform\\":[{\\"translateX\\":0}]}]},\\"children\\":[{\\"type\\":\\"View\\",\\"props\\":{\\"style\\":[{\\"position\\":\\"absolute\\",\\"height\\":150,\\"justifyContent\\":\\"center\\",\\"top\\":0,\\"right\\":0},null]},\\"children\\":[{\\"type\\":\\"Text\\",\\"props\\":{\\"selectable\\":false,\\"allowFontScaling\\":false,\\"style\\":[{\\"fontSize\\":28,\\"color\\":\\"#ffffff\\"},null,{\\"fontFamily\\":\\"custom\\",\\"fontWeight\\":\\"normal\\",\\"fontStyle\\":\\"normal\\"},{}]},\\"children\\":[\\"\\"]}]}]}]},{\\"type\\":\\"View\\",\\"props\\":{\\"style\\":[{\\"flexDirection\\":\\"row\\",\\"position\\":\\"absolute\\",\\"left\\":0,\\"right\\":0,\\"height\\":150},null],\\"pointerEvents\\":\\"box-none\\"},\\"children\\":[{\\"type\\":\\"View\\",\\"props\\":{\\"style\\":[{\\"position\\":\\"absolute\\",\\"height\\":150,\\"justifyContent\\":\\"center\\",\\"top\\":0},{\\"width\\":750,\\"backgroundColor\\":\\"#ffbb00\\",\\"left\\":\\"100%\\"},null,{\\"transform\\":[{\\"translateX\\":0}]}]},\\"children\\":[{\\"type\\":\\"Text\\",\\"props\\":{\\"selectable\\":false,\\"allowFontScaling\\":false,\\"style\\":[{\\"fontSize\\":28,\\"color\\":\\"#ffffff\\"},null,{\\"fontFamily\\":\\"custom\\",\\"fontWeight\\":\\"normal\\",\\"fontStyle\\":\\"normal\\"},{}]},\\"children\\":[\\"\\"]}]},{\\"type\\":\\"View\\",\\"props\\":{\\"style\\":[{\\"position\\":\\"absolute\\",\\"height\\":150,\\"justifyContent\\":\\"center\\",\\"top\\":0},{\\"width\\":1500,\\"backgroundColor\\":\\"#54585e\\",\\"left\\":\\"100%\\"},false,{\\"transform\\":[{\\"translateX\\":80}]}]},\\"children\\":[{\\"type\\":\\"Text\\",\\"props\\":{\\"selectable\\":false,\\"allowFontScaling\\":false,\\"style\\":[{\\"fontSize\\":28,\\"color\\":\\"#ffffff\\"},null,{\\"fontFamily\\":\\"custom\\",\\"fontWeight\\":\\"normal\\",\\"fontStyle\\":\\"normal\\"},{}]},\\"children\\":[\\"\\"]}]}]},{\\"type\\":\\"View\\",\\"props\\":{\\"style\\":{\\"transform\\":[{\\"translateX\\":0}]}},\\"children\\":[{\\"type\\":\\"View\\",\\"props\\":{\\"style\\":[{\\"flexDirection\\":\\"row\\",\\"alignItems\\":\\"center\\",\\"paddingLeft\\":14,\\"height\\":150},false]},\\"children\\":[{\\"type\\":\\"View\\",\\"props\\":{\\"style\\":[{\\"width\\":48,\\"height\\":48,\\"borderRadius\\":4},{\\"marginRight\\":10}],\\"testID\\":\\"avatar\\"},\\"children\\":[{\\"type\\":\\"View\\",\\"props\\":{\\"style\\":[{\\"overflow\\":\\"hidden\\"},{\\"width\\":48,\\"height\\":48,\\"borderRadius\\":4}]},\\"children\\":[{\\"type\\":\\"FastImageView\\",\\"props\\":{\\"style\\":{\\"position\\":\\"absolute\\",\\"left\\":0,\\"right\\":0,\\"top\\":0,\\"bottom\\":0},\\"source\\":{\\"uri\\":\\"https://open.rocket.chat/avatar/rocket.cat?format=png&size=96\\",\\"headers\\":{\\"User-Agent\\":\\"RC Mobile; ios unknown; vunknown (unknown)\\"},\\"priority\\":\\"high\\"},\\"resizeMode\\":\\"cover\\"},\\"children\\":null}]}]},{\\"type\\":\\"View\\",\\"props\\":{\\"style\\":[{\\"flex\\":1,\\"paddingVertical\\":10,\\"paddingRight\\":14,\\"borderBottomWidth\\":0.5},{\\"borderColor\\":\\"#cbcbcc\\"}]},\\"children\\":[{\\"type\\":\\"View\\",\\"props\\":{\\"style\\":[{\\"width\\":\\"100%\\",\\"flexDirection\\":\\"row\\",\\"alignItems\\":\\"center\\",\\"justifyContent\\":\\"center\\"},{\\"flex\\":1}]},\\"children\\":[{\\"type\\":\\"Text\\",\\"props\\":{\\"selectable\\":false,\\"allowFontScaling\\":false,\\"style\\":[{\\"fontSize\\":22,\\"color\\":\\"#ffd21f\\"},[{\\"width\\":22,\\"height\\":22,\\"textAlignVertical\\":\\"center\\"},[[{\\"marginRight\\":4},{\\"color\\":\\"#0d0e12\\"},{\\"marginRight\\":8}],{\\"color\\":\\"#ffd21f\\"}]],{\\"fontFamily\\":\\"custom\\",\\"fontWeight\\":\\"normal\\",\\"fontStyle\\":\\"normal\\"},{}]},\\"children\\":[\\"\\"]},{\\"type\\":\\"Text\\",\\"props\\":{\\"style\\":[{\\"flex\\":1,\\"fontSize\\":17,\\"textAlign\\":\\"left\\",\\"backgroundColor\\":\\"transparent\\",\\"fontFamily\\":\\"Inter\\",\\"fontWeight\\":\\"500\\"},null,{\\"color\\":\\"#0d0e12\\"}],\\"ellipsizeMode\\":\\"tail\\",\\"numberOfLines\\":1},\\"children\\":[\\"rocket.cat\\"]},{\\"type\\":\\"View\\",\\"props\\":{\\"style\\":{\\"alignItems\\":\\"flex-end\\"}},\\"children\\":[{\\"type\\":\\"Text\\",\\"props\\":{\\"style\\":[{\\"fontSize\\":13,\\"marginLeft\\":4,\\"textAlign\\":\\"left\\",\\"backgroundColor\\":\\"transparent\\",\\"fontFamily\\":\\"Inter\\",\\"fontWeight\\":\\"400\\"},{\\"color\\":\\"#9ca2a8\\"},null],\\"ellipsizeMode\\":\\"tail\\",\\"numberOfLines\\":1},\\"children\\":[\\"10:00\\"]}]}]}]}]}]}]}]},{\\"type\\":\\"View\\",\\"props\\":{},\\"children\\":[{\\"type\\":\\"View\\",\\"props\\":{},\\"children\\":[{\\"type\\":\\"View\\",\\"props\\":{\\"style\\":[{\\"position\\":\\"absolute\\",\\"left\\":0,\\"right\\":0,\\"height\\":150},{\\"flexDirection\\":\\"row\\",\\"position\\":\\"absolute\\",\\"left\\":0,\\"right\\":0,\\"height\\":150}],\\"pointerEvents\\":\\"box-none\\"},\\"children\\":[{\\"type\\":\\"View\\",\\"props\\":{\\"style\\":[{\\"position\\":\\"absolute\\",\\"height\\":150,\\"justifyContent\\":\\"center\\",\\"top\\":0,\\"right\\":0},{\\"width\\":1500,\\"backgroundColor\\":\\"#1d74f5\\",\\"right\\":\\"100%\\"},null,{\\"transform\\":[{\\"translateX\\":0}]}]},\\"children\\":[{\\"type\\":\\"View\\",\\"props\\":{\\"style\\":[{\\"position\\":\\"absolute\\",\\"height\\":150,\\"justifyContent\\":\\"center\\",\\"top\\":0,\\"right\\":0},null]},\\"children\\":[{\\"type\\":\\"Text\\",\\"props\\":{\\"selectable\\":false,\\"allowFontScaling\\":false,\\"style\\":[{\\"fontSize\\":28,\\"color\\":\\"#ffffff\\"},null,{\\"fontFamily\\":\\"custom\\",\\"fontWeight\\":\\"normal\\",\\"fontStyle\\":\\"normal\\"},{}]},\\"children\\":[\\"\\"]}]}]}]},{\\"type\\":\\"View\\",\\"props\\":{\\"style\\":[{\\"flexDirection\\":\\"row\\",\\"position\\":\\"absolute\\",\\"left\\":0,\\"right\\":0,\\"height\\":150},null],\\"pointerEvents\\":\\"box-none\\"},\\"children\\":[{\\"type\\":\\"View\\",\\"props\\":{\\"style\\":[{\\"position\\":\\"absolute\\",\\"height\\":150,\\"justifyContent\\":\\"center\\",\\"top\\":0},{\\"width\\":750,\\"backgroundColor\\":\\"#ffbb00\\",\\"left\\":\\"100%\\"},null,{\\"transform\\":[{\\"translateX\\":0}]}]},\\"children\\":[{\\"type\\":\\"Text\\",\\"props\\":{\\"selectable\\":false,\\"allowFontScaling\\":false,\\"style\\":[{\\"fontSize\\":28,\\"color\\":\\"#ffffff\\"},null,{\\"fontFamily\\":\\"custom\\",\\"fontWeight\\":\\"normal\\",\\"fontStyle\\":\\"normal\\"},{}]},\\"children\\":[\\"\\"]}]},{\\"type\\":\\"View\\",\\"props\\":{\\"style\\":[{\\"position\\":\\"absolute\\",\\"height\\":150,\\"justifyContent\\":\\"center\\",\\"top\\":0},{\\"width\\":1500,\\"backgroundColor\\":\\"#54585e\\",\\"left\\":\\"100%\\"},false,{\\"transform\\":[{\\"translateX\\":80}]}]},\\"children\\":[{\\"type\\":\\"Text\\",\\"props\\":{\\"selectable\\":false,\\"allowFontScaling\\":false,\\"style\\":[{\\"fontSize\\":28,\\"color\\":\\"#ffffff\\"},null,{\\"fontFamily\\":\\"custom\\",\\"fontWeight\\":\\"normal\\",\\"fontStyle\\":\\"normal\\"},{}]},\\"children\\":[\\"\\"]}]}]},{\\"type\\":\\"View\\",\\"props\\":{\\"style\\":{\\"transform\\":[{\\"translateX\\":0}]}},\\"children\\":[{\\"type\\":\\"View\\",\\"props\\":{\\"style\\":[{\\"flexDirection\\":\\"row\\",\\"alignItems\\":\\"center\\",\\"paddingLeft\\":14,\\"height\\":150},false]},\\"children\\":[{\\"type\\":\\"View\\",\\"props\\":{\\"style\\":[{\\"width\\":48,\\"height\\":48,\\"borderRadius\\":4},{\\"marginRight\\":10}],\\"testID\\":\\"avatar\\"},\\"children\\":[{\\"type\\":\\"View\\",\\"props\\":{\\"style\\":[{\\"overflow\\":\\"hidden\\"},{\\"width\\":48,\\"height\\":48,\\"borderRadius\\":4}]},\\"children\\":[{\\"type\\":\\"FastImageView\\",\\"props\\":{\\"style\\":{\\"position\\":\\"absolute\\",\\"left\\":0,\\"right\\":0,\\"top\\":0,\\"bottom\\":0},\\"source\\":{\\"uri\\":\\"https://open.rocket.chat/avatar/rocket.cat?format=png&size=96\\",\\"headers\\":{\\"User-Agent\\":\\"RC Mobile; ios unknown; vunknown (unknown)\\"},\\"priority\\":\\"high\\"},\\"resizeMode\\":\\"cover\\"},\\"children\\":null}]}]},{\\"type\\":\\"View\\",\\"props\\":{\\"style\\":[{\\"flex\\":1,\\"paddingVertical\\":10,\\"paddingRight\\":14,\\"borderBottomWidth\\":0.5},{\\"borderColor\\":\\"#cbcbcc\\"}]},\\"children\\":[{\\"type\\":\\"View\\",\\"props\\":{\\"style\\":[{\\"width\\":\\"100%\\",\\"flexDirection\\":\\"row\\",\\"alignItems\\":\\"center\\",\\"justifyContent\\":\\"center\\"},{\\"flex\\":1}]},\\"children\\":[{\\"type\\":\\"Text\\",\\"props\\":{\\"selectable\\":false,\\"allowFontScaling\\":false,\\"style\\":[{\\"fontSize\\":22,\\"color\\":\\"#f5455c\\"},[{\\"width\\":22,\\"height\\":22,\\"textAlignVertical\\":\\"center\\"},[[{\\"marginRight\\":4},{\\"color\\":\\"#0d0e12\\"},{\\"marginRight\\":8}],{\\"color\\":\\"#f5455c\\"}]],{\\"fontFamily\\":\\"custom\\",\\"fontWeight\\":\\"normal\\",\\"fontStyle\\":\\"normal\\"},{}]},\\"children\\":[\\"\\"]},{\\"type\\":\\"Text\\",\\"props\\":{\\"style\\":[{\\"flex\\":1,\\"fontSize\\":17,\\"textAlign\\":\\"left\\",\\"backgroundColor\\":\\"transparent\\",\\"fontFamily\\":\\"Inter\\",\\"fontWeight\\":\\"500\\"},null,{\\"color\\":\\"#0d0e12\\"}],\\"ellipsizeMode\\":\\"tail\\",\\"numberOfLines\\":1},\\"children\\":[\\"rocket.cat\\"]},{\\"type\\":\\"View\\",\\"props\\":{\\"style\\":{\\"alignItems\\":\\"flex-end\\"}},\\"children\\":[{\\"type\\":\\"Text\\",\\"props\\":{\\"style\\":[{\\"fontSize\\":13,\\"marginLeft\\":4,\\"textAlign\\":\\"left\\",\\"backgroundColor\\":\\"transparent\\",\\"fontFamily\\":\\"Inter\\",\\"fontWeight\\":\\"400\\"},{\\"color\\":\\"#9ca2a8\\"},null],\\"ellipsizeMode\\":\\"tail\\",\\"numberOfLines\\":1},\\"children\\":[\\"10:00\\"]}]}]}]}]}]}]}]},{\\"type\\":\\"View\\",\\"props\\":{},\\"children\\":[{\\"type\\":\\"View\\",\\"props\\":{},\\"children\\":[{\\"type\\":\\"View\\",\\"props\\":{\\"style\\":[{\\"position\\":\\"absolute\\",\\"left\\":0,\\"right\\":0,\\"height\\":150},{\\"flexDirection\\":\\"row\\",\\"position\\":\\"absolute\\",\\"left\\":0,\\"right\\":0,\\"height\\":150}],\\"pointerEvents\\":\\"box-none\\"},\\"children\\":[{\\"type\\":\\"View\\",\\"props\\":{\\"style\\":[{\\"position\\":\\"absolute\\",\\"height\\":150,\\"justifyContent\\":\\"center\\",\\"top\\":0,\\"right\\":0},{\\"width\\":1500,\\"backgroundColor\\":\\"#1d74f5\\",\\"right\\":\\"100%\\"},null,{\\"transform\\":[{\\"translateX\\":0}]}]},\\"children\\":[{\\"type\\":\\"View\\",\\"props\\":{\\"style\\":[{\\"position\\":\\"absolute\\",\\"height\\":150,\\"justifyContent\\":\\"center\\",\\"top\\":0,\\"right\\":0},null]},\\"children\\":[{\\"type\\":\\"Text\\",\\"props\\":{\\"selectable\\":false,\\"allowFontScaling\\":false,\\"style\\":[{\\"fontSize\\":28,\\"color\\":\\"#ffffff\\"},null,{\\"fontFamily\\":\\"custom\\",\\"fontWeight\\":\\"normal\\",\\"fontStyle\\":\\"normal\\"},{}]},\\"children\\":[\\"\\"]}]}]}]},{\\"type\\":\\"View\\",\\"props\\":{\\"style\\":[{\\"flexDirection\\":\\"row\\",\\"position\\":\\"absolute\\",\\"left\\":0,\\"right\\":0,\\"height\\":150},null],\\"pointerEvents\\":\\"box-none\\"},\\"children\\":[{\\"type\\":\\"View\\",\\"props\\":{\\"style\\":[{\\"position\\":\\"absolute\\",\\"height\\":150,\\"justifyContent\\":\\"center\\",\\"top\\":0},{\\"width\\":750,\\"backgroundColor\\":\\"#ffbb00\\",\\"left\\":\\"100%\\"},null,{\\"transform\\":[{\\"translateX\\":0}]}]},\\"children\\":[{\\"type\\":\\"Text\\",\\"props\\":{\\"selectable\\":false,\\"allowFontScaling\\":false,\\"style\\":[{\\"fontSize\\":28,\\"color\\":\\"#ffffff\\"},null,{\\"fontFamily\\":\\"custom\\",\\"fontWeight\\":\\"normal\\",\\"fontStyle\\":\\"normal\\"},{}]},\\"children\\":[\\"\\"]}]},{\\"type\\":\\"View\\",\\"props\\":{\\"style\\":[{\\"position\\":\\"absolute\\",\\"height\\":150,\\"justifyContent\\":\\"center\\",\\"top\\":0},{\\"width\\":1500,\\"backgroundColor\\":\\"#54585e\\",\\"left\\":\\"100%\\"},false,{\\"transform\\":[{\\"translateX\\":80}]}]},\\"children\\":[{\\"type\\":\\"Text\\",\\"props\\":{\\"selectable\\":false,\\"allowFontScaling\\":false,\\"style\\":[{\\"fontSize\\":28,\\"color\\":\\"#ffffff\\"},null,{\\"fontFamily\\":\\"custom\\",\\"fontWeight\\":\\"normal\\",\\"fontStyle\\":\\"normal\\"},{}]},\\"children\\":[\\"\\"]}]}]},{\\"type\\":\\"View\\",\\"props\\":{\\"style\\":{\\"transform\\":[{\\"translateX\\":0}]}},\\"children\\":[{\\"type\\":\\"View\\",\\"props\\":{\\"style\\":[{\\"flexDirection\\":\\"row\\",\\"alignItems\\":\\"center\\",\\"paddingLeft\\":14,\\"height\\":150},false]},\\"children\\":[{\\"type\\":\\"View\\",\\"props\\":{\\"style\\":[{\\"width\\":48,\\"height\\":48,\\"borderRadius\\":4},{\\"marginRight\\":10}],\\"testID\\":\\"avatar\\"},\\"children\\":[{\\"type\\":\\"View\\",\\"props\\":{\\"style\\":[{\\"overflow\\":\\"hidden\\"},{\\"width\\":48,\\"height\\":48,\\"borderRadius\\":4}]},\\"children\\":[{\\"type\\":\\"FastImageView\\",\\"props\\":{\\"style\\":{\\"position\\":\\"absolute\\",\\"left\\":0,\\"right\\":0,\\"top\\":0,\\"bottom\\":0},\\"source\\":{\\"uri\\":\\"https://open.rocket.chat/avatar/rocket.cat?format=png&size=96\\",\\"headers\\":{\\"User-Agent\\":\\"RC Mobile; ios unknown; vunknown (unknown)\\"},\\"priority\\":\\"high\\"},\\"resizeMode\\":\\"cover\\"},\\"children\\":null}]}]},{\\"type\\":\\"View\\",\\"props\\":{\\"style\\":[{\\"flex\\":1,\\"paddingVertical\\":10,\\"paddingRight\\":14,\\"borderBottomWidth\\":0.5},{\\"borderColor\\":\\"#cbcbcc\\"}]},\\"children\\":[{\\"type\\":\\"View\\",\\"props\\":{\\"style\\":[{\\"width\\":\\"100%\\",\\"flexDirection\\":\\"row\\",\\"alignItems\\":\\"center\\",\\"justifyContent\\":\\"center\\"},{\\"flex\\":1}]},\\"children\\":[{\\"type\\":\\"Text\\",\\"props\\":{\\"selectable\\":false,\\"allowFontScaling\\":false,\\"style\\":[{\\"fontSize\\":22,\\"color\\":\\"#cbced1\\"},[{\\"width\\":22,\\"height\\":22,\\"textAlignVertical\\":\\"center\\"},[[{\\"marginRight\\":4},{\\"color\\":\\"#0d0e12\\"},{\\"marginRight\\":8}],{\\"color\\":\\"#cbced1\\"}]],{\\"fontFamily\\":\\"custom\\",\\"fontWeight\\":\\"normal\\",\\"fontStyle\\":\\"normal\\"},{}]},\\"children\\":[\\"\\"]},{\\"type\\":\\"Text\\",\\"props\\":{\\"style\\":[{\\"flex\\":1,\\"fontSize\\":17,\\"textAlign\\":\\"left\\",\\"backgroundColor\\":\\"transparent\\",\\"fontFamily\\":\\"Inter\\",\\"fontWeight\\":\\"500\\"},null,{\\"color\\":\\"#0d0e12\\"}],\\"ellipsizeMode\\":\\"tail\\",\\"numberOfLines\\":1},\\"children\\":[\\"rocket.cat\\"]},{\\"type\\":\\"View\\",\\"props\\":{\\"style\\":{\\"alignItems\\":\\"flex-end\\"}},\\"children\\":[{\\"type\\":\\"Text\\",\\"props\\":{\\"style\\":[{\\"fontSize\\":13,\\"marginLeft\\":4,\\"textAlign\\":\\"left\\",\\"backgroundColor\\":\\"transparent\\",\\"fontFamily\\":\\"Inter\\",\\"fontWeight\\":\\"400\\"},{\\"color\\":\\"#9ca2a8\\"},null],\\"ellipsizeMode\\":\\"tail\\",\\"numberOfLines\\":1},\\"children\\":[\\"10:00\\"]}]}]}]}]}]}]}]},{\\"type\\":\\"View\\",\\"props\\":{},\\"children\\":[{\\"type\\":\\"View\\",\\"props\\":{},\\"children\\":[{\\"type\\":\\"View\\",\\"props\\":{\\"style\\":[{\\"position\\":\\"absolute\\",\\"left\\":0,\\"right\\":0,\\"height\\":150},{\\"flexDirection\\":\\"row\\",\\"position\\":\\"absolute\\",\\"left\\":0,\\"right\\":0,\\"height\\":150}],\\"pointerEvents\\":\\"box-none\\"},\\"children\\":[{\\"type\\":\\"View\\",\\"props\\":{\\"style\\":[{\\"position\\":\\"absolute\\",\\"height\\":150,\\"justifyContent\\":\\"center\\",\\"top\\":0,\\"right\\":0},{\\"width\\":1500,\\"backgroundColor\\":\\"#1d74f5\\",\\"right\\":\\"100%\\"},null,{\\"transform\\":[{\\"translateX\\":0}]}]},\\"children\\":[{\\"type\\":\\"View\\",\\"props\\":{\\"style\\":[{\\"position\\":\\"absolute\\",\\"height\\":150,\\"justifyContent\\":\\"center\\",\\"top\\":0,\\"right\\":0},null]},\\"children\\":[{\\"type\\":\\"Text\\",\\"props\\":{\\"selectable\\":false,\\"allowFontScaling\\":false,\\"style\\":[{\\"fontSize\\":28,\\"color\\":\\"#ffffff\\"},null,{\\"fontFamily\\":\\"custom\\",\\"fontWeight\\":\\"normal\\",\\"fontStyle\\":\\"normal\\"},{}]},\\"children\\":[\\"\\"]}]}]}]},{\\"type\\":\\"View\\",\\"props\\":{\\"style\\":[{\\"flexDirection\\":\\"row\\",\\"position\\":\\"absolute\\",\\"left\\":0,\\"right\\":0,\\"height\\":150},null],\\"pointerEvents\\":\\"box-none\\"},\\"children\\":[{\\"type\\":\\"View\\",\\"props\\":{\\"style\\":[{\\"position\\":\\"absolute\\",\\"height\\":150,\\"justifyContent\\":\\"center\\",\\"top\\":0},{\\"width\\":750,\\"backgroundColor\\":\\"#ffbb00\\",\\"left\\":\\"100%\\"},null,{\\"transform\\":[{\\"translateX\\":0}]}]},\\"children\\":[{\\"type\\":\\"Text\\",\\"props\\":{\\"selectable\\":false,\\"allowFontScaling\\":false,\\"style\\":[{\\"fontSize\\":28,\\"color\\":\\"#ffffff\\"},null,{\\"fontFamily\\":\\"custom\\",\\"fontWeight\\":\\"normal\\",\\"fontStyle\\":\\"normal\\"},{}]},\\"children\\":[\\"\\"]}]},{\\"type\\":\\"View\\",\\"props\\":{\\"style\\":[{\\"position\\":\\"absolute\\",\\"height\\":150,\\"justifyContent\\":\\"center\\",\\"top\\":0},{\\"width\\":1500,\\"backgroundColor\\":\\"#54585e\\",\\"left\\":\\"100%\\"},false,{\\"transform\\":[{\\"translateX\\":80}]}]},\\"children\\":[{\\"type\\":\\"Text\\",\\"props\\":{\\"selectable\\":false,\\"allowFontScaling\\":false,\\"style\\":[{\\"fontSize\\":28,\\"color\\":\\"#ffffff\\"},null,{\\"fontFamily\\":\\"custom\\",\\"fontWeight\\":\\"normal\\",\\"fontStyle\\":\\"normal\\"},{}]},\\"children\\":[\\"\\"]}]}]},{\\"type\\":\\"View\\",\\"props\\":{\\"style\\":{\\"transform\\":[{\\"translateX\\":0}]}},\\"children\\":[{\\"type\\":\\"View\\",\\"props\\":{\\"style\\":[{\\"flexDirection\\":\\"row\\",\\"alignItems\\":\\"center\\",\\"paddingLeft\\":14,\\"height\\":150},false]},\\"children\\":[{\\"type\\":\\"View\\",\\"props\\":{\\"style\\":[{\\"width\\":48,\\"height\\":48,\\"borderRadius\\":4},{\\"marginRight\\":10}],\\"testID\\":\\"avatar\\"},\\"children\\":[{\\"type\\":\\"View\\",\\"props\\":{\\"style\\":[{\\"overflow\\":\\"hidden\\"},{\\"width\\":48,\\"height\\":48,\\"borderRadius\\":4}]},\\"children\\":[{\\"type\\":\\"FastImageView\\",\\"props\\":{\\"style\\":{\\"position\\":\\"absolute\\",\\"left\\":0,\\"right\\":0,\\"top\\":0,\\"bottom\\":0},\\"source\\":{\\"uri\\":\\"https://open.rocket.chat/avatar/rocket.cat?format=png&size=96\\",\\"headers\\":{\\"User-Agent\\":\\"RC Mobile; ios unknown; vunknown (unknown)\\"},\\"priority\\":\\"high\\"},\\"resizeMode\\":\\"cover\\"},\\"children\\":null}]}]},{\\"type\\":\\"View\\",\\"props\\":{\\"style\\":[{\\"flex\\":1,\\"paddingVertical\\":10,\\"paddingRight\\":14,\\"borderBottomWidth\\":0.5},{\\"borderColor\\":\\"#cbcbcc\\"}]},\\"children\\":[{\\"type\\":\\"View\\",\\"props\\":{\\"style\\":[{\\"width\\":\\"100%\\",\\"flexDirection\\":\\"row\\",\\"alignItems\\":\\"center\\",\\"justifyContent\\":\\"center\\"},{\\"flex\\":1}]},\\"children\\":[{\\"type\\":\\"Text\\",\\"props\\":{\\"selectable\\":false,\\"allowFontScaling\\":false,\\"style\\":[{\\"fontSize\\":22,\\"color\\":\\"#9ea2a8\\"},[{\\"width\\":22,\\"height\\":22,\\"textAlignVertical\\":\\"center\\"},[[{\\"marginRight\\":4},{\\"color\\":\\"#0d0e12\\"},{\\"marginRight\\":8}],{\\"color\\":\\"#9ea2a8\\"}]],{\\"fontFamily\\":\\"custom\\",\\"fontWeight\\":\\"normal\\",\\"fontStyle\\":\\"normal\\"},{}]},\\"children\\":[\\"\\"]},{\\"type\\":\\"Text\\",\\"props\\":{\\"style\\":[{\\"flex\\":1,\\"fontSize\\":17,\\"textAlign\\":\\"left\\",\\"backgroundColor\\":\\"transparent\\",\\"fontFamily\\":\\"Inter\\",\\"fontWeight\\":\\"500\\"},null,{\\"color\\":\\"#0d0e12\\"}],\\"ellipsizeMode\\":\\"tail\\",\\"numberOfLines\\":1},\\"children\\":[\\"rocket.cat\\"]},{\\"type\\":\\"View\\",\\"props\\":{\\"style\\":{\\"alignItems\\":\\"flex-end\\"}},\\"children\\":[{\\"type\\":\\"Text\\",\\"props\\":{\\"style\\":[{\\"fontSize\\":13,\\"marginLeft\\":4,\\"textAlign\\":\\"left\\",\\"backgroundColor\\":\\"transparent\\",\\"fontFamily\\":\\"Inter\\",\\"fontWeight\\":\\"400\\"},{\\"color\\":\\"#9ca2a8\\"},null],\\"ellipsizeMode\\":\\"tail\\",\\"numberOfLines\\":1},\\"children\\":[\\"10:00\\"]}]}]}]}]}]}]}]},{\\"type\\":\\"View\\",\\"props\\":{},\\"children\\":[{\\"type\\":\\"View\\",\\"props\\":{},\\"children\\":[{\\"type\\":\\"View\\",\\"props\\":{\\"style\\":[{\\"position\\":\\"absolute\\",\\"left\\":0,\\"right\\":0,\\"height\\":150},{\\"flexDirection\\":\\"row\\",\\"position\\":\\"absolute\\",\\"left\\":0,\\"right\\":0,\\"height\\":150}],\\"pointerEvents\\":\\"box-none\\"},\\"children\\":[{\\"type\\":\\"View\\",\\"props\\":{\\"style\\":[{\\"position\\":\\"absolute\\",\\"height\\":150,\\"justifyContent\\":\\"center\\",\\"top\\":0,\\"right\\":0},{\\"width\\":1500,\\"backgroundColor\\":\\"#1d74f5\\",\\"right\\":\\"100%\\"},null,{\\"transform\\":[{\\"translateX\\":0}]}]},\\"children\\":[{\\"type\\":\\"View\\",\\"props\\":{\\"style\\":[{\\"position\\":\\"absolute\\",\\"height\\":150,\\"justifyContent\\":\\"center\\",\\"top\\":0,\\"right\\":0},null]},\\"children\\":[{\\"type\\":\\"Text\\",\\"props\\":{\\"selectable\\":false,\\"allowFontScaling\\":false,\\"style\\":[{\\"fontSize\\":28,\\"color\\":\\"#ffffff\\"},null,{\\"fontFamily\\":\\"custom\\",\\"fontWeight\\":\\"normal\\",\\"fontStyle\\":\\"normal\\"},{}]},\\"children\\":[\\"\\"]}]}]}]},{\\"type\\":\\"View\\",\\"props\\":{\\"style\\":[{\\"flexDirection\\":\\"row\\",\\"position\\":\\"absolute\\",\\"left\\":0,\\"right\\":0,\\"height\\":150},null],\\"pointerEvents\\":\\"box-none\\"},\\"children\\":[{\\"type\\":\\"View\\",\\"props\\":{\\"style\\":[{\\"position\\":\\"absolute\\",\\"height\\":150,\\"justifyContent\\":\\"center\\",\\"top\\":0},{\\"width\\":750,\\"backgroundColor\\":\\"#ffbb00\\",\\"left\\":\\"100%\\"},null,{\\"transform\\":[{\\"translateX\\":0}]}]},\\"children\\":[{\\"type\\":\\"Text\\",\\"props\\":{\\"selectable\\":false,\\"allowFontScaling\\":false,\\"style\\":[{\\"fontSize\\":28,\\"color\\":\\"#ffffff\\"},null,{\\"fontFamily\\":\\"custom\\",\\"fontWeight\\":\\"normal\\",\\"fontStyle\\":\\"normal\\"},{}]},\\"children\\":[\\"\\"]}]},{\\"type\\":\\"View\\",\\"props\\":{\\"style\\":[{\\"position\\":\\"absolute\\",\\"height\\":150,\\"justifyContent\\":\\"center\\",\\"top\\":0},{\\"width\\":1500,\\"backgroundColor\\":\\"#54585e\\",\\"left\\":\\"100%\\"},false,{\\"transform\\":[{\\"translateX\\":80}]}]},\\"children\\":[{\\"type\\":\\"Text\\",\\"props\\":{\\"selectable\\":false,\\"allowFontScaling\\":false,\\"style\\":[{\\"fontSize\\":28,\\"color\\":\\"#ffffff\\"},null,{\\"fontFamily\\":\\"custom\\",\\"fontWeight\\":\\"normal\\",\\"fontStyle\\":\\"normal\\"},{}]},\\"children\\":[\\"\\"]}]}]},{\\"type\\":\\"View\\",\\"props\\":{\\"style\\":{\\"transform\\":[{\\"translateX\\":0}]}},\\"children\\":[{\\"type\\":\\"View\\",\\"props\\":{\\"style\\":[{\\"flexDirection\\":\\"row\\",\\"alignItems\\":\\"center\\",\\"paddingLeft\\":14,\\"height\\":150},false]},\\"children\\":[{\\"type\\":\\"View\\",\\"props\\":{\\"style\\":[{\\"width\\":48,\\"height\\":48,\\"borderRadius\\":4},{\\"marginRight\\":10}],\\"testID\\":\\"avatar\\"},\\"children\\":[{\\"type\\":\\"View\\",\\"props\\":{\\"style\\":[{\\"overflow\\":\\"hidden\\"},{\\"width\\":48,\\"height\\":48,\\"borderRadius\\":4}]},\\"children\\":[{\\"type\\":\\"FastImageView\\",\\"props\\":{\\"style\\":{\\"position\\":\\"absolute\\",\\"left\\":0,\\"right\\":0,\\"top\\":0,\\"bottom\\":0},\\"source\\":{\\"uri\\":\\"https://open.rocket.chat/avatar/rocket.cat?format=png&size=96\\",\\"headers\\":{\\"User-Agent\\":\\"RC Mobile; ios unknown; vunknown (unknown)\\"},\\"priority\\":\\"high\\"},\\"resizeMode\\":\\"cover\\"},\\"children\\":null}]}]},{\\"type\\":\\"View\\",\\"props\\":{\\"style\\":[{\\"flex\\":1,\\"paddingVertical\\":10,\\"paddingRight\\":14,\\"borderBottomWidth\\":0.5},{\\"borderColor\\":\\"#cbcbcc\\"}]},\\"children\\":[{\\"type\\":\\"View\\",\\"props\\":{\\"style\\":[{\\"width\\":\\"100%\\",\\"flexDirection\\":\\"row\\",\\"alignItems\\":\\"center\\",\\"justifyContent\\":\\"center\\"},{\\"flex\\":1}]},\\"children\\":[{\\"type\\":\\"Text\\",\\"props\\":{\\"selectable\\":false,\\"allowFontScaling\\":false,\\"style\\":[{\\"fontSize\\":22,\\"color\\":\\"#F38C39\\"},[{\\"width\\":22,\\"height\\":22,\\"textAlignVertical\\":\\"center\\"},[[{\\"marginRight\\":4},{\\"color\\":\\"#0d0e12\\"},{\\"marginRight\\":8}],{\\"color\\":\\"#F38C39\\"}]],{\\"fontFamily\\":\\"custom\\",\\"fontWeight\\":\\"normal\\",\\"fontStyle\\":\\"normal\\"},{}]},\\"children\\":[\\"\\"]},{\\"type\\":\\"Text\\",\\"props\\":{\\"style\\":[{\\"flex\\":1,\\"fontSize\\":17,\\"textAlign\\":\\"left\\",\\"backgroundColor\\":\\"transparent\\",\\"fontFamily\\":\\"Inter\\",\\"fontWeight\\":\\"500\\"},null,{\\"color\\":\\"#0d0e12\\"}],\\"ellipsizeMode\\":\\"tail\\",\\"numberOfLines\\":1},\\"children\\":[\\"rocket.cat\\"]},{\\"type\\":\\"View\\",\\"props\\":{\\"style\\":{\\"alignItems\\":\\"flex-end\\"}},\\"children\\":[{\\"type\\":\\"Text\\",\\"props\\":{\\"style\\":[{\\"fontSize\\":13,\\"marginLeft\\":4,\\"textAlign\\":\\"left\\",\\"backgroundColor\\":\\"transparent\\",\\"fontFamily\\":\\"Inter\\",\\"fontWeight\\":\\"400\\"},{\\"color\\":\\"#9ca2a8\\"},null],\\"ellipsizeMode\\":\\"tail\\",\\"numberOfLines\\":1},\\"children\\":[\\"10:00\\"]}]}]}]}]}]}]}]},{\\"type\\":\\"View\\",\\"props\\":{},\\"children\\":[{\\"type\\":\\"View\\",\\"props\\":{},\\"children\\":[{\\"type\\":\\"View\\",\\"props\\":{\\"style\\":[{\\"position\\":\\"absolute\\",\\"left\\":0,\\"right\\":0,\\"height\\":150},{\\"flexDirection\\":\\"row\\",\\"position\\":\\"absolute\\",\\"left\\":0,\\"right\\":0,\\"height\\":150}],\\"pointerEvents\\":\\"box-none\\"},\\"children\\":[{\\"type\\":\\"View\\",\\"props\\":{\\"style\\":[{\\"position\\":\\"absolute\\",\\"height\\":150,\\"justifyContent\\":\\"center\\",\\"top\\":0,\\"right\\":0},{\\"width\\":1500,\\"backgroundColor\\":\\"#1d74f5\\",\\"right\\":\\"100%\\"},null,{\\"transform\\":[{\\"translateX\\":0}]}]},\\"children\\":[{\\"type\\":\\"View\\",\\"props\\":{\\"style\\":[{\\"position\\":\\"absolute\\",\\"height\\":150,\\"justifyContent\\":\\"center\\",\\"top\\":0,\\"right\\":0},null]},\\"children\\":[{\\"type\\":\\"Text\\",\\"props\\":{\\"selectable\\":false,\\"allowFontScaling\\":false,\\"style\\":[{\\"fontSize\\":28,\\"color\\":\\"#ffffff\\"},null,{\\"fontFamily\\":\\"custom\\",\\"fontWeight\\":\\"normal\\",\\"fontStyle\\":\\"normal\\"},{}]},\\"children\\":[\\"\\"]}]}]}]},{\\"type\\":\\"View\\",\\"props\\":{\\"style\\":[{\\"flexDirection\\":\\"row\\",\\"position\\":\\"absolute\\",\\"left\\":0,\\"right\\":0,\\"height\\":150},null],\\"pointerEvents\\":\\"box-none\\"},\\"children\\":[{\\"type\\":\\"View\\",\\"props\\":{\\"style\\":[{\\"position\\":\\"absolute\\",\\"height\\":150,\\"justifyContent\\":\\"center\\",\\"top\\":0},{\\"width\\":750,\\"backgroundColor\\":\\"#ffbb00\\",\\"left\\":\\"100%\\"},null,{\\"transform\\":[{\\"translateX\\":0}]}]},\\"children\\":[{\\"type\\":\\"Text\\",\\"props\\":{\\"selectable\\":false,\\"allowFontScaling\\":false,\\"style\\":[{\\"fontSize\\":28,\\"color\\":\\"#ffffff\\"},null,{\\"fontFamily\\":\\"custom\\",\\"fontWeight\\":\\"normal\\",\\"fontStyle\\":\\"normal\\"},{}]},\\"children\\":[\\"\\"]}]},{\\"type\\":\\"View\\",\\"props\\":{\\"style\\":[{\\"position\\":\\"absolute\\",\\"height\\":150,\\"justifyContent\\":\\"center\\",\\"top\\":0},{\\"width\\":1500,\\"backgroundColor\\":\\"#54585e\\",\\"left\\":\\"100%\\"},false,{\\"transform\\":[{\\"translateX\\":80}]}]},\\"children\\":[{\\"type\\":\\"Text\\",\\"props\\":{\\"selectable\\":false,\\"allowFontScaling\\":false,\\"style\\":[{\\"fontSize\\":28,\\"color\\":\\"#ffffff\\"},null,{\\"fontFamily\\":\\"custom\\",\\"fontWeight\\":\\"normal\\",\\"fontStyle\\":\\"normal\\"},{}]},\\"children\\":[\\"\\"]}]}]},{\\"type\\":\\"View\\",\\"props\\":{\\"style\\":{\\"transform\\":[{\\"translateX\\":0}]}},\\"children\\":[{\\"type\\":\\"View\\",\\"props\\":{\\"style\\":[{\\"flexDirection\\":\\"row\\",\\"alignItems\\":\\"center\\",\\"paddingLeft\\":14,\\"height\\":150},false]},\\"children\\":[{\\"type\\":\\"View\\",\\"props\\":{\\"style\\":[{\\"width\\":48,\\"height\\":48,\\"borderRadius\\":4},{\\"marginRight\\":10}],\\"testID\\":\\"avatar\\"},\\"children\\":[{\\"type\\":\\"View\\",\\"props\\":{\\"style\\":[{\\"overflow\\":\\"hidden\\"},{\\"width\\":48,\\"height\\":48,\\"borderRadius\\":4}]},\\"children\\":[{\\"type\\":\\"FastImageView\\",\\"props\\":{\\"style\\":{\\"position\\":\\"absolute\\",\\"left\\":0,\\"right\\":0,\\"top\\":0,\\"bottom\\":0},\\"source\\":{\\"uri\\":\\"https://open.rocket.chat/avatar/rocket.cat?format=png&size=96\\",\\"headers\\":{\\"User-Agent\\":\\"RC Mobile; ios unknown; vunknown (unknown)\\"},\\"priority\\":\\"high\\"},\\"resizeMode\\":\\"cover\\"},\\"children\\":null}]}]},{\\"type\\":\\"View\\",\\"props\\":{\\"style\\":[{\\"flex\\":1,\\"paddingVertical\\":10,\\"paddingRight\\":14,\\"borderBottomWidth\\":0.5},{\\"borderColor\\":\\"#cbcbcc\\"}]},\\"children\\":[{\\"type\\":\\"View\\",\\"props\\":{\\"style\\":[{\\"width\\":\\"100%\\",\\"flexDirection\\":\\"row\\",\\"alignItems\\":\\"center\\",\\"justifyContent\\":\\"center\\"},{\\"flex\\":1}]},\\"children\\":[{\\"type\\":\\"Text\\",\\"props\\":{\\"selectable\\":false,\\"allowFontScaling\\":false,\\"style\\":[{\\"fontSize\\":22,\\"color\\":\\"#cbced1\\"},[{\\"width\\":22,\\"height\\":22,\\"textAlignVertical\\":\\"center\\"},[[{\\"marginRight\\":4},{\\"color\\":\\"#0d0e12\\"},{\\"marginRight\\":8}],{}]],{\\"fontFamily\\":\\"custom\\",\\"fontWeight\\":\\"normal\\",\\"fontStyle\\":\\"normal\\"},{}]},\\"children\\":[\\"\\"]},{\\"type\\":\\"Text\\",\\"props\\":{\\"style\\":[{\\"flex\\":1,\\"fontSize\\":17,\\"textAlign\\":\\"left\\",\\"backgroundColor\\":\\"transparent\\",\\"fontFamily\\":\\"Inter\\",\\"fontWeight\\":\\"500\\"},null,{\\"color\\":\\"#0d0e12\\"}],\\"ellipsizeMode\\":\\"tail\\",\\"numberOfLines\\":1},\\"children\\":[\\"rocket.cat\\"]},{\\"type\\":\\"View\\",\\"props\\":{\\"style\\":{\\"alignItems\\":\\"flex-end\\"}},\\"children\\":[{\\"type\\":\\"Text\\",\\"props\\":{\\"style\\":[{\\"fontSize\\":13,\\"marginLeft\\":4,\\"textAlign\\":\\"left\\",\\"backgroundColor\\":\\"transparent\\",\\"fontFamily\\":\\"Inter\\",\\"fontWeight\\":\\"400\\"},{\\"color\\":\\"#9ca2a8\\"},null],\\"ellipsizeMode\\":\\"tail\\",\\"numberOfLines\\":1},\\"children\\":[\\"10:00\\"]}]}]}]}]}]}]}]}]"`;
diff --git a/__tests__/containers/markdown/new/__snapshots__/NewMarkdown.stories.storyshot b/__tests__/containers/markdown/new/__snapshots__/NewMarkdown.stories.storyshot
index 70328abba..f03b2fc4d 100644
--- a/__tests__/containers/markdown/new/__snapshots__/NewMarkdown.stories.storyshot
+++ b/__tests__/containers/markdown/new/__snapshots__/NewMarkdown.stories.storyshot
@@ -16,7 +16,7 @@ exports[`Storyshots NewMarkdown Katex 1`] = `"{\\"type\\":\\"View\\",\\"props\\"
exports[`Storyshots NewMarkdown Links 1`] = `"{\\"type\\":\\"View\\",\\"props\\":{\\"style\\":{\\"marginHorizontal\\":15,\\"backgroundColor\\":\\"#ffffff\\",\\"marginVertical\\":50}},\\"children\\":[{\\"type\\":\\"Text\\",\\"props\\":{\\"style\\":[{\\"fontSize\\":16,\\"textAlign\\":\\"left\\",\\"backgroundColor\\":\\"transparent\\",\\"fontFamily\\":\\"Inter\\",\\"fontWeight\\":\\"400\\"},{\\"color\\":\\"#2f343d\\"}]},\\"children\\":[{\\"type\\":\\"Text\\",\\"props\\":{\\"style\\":{\\"flexShrink\\":1}},\\"children\\":[{\\"type\\":\\"Text\\",\\"props\\":{\\"style\\":[{\\"fontSize\\":16,\\"textAlign\\":\\"left\\",\\"backgroundColor\\":\\"transparent\\",\\"fontFamily\\":\\"Inter\\",\\"fontWeight\\":\\"400\\"},{\\"color\\":\\"#1d74f5\\"}]},\\"children\\":[\\"Markdown link\\"]}]}]},{\\"type\\":\\"Text\\",\\"props\\":{\\"style\\":[{\\"fontSize\\":16,\\"textAlign\\":\\"left\\",\\"backgroundColor\\":\\"transparent\\",\\"fontFamily\\":\\"Inter\\",\\"fontWeight\\":\\"400\\"},{\\"color\\":\\"#2f343d\\"}]},\\"children\\":[{\\"type\\":\\"Text\\",\\"props\\":{\\"style\\":{\\"flexShrink\\":1}},\\"children\\":[{\\"type\\":\\"Text\\",\\"props\\":{\\"style\\":[{\\"fontSize\\":16,\\"textAlign\\":\\"left\\",\\"backgroundColor\\":\\"transparent\\",\\"fontFamily\\":\\"Inter\\",\\"fontWeight\\":\\"400\\"},{\\"color\\":\\"#1d74f5\\"}]},\\"children\\":[\\"Normal Link - \\",{\\"type\\":\\"Text\\",\\"props\\":{\\"style\\":{\\"textAlign\\":\\"left\\",\\"backgroundColor\\":\\"transparent\\",\\"fontFamily\\":\\"Inter\\",\\"fontWeight\\":\\"700\\"}},\\"children\\":[{\\"type\\":\\"Text\\",\\"props\\":{\\"accessibilityLabel\\":\\"Bold\\",\\"style\\":{\\"fontSize\\":16,\\"flexShrink\\":1}},\\"children\\":[\\"Bold\\"]}]},\\" \\",{\\"type\\":\\"Text\\",\\"props\\":{\\"style\\":{\\"textDecorationLine\\":\\"line-through\\"}},\\"children\\":[{\\"type\\":\\"Text\\",\\"props\\":{\\"accessibilityLabel\\":\\"strike\\",\\"style\\":{\\"fontSize\\":16,\\"flexShrink\\":1}},\\"children\\":[\\"strike\\"]}]},\\" and \\",{\\"type\\":\\"Text\\",\\"props\\":{\\"style\\":{\\"fontStyle\\":\\"italic\\"}},\\"children\\":[{\\"type\\":\\"Text\\",\\"props\\":{\\"accessibilityLabel\\":\\"Italic\\",\\"style\\":{\\"fontSize\\":16,\\"flexShrink\\":1}},\\"children\\":[\\"Italic\\"]}]},\\" Styles\\"]}]}]}]}"`;
-exports[`Storyshots NewMarkdown Lists 1`] = `"{\\"type\\":\\"View\\",\\"props\\":{\\"style\\":{\\"marginHorizontal\\":15,\\"backgroundColor\\":\\"#ffffff\\",\\"marginVertical\\":50}},\\"children\\":[{\\"type\\":\\"View\\",\\"props\\":{},\\"children\\":[{\\"type\\":\\"View\\",\\"props\\":{\\"style\\":{\\"flexDirection\\":\\"row\\"}},\\"children\\":[{\\"type\\":\\"Text\\",\\"props\\":{\\"style\\":[{\\"fontSize\\":16,\\"textAlign\\":\\"left\\",\\"backgroundColor\\":\\"transparent\\",\\"fontFamily\\":\\"Inter\\",\\"fontWeight\\":\\"400\\"},{\\"color\\":\\"#2f343d\\"}]},\\"children\\":[\\"- \\"]},{\\"type\\":\\"Text\\",\\"props\\":{\\"style\\":{\\"color\\":\\"#2f343d\\"}},\\"children\\":[{\\"type\\":\\"Text\\",\\"props\\":{\\"style\\":{\\"flexShrink\\":1}},\\"children\\":[{\\"type\\":\\"Text\\",\\"props\\":{\\"accessibilityLabel\\":\\"Plain text \\",\\"style\\":{\\"fontSize\\":16,\\"flexShrink\\":1}},\\"children\\":[\\"Plain text \\"]},{\\"type\\":\\"Text\\",\\"props\\":{\\"style\\":[{\\"color\\":\\"#2f343d\\"},{\\"fontSize\\":16,\\"textAlign\\":\\"left\\",\\"backgroundColor\\":\\"transparent\\",\\"fontFamily\\":\\"Inter\\",\\"fontWeight\\":\\"400\\"}]},\\"children\\":[\\"💡\\"]},{\\"type\\":\\"Text\\",\\"props\\":{\\"style\\":{\\"fontStyle\\":\\"italic\\"}},\\"children\\":[{\\"type\\":\\"Text\\",\\"props\\":{\\"accessibilityLabel\\":\\" italic \\",\\"style\\":{\\"fontSize\\":16,\\"flexShrink\\":1}},\\"children\\":[\\" italic \\"]}]},{\\"type\\":\\"Text\\",\\"props\\":{\\"style\\":{\\"textAlign\\":\\"left\\",\\"backgroundColor\\":\\"transparent\\",\\"fontFamily\\":\\"Inter\\",\\"fontWeight\\":\\"700\\"}},\\"children\\":[{\\"type\\":\\"Text\\",\\"props\\":{\\"accessibilityLabel\\":\\" bold \\",\\"style\\":{\\"fontSize\\":16,\\"flexShrink\\":1}},\\"children\\":[\\" bold \\"]}]},{\\"type\\":\\"Text\\",\\"props\\":{\\"style\\":{\\"textDecorationLine\\":\\"line-through\\"}},\\"children\\":[{\\"type\\":\\"Text\\",\\"props\\":{\\"accessibilityLabel\\":\\" strike \\",\\"style\\":{\\"fontSize\\":16,\\"flexShrink\\":1}},\\"children\\":[\\" strike \\"]}]},{\\"type\\":\\"Text\\",\\"props\\":{\\"style\\":[{\\"fontSize\\":16,\\"textAlign\\":\\"left\\",\\"backgroundColor\\":\\"transparent\\",\\"fontFamily\\":\\"Inter\\",\\"fontWeight\\":\\"600\\"},{\\"color\\":\\"#F3BE08\\"}]},\\"children\\":[\\"#general\\"]},{\\"type\\":\\"Text\\",\\"props\\":{\\"style\\":[{\\"fontSize\\":16,\\"textAlign\\":\\"left\\",\\"backgroundColor\\":\\"transparent\\",\\"fontFamily\\":\\"Inter\\",\\"fontWeight\\":\\"400\\"},{\\"color\\":\\"#1d74f5\\"}]},\\"children\\":[\\" link \\"]},{\\"type\\":\\"Text\\",\\"props\\":{\\"style\\":[{\\"fontSize\\":16,\\"textAlign\\":\\"left\\",\\"backgroundColor\\":\\"transparent\\",\\"fontFamily\\":\\"Inter\\",\\"fontWeight\\":\\"600\\"},{\\"color\\":\\"#F5455C\\"}]},\\"children\\":[\\"rocket.cat\\"]},{\\"type\\":\\"Text\\",\\"props\\":{\\"style\\":[{\\"fontSize\\":16,\\"textAlign\\":\\"left\\",\\"backgroundColor\\":\\"transparent\\",\\"fontFamily\\":\\"Courier New\\",\\"fontWeight\\":\\"400\\",\\"borderWidth\\":1,\\"borderRadius\\":4,\\"paddingLeft\\":2,\\"paddingTop\\":2},{\\"color\\":\\"#2f343d\\",\\"backgroundColor\\":\\"#f1f2f4\\",\\"borderColor\\":\\"#e1e5e8\\"}]},\\"children\\":[{\\"type\\":\\"Text\\",\\"props\\":{},\\"children\\":[\\" inline code\\"]}]}]}]}]},{\\"type\\":\\"View\\",\\"props\\":{\\"style\\":{\\"flexDirection\\":\\"row\\"}},\\"children\\":[{\\"type\\":\\"Text\\",\\"props\\":{\\"style\\":[{\\"fontSize\\":16,\\"textAlign\\":\\"left\\",\\"backgroundColor\\":\\"transparent\\",\\"fontFamily\\":\\"Inter\\",\\"fontWeight\\":\\"400\\"},{\\"color\\":\\"#2f343d\\"}]},\\"children\\":[\\"- \\"]},{\\"type\\":\\"Text\\",\\"props\\":{\\"style\\":{\\"color\\":\\"#2f343d\\"}},\\"children\\":[{\\"type\\":\\"Text\\",\\"props\\":{\\"style\\":{\\"flexShrink\\":1}},\\"children\\":[{\\"type\\":\\"Text\\",\\"props\\":{\\"accessibilityLabel\\":\\"Lorem Ipsum is simply dummy text of the printing and typesetting industry. Lorem Ipsum has been the industrys standard dummy text ever since the 1500s, when an unknown printer took a galley of type and scrambled it to make a type specimen book. It has survived not only five centuries\\",\\"style\\":{\\"fontSize\\":16,\\"flexShrink\\":1}},\\"children\\":[\\"Lorem Ipsum is simply dummy text of the printing and typesetting industry. Lorem Ipsum has been the industrys standard dummy text ever since the 1500s, when an unknown printer took a galley of type and scrambled it to make a type specimen book. It has survived not only five centuries\\"]}]}]}]}]},{\\"type\\":\\"View\\",\\"props\\":{},\\"children\\":[{\\"type\\":\\"View\\",\\"props\\":{\\"style\\":{\\"flexDirection\\":\\"row\\"}},\\"children\\":[{\\"type\\":\\"Text\\",\\"props\\":{\\"style\\":[{\\"fontSize\\":16,\\"textAlign\\":\\"left\\",\\"backgroundColor\\":\\"transparent\\",\\"fontFamily\\":\\"Inter\\",\\"fontWeight\\":\\"400\\"},{\\"color\\":\\"#2f343d\\"}]},\\"children\\":[\\". \\"]},{\\"type\\":\\"Text\\",\\"props\\":{\\"style\\":{\\"color\\":\\"#2f343d\\"}},\\"children\\":[{\\"type\\":\\"Text\\",\\"props\\":{\\"style\\":{\\"flexShrink\\":1}},\\"children\\":[{\\"type\\":\\"Text\\",\\"props\\":{\\"accessibilityLabel\\":\\"Plain text \\",\\"style\\":{\\"fontSize\\":16,\\"flexShrink\\":1}},\\"children\\":[\\"Plain text \\"]},{\\"type\\":\\"Text\\",\\"props\\":{\\"style\\":[{\\"color\\":\\"#2f343d\\"},{\\"fontSize\\":16,\\"textAlign\\":\\"left\\",\\"backgroundColor\\":\\"transparent\\",\\"fontFamily\\":\\"Inter\\",\\"fontWeight\\":\\"400\\"}]},\\"children\\":[\\"💡\\"]},{\\"type\\":\\"Text\\",\\"props\\":{\\"style\\":{\\"fontStyle\\":\\"italic\\"}},\\"children\\":[{\\"type\\":\\"Text\\",\\"props\\":{\\"accessibilityLabel\\":\\" italic \\",\\"style\\":{\\"fontSize\\":16,\\"flexShrink\\":1}},\\"children\\":[\\" italic \\"]}]},{\\"type\\":\\"Text\\",\\"props\\":{\\"style\\":{\\"textAlign\\":\\"left\\",\\"backgroundColor\\":\\"transparent\\",\\"fontFamily\\":\\"Inter\\",\\"fontWeight\\":\\"700\\"}},\\"children\\":[{\\"type\\":\\"Text\\",\\"props\\":{\\"accessibilityLabel\\":\\" bold \\",\\"style\\":{\\"fontSize\\":16,\\"flexShrink\\":1}},\\"children\\":[\\" bold \\"]}]},{\\"type\\":\\"Text\\",\\"props\\":{\\"style\\":{\\"textDecorationLine\\":\\"line-through\\"}},\\"children\\":[{\\"type\\":\\"Text\\",\\"props\\":{\\"accessibilityLabel\\":\\" strike \\",\\"style\\":{\\"fontSize\\":16,\\"flexShrink\\":1}},\\"children\\":[\\" strike \\"]}]},{\\"type\\":\\"Text\\",\\"props\\":{\\"style\\":[{\\"fontSize\\":16,\\"textAlign\\":\\"left\\",\\"backgroundColor\\":\\"transparent\\",\\"fontFamily\\":\\"Inter\\",\\"fontWeight\\":\\"600\\"},{\\"color\\":\\"#F3BE08\\"}]},\\"children\\":[\\"#general\\"]},{\\"type\\":\\"Text\\",\\"props\\":{\\"style\\":[{\\"fontSize\\":16,\\"textAlign\\":\\"left\\",\\"backgroundColor\\":\\"transparent\\",\\"fontFamily\\":\\"Inter\\",\\"fontWeight\\":\\"400\\"},{\\"color\\":\\"#1d74f5\\"}]},\\"children\\":[\\" link \\"]},{\\"type\\":\\"Text\\",\\"props\\":{\\"style\\":[{\\"fontSize\\":16,\\"textAlign\\":\\"left\\",\\"backgroundColor\\":\\"transparent\\",\\"fontFamily\\":\\"Inter\\",\\"fontWeight\\":\\"600\\"},{\\"color\\":\\"#F5455C\\"}]},\\"children\\":[\\"rocket.cat\\"]},{\\"type\\":\\"Text\\",\\"props\\":{\\"style\\":[{\\"fontSize\\":16,\\"textAlign\\":\\"left\\",\\"backgroundColor\\":\\"transparent\\",\\"fontFamily\\":\\"Courier New\\",\\"fontWeight\\":\\"400\\",\\"borderWidth\\":1,\\"borderRadius\\":4,\\"paddingLeft\\":2,\\"paddingTop\\":2},{\\"color\\":\\"#2f343d\\",\\"backgroundColor\\":\\"#f1f2f4\\",\\"borderColor\\":\\"#e1e5e8\\"}]},\\"children\\":[{\\"type\\":\\"Text\\",\\"props\\":{},\\"children\\":[\\" inline code\\"]}]}]}]}]},{\\"type\\":\\"View\\",\\"props\\":{\\"style\\":{\\"flexDirection\\":\\"row\\"}},\\"children\\":[{\\"type\\":\\"Text\\",\\"props\\":{\\"style\\":[{\\"fontSize\\":16,\\"textAlign\\":\\"left\\",\\"backgroundColor\\":\\"transparent\\",\\"fontFamily\\":\\"Inter\\",\\"fontWeight\\":\\"400\\"},{\\"color\\":\\"#2f343d\\"}]},\\"children\\":[\\". \\"]},{\\"type\\":\\"Text\\",\\"props\\":{\\"style\\":{\\"color\\":\\"#2f343d\\"}},\\"children\\":[{\\"type\\":\\"Text\\",\\"props\\":{\\"style\\":{\\"flexShrink\\":1}},\\"children\\":[{\\"type\\":\\"Text\\",\\"props\\":{\\"accessibilityLabel\\":\\"Lorem Ipsum is simply dummy text of the printing and typesetting industry. Lorem Ipsum has been the industrys standard dummy text ever since the 1500s, when an unknown printer took a galley of type and scrambled it to make a type specimen book. It has survived not only five centuries\\",\\"style\\":{\\"fontSize\\":16,\\"flexShrink\\":1}},\\"children\\":[\\"Lorem Ipsum is simply dummy text of the printing and typesetting industry. Lorem Ipsum has been the industrys standard dummy text ever since the 1500s, when an unknown printer took a galley of type and scrambled it to make a type specimen book. It has survived not only five centuries\\"]}]}]}]}]},{\\"type\\":\\"View\\",\\"props\\":{},\\"children\\":[{\\"type\\":\\"View\\",\\"props\\":{\\"style\\":{\\"flexDirection\\":\\"row\\"}},\\"children\\":[{\\"type\\":\\"Text\\",\\"props\\":{\\"style\\":[{\\"fontSize\\":16,\\"textAlign\\":\\"left\\",\\"backgroundColor\\":\\"transparent\\",\\"fontFamily\\":\\"Inter\\",\\"fontWeight\\":\\"400\\"},{\\"color\\":\\"#2f343d\\"}]},\\"children\\":[\\"- [x] \\"]},{\\"type\\":\\"Text\\",\\"props\\":{\\"style\\":{\\"flexShrink\\":1}},\\"children\\":[{\\"type\\":\\"Text\\",\\"props\\":{\\"accessibilityLabel\\":\\"Plain text \\",\\"style\\":{\\"fontSize\\":16,\\"flexShrink\\":1}},\\"children\\":[\\"Plain text \\"]},{\\"type\\":\\"Text\\",\\"props\\":{\\"style\\":[{\\"color\\":\\"#2f343d\\"},{\\"fontSize\\":16,\\"textAlign\\":\\"left\\",\\"backgroundColor\\":\\"transparent\\",\\"fontFamily\\":\\"Inter\\",\\"fontWeight\\":\\"400\\"}]},\\"children\\":[\\"💡\\"]},{\\"type\\":\\"Text\\",\\"props\\":{\\"style\\":{\\"fontStyle\\":\\"italic\\"}},\\"children\\":[{\\"type\\":\\"Text\\",\\"props\\":{\\"accessibilityLabel\\":\\" italic \\",\\"style\\":{\\"fontSize\\":16,\\"flexShrink\\":1}},\\"children\\":[\\" italic \\"]}]},{\\"type\\":\\"Text\\",\\"props\\":{\\"style\\":{\\"textAlign\\":\\"left\\",\\"backgroundColor\\":\\"transparent\\",\\"fontFamily\\":\\"Inter\\",\\"fontWeight\\":\\"700\\"}},\\"children\\":[{\\"type\\":\\"Text\\",\\"props\\":{\\"accessibilityLabel\\":\\" bold \\",\\"style\\":{\\"fontSize\\":16,\\"flexShrink\\":1}},\\"children\\":[\\" bold \\"]}]},{\\"type\\":\\"Text\\",\\"props\\":{\\"style\\":{\\"textDecorationLine\\":\\"line-through\\"}},\\"children\\":[{\\"type\\":\\"Text\\",\\"props\\":{\\"accessibilityLabel\\":\\" strike \\",\\"style\\":{\\"fontSize\\":16,\\"flexShrink\\":1}},\\"children\\":[\\" strike \\"]}]},{\\"type\\":\\"Text\\",\\"props\\":{\\"style\\":[{\\"fontSize\\":16,\\"textAlign\\":\\"left\\",\\"backgroundColor\\":\\"transparent\\",\\"fontFamily\\":\\"Inter\\",\\"fontWeight\\":\\"600\\"},{\\"color\\":\\"#F3BE08\\"}]},\\"children\\":[\\"#general\\"]},{\\"type\\":\\"Text\\",\\"props\\":{\\"style\\":[{\\"fontSize\\":16,\\"textAlign\\":\\"left\\",\\"backgroundColor\\":\\"transparent\\",\\"fontFamily\\":\\"Inter\\",\\"fontWeight\\":\\"400\\"},{\\"color\\":\\"#1d74f5\\"}]},\\"children\\":[\\" link \\"]},{\\"type\\":\\"Text\\",\\"props\\":{\\"style\\":[{\\"fontSize\\":16,\\"textAlign\\":\\"left\\",\\"backgroundColor\\":\\"transparent\\",\\"fontFamily\\":\\"Inter\\",\\"fontWeight\\":\\"600\\"},{\\"color\\":\\"#F5455C\\"}]},\\"children\\":[\\"rocket.cat\\"]},{\\"type\\":\\"Text\\",\\"props\\":{\\"style\\":[{\\"fontSize\\":16,\\"textAlign\\":\\"left\\",\\"backgroundColor\\":\\"transparent\\",\\"fontFamily\\":\\"Courier New\\",\\"fontWeight\\":\\"400\\",\\"borderWidth\\":1,\\"borderRadius\\":4,\\"paddingLeft\\":2,\\"paddingTop\\":2},{\\"color\\":\\"#2f343d\\",\\"backgroundColor\\":\\"#f1f2f4\\",\\"borderColor\\":\\"#e1e5e8\\"}]},\\"children\\":[{\\"type\\":\\"Text\\",\\"props\\":{},\\"children\\":[\\" inline code\\"]}]}]}]},{\\"type\\":\\"View\\",\\"props\\":{\\"style\\":{\\"flexDirection\\":\\"row\\"}},\\"children\\":[{\\"type\\":\\"Text\\",\\"props\\":{\\"style\\":[{\\"fontSize\\":16,\\"textAlign\\":\\"left\\",\\"backgroundColor\\":\\"transparent\\",\\"fontFamily\\":\\"Inter\\",\\"fontWeight\\":\\"400\\"},{\\"color\\":\\"#2f343d\\"}]},\\"children\\":[\\"- [ ] \\"]},{\\"type\\":\\"Text\\",\\"props\\":{\\"style\\":{\\"flexShrink\\":1}},\\"children\\":[{\\"type\\":\\"Text\\",\\"props\\":{\\"accessibilityLabel\\":\\"Lorem Ipsum is simply dummy text of the printing and typesetting industry. Lorem Ipsum has been the industrys standard dummy text ever since the 1500s, when an unknown printer took a galley of type and scrambled it to make a type specimen book. It has survived not only five centuries\\",\\"style\\":{\\"fontSize\\":16,\\"flexShrink\\":1}},\\"children\\":[\\"Lorem Ipsum is simply dummy text of the printing and typesetting industry. Lorem Ipsum has been the industrys standard dummy text ever since the 1500s, when an unknown printer took a galley of type and scrambled it to make a type specimen book. It has survived not only five centuries\\"]}]}]}]}]}"`;
+exports[`Storyshots NewMarkdown Lists 1`] = `"{\\"type\\":\\"View\\",\\"props\\":{\\"style\\":{\\"marginHorizontal\\":15,\\"backgroundColor\\":\\"#ffffff\\",\\"marginVertical\\":50}},\\"children\\":[{\\"type\\":\\"View\\",\\"props\\":{},\\"children\\":[{\\"type\\":\\"View\\",\\"props\\":{\\"style\\":{\\"flexDirection\\":\\"row\\"}},\\"children\\":[{\\"type\\":\\"Text\\",\\"props\\":{\\"style\\":[{\\"fontSize\\":16,\\"textAlign\\":\\"left\\",\\"backgroundColor\\":\\"transparent\\",\\"fontFamily\\":\\"Inter\\",\\"fontWeight\\":\\"400\\"},{\\"color\\":\\"#2f343d\\"}]},\\"children\\":[\\"- \\"]},{\\"type\\":\\"Text\\",\\"props\\":{\\"style\\":{\\"color\\":\\"#2f343d\\"}},\\"children\\":[{\\"type\\":\\"Text\\",\\"props\\":{\\"style\\":{\\"flexShrink\\":1}},\\"children\\":[{\\"type\\":\\"Text\\",\\"props\\":{\\"accessibilityLabel\\":\\"Plain text \\",\\"style\\":{\\"fontSize\\":16,\\"flexShrink\\":1}},\\"children\\":[\\"Plain text \\"]},{\\"type\\":\\"Text\\",\\"props\\":{\\"style\\":[{\\"color\\":\\"#2f343d\\"},{\\"fontSize\\":16,\\"textAlign\\":\\"left\\",\\"backgroundColor\\":\\"transparent\\",\\"fontFamily\\":\\"Inter\\",\\"fontWeight\\":\\"400\\"}]},\\"children\\":[\\"💡\\"]},{\\"type\\":\\"Text\\",\\"props\\":{\\"style\\":{\\"fontStyle\\":\\"italic\\"}},\\"children\\":[{\\"type\\":\\"Text\\",\\"props\\":{\\"accessibilityLabel\\":\\" italic \\",\\"style\\":{\\"fontSize\\":16,\\"flexShrink\\":1}},\\"children\\":[\\" italic \\"]}]},{\\"type\\":\\"Text\\",\\"props\\":{\\"style\\":{\\"textAlign\\":\\"left\\",\\"backgroundColor\\":\\"transparent\\",\\"fontFamily\\":\\"Inter\\",\\"fontWeight\\":\\"700\\"}},\\"children\\":[{\\"type\\":\\"Text\\",\\"props\\":{\\"accessibilityLabel\\":\\" bold \\",\\"style\\":{\\"fontSize\\":16,\\"flexShrink\\":1}},\\"children\\":[\\" bold \\"]}]},{\\"type\\":\\"Text\\",\\"props\\":{\\"style\\":{\\"textDecorationLine\\":\\"line-through\\"}},\\"children\\":[{\\"type\\":\\"Text\\",\\"props\\":{\\"accessibilityLabel\\":\\" strike \\",\\"style\\":{\\"fontSize\\":16,\\"flexShrink\\":1}},\\"children\\":[\\" strike \\"]}]},{\\"type\\":\\"Text\\",\\"props\\":{\\"style\\":[{\\"fontSize\\":16,\\"textAlign\\":\\"left\\",\\"backgroundColor\\":\\"transparent\\",\\"fontFamily\\":\\"Inter\\",\\"fontWeight\\":\\"600\\"},{\\"color\\":\\"#F3BE08\\"}]},\\"children\\":[\\"#general\\"]},{\\"type\\":\\"Text\\",\\"props\\":{\\"style\\":[{\\"fontSize\\":16,\\"textAlign\\":\\"left\\",\\"backgroundColor\\":\\"transparent\\",\\"fontFamily\\":\\"Inter\\",\\"fontWeight\\":\\"400\\"},{\\"color\\":\\"#1d74f5\\"}]},\\"children\\":[\\" link \\"]},{\\"type\\":\\"Text\\",\\"props\\":{\\"style\\":[{\\"fontSize\\":16,\\"textAlign\\":\\"left\\",\\"backgroundColor\\":\\"transparent\\",\\"fontFamily\\":\\"Inter\\",\\"fontWeight\\":\\"600\\"},{\\"color\\":\\"#F5455C\\"}]},\\"children\\":[\\"rocket.cat\\"]},{\\"type\\":\\"Text\\",\\"props\\":{\\"style\\":[{\\"fontSize\\":16,\\"textAlign\\":\\"left\\",\\"backgroundColor\\":\\"transparent\\",\\"fontFamily\\":\\"Courier New\\",\\"fontWeight\\":\\"400\\",\\"borderWidth\\":1,\\"borderRadius\\":4,\\"paddingLeft\\":2,\\"paddingTop\\":2},{\\"color\\":\\"#2f343d\\",\\"backgroundColor\\":\\"#f1f2f4\\",\\"borderColor\\":\\"#e1e5e8\\"}]},\\"children\\":[{\\"type\\":\\"Text\\",\\"props\\":{},\\"children\\":[\\" inline code\\"]}]}]}]}]},{\\"type\\":\\"View\\",\\"props\\":{\\"style\\":{\\"flexDirection\\":\\"row\\"}},\\"children\\":[{\\"type\\":\\"Text\\",\\"props\\":{\\"style\\":[{\\"fontSize\\":16,\\"textAlign\\":\\"left\\",\\"backgroundColor\\":\\"transparent\\",\\"fontFamily\\":\\"Inter\\",\\"fontWeight\\":\\"400\\"},{\\"color\\":\\"#2f343d\\"}]},\\"children\\":[\\"- \\"]},{\\"type\\":\\"Text\\",\\"props\\":{\\"style\\":{\\"color\\":\\"#2f343d\\"}},\\"children\\":[{\\"type\\":\\"Text\\",\\"props\\":{\\"style\\":{\\"flexShrink\\":1}},\\"children\\":[{\\"type\\":\\"Text\\",\\"props\\":{\\"accessibilityLabel\\":\\"Lorem Ipsum is simply dummy text of the printing and typesetting industry. Lorem Ipsum has been the industrys standard dummy text ever since the 1500s, when an unknown printer took a galley of type and scrambled it to make a type specimen book. It has survived not only five centuries\\",\\"style\\":{\\"fontSize\\":16,\\"flexShrink\\":1}},\\"children\\":[\\"Lorem Ipsum is simply dummy text of the printing and typesetting industry. Lorem Ipsum has been the industrys standard dummy text ever since the 1500s, when an unknown printer took a galley of type and scrambled it to make a type specimen book. It has survived not only five centuries\\"]}]}]}]}]},{\\"type\\":\\"View\\",\\"props\\":{},\\"children\\":[{\\"type\\":\\"View\\",\\"props\\":{\\"style\\":{\\"flexDirection\\":\\"row\\"}},\\"children\\":[{\\"type\\":\\"Text\\",\\"props\\":{\\"style\\":[{\\"fontSize\\":16,\\"textAlign\\":\\"left\\",\\"backgroundColor\\":\\"transparent\\",\\"fontFamily\\":\\"Inter\\",\\"fontWeight\\":\\"400\\"},{\\"color\\":\\"#2f343d\\"}]},\\"children\\":[\\". \\"]},{\\"type\\":\\"Text\\",\\"props\\":{\\"style\\":{\\"color\\":\\"#2f343d\\"}},\\"children\\":[{\\"type\\":\\"Text\\",\\"props\\":{\\"style\\":{\\"flexShrink\\":1}},\\"children\\":[{\\"type\\":\\"Text\\",\\"props\\":{\\"accessibilityLabel\\":\\"Plain text \\",\\"style\\":{\\"fontSize\\":16,\\"flexShrink\\":1}},\\"children\\":[\\"Plain text \\"]},{\\"type\\":\\"Text\\",\\"props\\":{\\"style\\":[{\\"color\\":\\"#2f343d\\"},{\\"fontSize\\":16,\\"textAlign\\":\\"left\\",\\"backgroundColor\\":\\"transparent\\",\\"fontFamily\\":\\"Inter\\",\\"fontWeight\\":\\"400\\"}]},\\"children\\":[\\"💡\\"]},{\\"type\\":\\"Text\\",\\"props\\":{\\"style\\":{\\"fontStyle\\":\\"italic\\"}},\\"children\\":[{\\"type\\":\\"Text\\",\\"props\\":{\\"accessibilityLabel\\":\\" italic \\",\\"style\\":{\\"fontSize\\":16,\\"flexShrink\\":1}},\\"children\\":[\\" italic \\"]}]},{\\"type\\":\\"Text\\",\\"props\\":{\\"style\\":{\\"textAlign\\":\\"left\\",\\"backgroundColor\\":\\"transparent\\",\\"fontFamily\\":\\"Inter\\",\\"fontWeight\\":\\"700\\"}},\\"children\\":[{\\"type\\":\\"Text\\",\\"props\\":{\\"accessibilityLabel\\":\\" bold \\",\\"style\\":{\\"fontSize\\":16,\\"flexShrink\\":1}},\\"children\\":[\\" bold \\"]}]},{\\"type\\":\\"Text\\",\\"props\\":{\\"style\\":{\\"textDecorationLine\\":\\"line-through\\"}},\\"children\\":[{\\"type\\":\\"Text\\",\\"props\\":{\\"accessibilityLabel\\":\\" strike \\",\\"style\\":{\\"fontSize\\":16,\\"flexShrink\\":1}},\\"children\\":[\\" strike \\"]}]},{\\"type\\":\\"Text\\",\\"props\\":{\\"style\\":[{\\"fontSize\\":16,\\"textAlign\\":\\"left\\",\\"backgroundColor\\":\\"transparent\\",\\"fontFamily\\":\\"Inter\\",\\"fontWeight\\":\\"600\\"},{\\"color\\":\\"#F3BE08\\"}]},\\"children\\":[\\"#general\\"]},{\\"type\\":\\"Text\\",\\"props\\":{\\"style\\":[{\\"fontSize\\":16,\\"textAlign\\":\\"left\\",\\"backgroundColor\\":\\"transparent\\",\\"fontFamily\\":\\"Inter\\",\\"fontWeight\\":\\"400\\"},{\\"color\\":\\"#1d74f5\\"}]},\\"children\\":[\\" link \\"]},{\\"type\\":\\"Text\\",\\"props\\":{\\"style\\":[{\\"fontSize\\":16,\\"textAlign\\":\\"left\\",\\"backgroundColor\\":\\"transparent\\",\\"fontFamily\\":\\"Inter\\",\\"fontWeight\\":\\"600\\"},{\\"color\\":\\"#F5455C\\"}]},\\"children\\":[\\"rocket.cat\\"]},{\\"type\\":\\"Text\\",\\"props\\":{\\"style\\":[{\\"fontSize\\":16,\\"textAlign\\":\\"left\\",\\"backgroundColor\\":\\"transparent\\",\\"fontFamily\\":\\"Courier New\\",\\"fontWeight\\":\\"400\\",\\"borderWidth\\":1,\\"borderRadius\\":4,\\"paddingLeft\\":2,\\"paddingTop\\":2},{\\"color\\":\\"#2f343d\\",\\"backgroundColor\\":\\"#f1f2f4\\",\\"borderColor\\":\\"#e1e5e8\\"}]},\\"children\\":[{\\"type\\":\\"Text\\",\\"props\\":{},\\"children\\":[\\" inline code\\"]}]}]}]}]},{\\"type\\":\\"View\\",\\"props\\":{\\"style\\":{\\"flexDirection\\":\\"row\\"}},\\"children\\":[{\\"type\\":\\"Text\\",\\"props\\":{\\"style\\":[{\\"fontSize\\":16,\\"textAlign\\":\\"left\\",\\"backgroundColor\\":\\"transparent\\",\\"fontFamily\\":\\"Inter\\",\\"fontWeight\\":\\"400\\"},{\\"color\\":\\"#2f343d\\"}]},\\"children\\":[\\". \\"]},{\\"type\\":\\"Text\\",\\"props\\":{\\"style\\":{\\"color\\":\\"#2f343d\\"}},\\"children\\":[{\\"type\\":\\"Text\\",\\"props\\":{\\"style\\":{\\"flexShrink\\":1}},\\"children\\":[{\\"type\\":\\"Text\\",\\"props\\":{\\"accessibilityLabel\\":\\"Lorem Ipsum is simply dummy text of the printing and typesetting industry. Lorem Ipsum has been the industrys standard dummy text ever since the 1500s, when an unknown printer took a galley of type and scrambled it to make a type specimen book. It has survived not only five centuries\\",\\"style\\":{\\"fontSize\\":16,\\"flexShrink\\":1}},\\"children\\":[\\"Lorem Ipsum is simply dummy text of the printing and typesetting industry. Lorem Ipsum has been the industrys standard dummy text ever since the 1500s, when an unknown printer took a galley of type and scrambled it to make a type specimen book. It has survived not only five centuries\\"]}]}]}]}]},{\\"type\\":\\"View\\",\\"props\\":{},\\"children\\":[{\\"type\\":\\"View\\",\\"props\\":{\\"style\\":{\\"flexDirection\\":\\"row\\"}},\\"children\\":[{\\"type\\":\\"Text\\",\\"props\\":{\\"style\\":[{\\"fontSize\\":16,\\"textAlign\\":\\"left\\",\\"backgroundColor\\":\\"transparent\\",\\"fontFamily\\":\\"Inter\\",\\"fontWeight\\":\\"400\\"},{\\"color\\":\\"#2f343d\\"}]},\\"children\\":[\\"- [x] \\"]},{\\"type\\":\\"Text\\",\\"props\\":{\\"style\\":[{\\"flexShrink\\":1},{\\"color\\":\\"#2f343d\\"}]},\\"children\\":[{\\"type\\":\\"Text\\",\\"props\\":{\\"style\\":{\\"flexShrink\\":1}},\\"children\\":[{\\"type\\":\\"Text\\",\\"props\\":{\\"accessibilityLabel\\":\\"Plain text \\",\\"style\\":{\\"fontSize\\":16,\\"flexShrink\\":1}},\\"children\\":[\\"Plain text \\"]},{\\"type\\":\\"Text\\",\\"props\\":{\\"style\\":[{\\"color\\":\\"#2f343d\\"},{\\"fontSize\\":16,\\"textAlign\\":\\"left\\",\\"backgroundColor\\":\\"transparent\\",\\"fontFamily\\":\\"Inter\\",\\"fontWeight\\":\\"400\\"}]},\\"children\\":[\\"💡\\"]},{\\"type\\":\\"Text\\",\\"props\\":{\\"style\\":{\\"fontStyle\\":\\"italic\\"}},\\"children\\":[{\\"type\\":\\"Text\\",\\"props\\":{\\"accessibilityLabel\\":\\" italic \\",\\"style\\":{\\"fontSize\\":16,\\"flexShrink\\":1}},\\"children\\":[\\" italic \\"]}]},{\\"type\\":\\"Text\\",\\"props\\":{\\"style\\":{\\"textAlign\\":\\"left\\",\\"backgroundColor\\":\\"transparent\\",\\"fontFamily\\":\\"Inter\\",\\"fontWeight\\":\\"700\\"}},\\"children\\":[{\\"type\\":\\"Text\\",\\"props\\":{\\"accessibilityLabel\\":\\" bold \\",\\"style\\":{\\"fontSize\\":16,\\"flexShrink\\":1}},\\"children\\":[\\" bold \\"]}]},{\\"type\\":\\"Text\\",\\"props\\":{\\"style\\":{\\"textDecorationLine\\":\\"line-through\\"}},\\"children\\":[{\\"type\\":\\"Text\\",\\"props\\":{\\"accessibilityLabel\\":\\" strike \\",\\"style\\":{\\"fontSize\\":16,\\"flexShrink\\":1}},\\"children\\":[\\" strike \\"]}]},{\\"type\\":\\"Text\\",\\"props\\":{\\"style\\":[{\\"fontSize\\":16,\\"textAlign\\":\\"left\\",\\"backgroundColor\\":\\"transparent\\",\\"fontFamily\\":\\"Inter\\",\\"fontWeight\\":\\"600\\"},{\\"color\\":\\"#F3BE08\\"}]},\\"children\\":[\\"#general\\"]},{\\"type\\":\\"Text\\",\\"props\\":{\\"style\\":[{\\"fontSize\\":16,\\"textAlign\\":\\"left\\",\\"backgroundColor\\":\\"transparent\\",\\"fontFamily\\":\\"Inter\\",\\"fontWeight\\":\\"400\\"},{\\"color\\":\\"#1d74f5\\"}]},\\"children\\":[\\" link \\"]},{\\"type\\":\\"Text\\",\\"props\\":{\\"style\\":[{\\"fontSize\\":16,\\"textAlign\\":\\"left\\",\\"backgroundColor\\":\\"transparent\\",\\"fontFamily\\":\\"Inter\\",\\"fontWeight\\":\\"600\\"},{\\"color\\":\\"#F5455C\\"}]},\\"children\\":[\\"rocket.cat\\"]},{\\"type\\":\\"Text\\",\\"props\\":{\\"style\\":[{\\"fontSize\\":16,\\"textAlign\\":\\"left\\",\\"backgroundColor\\":\\"transparent\\",\\"fontFamily\\":\\"Courier New\\",\\"fontWeight\\":\\"400\\",\\"borderWidth\\":1,\\"borderRadius\\":4,\\"paddingLeft\\":2,\\"paddingTop\\":2},{\\"color\\":\\"#2f343d\\",\\"backgroundColor\\":\\"#f1f2f4\\",\\"borderColor\\":\\"#e1e5e8\\"}]},\\"children\\":[{\\"type\\":\\"Text\\",\\"props\\":{},\\"children\\":[\\" inline code\\"]}]}]}]}]},{\\"type\\":\\"View\\",\\"props\\":{\\"style\\":{\\"flexDirection\\":\\"row\\"}},\\"children\\":[{\\"type\\":\\"Text\\",\\"props\\":{\\"style\\":[{\\"fontSize\\":16,\\"textAlign\\":\\"left\\",\\"backgroundColor\\":\\"transparent\\",\\"fontFamily\\":\\"Inter\\",\\"fontWeight\\":\\"400\\"},{\\"color\\":\\"#2f343d\\"}]},\\"children\\":[\\"- [ ] \\"]},{\\"type\\":\\"Text\\",\\"props\\":{\\"style\\":[{\\"flexShrink\\":1},{\\"color\\":\\"#2f343d\\"}]},\\"children\\":[{\\"type\\":\\"Text\\",\\"props\\":{\\"style\\":{\\"flexShrink\\":1}},\\"children\\":[{\\"type\\":\\"Text\\",\\"props\\":{\\"accessibilityLabel\\":\\"Lorem Ipsum is simply dummy text of the printing and typesetting industry. Lorem Ipsum has been the industrys standard dummy text ever since the 1500s, when an unknown printer took a galley of type and scrambled it to make a type specimen book. It has survived not only five centuries\\",\\"style\\":{\\"fontSize\\":16,\\"flexShrink\\":1}},\\"children\\":[\\"Lorem Ipsum is simply dummy text of the printing and typesetting industry. Lorem Ipsum has been the industrys standard dummy text ever since the 1500s, when an unknown printer took a galley of type and scrambled it to make a type specimen book. It has survived not only five centuries\\"]}]}]}]}]}]}"`;
exports[`Storyshots NewMarkdown Mentions 1`] = `"{\\"type\\":\\"View\\",\\"props\\":{\\"style\\":{\\"marginHorizontal\\":15,\\"backgroundColor\\":\\"#ffffff\\",\\"marginVertical\\":50}},\\"children\\":[{\\"type\\":\\"Text\\",\\"props\\":{\\"style\\":[{\\"fontSize\\":16,\\"textAlign\\":\\"left\\",\\"backgroundColor\\":\\"transparent\\",\\"fontFamily\\":\\"Inter\\",\\"fontWeight\\":\\"400\\"},{\\"color\\":\\"#2f343d\\"}]},\\"children\\":[{\\"type\\":\\"Text\\",\\"props\\":{\\"style\\":{\\"flexShrink\\":1}},\\"children\\":[{\\"type\\":\\"Text\\",\\"props\\":{\\"style\\":[{\\"fontSize\\":16,\\"textAlign\\":\\"left\\",\\"backgroundColor\\":\\"transparent\\",\\"fontFamily\\":\\"Inter\\",\\"fontWeight\\":\\"600\\"},{\\"color\\":\\"#F5455C\\"}]},\\"children\\":[\\"rocket.cat\\"]}]}]},{\\"type\\":\\"Text\\",\\"props\\":{\\"style\\":[{\\"fontSize\\":16,\\"textAlign\\":\\"left\\",\\"backgroundColor\\":\\"transparent\\",\\"fontFamily\\":\\"Inter\\",\\"fontWeight\\":\\"400\\"},{\\"color\\":\\"#2f343d\\"}]},\\"children\\":[{\\"type\\":\\"Text\\",\\"props\\":{\\"style\\":{\\"flexShrink\\":1}},\\"children\\":[{\\"type\\":\\"Text\\",\\"props\\":{\\"style\\":[{\\"fontSize\\":16,\\"textAlign\\":\\"left\\",\\"backgroundColor\\":\\"transparent\\",\\"fontFamily\\":\\"Inter\\",\\"fontWeight\\":\\"600\\"},{\\"color\\":\\"#F3BE08\\"}]},\\"children\\":[\\"name\\"]},{\\"type\\":\\"Text\\",\\"props\\":{\\"accessibilityLabel\\":\\" \\",\\"style\\":{\\"fontSize\\":16,\\"flexShrink\\":1}},\\"children\\":[\\" \\"]},{\\"type\\":\\"Text\\",\\"props\\":{\\"style\\":[{\\"fontSize\\":16,\\"textAlign\\":\\"left\\",\\"backgroundColor\\":\\"transparent\\",\\"fontFamily\\":\\"Inter\\",\\"fontWeight\\":\\"600\\"},{\\"color\\":\\"#F5455C\\"}]},\\"children\\":[\\"rocket.cat\\"]},{\\"type\\":\\"Text\\",\\"props\\":{\\"accessibilityLabel\\":\\" \\",\\"style\\":{\\"fontSize\\":16,\\"flexShrink\\":1}},\\"children\\":[\\" \\"]},{\\"type\\":\\"Text\\",\\"props\\":{\\"style\\":[{\\"fontSize\\":16,\\"textAlign\\":\\"left\\",\\"backgroundColor\\":\\"transparent\\",\\"fontFamily\\":\\"Inter\\",\\"fontWeight\\":\\"400\\"},{\\"color\\":\\"#2f343d\\"}]},\\"children\\":[\\"@not_a_user\\"]},{\\"type\\":\\"Text\\",\\"props\\":{\\"accessibilityLabel\\":\\" \\",\\"style\\":{\\"fontSize\\":16,\\"flexShrink\\":1}},\\"children\\":[\\" \\"]},{\\"type\\":\\"Text\\",\\"props\\":{\\"style\\":[{\\"fontSize\\":16,\\"textAlign\\":\\"left\\",\\"backgroundColor\\":\\"transparent\\",\\"fontFamily\\":\\"Inter\\",\\"fontWeight\\":\\"600\\"},{\\"color\\":\\"#F38C39\\"}]},\\"children\\":[\\"here\\"]},{\\"type\\":\\"Text\\",\\"props\\":{\\"accessibilityLabel\\":\\" \\",\\"style\\":{\\"fontSize\\":16,\\"flexShrink\\":1}},\\"children\\":[\\" \\"]},{\\"type\\":\\"Text\\",\\"props\\":{\\"style\\":[{\\"fontSize\\":16,\\"textAlign\\":\\"left\\",\\"backgroundColor\\":\\"transparent\\",\\"fontFamily\\":\\"Inter\\",\\"fontWeight\\":\\"600\\"},{\\"color\\":\\"#F38C39\\"}]},\\"children\\":[\\"all\\"]}]}]}]}"`;
diff --git a/android/app/build.gradle b/android/app/build.gradle
index 23e2d74e2..ff7901868 100644
--- a/android/app/build.gradle
+++ b/android/app/build.gradle
@@ -147,7 +147,7 @@ android {
minSdkVersion rootProject.ext.minSdkVersion
targetSdkVersion rootProject.ext.targetSdkVersion
versionCode VERSIONCODE as Integer
- versionName "4.35.1"
+ versionName "4.36.0"
vectorDrawables.useSupportLibrary = true
if (!isFoss) {
manifestPlaceholders = [BugsnagAPIKey: BugsnagAPIKey as String]
diff --git a/android/app/src/main/AndroidManifest.xml b/android/app/src/main/AndroidManifest.xml
index 1b48b17ba..e5c7b75dc 100644
--- a/android/app/src/main/AndroidManifest.xml
+++ b/android/app/src/main/AndroidManifest.xml
@@ -12,14 +12,8 @@
-
-
-
-
-
-
-
-
+
+
;
+export const BadgeUnread = ({ ...props }): React.ReactElement => ;
-export default Badge;
+export const BadgeWarn = (): React.ReactElement => (
+
+);
diff --git a/app/containers/HeaderButton/HeaderButtons.stories.tsx b/app/containers/HeaderButton/HeaderButtons.stories.tsx
index c7897d21e..8a228914e 100644
--- a/app/containers/HeaderButton/HeaderButtons.stories.tsx
+++ b/app/containers/HeaderButton/HeaderButtons.stories.tsx
@@ -1,4 +1,5 @@
import React from 'react';
+import { View } from 'react-native';
import { Header, HeaderBackground } from '@react-navigation/elements';
import { NavigationContainer } from '@react-navigation/native';
import { SafeAreaProvider } from 'react-native-safe-area-context';
@@ -103,9 +104,10 @@ export const Badge = () => (
(
- } />
- } />
- } />
+ } />
+ } />
+ } />
+ } />
)}
/>
@@ -114,20 +116,23 @@ export const Badge = () => (
const ThemeStory = ({ theme }: { theme: TSupportedThemes }) => (
- (
-
-
-
- )}
- right={() => (
-
-
- } />
-
- )}
- colors={colors[theme]}
- />
+
+ (
+
+ } />
+
+
+ )}
+ right={() => (
+
+
+ } />
+
+ )}
+ colors={colors[theme]}
+ />
+
);
diff --git a/app/containers/HeaderButton/index.ts b/app/containers/HeaderButton/index.ts
index d1d66baaf..dfcaa3ee8 100644
--- a/app/containers/HeaderButton/index.ts
+++ b/app/containers/HeaderButton/index.ts
@@ -1,4 +1,4 @@
export { default as Container } from './HeaderButtonContainer';
export { default as Item } from './HeaderButtonItem';
-export { default as Badge } from './HeaderButtonItemBadge';
+export * from './HeaderButtonItemBadge';
export * from './Common';
diff --git a/app/containers/RoomHeader/index.tsx b/app/containers/RoomHeader/index.tsx
index 6fb57f770..50b028938 100644
--- a/app/containers/RoomHeader/index.tsx
+++ b/app/containers/RoomHeader/index.tsx
@@ -46,6 +46,7 @@ const RoomHeaderContainer = React.memo(
const connecting = useSelector((state: IApplicationState) => state.meteor.connecting || state.server.loading);
const usersTyping = useSelector((state: IApplicationState) => state.usersTyping, shallowEqual);
const connected = useSelector((state: IApplicationState) => state.meteor.connected);
+ const presenceDisabled = useSelector((state: IApplicationState) => state.settings.Presence_broadcast_disabled);
const activeUser = useSelector(
(state: IApplicationState) => (roomUserId ? state.activeUsers?.[roomUserId] : undefined),
shallowEqual
@@ -61,9 +62,13 @@ const RoomHeaderContainer = React.memo(
if (connected) {
if ((type === 'd' || (tmid && roomUserId)) && activeUser) {
- const { status: statusActiveUser, statusText: statusTextActiveUser } = activeUser;
- status = statusActiveUser;
- statusText = statusTextActiveUser;
+ if (presenceDisabled) {
+ status = 'disabled';
+ } else {
+ const { status: statusActiveUser, statusText: statusTextActiveUser } = activeUser;
+ status = statusActiveUser;
+ statusText = statusTextActiveUser;
+ }
} else if (type === 'l' && visitor?.status) {
const { status: statusVisitor } = visitor;
status = statusVisitor;
diff --git a/app/containers/RoomItem/RoomItem.stories.tsx b/app/containers/RoomItem/RoomItem.stories.tsx
index d7119b392..89e435057 100644
--- a/app/containers/RoomItem/RoomItem.stories.tsx
+++ b/app/containers/RoomItem/RoomItem.stories.tsx
@@ -65,6 +65,7 @@ export const UserStatus = () => (
+
>
);
diff --git a/app/containers/RoomItem/useUserStatus.tsx b/app/containers/RoomItem/useUserStatus.tsx
index 4ba63706f..c8827e380 100644
--- a/app/containers/RoomItem/useUserStatus.tsx
+++ b/app/containers/RoomItem/useUserStatus.tsx
@@ -8,11 +8,17 @@ export const useUserStatus = (
id?: string
): { connected: boolean; status: TUserStatus } => {
const connected = useAppSelector(state => state.meteor.connected);
+ const presenceDisabled = useAppSelector(state => state.settings.Presence_broadcast_disabled);
const userStatus = useAppSelector(state => state.activeUsers[id || '']?.status);
+
let status = 'loading';
if (connected) {
if (type === 'd') {
- status = userStatus || 'loading';
+ if (presenceDisabled) {
+ status = 'disabled';
+ } else {
+ status = userStatus || 'loading';
+ }
} else if (type === 'l' && liveChatStatus) {
status = liveChatStatus;
}
diff --git a/app/containers/RoomTypeIcon/OmnichannelRoomIcon.tsx b/app/containers/RoomTypeIcon/OmnichannelRoomIcon.tsx
index 8ea4517cc..7009f5405 100644
--- a/app/containers/RoomTypeIcon/OmnichannelRoomIcon.tsx
+++ b/app/containers/RoomTypeIcon/OmnichannelRoomIcon.tsx
@@ -1,4 +1,4 @@
-import React from 'react';
+import React, { useState } from 'react';
import { StyleProp, ViewStyle } from 'react-native';
import { SvgUri } from 'react-native-svg';
@@ -29,22 +29,12 @@ interface IOmnichannelRoomIconProps {
}
export const OmnichannelRoomIcon = ({ size, style, sourceType, status }: IOmnichannelRoomIconProps) => {
+ const [loading, setLoading] = useState(true);
+ const [svgError, setSvgError] = useState(false);
const baseUrl = useAppSelector(state => state.server?.server);
const connected = useAppSelector(state => state.meteor?.connected);
- if (sourceType?.type === OmnichannelSourceType.APP && sourceType.id && sourceType.sidebarIcon && connected) {
- return (
-
- );
- }
-
- return (
+ const customIcon = (
);
+
+ if (!svgError && sourceType?.type === OmnichannelSourceType.APP && sourceType.id && sourceType.sidebarIcon && connected) {
+ return (
+ <>
+ setSvgError(true)}
+ onLoad={() => setLoading(false)}
+ />
+ {loading ? customIcon : null}
+ >
+ );
+ }
+
+ return customIcon;
};
diff --git a/app/containers/Status/index.tsx b/app/containers/Status/index.tsx
index b925c6949..0f782e5f4 100644
--- a/app/containers/Status/index.tsx
+++ b/app/containers/Status/index.tsx
@@ -6,9 +6,15 @@ import { IStatus } from './definition';
import { useAppSelector } from '../../lib/hooks';
const StatusContainer = ({ id, style, size = 32, ...props }: Omit): React.ReactElement => {
- const status = useAppSelector(state =>
- state.meteor.connected ? state.activeUsers[id] && state.activeUsers[id].status : 'loading'
- ) as TUserStatus;
+ const status = useAppSelector(state => {
+ if (state.settings.Presence_broadcast_disabled) {
+ return 'disabled';
+ }
+ if (state.meteor.connected) {
+ return state.activeUsers[id] && state.activeUsers[id].status;
+ }
+ return 'loading';
+ }) as TUserStatus;
return ;
};
diff --git a/app/containers/UIKit/VideoConferenceBlock/components/CallAgainActionSheet.tsx b/app/containers/UIKit/VideoConferenceBlock/components/StartACallActionSheet.tsx
similarity index 70%
rename from app/containers/UIKit/VideoConferenceBlock/components/CallAgainActionSheet.tsx
rename to app/containers/UIKit/VideoConferenceBlock/components/StartACallActionSheet.tsx
index 781c5b284..2158e3680 100644
--- a/app/containers/UIKit/VideoConferenceBlock/components/CallAgainActionSheet.tsx
+++ b/app/containers/UIKit/VideoConferenceBlock/components/StartACallActionSheet.tsx
@@ -6,7 +6,6 @@ import i18n from '../../../../i18n';
import { getSubscriptionByRoomId } from '../../../../lib/database/services/Subscription';
import { useAppSelector } from '../../../../lib/hooks';
import { getRoomAvatar, getUidDirectMessage } from '../../../../lib/methods/helpers';
-import { videoConfStartAndJoin } from '../../../../lib/methods/videoConf';
import { useTheme } from '../../../../theme';
import { useActionSheet } from '../../../ActionSheet';
import AvatarContainer from '../../../Avatar';
@@ -16,12 +15,12 @@ import { BUTTON_HIT_SLOP } from '../../../message/utils';
import StatusContainer from '../../../Status';
import useStyle from './styles';
-export default function CallAgainActionSheet({ rid }: { rid: string }): React.ReactElement {
+export default function StartACallActionSheet({ rid, initCall }: { rid: string; initCall: Function }): React.ReactElement {
const style = useStyle();
const { colors } = useTheme();
- const [user, setUser] = useState({ username: '', avatar: '', uid: '', rid: '' });
- const [phone, setPhone] = useState(true);
- const [camera, setCamera] = useState(false);
+ const [user, setUser] = useState({ username: '', avatar: '', uid: '' });
+ const [mic, setMic] = useState(true);
+ const [cam, setCam] = useState(false);
const username = useAppSelector(state => state.login.user.username);
const { hideActionSheet } = useActionSheet();
@@ -31,7 +30,7 @@ export default function CallAgainActionSheet({ rid }: { rid: string }): React.Re
const room = await getSubscriptionByRoomId(rid);
const uid = (await getUidDirectMessage(room)) as string;
const avt = getRoomAvatar(room);
- setUser({ uid, username: room?.name || '', avatar: avt, rid: room?.id || '' });
+ setUser({ uid, username: room?.name || '', avatar: avt });
})();
}, [rid]);
@@ -43,25 +42,27 @@ export default function CallAgainActionSheet({ rid }: { rid: string }): React.Re
{i18n.t('Start_a_call')}
setCamera(!camera)}
- style={[style.iconCallContainer, camera && style.enabledBackground, { marginRight: 6 }]}
+ onPress={() => setCam(!cam)}
+ style={[style.iconCallContainer, cam && style.enabledBackground, { marginRight: 6 }]}
hitSlop={BUTTON_HIT_SLOP}
>
-
+
setPhone(!phone)}
- style={[style.iconCallContainer, phone && style.enabledBackground]}
+ onPress={() => setMic(!mic)}
+ style={[style.iconCallContainer, mic && style.enabledBackground]}
hitSlop={BUTTON_HIT_SLOP}
>
-
+
- {user.username}
+
+ {user.username}
+
@@ -70,7 +71,7 @@ export default function CallAgainActionSheet({ rid }: { rid: string }): React.Re
onPress={() => {
hideActionSheet();
setTimeout(() => {
- videoConfStartAndJoin(user.rid, camera);
+ initCall({ cam, mic });
}, 100);
}}
title={i18n.t('Call')}
diff --git a/app/containers/UIKit/VideoConferenceBlock/components/VideoConferenceDirect.tsx b/app/containers/UIKit/VideoConferenceBlock/components/VideoConferenceDirect.tsx
index 2526a190f..d6fc28662 100644
--- a/app/containers/UIKit/VideoConferenceBlock/components/VideoConferenceDirect.tsx
+++ b/app/containers/UIKit/VideoConferenceBlock/components/VideoConferenceDirect.tsx
@@ -3,17 +3,16 @@ import { Text } from 'react-native';
import Touchable from 'react-native-platform-touchable';
import i18n from '../../../../i18n';
-import { useVideoConf } from '../../../../lib/hooks/useVideoConf';
+import { videoConfJoin } from '../../../../lib/methods/videoConf';
import useStyle from './styles';
import { VideoConferenceBaseContainer } from './VideoConferenceBaseContainer';
const VideoConferenceDirect = React.memo(({ blockId }: { blockId: string }) => {
const style = useStyle();
- const { joinCall } = useVideoConf();
return (
- joinCall(blockId)}>
+ videoConfJoin(blockId)}>
{i18n.t('Join')}
{i18n.t('Waiting_for_answer')}
diff --git a/app/containers/UIKit/VideoConferenceBlock/components/VideoConferenceEnded.tsx b/app/containers/UIKit/VideoConferenceBlock/components/VideoConferenceEnded.tsx
index 8c8171b3a..b4c95fa8e 100644
--- a/app/containers/UIKit/VideoConferenceBlock/components/VideoConferenceEnded.tsx
+++ b/app/containers/UIKit/VideoConferenceBlock/components/VideoConferenceEnded.tsx
@@ -6,9 +6,7 @@ import { IUser } from '../../../../definitions';
import { VideoConferenceType } from '../../../../definitions/IVideoConference';
import i18n from '../../../../i18n';
import { useAppSelector } from '../../../../lib/hooks';
-import { useSnaps } from '../../../../lib/hooks/useSnaps';
-import { useActionSheet } from '../../../ActionSheet';
-import CallAgainActionSheet from './CallAgainActionSheet';
+import { useVideoConf } from '../../../../lib/hooks/useVideoConf';
import { CallParticipants, TCallUsers } from './CallParticipants';
import useStyle from './styles';
import { VideoConferenceBaseContainer } from './VideoConferenceBaseContainer';
@@ -26,8 +24,7 @@ export default function VideoConferenceEnded({
}): React.ReactElement {
const style = useStyle();
const username = useAppSelector(state => state.login.user.username);
- const { showActionSheet } = useActionSheet();
- const snaps = useSnaps([1250]);
+ const { showInitCallActionSheet } = useVideoConf(rid);
const onlyAuthorOnCall = users.length === 1 && users.some(user => user.username === createdBy.username);
@@ -35,15 +32,7 @@ export default function VideoConferenceEnded({
{type === 'direct' ? (
<>
-
- showActionSheet({
- children: ,
- snaps
- })
- }
- >
+
{createdBy.username === username ? i18n.t('Call_back') : i18n.t('Call_again')}
diff --git a/app/containers/UIKit/VideoConferenceBlock/components/VideoConferenceOutgoing.tsx b/app/containers/UIKit/VideoConferenceBlock/components/VideoConferenceOutgoing.tsx
index 164e9b3ab..bebf26da1 100644
--- a/app/containers/UIKit/VideoConferenceBlock/components/VideoConferenceOutgoing.tsx
+++ b/app/containers/UIKit/VideoConferenceBlock/components/VideoConferenceOutgoing.tsx
@@ -3,18 +3,17 @@ import { Text } from 'react-native';
import Touchable from 'react-native-platform-touchable';
import i18n from '../../../../i18n';
-import { useVideoConf } from '../../../../lib/hooks/useVideoConf';
+import { videoConfJoin } from '../../../../lib/methods/videoConf';
import { CallParticipants, TCallUsers } from './CallParticipants';
import useStyle from './styles';
import { VideoConferenceBaseContainer } from './VideoConferenceBaseContainer';
export default function VideoConferenceOutgoing({ users, blockId }: { users: TCallUsers; blockId: string }): React.ReactElement {
const style = useStyle();
- const { joinCall } = useVideoConf();
return (
- joinCall(blockId)}>
+ videoConfJoin(blockId)}>
{i18n.t('Join')}
diff --git a/app/containers/UIKit/VideoConferenceBlock/components/styles.ts b/app/containers/UIKit/VideoConferenceBlock/components/styles.ts
index d8258e24d..df607ff8d 100644
--- a/app/containers/UIKit/VideoConferenceBlock/components/styles.ts
+++ b/app/containers/UIKit/VideoConferenceBlock/components/styles.ts
@@ -100,7 +100,8 @@ export default function useStyle() {
actionSheetUsername: {
fontSize: 16,
...sharedStyles.textBold,
- color: colors.passcodePrimary
+ color: colors.passcodePrimary,
+ flexShrink: 1
},
enabledBackground: {
backgroundColor: colors.conferenceCallEnabledIconBackground
diff --git a/app/containers/UIKit/utils.ts b/app/containers/UIKit/utils.ts
index f127f8068..b56eaaec1 100644
--- a/app/containers/UIKit/utils.ts
+++ b/app/containers/UIKit/utils.ts
@@ -2,7 +2,7 @@
import { BlockContext } from '@rocket.chat/ui-kit';
import React, { useContext, useState } from 'react';
-import { useVideoConf } from '../../lib/hooks/useVideoConf';
+import { videoConfJoin } from '../../lib/methods/videoConf';
import { IText } from './interfaces';
export const textParser = ([{ text }]: IText[]) => text;
@@ -40,7 +40,6 @@ export const useBlockContext = ({ blockId, actionId, appId, initialValue }: IUse
const { action, appId: appIdFromContext, viewId, state, language, errors, values = {} } = useContext(KitContext);
const { value = initialValue } = values[actionId] || {};
const [loading, setLoading] = useState(false);
- const { joinCall } = useVideoConf();
const error = errors && actionId && errors[actionId];
@@ -58,7 +57,7 @@ export const useBlockContext = ({ blockId, actionId, appId, initialValue }: IUse
try {
if (appId === 'videoconf-core' && blockId) {
setLoading(false);
- return joinCall(blockId);
+ return videoConfJoin(blockId);
}
await action({
blockId,
diff --git a/app/containers/markdown/new/Plain.tsx b/app/containers/markdown/new/Plain.tsx
index bce2f7e9c..ba0b31b5f 100644
--- a/app/containers/markdown/new/Plain.tsx
+++ b/app/containers/markdown/new/Plain.tsx
@@ -8,7 +8,7 @@ interface IPlainProps {
value: PlainProps['value'];
}
-const Plain = ({ value }: IPlainProps) => (
+const Plain = ({ value }: IPlainProps): React.ReactElement => (
{value}
diff --git a/app/containers/markdown/new/TaskList.tsx b/app/containers/markdown/new/TaskList.tsx
index 8104ba5e3..0349b7e20 100644
--- a/app/containers/markdown/new/TaskList.tsx
+++ b/app/containers/markdown/new/TaskList.tsx
@@ -4,7 +4,6 @@ import { Tasks as TasksProps } from '@rocket.chat/message-parser';
import Inline from './Inline';
import styles from '../styles';
-import { themes } from '../../../lib/constants';
import { useTheme } from '../../../theme';
interface ITasksProps {
@@ -12,13 +11,15 @@ interface ITasksProps {
}
const TaskList = ({ value = [] }: ITasksProps) => {
- const { theme } = useTheme();
+ const { colors } = useTheme();
return (
{value.map(item => (
- {item.status ? '- [x] ' : '- [ ] '}
-
+ {item.status ? '- [x] ' : '- [ ] '}
+
+
+
))}
diff --git a/app/containers/message/CallButton.tsx b/app/containers/message/CallButton.tsx
index 9a81ca7ce..265ebb268 100644
--- a/app/containers/message/CallButton.tsx
+++ b/app/containers/message/CallButton.tsx
@@ -10,12 +10,12 @@ import { themes } from '../../lib/constants';
import { IMessageCallButton } from './interfaces';
import { useTheme } from '../../theme';
-const CallButton = React.memo(({ callJitsi }: IMessageCallButton) => {
+const CallButton = React.memo(({ handleEnterCall }: IMessageCallButton) => {
const { theme } = useTheme();
return (
void;
onReactionLongPress?: (item: TAnyMessageModel) => void;
navToRoomInfo: (navParam: IRoomInfoParam) => void;
- callJitsi?: () => void;
+ handleEnterCall?: () => void;
blockAction?: (params: { actionId: string; appId: string; value: string; blockId: string; rid: string; mid: string }) => void;
onAnswerButtonPress?: (message: string, tmid?: string, tshow?: boolean) => void;
threadBadgeColor?: string;
@@ -69,7 +69,6 @@ class MessageContainer extends React.Component null,
onLongPress: () => {},
- callJitsi: () => {},
blockAction: () => {},
archived: false,
broadcast: false,
@@ -338,7 +337,7 @@ class MessageContainer extends React.Component void;
+ handleEnterCall?: () => void;
}
export interface IMessageContent {
diff --git a/app/definitions/IVideoConference.ts b/app/definitions/IVideoConference.ts
index af689be47..1ba428cb3 100644
--- a/app/definitions/IVideoConference.ts
+++ b/app/definitions/IVideoConference.ts
@@ -4,37 +4,34 @@ import type { IRoom } from './IRoom';
import type { IUser } from './IUser';
import type { IMessage } from './IMessage';
-export enum VideoConferenceStatus {
+export declare enum VideoConferenceStatus {
CALLING = 0,
STARTED = 1,
EXPIRED = 2,
ENDED = 3,
DECLINED = 4
}
-
-export type DirectCallInstructions = {
+export declare type DirectCallInstructions = {
type: 'direct';
- callee: IUser['_id'];
+ calleeId: IUser['_id'];
callId: string;
};
-
-export type ConferenceInstructions = {
+export declare type ConferenceInstructions = {
type: 'videoconference';
callId: string;
rid: IRoom['_id'];
};
-
-export type LivechatInstructions = {
+export declare type LivechatInstructions = {
type: 'livechat';
callId: string;
};
-
-export type VideoConferenceType = DirectCallInstructions['type'] | ConferenceInstructions['type'] | LivechatInstructions['type'];
-
+export declare type VideoConferenceType =
+ | DirectCallInstructions['type']
+ | ConferenceInstructions['type']
+ | LivechatInstructions['type'];
export interface IVideoConferenceUser extends Pick, '_id' | 'username' | 'name' | 'avatarETag'> {
ts: Date;
}
-
export interface IVideoConference extends IRocketChatRecord {
type: VideoConferenceType;
rid: string;
@@ -45,51 +42,68 @@ export interface IVideoConference extends IRocketChatRecord {
ended?: IMessage['_id'];
};
url?: string;
-
- createdBy: Pick;
+ createdBy: Pick, '_id' | 'username' | 'name'>;
createdAt: Date;
-
- endedBy?: Pick;
+ endedBy?: Pick, '_id' | 'username' | 'name'>;
endedAt?: Date;
-
providerName: string;
providerData?: Record;
-
ringing?: boolean;
}
-
export interface IDirectVideoConference extends IVideoConference {
type: 'direct';
}
-
export interface IGroupVideoConference extends IVideoConference {
type: 'videoconference';
anonymousUsers: number;
title: string;
}
-
export interface ILivechatVideoConference extends IVideoConference {
type: 'livechat';
}
-
-export type VideoConference = IDirectVideoConference | IGroupVideoConference | ILivechatVideoConference;
-
-export type VideoConferenceInstructions = DirectCallInstructions | ConferenceInstructions | LivechatInstructions;
-
-export const isDirectVideoConference = (call: VideoConference | undefined | null): call is IDirectVideoConference =>
- call?.type === 'direct';
-
-export const isGroupVideoConference = (call: VideoConference | undefined | null): call is IGroupVideoConference =>
- call?.type === 'videoconference';
-
-export const isLivechatVideoConference = (call: VideoConference | undefined | null): call is ILivechatVideoConference =>
- call?.type === 'livechat';
-
-type GroupVideoConferenceCreateData = Omit & { createdBy: IUser['_id'] };
-type DirectVideoConferenceCreateData = Omit & { createdBy: IUser['_id'] };
-type LivechatVideoConferenceCreateData = Omit & { createdBy: IUser['_id'] };
-
-export type VideoConferenceCreateData = AtLeast<
+export declare type VideoConference = IDirectVideoConference | IGroupVideoConference | ILivechatVideoConference;
+export declare type VideoConferenceInstructions = DirectCallInstructions | ConferenceInstructions | LivechatInstructions;
+export declare const isDirectVideoConference: (call: VideoConference | undefined | null) => call is IDirectVideoConference;
+export declare const isGroupVideoConference: (call: VideoConference | undefined | null) => call is IGroupVideoConference;
+export declare const isLivechatVideoConference: (call: VideoConference | undefined | null) => call is ILivechatVideoConference;
+declare type GroupVideoConferenceCreateData = Omit & {
+ createdBy: IUser['_id'];
+};
+declare type DirectVideoConferenceCreateData = Omit & {
+ createdBy: IUser['_id'];
+};
+declare type LivechatVideoConferenceCreateData = Omit & {
+ createdBy: IUser['_id'];
+};
+export declare type VideoConferenceCreateData = AtLeast<
DirectVideoConferenceCreateData | GroupVideoConferenceCreateData | LivechatVideoConferenceCreateData,
'createdBy' | 'type' | 'rid' | 'providerName' | 'providerData'
>;
+
+export type VideoConferenceCapabilities = {
+ mic?: boolean;
+ cam?: boolean;
+ title?: boolean;
+};
+
+export type VideoConfStartProps = { roomId: string; title?: string; allowRinging?: boolean };
+
+export type VideoConfJoinProps = {
+ callId: string;
+ state?: {
+ mic?: boolean;
+ cam?: boolean;
+ };
+};
+
+export type VideoConfCancelProps = {
+ callId: string;
+};
+
+export type VideoConfListProps = {
+ roomId: string;
+ count?: number;
+ offset?: number;
+};
+
+export type VideoConfInfoProps = { callId: string };
diff --git a/app/definitions/TUserStatus.ts b/app/definitions/TUserStatus.ts
index ce6286db5..70186c646 100644
--- a/app/definitions/TUserStatus.ts
+++ b/app/definitions/TUserStatus.ts
@@ -1,3 +1,3 @@
-export const STATUSES = ['offline', 'online', 'away', 'busy'] as const;
+export const STATUSES = ['offline', 'online', 'away', 'busy', 'disabled'] as const;
export type TUserStatus = typeof STATUSES[number];
diff --git a/app/definitions/rest/v1/videoConference.ts b/app/definitions/rest/v1/videoConference.ts
index ba681df28..2d93cd7b6 100644
--- a/app/definitions/rest/v1/videoConference.ts
+++ b/app/definitions/rest/v1/videoConference.ts
@@ -1,27 +1,45 @@
-import { VideoConference } from '../../IVideoConference';
+import {
+ VideoConfCancelProps,
+ VideoConference,
+ VideoConferenceCapabilities,
+ VideoConferenceInstructions,
+ VideoConfInfoProps,
+ VideoConfJoinProps,
+ VideoConfListProps,
+ VideoConfStartProps
+} from '../../IVideoConference';
+import { PaginatedResult } from '../helpers/PaginatedResult';
export type VideoConferenceEndpoints = {
- 'video-conference/jitsi.update-timeout': {
- POST: (params: { roomId: string }) => void;
- };
- 'video-conference.join': {
- POST: (params: { callId: string; state: { cam: boolean } }) => { url: string; providerName: string };
- };
'video-conference.start': {
- POST: (params: { roomId: string }) => { url: string };
+ POST: (params: VideoConfStartProps) => { data: VideoConferenceInstructions & { providerName: string } };
+ };
+
+ 'video-conference.join': {
+ POST: (params: VideoConfJoinProps) => { url: string; providerName: string };
};
'video-conference.cancel': {
- POST: (params: { callId: string }) => void;
+ POST: (params: VideoConfCancelProps) => void;
};
'video-conference.info': {
- GET: (params: { callId: string }) => VideoConference & {
- capabilities: {
- mic?: boolean;
- cam?: boolean;
- title?: boolean;
- };
- };
+ GET: (params: VideoConfInfoProps) => VideoConference & { capabilities: VideoConferenceCapabilities };
+ };
+
+ 'video-conference.list': {
+ GET: (params: VideoConfListProps) => PaginatedResult<{ data: VideoConference[] }>;
+ };
+
+ 'video-conference.capabilities': {
+ GET: () => { providerName: string; capabilities: VideoConferenceCapabilities };
+ };
+
+ 'video-conference.providers': {
+ GET: () => { data: { key: string; label: string }[] };
+ };
+
+ 'video-conference/jitsi.update-timeout': {
+ POST: (params: { roomId: string }) => void;
};
};
diff --git a/app/i18n/locales/en.json b/app/i18n/locales/en.json
index 3fe3ea01b..c695d3c63 100644
--- a/app/i18n/locales/en.json
+++ b/app/i18n/locales/en.json
@@ -876,5 +876,20 @@
"Call": "Call",
"Reply_in_direct_message": "Reply in Direct Message",
"room_archived": "archived room",
- "room_unarchived": "unarchived room"
+ "room_unarchived": "unarchived room",
+ "no-videoconf-provider-app-header": "Conference call not available",
+ "no-videoconf-provider-app-body": "Conference call apps can be installed in the Rocket.Chat marketplace by a workspace admin.",
+ "admin-no-videoconf-provider-app-header": "Conference call not enabled",
+ "admin-no-videoconf-provider-app-body": "Conference call apps are available in the Rocket.Chat marketplace.",
+ "no-active-video-conf-provider-header": "Conference call not enabled",
+ "no-active-video-conf-provider-body": "A workspace admin needs to enable the conference call feature first.",
+ "admin-no-active-video-conf-provider-header": "Conference call not enabled",
+ "admin-no-active-video-conf-provider-body": "Configure conference calls in order to make it available on this workspace.",
+ "video-conf-provider-not-configured-header": "Conference call not enabled",
+ "video-conf-provider-not-configured-body": "A workspace admin needs to enable the conference calls feature first.",
+ "admin-video-conf-provider-not-configured-header": "Conference call not enabled",
+ "admin-video-conf-provider-not-configured-body": "Configure conference calls in order to make it available on this workspace.",
+ "Presence_Cap_Warning_Title": "User status temporarily disabled",
+ "Presence_Cap_Warning_Description": "Active connections have reached the limit for the workspace, thus the service that handles user status is disabled. It can be re-enabled manually in workspace settings.",
+ "Learn_more": "Learn more"
}
\ No newline at end of file
diff --git a/app/i18n/locales/pt-BR.json b/app/i18n/locales/pt-BR.json
index 1b7d5b5d1..01d9c85df 100644
--- a/app/i18n/locales/pt-BR.json
+++ b/app/i18n/locales/pt-BR.json
@@ -875,5 +875,7 @@
"Call": "Ligar",
"Reply_in_direct_message": "Responder por mensagem direta",
"room_archived": "{{username}} arquivou a sala",
- "room_unarchived": "{{username}} desarquivou a sala"
+ "room_unarchived": "{{username}} desarquivou a sala",
+ "Presence_Cap_Warning_Title": "Status do usuário desabilitado temporariamente",
+ "Presence_Cap_Warning_Description": "O limite de conexões ativas para a workspace foi atingido, por isso o serviço responsável pela presença dos usuários está temporariamente desabilitado. Ele pode ser reabilitado manualmente nas configurações da workspace."
}
\ No newline at end of file
diff --git a/app/lib/constants/colors.ts b/app/lib/constants/colors.ts
index 5e4ed5509..c9a667601 100644
--- a/app/lib/constants/colors.ts
+++ b/app/lib/constants/colors.ts
@@ -3,7 +3,8 @@ export const STATUS_COLORS: any = {
busy: '#f5455c',
away: '#ffd21f',
offline: '#cbced1',
- loading: '#9ea2a8'
+ loading: '#9ea2a8',
+ disabled: '#F38C39'
};
export const SWITCH_TRACK_COLOR = {
diff --git a/app/lib/constants/defaultSettings.ts b/app/lib/constants/defaultSettings.ts
index f26acc755..9ff54b086 100644
--- a/app/lib/constants/defaultSettings.ts
+++ b/app/lib/constants/defaultSettings.ts
@@ -1,3 +1,4 @@
+// 🚨🚨 48 settings after login. Pay attention not to reach 50 as that's the limit per request.
export const defaultSettings = {
Accounts_AllowEmailChange: {
type: 'valueAsBoolean'
@@ -229,5 +230,8 @@ export const defaultSettings = {
},
Number_of_users_autocomplete_suggestions: {
type: 'valueAsNumber'
+ },
+ Presence_broadcast_disabled: {
+ type: 'valueAsBoolean'
}
} as const;
diff --git a/app/lib/constants/index.ts b/app/lib/constants/index.ts
index 6faa8e6aa..1d8d67b30 100644
--- a/app/lib/constants/index.ts
+++ b/app/lib/constants/index.ts
@@ -8,5 +8,6 @@ export * from './localAuthentication';
export * from './localPath';
export * from './messagesStatus';
export * from './messageTypeLoad';
+export * from './notifications';
export * from './defaultSettings';
export * from './tablet';
diff --git a/app/lib/constants/notifications.ts b/app/lib/constants/notifications.ts
new file mode 100644
index 000000000..2b3b08185
--- /dev/null
+++ b/app/lib/constants/notifications.ts
@@ -0,0 +1 @@
+export const NOTIFICATION_PRESENCE_CAP = 'NOTIFICATION_PRESENCE_CAP';
diff --git a/app/lib/hooks/useVideoConf.ts b/app/lib/hooks/useVideoConf.ts
deleted file mode 100644
index 02aba7c7c..000000000
--- a/app/lib/hooks/useVideoConf.ts
+++ /dev/null
@@ -1,27 +0,0 @@
-import { useCallback } from 'react';
-
-import { TActionSheetOptionsItem, useActionSheet } from '../../containers/ActionSheet';
-import i18n from '../../i18n';
-import { videoConfJoin } from '../methods/videoConf';
-
-export const useVideoConf = (): { joinCall: (blockId: string) => void } => {
- const { showActionSheet } = useActionSheet();
-
- const joinCall = useCallback(blockId => {
- const options: TActionSheetOptionsItem[] = [
- {
- title: i18n.t('Video_call'),
- icon: 'camera',
- onPress: () => videoConfJoin(blockId, true)
- },
- {
- title: i18n.t('Voice_call'),
- icon: 'microphone',
- onPress: () => videoConfJoin(blockId, false)
- }
- ];
- showActionSheet({ options });
- }, []);
-
- return { joinCall };
-};
diff --git a/app/lib/hooks/useVideoConf.tsx b/app/lib/hooks/useVideoConf.tsx
new file mode 100644
index 000000000..6b79f59eb
--- /dev/null
+++ b/app/lib/hooks/useVideoConf.tsx
@@ -0,0 +1,113 @@
+import React, { useEffect, useState } from 'react';
+import { Q } from '@nozbe/watermelondb';
+
+import { useActionSheet } from '../../containers/ActionSheet';
+import StartACallActionSheet from '../../containers/UIKit/VideoConferenceBlock/components/StartACallActionSheet';
+import { ISubscription, SubscriptionType, TSubscriptionModel } from '../../definitions';
+import i18n from '../../i18n';
+import { getUserSelector } from '../../selectors/login';
+import database from '../database';
+import { getSubscriptionByRoomId } from '../database/services/Subscription';
+import { callJitsi } from '../methods';
+import { compareServerVersion, showErrorAlert } from '../methods/helpers';
+import { videoConfStartAndJoin } from '../methods/videoConf';
+import { Services } from '../services';
+import { useAppSelector } from './useAppSelector';
+import { useSnaps } from './useSnaps';
+
+const availabilityErrors = {
+ NOT_CONFIGURED: 'video-conf-provider-not-configured',
+ NOT_ACTIVE: 'no-active-video-conf-provider',
+ NO_APP: 'no-videoconf-provider-app'
+} as const;
+
+const handleErrors = (isAdmin: boolean, error: typeof availabilityErrors[keyof typeof availabilityErrors]) => {
+ if (isAdmin) return showErrorAlert(i18n.t(`admin-${error}-body`), i18n.t(`admin-${error}-header`));
+ return showErrorAlert(i18n.t(`${error}-body`), i18n.t(`${error}-header`));
+};
+
+export const useVideoConf = (rid: string): { showInitCallActionSheet: () => Promise; showCallOption: boolean } => {
+ const [showCallOption, setShowCallOption] = useState(false);
+
+ const serverVersion = useAppSelector(state => state.server.version);
+ const jitsiEnabled = useAppSelector(state => state.settings.Jitsi_Enabled);
+ const jitsiEnableTeams = useAppSelector(state => state.settings.Jitsi_Enable_Teams);
+ const jitsiEnableChannels = useAppSelector(state => state.settings.Jitsi_Enable_Channels);
+ const user = useAppSelector(state => getUserSelector(state));
+
+ const isServer5OrNewer = compareServerVersion(serverVersion, 'greaterThanOrEqualTo', '5.0.0');
+
+ const { showActionSheet } = useActionSheet();
+ const snaps = useSnaps([1250]);
+
+ const handleShowCallOption = (room: TSubscriptionModel) => {
+ if (isServer5OrNewer) return setShowCallOption(true);
+ const isJitsiDisabledForTeams = room.teamMain && !jitsiEnableTeams;
+ const isJitsiDisabledForChannels = !room.teamMain && (room.t === 'p' || room.t === 'c') && !jitsiEnableChannels;
+
+ if (room.t === SubscriptionType.DIRECT) return setShowCallOption(!!jitsiEnabled);
+ if (room.t === SubscriptionType.CHANNEL) return setShowCallOption(!isJitsiDisabledForChannels);
+ if (room.t === SubscriptionType.GROUP) return setShowCallOption(!isJitsiDisabledForTeams);
+
+ return setShowCallOption(false);
+ };
+
+ const canInitAnCall = async () => {
+ if (isServer5OrNewer) {
+ try {
+ await Services.videoConferenceGetCapabilities();
+ return true;
+ } catch (error: any) {
+ const isAdmin = !!['admin'].find(role => user.roles?.includes(role));
+ switch (error?.error) {
+ case availabilityErrors.NOT_CONFIGURED:
+ return handleErrors(isAdmin, availabilityErrors.NOT_CONFIGURED);
+ case availabilityErrors.NOT_ACTIVE:
+ return handleErrors(isAdmin, availabilityErrors.NOT_ACTIVE);
+ case availabilityErrors.NO_APP:
+ return handleErrors(isAdmin, availabilityErrors.NO_APP);
+ default:
+ return handleErrors(isAdmin, availabilityErrors.NOT_CONFIGURED);
+ }
+ }
+ }
+ return true;
+ };
+
+ const initCall = async ({ cam, mic }: { cam: boolean; mic: boolean }) => {
+ if (isServer5OrNewer) return videoConfStartAndJoin({ rid, cam, mic });
+ const room = (await getSubscriptionByRoomId(rid)) as ISubscription;
+ callJitsi({ room, cam });
+ };
+
+ const showInitCallActionSheet = async () => {
+ const canInit = await canInitAnCall();
+ if (canInit) {
+ showActionSheet({
+ children: ,
+ snaps
+ });
+ }
+ };
+
+ const initSubscription = () => {
+ try {
+ const db = database.active;
+ const observeSubCollection = db.get('subscriptions').query(Q.where('rid', rid)).observe();
+ const subObserveQuery = observeSubCollection.subscribe(data => {
+ if (data[0]) {
+ handleShowCallOption(data[0]);
+ subObserveQuery.unsubscribe();
+ }
+ });
+ } catch (e) {
+ console.log("observeSubscriptions: Can't find subscription to observe");
+ }
+ };
+
+ useEffect(() => {
+ initSubscription();
+ }, []);
+
+ return { showInitCallActionSheet, showCallOption };
+};
diff --git a/app/lib/methods/audioFile.ts b/app/lib/methods/audioFile.ts
index 2c0f7ab5d..ac3c135ae 100644
--- a/app/lib/methods/audioFile.ts
+++ b/app/lib/methods/audioFile.ts
@@ -52,7 +52,7 @@ export const deleteAllAudioFiles = async (serverUrl: string): Promise => {
try {
const serverUrlParsed = sanitizeString(serverUrl);
const path = `${FileSystem.documentDirectory}audios/${serverUrlParsed}`;
- await FileSystem.deleteAsync(path);
+ await FileSystem.deleteAsync(path, { idempotent: true });
} catch (error) {
log(error);
}
diff --git a/app/lib/methods/callJitsi.ts b/app/lib/methods/callJitsi.ts
index b6e836408..dfcdcc071 100644
--- a/app/lib/methods/callJitsi.ts
+++ b/app/lib/methods/callJitsi.ts
@@ -46,8 +46,8 @@ export function callJitsiWithoutServer(path: string): void {
Navigation.navigate('JitsiMeetView', { url, onlyAudio: false });
}
-export async function callJitsi(room: ISubscription, onlyAudio = false): Promise {
- logEvent(onlyAudio ? events.RA_JITSI_AUDIO : events.RA_JITSI_VIDEO);
+export async function callJitsi({ room, cam = false }: { room: ISubscription; cam?: boolean }): Promise {
+ logEvent(cam ? events.RA_JITSI_AUDIO : events.RA_JITSI_VIDEO);
const url = await jitsiURL({ room });
- Navigation.navigate('JitsiMeetView', { url, onlyAudio, rid: room?.rid });
+ Navigation.navigate('JitsiMeetView', { url, onlyAudio: cam, rid: room?.rid });
}
diff --git a/app/lib/methods/getSettings.ts b/app/lib/methods/getSettings.ts
index d68f2b914..6da4d4c51 100644
--- a/app/lib/methods/getSettings.ts
+++ b/app/lib/methods/getSettings.ts
@@ -11,6 +11,7 @@ import database from '../database';
import sdk from '../services/sdk';
import protectedFunction from './helpers/protectedFunction';
import { parseSettings, _prepareSettings } from './parseSettings';
+import { setPresenceCap } from './getUsersPresence';
const serverInfoKeys = [
'Site_Name',
@@ -157,8 +158,11 @@ export async function getSettings(): Promise {
const data: IData[] = result.settings || [];
const filteredSettings: IPreparedSettings[] = _prepareSettings(data);
const filteredSettingsIds = filteredSettings.map(s => s._id);
+ const parsedSettings = parseSettings(filteredSettings);
- reduxStore.dispatch(addSettings(parseSettings(filteredSettings)));
+ reduxStore.dispatch(addSettings(parsedSettings));
+
+ setPresenceCap(parsedSettings.Presence_broadcast_disabled);
// filter server info
const serverInfo = filteredSettings.filter(i1 => serverInfoKeys.includes(i1._id));
diff --git a/app/lib/methods/getUsersPresence.ts b/app/lib/methods/getUsersPresence.ts
index 6d4a3d0b7..34c48906b 100644
--- a/app/lib/methods/getUsersPresence.ts
+++ b/app/lib/methods/getUsersPresence.ts
@@ -9,6 +9,9 @@ import database from '../database';
import { IUser } from '../../definitions';
import sdk from '../services/sdk';
import { compareServerVersion } from './helpers';
+import userPreferences from './userPreferences';
+import { NOTIFICATION_PRESENCE_CAP } from '../constants';
+import { setNotificationPresenceCap } from '../../actions/app';
export const _activeUsersSubTimeout: { activeUsersSubTimeout: boolean | ReturnType | number } = {
activeUsersSubTimeout: false
@@ -124,3 +127,16 @@ export function getUserPresence(uid: string) {
usersBatch.push(uid);
}
}
+
+export const setPresenceCap = async (enabled: boolean) => {
+ if (enabled) {
+ const notificationPresenceCap = await userPreferences.getBool(NOTIFICATION_PRESENCE_CAP);
+ if (notificationPresenceCap !== false) {
+ userPreferences.setBool(NOTIFICATION_PRESENCE_CAP, true);
+ reduxStore.dispatch(setNotificationPresenceCap(true));
+ }
+ } else {
+ userPreferences.removeItem(NOTIFICATION_PRESENCE_CAP);
+ reduxStore.dispatch(setNotificationPresenceCap(false));
+ }
+};
diff --git a/app/lib/methods/subscriptions/room.ts b/app/lib/methods/subscriptions/room.ts
index 56d87d284..d38a84644 100644
--- a/app/lib/methods/subscriptions/room.ts
+++ b/app/lib/methods/subscriptions/room.ts
@@ -138,6 +138,23 @@ export default class RoomSubscription {
reduxStore.dispatch(removeUserTyping(name));
}
}
+ } else if (ev === 'user-activity') {
+ const { user } = reduxStore.getState().login;
+ const { UI_Use_Real_Name } = reduxStore.getState().settings;
+ const { subscribedRoom } = reduxStore.getState().room;
+ if (subscribedRoom !== _rid) {
+ return;
+ }
+ const [name, activities] = ddpMessage.fields.args;
+ const key = UI_Use_Real_Name ? 'name' : 'username';
+ if (name !== user[key]) {
+ if (activities.includes('user-typing')) {
+ reduxStore.dispatch(addUserTyping(name));
+ }
+ if (!activities.length) {
+ reduxStore.dispatch(removeUserTyping(name));
+ }
+ }
} else if (ev === 'deleteMessage') {
InteractionManager.runAfterInteractions(async () => {
if (ddpMessage && ddpMessage.fields && ddpMessage.fields.args.length > 0) {
diff --git a/app/lib/methods/userPreferences.ts b/app/lib/methods/userPreferences.ts
index d0f623278..b46e0f2f9 100644
--- a/app/lib/methods/userPreferences.ts
+++ b/app/lib/methods/userPreferences.ts
@@ -16,42 +16,43 @@ class UserPreferences {
getString(key: string): string | null {
try {
- return this.mmkv.getString(key) || null;
+ return this.mmkv.getString(key) ?? null;
} catch {
return null;
}
}
setString(key: string, value: string): boolean | undefined {
- return this.mmkv.setString(key, value) || undefined;
+ return this.mmkv.setString(key, value) ?? undefined;
}
getBool(key: string): boolean | null {
try {
- return this.mmkv.getBool(key) || null;
+ console.log(this.mmkv.getBool(key));
+ return this.mmkv.getBool(key) ?? null;
} catch {
return null;
}
}
setBool(key: string, value: boolean): boolean | undefined {
- return this.mmkv.setBool(key, value) || undefined;
+ return this.mmkv.setBool(key, value) ?? undefined;
}
getMap(key: string): object | null {
try {
- return this.mmkv.getMap(key) || null;
+ return this.mmkv.getMap(key) ?? null;
} catch {
return null;
}
}
setMap(key: string, value: object): boolean | undefined {
- return this.mmkv.setMap(key, value) || undefined;
+ return this.mmkv.setMap(key, value) ?? undefined;
}
removeItem(key: string): boolean | undefined {
- return this.mmkv.removeItem(key) || undefined;
+ return this.mmkv.removeItem(key) ?? undefined;
}
}
diff --git a/app/lib/methods/videoConf.ts b/app/lib/methods/videoConf.ts
index 255d18688..3385ea7ef 100644
--- a/app/lib/methods/videoConf.ts
+++ b/app/lib/methods/videoConf.ts
@@ -19,9 +19,9 @@ const handleBltPermission = async (): Promise => {
return [PermissionsAndroid.PERMISSIONS.ACCESS_COARSE_LOCATION];
};
-export const videoConfJoin = async (callId: string, cam: boolean) => {
+export const videoConfJoin = async (callId: string, cam?: boolean, mic?: boolean): Promise => {
try {
- const result = await Services.videoConferenceJoin(callId, cam);
+ const result = await Services.videoConferenceJoin(callId, cam, mic);
if (result.success) {
if (isAndroid) {
const bltPermission = await handleBltPermission();
@@ -44,11 +44,11 @@ export const videoConfJoin = async (callId: string, cam: boolean) => {
}
};
-export const videoConfStartAndJoin = async (rid: string, cam: boolean) => {
+export const videoConfStartAndJoin = async ({ rid, cam, mic }: { rid: string; cam?: boolean; mic?: boolean }): Promise => {
try {
- const videoConfResponse: any = await Services.videoConferenceStart(rid);
+ const videoConfResponse = await Services.videoConferenceStart(rid);
if (videoConfResponse.success) {
- videoConfJoin(videoConfResponse.data.callId, cam);
+ videoConfJoin(videoConfResponse.data.callId, cam, mic);
}
} catch (e) {
showErrorAlert(i18n.t('error-init-video-conf'));
diff --git a/app/lib/methods/videoConfTimer.ts b/app/lib/methods/videoConfTimer.ts
new file mode 100644
index 000000000..46bcd3ed1
--- /dev/null
+++ b/app/lib/methods/videoConfTimer.ts
@@ -0,0 +1,27 @@
+import BackgroundTimer from 'react-native-background-timer';
+
+import { Services } from '../services';
+
+let interval: number | null = null;
+
+export const initVideoConfTimer = (rid: string): void => {
+ if (rid) {
+ Services.updateJitsiTimeout(rid).catch((e: unknown) => console.log(e));
+ if (interval) {
+ BackgroundTimer.clearInterval(interval);
+ BackgroundTimer.stopBackgroundTimer();
+ interval = null;
+ }
+ interval = BackgroundTimer.setInterval(() => {
+ Services.updateJitsiTimeout(rid).catch((e: unknown) => console.log(e));
+ }, 10000);
+ }
+};
+
+export const endVideoConfTimer = (): void => {
+ if (interval) {
+ BackgroundTimer.clearInterval(interval);
+ interval = null;
+ BackgroundTimer.stopBackgroundTimer();
+ }
+};
diff --git a/app/lib/services/connect.ts b/app/lib/services/connect.ts
index 41f20cf2e..d64069f49 100644
--- a/app/lib/services/connect.ts
+++ b/app/lib/services/connect.ts
@@ -20,7 +20,16 @@ import { updatePermission } from '../../actions/permissions';
import EventEmitter from '../methods/helpers/events';
import { updateSettings } from '../../actions/settings';
import { defaultSettings, MIN_ROCKETCHAT_VERSION } from '../constants';
-import { getSettings, IActiveUsers, unsubscribeRooms, _activeUsers, _setUser, _setUserTimer, onRolesChanged } from '../methods';
+import {
+ getSettings,
+ IActiveUsers,
+ unsubscribeRooms,
+ _activeUsers,
+ _setUser,
+ _setUserTimer,
+ onRolesChanged,
+ setPresenceCap
+} from '../methods';
import { compareServerVersion, isIOS, isSsl } from '../methods/helpers';
interface IServices {
@@ -144,6 +153,10 @@ function connect({ server, logoutOnError = false }: { server: string; logoutOnEr
});
}
store.dispatch(updateSettings(_id, value));
+
+ if (_id === 'Presence_broadcast_disabled') {
+ setPresenceCap(value);
+ }
} catch (e) {
log(e);
}
diff --git a/app/lib/services/restApi.ts b/app/lib/services/restApi.ts
index 75f256fbb..d73c1d9df 100644
--- a/app/lib/services/restApi.ts
+++ b/app/lib/services/restApi.ts
@@ -812,10 +812,14 @@ export const addUsersToRoom = (rid: string): Promise => {
};
export const emitTyping = (room: IRoom, typing = true) => {
- const { login, settings } = reduxStore.getState();
+ const { login, settings, server } = reduxStore.getState();
const { UI_Use_Real_Name } = settings;
+ const { version: serverVersion } = server;
const { user } = login;
const name = UI_Use_Real_Name ? user.name : user.username;
+ if (compareServerVersion(serverVersion, 'greaterThanOrEqualTo', '4.0.0')) {
+ return sdk.methodCall('stream-notify-room', `${room}/user-activity`, name, typing ? ['user-typing'] : []);
+ }
return sdk.methodCall('stream-notify-room', `${room}/typing`, name, typing);
};
@@ -932,8 +936,10 @@ export function getUserInfo(userId: string) {
export const toggleFavorite = (roomId: string, favorite: boolean) => sdk.post('rooms.favorite', { roomId, favorite });
-export const videoConferenceJoin = (callId: string, cam: boolean) =>
- sdk.post('video-conference.join', { callId, state: { cam } });
+export const videoConferenceJoin = (callId: string, cam?: boolean, mic?: boolean) =>
+ sdk.post('video-conference.join', { callId, state: { cam: !!cam, mic: mic === undefined ? true : mic } });
+
+export const videoConferenceGetCapabilities = () => sdk.get('video-conference.capabilities');
export const videoConferenceStart = (roomId: string) => sdk.post('video-conference.start', { roomId });
diff --git a/app/lib/services/sdk.ts b/app/lib/services/sdk.ts
index 3f1e47968..e6b89121d 100644
--- a/app/lib/services/sdk.ts
+++ b/app/lib/services/sdk.ts
@@ -6,7 +6,7 @@ import { twoFactor } from './twoFactor';
import { isSsl } from '../methods/helpers/url';
import { store as reduxStore } from '../store/auxStore';
import { Serialized, MatchPathPattern, OperationParams, PathFor, ResultFor } from '../../definitions/rest/helpers';
-import { random } from '../methods/helpers';
+import { compareServerVersion, random } from '../methods/helpers';
class Sdk {
private sdk: typeof Rocketchat;
@@ -162,7 +162,22 @@ class Sdk {
}
subscribeRoom(...args: any[]) {
- return this.current.subscribeRoom(...args);
+ const { server } = reduxStore.getState();
+ const { version: serverVersion } = server;
+ const topic = 'stream-notify-room';
+ let eventUserTyping;
+ if (compareServerVersion(serverVersion, 'greaterThanOrEqualTo', '4.0.0')) {
+ eventUserTyping = this.subscribe(topic, `${args[0]}/user-activity`, ...args);
+ } else {
+ eventUserTyping = this.subscribe(topic, `${args[0]}/typing`, ...args);
+ }
+
+ // Taken from https://github.com/RocketChat/Rocket.Chat.js.SDK/blob/454b4ba784095057b8de862eb99340311b672e15/lib/drivers/ddp.ts#L555
+ return Promise.all([
+ this.subscribe('stream-room-messages', args[0], ...args),
+ eventUserTyping,
+ this.subscribe(topic, `${args[0]}/deleteMessage`, ...args)
+ ]);
}
unsubscribe(subscription: any[]) {
diff --git a/app/reducers/app.test.ts b/app/reducers/app.test.ts
index a4910ab0f..581cde74c 100644
--- a/app/reducers/app.test.ts
+++ b/app/reducers/app.test.ts
@@ -1,4 +1,4 @@
-import { appStart, appInit, setMasterDetail } from '../actions/app';
+import { appStart, appInit, setMasterDetail, setNotificationPresenceCap, appReady } from '../actions/app';
import { initialState } from './app';
import { mockedStore } from './mockedStore';
import { RootEnum } from '../definitions';
@@ -20,6 +20,9 @@ describe('test reducer', () => {
mockedStore.dispatch(appInit());
const { ready } = mockedStore.getState().app;
expect(ready).toEqual(false);
+ mockedStore.dispatch(appReady());
+ const { ready: ready2 } = mockedStore.getState().app;
+ expect(ready2).toEqual(true);
});
it('should return ready state after dispatch setMasterDetail action', () => {
@@ -41,4 +44,13 @@ describe('test reducer', () => {
expect(foreground).toEqual(false);
expect(background).toEqual(true);
});
+
+ it('should return correct state after dispatch setNotificationPresenceCap action', () => {
+ mockedStore.dispatch(setNotificationPresenceCap(true));
+ const { notificationPresenceCap } = mockedStore.getState().app;
+ expect(notificationPresenceCap).toEqual(true);
+ mockedStore.dispatch(setNotificationPresenceCap(false));
+ const { notificationPresenceCap: notificationPresenceCap2 } = mockedStore.getState().app;
+ expect(notificationPresenceCap2).toEqual(false);
+ });
});
diff --git a/app/reducers/app.ts b/app/reducers/app.ts
index 5cd948973..b9876b836 100644
--- a/app/reducers/app.ts
+++ b/app/reducers/app.ts
@@ -9,6 +9,7 @@ export interface IApp {
ready: boolean;
foreground: boolean;
background: boolean;
+ notificationPresenceCap: boolean;
}
export const initialState: IApp = {
@@ -17,7 +18,8 @@ export const initialState: IApp = {
text: undefined,
ready: false,
foreground: true,
- background: false
+ background: false,
+ notificationPresenceCap: false
};
export default function app(state = initialState, action: TActionApp): IApp {
@@ -55,6 +57,11 @@ export default function app(state = initialState, action: TActionApp): IApp {
...state,
isMasterDetail: action.isMasterDetail
};
+ case APP.SET_NOTIFICATION_PRESENCE_CAP:
+ return {
+ ...state,
+ notificationPresenceCap: action.show
+ };
default:
return state;
}
diff --git a/app/stacks/InsideStack.tsx b/app/stacks/InsideStack.tsx
index 9d9899393..2d8b2c6ae 100644
--- a/app/stacks/InsideStack.tsx
+++ b/app/stacks/InsideStack.tsx
@@ -105,11 +105,7 @@ const ChatsStackNavigator = () => {
/>
-
+
diff --git a/app/stacks/MasterDetailStack/index.tsx b/app/stacks/MasterDetailStack/index.tsx
index 0b315a284..dd7cc4d1a 100644
--- a/app/stacks/MasterDetailStack/index.tsx
+++ b/app/stacks/MasterDetailStack/index.tsx
@@ -142,11 +142,7 @@ const ModalStackNavigator = React.memo(({ navigation }: INavigation) => {
component={AddExistingChannelView}
options={AddExistingChannelView.navigationOptions}
/>
-
+
{
+ const { colors } = useTheme();
+ const inviteLinkParam = useAppSelector(state => state.inviteLinks[param]);
+ const dispatch = useDispatch();
+
+ const onValueChangePicker = (value: number) => {
+ logEvent(events.IU_EDIT_SET_LINK_PARAM);
+ const params = {
+ [param]: value
+ };
+ dispatch(inviteLinksSetParams(params));
+ };
+
+ const textInputStyle: TextInputProps = { style: { ...styles.pickerText, color: colors.actionTintColor } };
+ const firstEl = [
+ {
+ label: I18n.t(first),
+ value: 0
+ }
+ ];
+ return (
+ onValueChangePicker(value)}
+ items={firstEl.concat(OPTIONS[param])}
+ />
+ );
+};
+
+export default Picker;
diff --git a/app/views/InviteUsersEditView/index.tsx b/app/views/InviteUsersEditView/index.tsx
index 4ee14a9a3..5fc2f3b99 100644
--- a/app/views/InviteUsersEditView/index.tsx
+++ b/app/views/InviteUsersEditView/index.tsx
@@ -1,149 +1,54 @@
-import { StackNavigationOptions } from '@react-navigation/stack';
-import React from 'react';
-import { TextInputProps, View } from 'react-native';
-import RNPickerSelect from 'react-native-picker-select';
-import { connect } from 'react-redux';
+import { StackNavigationProp } from '@react-navigation/stack';
+import React, { useLayoutEffect } from 'react';
+import { View } from 'react-native';
+import { useDispatch } from 'react-redux';
+import { RouteProp, useNavigation, useRoute } from '@react-navigation/native';
-import { inviteLinksCreate, inviteLinksSetParams } from '../../actions/inviteLinks';
-import { themes } from '../../lib/constants';
+import { inviteLinksCreate } from '../../actions/inviteLinks';
import Button from '../../containers/Button';
import * as List from '../../containers/List';
import SafeAreaView from '../../containers/SafeAreaView';
import StatusBar from '../../containers/StatusBar';
-import { IApplicationState, IBaseScreen } from '../../definitions';
import I18n from '../../i18n';
import { ChatsStackParamList } from '../../stacks/types';
-import { withTheme } from '../../theme';
import { events, logEvent } from '../../lib/methods/helpers/log';
import styles from './styles';
+import Picker from './Picker';
-const OPTIONS = {
- days: [
- {
- label: '1',
- value: 1
- },
- {
- label: '7',
- value: 7
- },
- {
- label: '15',
- value: 15
- },
- {
- label: '30',
- value: 30
- }
- ],
- maxUses: [
- {
- label: '1',
- value: 1
- },
- {
- label: '5',
- value: 5
- },
- {
- label: '10',
- value: 10
- },
- {
- label: '25',
- value: 25
- },
- {
- label: '50',
- value: 50
- },
- {
- label: '100',
- value: 100
- }
- ]
-};
+const InviteUsersEditView = () => {
+ const navigation = useNavigation>();
+ const { rid } = useRoute>().params;
+ const dispatch = useDispatch();
-interface IInviteUsersEditViewProps extends IBaseScreen {
- days: number;
- maxUses: number;
-}
+ useLayoutEffect(() => {
+ navigation.setOptions({
+ title: I18n.t('Invite_users')
+ });
+ }, [navigation]);
-class InviteUsersEditView extends React.Component {
- static navigationOptions = (): StackNavigationOptions => ({
- title: I18n.t('Invite_users')
- });
-
- private rid: string;
-
- constructor(props: IInviteUsersEditViewProps) {
- super(props);
- this.rid = props.route.params?.rid;
- }
-
- onValueChangePicker = (key: string, value: number) => {
- const { dispatch } = this.props;
- logEvent(events.IU_EDIT_SET_LINK_PARAM);
- const params = {
- [key]: value
- };
- dispatch(inviteLinksSetParams(params));
- };
-
- createInviteLink = () => {
- const { dispatch, navigation } = this.props;
+ const createInviteLink = () => {
logEvent(events.IU_EDIT_CREATE_LINK);
- dispatch(inviteLinksCreate(this.rid));
+ dispatch(inviteLinksCreate(rid));
navigation.pop();
};
- renderPicker = (key: 'days' | 'maxUses', first: string) => {
- const { props } = this;
- const { theme } = props;
- const textInputStyle: TextInputProps = { style: { ...styles.pickerText, color: themes[theme].actionTintColor } };
- const firstEl = [
- {
- label: I18n.t(first),
- value: 0
- }
- ];
- return (
- this.onValueChangePicker(key, value)}
- items={firstEl.concat(OPTIONS[key])}
- />
- );
- };
+ return (
+
+
+
+
+
+ } />
+
+ } />
+
+
+
+
+
+
+
+ );
+};
- render() {
- return (
-
-
-
-
-
- this.renderPicker('days', 'Never')} />
-
- this.renderPicker('maxUses', 'No_limit')} />
-
-
-
-
-
-
-
- );
- }
-}
-
-const mapStateToProps = (state: IApplicationState) => ({
- days: state.inviteLinks.days,
- maxUses: state.inviteLinks.maxUses
-});
-
-export default connect(mapStateToProps)(withTheme(InviteUsersEditView));
+export default InviteUsersEditView;
diff --git a/app/views/JitsiMeetView.android.tsx b/app/views/JitsiMeetView.android.tsx
index ce54691c1..45265494d 100644
--- a/app/views/JitsiMeetView.android.tsx
+++ b/app/views/JitsiMeetView.android.tsx
@@ -1,14 +1,13 @@
+import { activateKeepAwake, deactivateKeepAwake } from 'expo-keep-awake';
import React from 'react';
import { BackHandler, NativeEventSubscription } from 'react-native';
-import BackgroundTimer from 'react-native-background-timer';
import { isAppInstalled, openAppWithUri } from 'react-native-send-intent';
import WebView from 'react-native-webview';
import { WebViewMessage, WebViewNavigation } from 'react-native-webview/lib/WebViewTypes';
-import { activateKeepAwake, deactivateKeepAwake } from 'expo-keep-awake';
import { IBaseScreen } from '../definitions';
import { events, logEvent } from '../lib/methods/helpers/log';
-import { Services } from '../lib/services';
+import { endVideoConfTimer, initVideoConfTimer } from '../lib/methods/videoConfTimer';
import { ChatsStackParamList } from '../stacks/types';
import { withTheme } from '../theme';
@@ -20,7 +19,6 @@ class JitsiMeetView extends React.Component {
private rid: string;
private url: string;
private videoConf: boolean;
- private jitsiTimeout: number | null;
private backHandler!: NativeEventSubscription;
constructor(props: TJitsiMeetViewProps) {
@@ -28,7 +26,6 @@ class JitsiMeetView extends React.Component {
this.rid = props.route.params?.rid;
this.url = props.route.params?.url;
this.videoConf = !!props.route.params?.videoConf;
- this.jitsiTimeout = null;
}
componentDidMount() {
@@ -50,10 +47,8 @@ class JitsiMeetView extends React.Component {
componentWillUnmount() {
logEvent(this.videoConf ? events.LIVECHAT_VIDEOCONF_TERMINATE : events.JM_CONFERENCE_TERMINATE);
- if (this.jitsiTimeout && !this.videoConf) {
- BackgroundTimer.clearInterval(this.jitsiTimeout);
- this.jitsiTimeout = null;
- BackgroundTimer.stopBackgroundTimer();
+ if (!this.videoConf) {
+ endVideoConfTimer();
}
this.backHandler.remove();
deactivateKeepAwake();
@@ -64,15 +59,7 @@ class JitsiMeetView extends React.Component {
onConferenceJoined = () => {
logEvent(this.videoConf ? events.LIVECHAT_VIDEOCONF_JOIN : events.JM_CONFERENCE_JOIN);
if (this.rid && !this.videoConf) {
- Services.updateJitsiTimeout(this.rid).catch((e: unknown) => console.log(e));
- if (this.jitsiTimeout) {
- BackgroundTimer.clearInterval(this.jitsiTimeout);
- BackgroundTimer.stopBackgroundTimer();
- this.jitsiTimeout = null;
- }
- this.jitsiTimeout = BackgroundTimer.setInterval(() => {
- Services.updateJitsiTimeout(this.rid).catch((e: unknown) => console.log(e));
- }, 10000);
+ initVideoConfTimer(this.rid);
}
};
@@ -90,7 +77,7 @@ class JitsiMeetView extends React.Component {
render() {
return (
this.onNavigationStateChange(nativeEvent)}
onNavigationStateChange={this.onNavigationStateChange}
style={{ flex: 1 }}
diff --git a/app/views/JitsiMeetView.ios.tsx b/app/views/JitsiMeetView.ios.tsx
index effbe2331..d4f0c4c72 100644
--- a/app/views/JitsiMeetView.ios.tsx
+++ b/app/views/JitsiMeetView.ios.tsx
@@ -9,6 +9,7 @@ import { useAppSelector } from '../lib/hooks';
import { events, logEvent } from '../lib/methods/helpers/log';
import { getUserSelector } from '../selectors/login';
import { ChatsStackParamList } from '../stacks/types';
+import { endVideoConfTimer, initVideoConfTimer } from '../lib/methods/videoConfTimer';
const formatUrl = (url: string, baseUrl: string, uriSize: number, avatarAuthURLFragment: string) =>
`${baseUrl}/avatar/${url}?format=png&width=${uriSize}&height=${uriSize}${avatarAuthURLFragment}`;
@@ -16,7 +17,7 @@ const formatUrl = (url: string, baseUrl: string, uriSize: number, avatarAuthURLF
const JitsiMeetView = (): React.ReactElement => {
const { goBack } = useNavigation();
const {
- params: { url, onlyAudio, videoConf }
+ params: { url, onlyAudio, videoConf, rid }
} = useRoute>();
const user = useAppSelector(state => getUserSelector(state));
const baseUrl = useAppSelector(state => state.server.server);
@@ -60,8 +61,10 @@ const JitsiMeetView = (): React.ReactElement => {
}
};
logEvent(videoConf ? events.LIVECHAT_VIDEOCONF_JOIN : events.JM_CONFERENCE_JOIN);
+ if (!videoConf) initVideoConfTimer(rid);
await JitsiMeet.launchJitsiMeetView(conferenceOptions);
logEvent(videoConf ? events.LIVECHAT_VIDEOCONF_TERMINATE : events.JM_CONFERENCE_TERMINATE);
+ if (!videoConf) endVideoConfTimer();
goBack();
};
diff --git a/app/views/RoomActionsView/components/CallSection.tsx b/app/views/RoomActionsView/components/CallSection.tsx
new file mode 100644
index 000000000..180bbbb52
--- /dev/null
+++ b/app/views/RoomActionsView/components/CallSection.tsx
@@ -0,0 +1,25 @@
+import React from 'react';
+
+import * as List from '../../../containers/List';
+import i18n from '../../../i18n';
+import { useVideoConf } from '../../../lib/hooks/useVideoConf';
+
+export default function CallSection({ rid }: { rid: string }): React.ReactElement | null {
+ const { showCallOption, showInitCallActionSheet } = useVideoConf(rid);
+
+ if (showCallOption)
+ return (
+
+
+ }
+ showActionIndicator
+ />
+
+
+ );
+ return null;
+}
diff --git a/app/views/RoomActionsView/index.tsx b/app/views/RoomActionsView/index.tsx
index 9c3a4eaaa..8e0a409b6 100644
--- a/app/views/RoomActionsView/index.tsx
+++ b/app/views/RoomActionsView/index.tsx
@@ -33,7 +33,7 @@ import sharedStyles from '../Styles';
import styles from './styles';
import { ERoomType } from '../../definitions/ERoomType';
import { E2E_ROOM_TYPES, SWITCH_TRACK_COLOR, themes } from '../../lib/constants';
-import { callJitsi, getPermalinkChannel } from '../../lib/methods';
+import { getPermalinkChannel } from '../../lib/methods';
import {
canAutoTranslate as canAutoTranslateMethod,
getRoomAvatar,
@@ -48,9 +48,9 @@ import { getSubscriptionByRoomId } from '../../lib/database/services/Subscriptio
import { IActionSheetProvider, withActionSheet } from '../../containers/ActionSheet';
import { MasterDetailInsideStackParamList } from '../../stacks/MasterDetailStack/types';
import { closeLivechat } from '../../lib/methods/helpers/closeLivechat';
-import { videoConfStartAndJoin } from '../../lib/methods/videoConf';
import { ILivechatDepartment } from '../../definitions/ILivechatDepartment';
import { ILivechatTag } from '../../definitions/ILivechatTag';
+import CallSection from './components/CallSection';
interface IOnPressTouch {
(item: { route?: T; params?: ChatsStackParamList[T]; event?: Function }): void;
@@ -730,16 +730,6 @@ class RoomActionsView extends React.Component {
- const { room } = this.state;
- const { serverVersion } = this.props;
- if (compareServerVersion(serverVersion, 'greaterThanOrEqualTo', '5.0.0')) {
- videoConfStartAndJoin(room.rid, video);
- } else {
- callJitsi(room, !video);
- }
- };
-
renderRoomInfo = () => {
const { room, member } = this.state;
const { rid, name, t, topic, source } = room;
@@ -815,63 +805,6 @@ class RoomActionsView extends React.Component {
- const { room } = this.state;
- const {
- jitsiEnabled,
- jitsiEnableTeams,
- jitsiEnableChannels,
- serverVersion,
- videoConf_Enable_DMs,
- videoConf_Enable_Channels,
- videoConf_Enable_Groups,
- videoConf_Enable_Teams
- } = this.props;
-
- const isJitsiDisabledForTeams = room.teamMain && !jitsiEnableTeams;
- const isJitsiDisabledForChannels = !room.teamMain && (room.t === 'p' || room.t === 'c') && !jitsiEnableChannels;
-
- const isVideoConfDisabledForTeams = !!room.teamMain && !videoConf_Enable_Teams;
- const isVideoConfDisabledForChannels = !room.teamMain && room.t === 'c' && !videoConf_Enable_Channels;
- const isVideoConfDisabledForGroups = !room.teamMain && room.t === 'p' && !videoConf_Enable_Groups;
- const isVideoConfDisabledForDirect = !room.teamMain && room.t === 'd' && !videoConf_Enable_DMs;
-
- if (compareServerVersion(serverVersion, 'greaterThanOrEqualTo', '5.0.0')) {
- if (
- isVideoConfDisabledForTeams ||
- isVideoConfDisabledForChannels ||
- isVideoConfDisabledForGroups ||
- isVideoConfDisabledForDirect
- ) {
- return null;
- }
- } else if (!jitsiEnabled || isJitsiDisabledForTeams || isJitsiDisabledForChannels) {
- return null;
- }
-
- return (
-
-
- this.startVideoConf({ video: false })}
- testID='room-actions-voice'
- left={() => }
- showActionIndicator
- />
-
- this.startVideoConf({ video: true })}
- testID='room-actions-video'
- left={() => }
- showActionIndicator
- />
-
-
- );
- };
-
renderE2EEncryption = () => {
const { room } = this.state;
const { encryptionEnabled } = this.props;
@@ -1108,7 +1041,7 @@ class RoomActionsView extends React.Component
{this.renderRoomInfo()}
- {this.renderJitsi()}
+
{this.renderE2EEncryption()}
@@ -1299,13 +1232,6 @@ class RoomActionsView extends React.Component ({
userId: getUserSelector(state).id,
- jitsiEnabled: (state.settings.Jitsi_Enabled || false) as boolean,
- jitsiEnableTeams: (state.settings.Jitsi_Enable_Teams || false) as boolean,
- jitsiEnableChannels: (state.settings.Jitsi_Enable_Channels || false) as boolean,
- videoConf_Enable_DMs: (state.settings.VideoConf_Enable_DMs ?? true) as boolean,
- videoConf_Enable_Channels: (state.settings.VideoConf_Enable_Channels ?? true) as boolean,
- videoConf_Enable_Groups: (state.settings.VideoConf_Enable_Groups ?? true) as boolean,
- videoConf_Enable_Teams: (state.settings.VideoConf_Enable_Teams ?? true) as boolean,
encryptionEnabled: state.encryption.enabled,
serverVersion: state.server.version,
isMasterDetail: state.app.isMasterDetail,
diff --git a/app/views/RoomInfoView/components/UserInfoButton.tsx b/app/views/RoomInfoView/components/UserInfoButton.tsx
new file mode 100644
index 000000000..7185c8112
--- /dev/null
+++ b/app/views/RoomInfoView/components/UserInfoButton.tsx
@@ -0,0 +1,48 @@
+import React from 'react';
+import { Text } from 'react-native';
+import { BorderlessButton } from 'react-native-gesture-handler';
+
+import { CustomIcon, TIconsName } from '../../../containers/CustomIcon';
+import styles from '../styles';
+import { useTheme } from '../../../theme';
+import { useVideoConf } from '../../../lib/hooks/useVideoConf';
+import i18n from '../../../i18n';
+import { useAppSelector } from '../../../lib/hooks';
+import { compareServerVersion } from '../../../lib/methods/helpers';
+
+// TODO: change other icons on future
+function UserInfoButton({
+ danger,
+ iconName,
+ onPress,
+ label,
+ showIcon
+}: {
+ danger?: boolean;
+ iconName: TIconsName;
+ onPress?: (prop: any) => void;
+ label: string;
+ showIcon?: boolean;
+}): React.ReactElement | null {
+ const { colors } = useTheme();
+ const color = danger ? colors.dangerColor : colors.actionTintColor;
+
+ if (showIcon)
+ return (
+
+
+ {label}
+
+ );
+ return null;
+}
+
+export function CallButton({ rid, isDirect }: { rid: string; isDirect: boolean }): React.ReactElement | null {
+ const { showCallOption, showInitCallActionSheet } = useVideoConf(rid);
+ const serverVersion = useAppSelector(state => state.server.version);
+ const greaterThanFive = compareServerVersion(serverVersion, 'greaterThanOrEqualTo', '5.0.0');
+
+ const showIcon = greaterThanFive ? showCallOption : showCallOption && isDirect;
+
+ return ;
+}
diff --git a/app/views/RoomInfoView/index.tsx b/app/views/RoomInfoView/index.tsx
index 2744c0cc6..d57a23bae 100644
--- a/app/views/RoomInfoView/index.tsx
+++ b/app/views/RoomInfoView/index.tsx
@@ -1,43 +1,43 @@
+import { CompositeNavigationProp, RouteProp } from '@react-navigation/native';
+import { StackNavigationProp } from '@react-navigation/stack';
+import isEmpty from 'lodash/isEmpty';
import React from 'react';
import { ScrollView, Text, View } from 'react-native';
import { BorderlessButton } from 'react-native-gesture-handler';
import { connect } from 'react-redux';
-import UAParser from 'ua-parser-js';
-import isEmpty from 'lodash/isEmpty';
-import { StackNavigationProp } from '@react-navigation/stack';
-import { CompositeNavigationProp, RouteProp } from '@react-navigation/native';
import { Observable, Subscription } from 'rxjs';
+import UAParser from 'ua-parser-js';
-import { CustomIcon, TIconsName } from '../../containers/CustomIcon';
-import Status from '../../containers/Status';
import Avatar from '../../containers/Avatar';
-import sharedStyles from '../Styles';
-import RoomTypeIcon from '../../containers/RoomTypeIcon';
-import I18n from '../../i18n';
+import { CustomIcon, TIconsName } from '../../containers/CustomIcon';
import * as HeaderButton from '../../containers/HeaderButton';
-import StatusBar from '../../containers/StatusBar';
-import log, { events, logEvent } from '../../lib/methods/helpers/log';
-import { themes } from '../../lib/constants';
-import { TSupportedThemes, withTheme } from '../../theme';
import { MarkdownPreview } from '../../containers/markdown';
-import { LISTENER } from '../../containers/Toast';
-import EventEmitter from '../../lib/methods/helpers/events';
+import RoomTypeIcon from '../../containers/RoomTypeIcon';
import SafeAreaView from '../../containers/SafeAreaView';
-import { goRoom } from '../../lib/methods/helpers/goRoom';
-import Navigation from '../../lib/navigation/appNavigation';
-import Livechat from './Livechat';
-import Channel from './Channel';
-import Direct from './Direct';
-import styles from './styles';
-import { ChatsStackParamList } from '../../stacks/types';
-import { MasterDetailInsideStackParamList } from '../../stacks/MasterDetailStack/types';
-import { SubscriptionType, TSubscriptionModel, ISubscription, IUser, IApplicationState } from '../../definitions';
+import Status from '../../containers/Status';
+import StatusBar from '../../containers/StatusBar';
+import { LISTENER } from '../../containers/Toast';
+import { IApplicationState, ISubscription, IUser, SubscriptionType, TSubscriptionModel } from '../../definitions';
import { ILivechatVisitor } from '../../definitions/ILivechatVisitor';
-import { callJitsi } from '../../lib/methods';
-import { getRoomTitle, getUidDirectMessage, hasPermission } from '../../lib/methods/helpers';
-import { Services } from '../../lib/services';
+import I18n from '../../i18n';
+import { themes } from '../../lib/constants';
import { getSubscriptionByRoomId } from '../../lib/database/services/Subscription';
+import { getRoomTitle, getUidDirectMessage, hasPermission } from '../../lib/methods/helpers';
+import EventEmitter from '../../lib/methods/helpers/events';
+import { goRoom } from '../../lib/methods/helpers/goRoom';
import { handleIgnore } from '../../lib/methods/helpers/handleIgnore';
+import log, { events, logEvent } from '../../lib/methods/helpers/log';
+import Navigation from '../../lib/navigation/appNavigation';
+import { Services } from '../../lib/services';
+import { MasterDetailInsideStackParamList } from '../../stacks/MasterDetailStack/types';
+import { ChatsStackParamList } from '../../stacks/types';
+import { TSupportedThemes, withTheme } from '../../theme';
+import sharedStyles from '../Styles';
+import Channel from './Channel';
+import { CallButton } from './components/UserInfoButton';
+import Direct from './Direct';
+import Livechat from './Livechat';
+import styles from './styles';
interface IGetRoomTitle {
room: ISubscription;
@@ -386,11 +386,6 @@ class RoomInfoView extends React.Component {
- const { room } = this.state;
- callJitsi(room);
- };
-
handleBlockUser = async (rid: string, blocked: string, block: boolean) => {
logEvent(events.RI_TOGGLE_BLOCK_USER);
try {
@@ -425,8 +420,7 @@ class RoomInfoView extends React.Component {
- const { roomFromRid, roomUser } = this.state;
- const { jitsiEnabled } = this.props;
+ const { roomFromRid, roomUser, room } = this.state;
const isFromDm = roomFromRid?.rid ? new RegExp(roomUser._id).test(roomFromRid.rid) : false;
const isDirectFromSaved = this.isDirect && this.fromRid && roomFromRid;
@@ -442,9 +436,7 @@ class RoomInfoView extends React.Component
{this.renderButton(() => this.handleCreateDirectMessage(this.goRoom), 'message', I18n.t('Message'))}
- {jitsiEnabled && this.isDirect
- ? this.renderButton(() => this.handleCreateDirectMessage(this.videoCall), 'camera', I18n.t('Video_call'))
- : null}
+
{isDirectFromSaved && !isFromDm && !isDmWithMyself
? this.renderButton(
() => handleIgnore(roomUser._id, !isIgnored, roomFromRid.rid),
diff --git a/app/views/RoomView/RightButtons.tsx b/app/views/RoomView/RightButtons.tsx
index 308169094..a37b5d11f 100644
--- a/app/views/RoomView/RightButtons.tsx
+++ b/app/views/RoomView/RightButtons.tsx
@@ -10,8 +10,7 @@ import * as HeaderButton from '../../containers/HeaderButton';
import database from '../../lib/database';
import { getUserSelector } from '../../selectors/login';
import { events, logEvent } from '../../lib/methods/helpers/log';
-import { isTeamRoom } from '../../lib/methods/helpers/room';
-import { IApplicationState, SubscriptionType, TMessageModel, TSubscriptionModel } from '../../definitions';
+import { IApplicationState, ISubscription, SubscriptionType, TMessageModel, TSubscriptionModel } from '../../definitions';
import { ChatsStackParamList } from '../../stacks/types';
import { TActionSheetOptionsItem } from '../../containers/ActionSheet';
import i18n from '../../i18n';
@@ -20,12 +19,11 @@ import { onHoldLivechat, returnLivechat } from '../../lib/services/restApi';
import { closeLivechat as closeLivechatService } from '../../lib/methods/helpers/closeLivechat';
import { Services } from '../../lib/services';
import { ILivechatDepartment } from '../../definitions/ILivechatDepartment';
+import HeaderCallButton from './components/HeaderCallButton';
-interface IRightButtonsProps {
+interface IRightButtonsProps extends Pick {
userId?: string;
threadsEnabled: boolean;
- rid?: string;
- t: string;
tmid?: string;
teamId?: string;
isMasterDetail: boolean;
@@ -43,6 +41,7 @@ interface IRightButtonsProps {
livechatRequestComment: boolean;
showActionSheet: Function;
departmentId?: string;
+ rid?: string;
}
interface IRigthButtonsState {
@@ -338,7 +337,7 @@ class RightButtonsContainer extends Component
- {isTeamRoom({ teamId, joined }) ? (
-
- ) : null}
+ {rid ? : null}
{threadsEnabled ? (
}
+ badge={() => }
/>
) : null}
diff --git a/app/views/RoomView/components/HeaderCallButton.tsx b/app/views/RoomView/components/HeaderCallButton.tsx
new file mode 100644
index 000000000..83fbb1241
--- /dev/null
+++ b/app/views/RoomView/components/HeaderCallButton.tsx
@@ -0,0 +1,12 @@
+import React from 'react';
+
+import * as HeaderButton from '../../../containers/HeaderButton';
+import { useVideoConf } from '../../../lib/hooks/useVideoConf';
+
+export default function HeaderCallButton({ rid }: { rid: string }): React.ReactElement | null {
+ const { showInitCallActionSheet, showCallOption } = useVideoConf(rid);
+
+ if (showCallOption)
+ return ;
+ return null;
+}
diff --git a/app/views/RoomView/index.tsx b/app/views/RoomView/index.tsx
index 771229a26..8e38aa9ef 100644
--- a/app/views/RoomView/index.tsx
+++ b/app/views/RoomView/index.tsx
@@ -627,7 +627,7 @@ class RoomView extends React.Component {
joined={joined}
status={room.status}
omnichannelPermissions={omnichannelPermissions}
- t={this.t || t}
+ t={(this.t || t) as SubscriptionType}
encrypted={encrypted}
navigation={navigation}
toggleFollowThread={this.toggleFollowThread}
@@ -785,13 +785,22 @@ class RoomView extends React.Component {
});
};
+ handleCloseEmoji = (action?: Function, params?: any) => {
+ if (this.messagebox?.current) {
+ return this.messagebox?.current.closeEmojiAndAction(action, params);
+ }
+ if (action) {
+ return action(params);
+ }
+ };
+
errorActionsShow = (message: TAnyMessageModel) => {
- this.messagebox?.current?.closeEmojiAndAction(this.messageErrorActions?.showMessageErrorActions, message);
+ this.handleCloseEmoji(this.messageErrorActions?.showMessageErrorActions, message);
};
showActionSheet = (options: any) => {
const { showActionSheet } = this.props;
- this.messagebox?.current?.closeEmojiAndAction(showActionSheet, options);
+ this.handleCloseEmoji(showActionSheet, options);
};
onEditInit = (message: TAnyMessageModel) => {
@@ -850,7 +859,7 @@ class RoomView extends React.Component {
};
onReactionInit = (message: TAnyMessageModel) => {
- this.messagebox?.current?.closeEmojiAndAction(() => {
+ this.handleCloseEmoji(() => {
this.setState({ selectedMessage: message }, this.showReactionPicker);
});
};
@@ -865,7 +874,7 @@ class RoomView extends React.Component {
if (message.tmid && !this.tmid) {
return;
}
- this.messagebox?.current?.closeEmojiAndAction(this.messageActions?.showMessageActions, message);
+ this.handleCloseEmoji(this.messageActions?.showMessageActions, message);
};
showAttachment = (attachment: IAttachment) => {
@@ -894,7 +903,7 @@ class RoomView extends React.Component {
this.setState({ selectedMessage: message });
const { showActionSheet } = this.props;
const { selectedMessage } = this.state;
- this.messagebox?.current?.closeEmojiAndAction(showActionSheet, {
+ this.handleCloseEmoji(showActionSheet, {
children: ,
snaps: ['50%', '80%'],
enableContentPanningGesture: false
@@ -1225,14 +1234,15 @@ class RoomView extends React.Component {
});
};
- handleCallJitsi = () => {
+ // OLD METHOD - support versions before 5.0.0
+ handleEnterCall = () => {
const { room } = this.state;
if ('id' in room) {
const { jitsiTimeout } = room;
if (jitsiTimeout && jitsiTimeout < new Date()) {
showErrorAlert(I18n.t('Call_already_ended'));
} else {
- callJitsi(room);
+ callJitsi({ room });
}
}
};
@@ -1378,14 +1388,14 @@ class RoomView extends React.Component {
autoTranslateLanguage={'id' in room ? room.autoTranslateLanguage : undefined}
navToRoomInfo={this.navToRoomInfo}
getCustomEmoji={this.getCustomEmoji}
- callJitsi={this.handleCallJitsi}
+ handleEnterCall={this.handleEnterCall}
blockAction={this.blockAction}
threadBadgeColor={this.getBadgeColor(item?.id)}
toggleFollowThread={this.toggleFollowThread}
jumpToMessage={this.jumpToMessageByUrl}
highlighted={highlightedMessage === item.id}
theme={theme}
- closeEmojiAndAction={this.messagebox?.current?.closeEmojiAndAction}
+ closeEmojiAndAction={this.handleCloseEmoji}
/>
);
}
diff --git a/app/views/RoomsListView/index.tsx b/app/views/RoomsListView/index.tsx
index ce1ac8004..a204364b3 100644
--- a/app/views/RoomsListView/index.tsx
+++ b/app/views/RoomsListView/index.tsx
@@ -86,6 +86,7 @@ interface IRoomsListViewProps {
StoreLastMessage: boolean;
useRealName: boolean;
isMasterDetail: boolean;
+ notificationPresenceCap: boolean;
subscribedRoom: string;
width: number;
insets: {
@@ -146,6 +147,7 @@ const shouldUpdateProps = [
'StoreLastMessage',
'theme',
'isMasterDetail',
+ 'notificationPresenceCap',
'refreshing',
'queueSize',
'inquiryEnabled',
@@ -255,21 +257,18 @@ class RoomsListView extends React.Component nextProps[key] !== this.props[key]);
if (propsUpdated) {
return true;
}
// check if some display props are changed to force update when focus this view again
- // eslint-disable-next-line react/destructuring-assignment
const displayUpdated = displayPropsShouldUpdate.some(key => nextProps[key] !== this.props[key]);
if (displayUpdated) {
this.shouldUpdate = true;
}
// check if some sort preferences are changed to getSubscription() when focus this view again
- // eslint-disable-next-line react/destructuring-assignment
const sortPreferencesUpdate = sortPreferencesShouldUpdate.some(key => nextProps[key] !== this.props[key]);
if (sortPreferencesUpdate) {
this.sortPreferencesChanged = true;
@@ -339,6 +338,7 @@ class RoomsListView extends React.Component {
const { searching, canCreateRoom } = this.state;
- const { navigation, isMasterDetail } = this.props;
+ const { navigation, isMasterDetail, notificationPresenceCap } = this.props;
if (searching) {
return {
headerTitleAlign: 'left',
@@ -451,6 +455,7 @@ class RoomsListView extends React.Component navigation.toggleDrawer()
}
+ badge={() => (notificationPresenceCap ? : null)}
/>
),
headerTitle: () => ,
@@ -1034,6 +1039,7 @@ class RoomsListView extends React.Component ({
user: getUserSelector(state),
isMasterDetail: state.app.isMasterDetail,
+ notificationPresenceCap: state.app.notificationPresenceCap,
server: state.server.server,
changingServer: state.server.changingServer,
searchText: state.rooms.searchText,
diff --git a/app/views/SidebarView/index.tsx b/app/views/SidebarView/index.tsx
index 068d9257e..06d9ec0b4 100644
--- a/app/views/SidebarView/index.tsx
+++ b/app/views/SidebarView/index.tsx
@@ -1,17 +1,19 @@
import React, { Component } from 'react';
import { DrawerNavigationProp } from '@react-navigation/drawer';
import { DrawerNavigationState } from '@react-navigation/native';
-import { ScrollView, Text, TouchableWithoutFeedback, View } from 'react-native';
+import { Alert, ScrollView, Text, TouchableWithoutFeedback, View, Linking } from 'react-native';
import { connect } from 'react-redux';
import { dequal } from 'dequal';
+import { Dispatch } from 'redux';
import Avatar from '../../containers/Avatar';
import Status from '../../containers/Status/Status';
import { events, logEvent } from '../../lib/methods/helpers/log';
import I18n from '../../i18n';
import scrollPersistTaps from '../../lib/methods/helpers/scrollPersistTaps';
+import userPreferences from '../../lib/methods/userPreferences';
import { CustomIcon } from '../../containers/CustomIcon';
-import { themes } from '../../lib/constants';
+import { NOTIFICATION_PRESENCE_CAP, STATUS_COLORS, themes } from '../../lib/constants';
import { TSupportedThemes, withTheme } from '../../theme';
import { getUserSelector } from '../../selectors/login';
import SafeAreaView from '../../containers/SafeAreaView';
@@ -21,6 +23,7 @@ import styles from './styles';
import { DrawerParamList } from '../../stacks/types';
import { IApplicationState, IUser } from '../../definitions';
import * as List from '../../containers/List';
+import { setNotificationPresenceCap } from '../../actions/app';
interface ISidebarState {
showStatus: boolean;
@@ -29,6 +32,7 @@ interface ISidebarState {
interface ISidebarProps {
baseUrl: string;
navigation?: DrawerNavigationProp;
+ dispatch: Dispatch;
state?: DrawerNavigationState;
Site_Name: string;
user: IUser;
@@ -36,6 +40,8 @@ interface ISidebarProps {
loadingServer: boolean;
useRealName: boolean;
allowStatusMessage: boolean;
+ notificationPresenceCap: boolean;
+ Presence_broadcast_disabled: boolean;
isMasterDetail: boolean;
viewStatisticsPermission: string[];
viewRoomAdministrationPermission: string[];
@@ -59,8 +65,10 @@ class Sidebar extends Component {
baseUrl,
state,
isMasterDetail,
+ notificationPresenceCap,
useRealName,
theme,
+ Presence_broadcast_disabled,
viewStatisticsPermission,
viewRoomAdministrationPermission,
viewUserAdministrationPermission,
@@ -91,9 +99,15 @@ class Sidebar extends Component {
if (nextProps.isMasterDetail !== isMasterDetail) {
return true;
}
+ if (nextProps.notificationPresenceCap !== notificationPresenceCap) {
+ return true;
+ }
if (nextProps.useRealName !== useRealName) {
return true;
}
+ if (nextProps.Presence_broadcast_disabled !== Presence_broadcast_disabled) {
+ return true;
+ }
if (!dequal(nextProps.viewStatisticsPermission, viewStatisticsPermission)) {
return true;
}
@@ -156,6 +170,33 @@ class Sidebar extends Component {
navigation?.closeDrawer();
};
+ onPressLearnMorePresenceCap = () => {
+ Linking.openURL('https://go.rocket.chat/i/presence-cap-learn-more');
+ };
+
+ onPressPresenceLearnMore = () => {
+ const { dispatch } = this.props;
+ dispatch(setNotificationPresenceCap(false));
+ userPreferences.setBool(NOTIFICATION_PRESENCE_CAP, false);
+
+ Alert.alert(
+ I18n.t('Presence_Cap_Warning_Title'),
+ I18n.t('Presence_Cap_Warning_Description'),
+ [
+ {
+ text: I18n.t('Learn_more'),
+ onPress: this.onPressLearnMorePresenceCap,
+ style: 'cancel'
+ },
+ {
+ text: I18n.t('Close'),
+ style: 'default'
+ }
+ ],
+ { cancelable: false }
+ );
+ };
+
renderAdmin = () => {
const { theme, isMasterDetail } = this.props;
if (!this.getIsAdmin()) {
@@ -219,14 +260,27 @@ class Sidebar extends Component {
};
renderCustomStatus = () => {
- const { user, theme } = this.props;
+ const { user, theme, Presence_broadcast_disabled, notificationPresenceCap } = this.props;
+
+ let status = user?.status;
+ if (Presence_broadcast_disabled) {
+ status = 'disabled';
+ }
+
+ let right: React.ReactElement | undefined = ;
+ if (notificationPresenceCap) {
+ right = ;
+ } else if (Presence_broadcast_disabled) {
+ right = undefined;
+ }
+
return (
}
+ left={}
theme={theme!}
- right={}
- onPress={() => this.sidebarNavigate('StatusView')}
+ right={right}
+ onPress={() => (Presence_broadcast_disabled ? this.onPressPresenceLearnMore() : this.sidebarNavigate('StatusView'))}
testID={`sidebar-custom-status-${user.status}`}
/>
);
@@ -294,6 +348,8 @@ const mapStateToProps = (state: IApplicationState) => ({
loadingServer: state.server.loading,
useRealName: state.settings.UI_Use_Real_Name as boolean,
allowStatusMessage: state.settings.Accounts_AllowUserStatusMessageChange as boolean,
+ Presence_broadcast_disabled: state.settings.Presence_broadcast_disabled as boolean,
+ notificationPresenceCap: state.app.notificationPresenceCap,
isMasterDetail: state.app.isMasterDetail,
viewStatisticsPermission: state.permissions['view-statistics'] as string[],
viewRoomAdministrationPermission: state.permissions['view-room-administration'] as string[],
diff --git a/app/views/SidebarView/styles.ts b/app/views/SidebarView/styles.ts
index 1d9ff2cbe..63d4c290a 100644
--- a/app/views/SidebarView/styles.ts
+++ b/app/views/SidebarView/styles.ts
@@ -63,5 +63,10 @@ export default StyleSheet.create({
},
inverted: {
transform: [{ scaleY: -1 }]
+ },
+ customStatusDisabled: {
+ width: 10,
+ height: 10,
+ borderRadius: 5
}
});
diff --git a/ios/Podfile.lock b/ios/Podfile.lock
index 6a30663dc..509bb513e 100644
--- a/ios/Podfile.lock
+++ b/ios/Podfile.lock
@@ -571,7 +571,7 @@ PODS:
- RNScreens (3.13.1):
- React-Core
- React-RCTImage
- - RNSVG (12.3.0):
+ - RNSVG (13.8.0):
- React-Core
- RNVectorIcons (9.1.0):
- React-Core
@@ -992,7 +992,7 @@ SPEC CHECKSUMS:
RNReanimated: 64573e25e078ae6bec03b891586d50b9ec284393
RNRootView: 895a4813dedeaca82db2fa868ca1c333d790e494
RNScreens: 40a2cb40a02a609938137a1e0acfbf8fc9eebf19
- RNSVG: 302bfc9905bd8122f08966dc2ce2d07b7b52b9f8
+ RNSVG: c1e76b81c76cdcd34b4e1188852892dc280eb902
RNVectorIcons: 7923e585eaeb139b9f4531d25a125a1500162a0b
SDWebImage: a47aea9e3d8816015db4e523daff50cfd294499d
SDWebImageWebPCoder: 908b83b6adda48effe7667cd2b7f78c897e5111d
diff --git a/ios/RocketChatRN.xcodeproj/project.pbxproj b/ios/RocketChatRN.xcodeproj/project.pbxproj
index 15e439521..0e329aa84 100644
--- a/ios/RocketChatRN.xcodeproj/project.pbxproj
+++ b/ios/RocketChatRN.xcodeproj/project.pbxproj
@@ -79,9 +79,9 @@
1EFEB5982493B6640072EDC0 /* NotificationService.swift in Sources */ = {isa = PBXBuildFile; fileRef = 1EFEB5972493B6640072EDC0 /* NotificationService.swift */; };
1EFEB59C2493B6640072EDC0 /* NotificationService.appex in Embed App Extensions */ = {isa = PBXBuildFile; fileRef = 1EFEB5952493B6640072EDC0 /* NotificationService.appex */; settings = {ATTRIBUTES = (RemoveHeadersOnCopy, ); }; };
24A2AEF2383D44B586D31C01 /* libz.tbd in Frameworks */ = {isa = PBXBuildFile; fileRef = 06BB44DD4855498082A744AD /* libz.tbd */; };
- 3428841903D5E9DF496DE48A /* libPods-defaults-NotificationService.a in Frameworks */ = {isa = PBXBuildFile; fileRef = 9AD6F4F1CA81CFBFAB9147D1 /* libPods-defaults-NotificationService.a */; };
- 355DF2C1EB6AE2EDAA4420A1 /* libPods-defaults-RocketChatRN.a in Frameworks */ = {isa = PBXBuildFile; fileRef = C7C47F5259E6C50F5F091177 /* libPods-defaults-RocketChatRN.a */; };
+ 31F6989CEEDC99B631FF14A1 /* libPods-defaults-Rocket.Chat.a in Frameworks */ = {isa = PBXBuildFile; fileRef = BEEF0800F1E2C6C9B9DC1B17 /* libPods-defaults-Rocket.Chat.a */; };
4C4C8603EF082F0A33A95522 /* ExpoModulesProvider.swift in Sources */ = {isa = PBXBuildFile; fileRef = 45D5C142B655F8EFD006792C /* ExpoModulesProvider.swift */; };
+ 6182E4536BDDC0D2089CFC2D /* libPods-defaults-NotificationService.a in Frameworks */ = {isa = PBXBuildFile; fileRef = E52D0DFBF3BEC0B54670215A /* libPods-defaults-NotificationService.a */; };
7A006F14229C83B600803143 /* GoogleService-Info.plist in Resources */ = {isa = PBXBuildFile; fileRef = 7A006F13229C83B600803143 /* GoogleService-Info.plist */; };
7A0D62D2242AB187006D5C06 /* LaunchScreen.storyboard in Resources */ = {isa = PBXBuildFile; fileRef = 7A0D62D1242AB187006D5C06 /* LaunchScreen.storyboard */; };
7A14FCED257FEB3A005BDCD4 /* Experimental.xcassets in Resources */ = {isa = PBXBuildFile; fileRef = 7A14FCEC257FEB3A005BDCD4 /* Experimental.xcassets */; };
@@ -141,12 +141,12 @@
7AE10C0628A59530003593CB /* Inter.ttf in Resources */ = {isa = PBXBuildFile; fileRef = 7AE10C0528A59530003593CB /* Inter.ttf */; };
7AE10C0728A59530003593CB /* Inter.ttf in Resources */ = {isa = PBXBuildFile; fileRef = 7AE10C0528A59530003593CB /* Inter.ttf */; };
7AE10C0828A59530003593CB /* Inter.ttf in Resources */ = {isa = PBXBuildFile; fileRef = 7AE10C0528A59530003593CB /* Inter.ttf */; };
+ 7F7CD19B61A4AFEB3C7E8DA0 /* libPods-defaults-ShareRocketChatRN.a in Frameworks */ = {isa = PBXBuildFile; fileRef = 75F8546FE2CD36242E77FCD5 /* libPods-defaults-ShareRocketChatRN.a */; };
85160EB6C143E0493FE5F014 /* ExpoModulesProvider.swift in Sources */ = {isa = PBXBuildFile; fileRef = 194D9A8897F4A486C2C6F89A /* ExpoModulesProvider.swift */; };
BC404914E86821389EEB543D /* ExpoModulesProvider.swift in Sources */ = {isa = PBXBuildFile; fileRef = 391C4F7AA7023CD41EEBD106 /* ExpoModulesProvider.swift */; };
- C4118613B1A26D0EE69ABB50 /* libPods-defaults-Rocket.Chat.a in Frameworks */ = {isa = PBXBuildFile; fileRef = C39C3A2ADF65BEE59DE88C14 /* libPods-defaults-Rocket.Chat.a */; };
D94D81FB9E10756FAA03F203 /* ExpoModulesProvider.swift in Sources */ = {isa = PBXBuildFile; fileRef = 016747EF3B9FED8DE2C9DA14 /* ExpoModulesProvider.swift */; };
DD2BA30A89E64F189C2C24AC /* libWatermelonDB.a in Frameworks */ = {isa = PBXBuildFile; fileRef = BA7E862283664608B3894E34 /* libWatermelonDB.a */; };
- DEAD0F91AC857FAF265F39FE /* libPods-defaults-ShareRocketChatRN.a in Frameworks */ = {isa = PBXBuildFile; fileRef = 50B06A24F363113116685C61 /* libPods-defaults-ShareRocketChatRN.a */; };
+ E24DFBE76AD79B9378F9C4A9 /* libPods-defaults-RocketChatRN.a in Frameworks */ = {isa = PBXBuildFile; fileRef = 6C9449507269E40A7E2D75C1 /* libPods-defaults-RocketChatRN.a */; };
/* End PBXBuildFile section */
/* Begin PBXContainerItemProxy section */
@@ -263,14 +263,17 @@
1EFEB5972493B6640072EDC0 /* NotificationService.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = NotificationService.swift; sourceTree = ""; };
1EFEB5992493B6640072EDC0 /* Info.plist */ = {isa = PBXFileReference; lastKnownFileType = text.plist.xml; path = Info.plist; sourceTree = ""; };
1EFEB5A12493B67D0072EDC0 /* NotificationService.entitlements */ = {isa = PBXFileReference; lastKnownFileType = text.plist.entitlements; path = NotificationService.entitlements; sourceTree = ""; };
+ 24F0638AC692626312816D98 /* Pods-defaults-ShareRocketChatRN.release.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; name = "Pods-defaults-ShareRocketChatRN.release.xcconfig"; path = "Target Support Files/Pods-defaults-ShareRocketChatRN/Pods-defaults-ShareRocketChatRN.release.xcconfig"; sourceTree = ""; };
+ 2D5EED0CA4EE40F7CCB182E1 /* Pods-defaults-Rocket.Chat.debug.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; name = "Pods-defaults-Rocket.Chat.debug.xcconfig"; path = "Target Support Files/Pods-defaults-Rocket.Chat/Pods-defaults-Rocket.Chat.debug.xcconfig"; sourceTree = ""; };
391C4F7AA7023CD41EEBD106 /* ExpoModulesProvider.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = ExpoModulesProvider.swift; path = "Pods/Target Support Files/Pods-defaults-Rocket.Chat/ExpoModulesProvider.swift"; sourceTree = ""; };
45D5C142B655F8EFD006792C /* ExpoModulesProvider.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = ExpoModulesProvider.swift; path = "Pods/Target Support Files/Pods-defaults-RocketChatRN/ExpoModulesProvider.swift"; sourceTree = ""; };
- 50B06A24F363113116685C61 /* libPods-defaults-ShareRocketChatRN.a */ = {isa = PBXFileReference; explicitFileType = archive.ar; includeInIndex = 0; path = "libPods-defaults-ShareRocketChatRN.a"; sourceTree = BUILT_PRODUCTS_DIR; };
- 5AEADD477F93997903C0A9D2 /* Pods-defaults-ShareRocketChatRN.release.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; name = "Pods-defaults-ShareRocketChatRN.release.xcconfig"; path = "Target Support Files/Pods-defaults-ShareRocketChatRN/Pods-defaults-ShareRocketChatRN.release.xcconfig"; sourceTree = ""; };
- 5C4E40513802F0D083548B91 /* Pods-defaults-RocketChatRN.debug.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; name = "Pods-defaults-RocketChatRN.debug.xcconfig"; path = "Target Support Files/Pods-defaults-RocketChatRN/Pods-defaults-RocketChatRN.debug.xcconfig"; sourceTree = ""; };
60B2A6A31FC4588700BD58E5 /* RocketChatRN.entitlements */ = {isa = PBXFileReference; lastKnownFileType = text.plist.entitlements; name = RocketChatRN.entitlements; path = RocketChatRN/RocketChatRN.entitlements; sourceTree = ""; };
- 6392EAC856E40FC344F534E5 /* Pods-defaults-ShareRocketChatRN.debug.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; name = "Pods-defaults-ShareRocketChatRN.debug.xcconfig"; path = "Target Support Files/Pods-defaults-ShareRocketChatRN/Pods-defaults-ShareRocketChatRN.debug.xcconfig"; sourceTree = ""; };
65360F272979AA1500778C04 /* JitsiMeetViewController.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; name = JitsiMeetViewController.swift; path = "../node_modules/@socialcode-rob1/react-native-jitsimeet-custom/ios/JitsiMeetViewController.swift"; sourceTree = ""; };
+ 6BE39B02344777D199E20615 /* Pods-defaults-RocketChatRN.release.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; name = "Pods-defaults-RocketChatRN.release.xcconfig"; path = "Target Support Files/Pods-defaults-RocketChatRN/Pods-defaults-RocketChatRN.release.xcconfig"; sourceTree = ""; };
+ 6C9449507269E40A7E2D75C1 /* libPods-defaults-RocketChatRN.a */ = {isa = PBXFileReference; explicitFileType = archive.ar; includeInIndex = 0; path = "libPods-defaults-RocketChatRN.a"; sourceTree = BUILT_PRODUCTS_DIR; };
+ 75F8546FE2CD36242E77FCD5 /* libPods-defaults-ShareRocketChatRN.a */ = {isa = PBXFileReference; explicitFileType = archive.ar; includeInIndex = 0; path = "libPods-defaults-ShareRocketChatRN.a"; sourceTree = BUILT_PRODUCTS_DIR; };
+ 778F20307FD6CE7A7F73DE7A /* Pods-defaults-Rocket.Chat.release.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; name = "Pods-defaults-Rocket.Chat.release.xcconfig"; path = "Target Support Files/Pods-defaults-Rocket.Chat/Pods-defaults-Rocket.Chat.release.xcconfig"; sourceTree = ""; };
+ 7953BE5657102E9F711003EA /* Pods-defaults-ShareRocketChatRN.debug.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; name = "Pods-defaults-ShareRocketChatRN.debug.xcconfig"; path = "Target Support Files/Pods-defaults-ShareRocketChatRN/Pods-defaults-ShareRocketChatRN.debug.xcconfig"; sourceTree = ""; };
7A006F13229C83B600803143 /* GoogleService-Info.plist */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.plist.xml; path = "GoogleService-Info.plist"; sourceTree = ""; };
7A0D62D1242AB187006D5C06 /* LaunchScreen.storyboard */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = file.storyboard; path = LaunchScreen.storyboard; sourceTree = ""; };
7A14FCEC257FEB3A005BDCD4 /* Experimental.xcassets */ = {isa = PBXFileReference; lastKnownFileType = folder.assetcatalog; path = Experimental.xcassets; sourceTree = ""; };
@@ -281,16 +284,13 @@
7AAB3E52257E6A6E00707CF6 /* Rocket.Chat.app */ = {isa = PBXFileReference; explicitFileType = wrapper.application; includeInIndex = 0; path = Rocket.Chat.app; sourceTree = BUILT_PRODUCTS_DIR; };
7ACD4853222860DE00442C55 /* JavaScriptCore.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = JavaScriptCore.framework; path = System/Library/Frameworks/JavaScriptCore.framework; sourceTree = SDKROOT; };
7AE10C0528A59530003593CB /* Inter.ttf */ = {isa = PBXFileReference; lastKnownFileType = file; path = Inter.ttf; sourceTree = ""; };
- 9AD6F4F1CA81CFBFAB9147D1 /* libPods-defaults-NotificationService.a */ = {isa = PBXFileReference; explicitFileType = archive.ar; includeInIndex = 0; path = "libPods-defaults-NotificationService.a"; sourceTree = BUILT_PRODUCTS_DIR; };
- A889D1B10F353A4A17269CCD /* Pods-defaults-RocketChatRN.release.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; name = "Pods-defaults-RocketChatRN.release.xcconfig"; path = "Target Support Files/Pods-defaults-RocketChatRN/Pods-defaults-RocketChatRN.release.xcconfig"; sourceTree = ""; };
- A937EDE060FF1D99EC1D5668 /* Pods-defaults-NotificationService.debug.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; name = "Pods-defaults-NotificationService.debug.xcconfig"; path = "Target Support Files/Pods-defaults-NotificationService/Pods-defaults-NotificationService.debug.xcconfig"; sourceTree = ""; };
- B313929D5A0461D5D08B2A64 /* Pods-defaults-Rocket.Chat.release.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; name = "Pods-defaults-Rocket.Chat.release.xcconfig"; path = "Target Support Files/Pods-defaults-Rocket.Chat/Pods-defaults-Rocket.Chat.release.xcconfig"; sourceTree = ""; };
+ 9FC8E091220C5BADC415C75D /* Pods-defaults-RocketChatRN.debug.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; name = "Pods-defaults-RocketChatRN.debug.xcconfig"; path = "Target Support Files/Pods-defaults-RocketChatRN/Pods-defaults-RocketChatRN.debug.xcconfig"; sourceTree = ""; };
+ A55168E03501CCEDF17A2ED6 /* Pods-defaults-NotificationService.debug.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; name = "Pods-defaults-NotificationService.debug.xcconfig"; path = "Target Support Files/Pods-defaults-NotificationService/Pods-defaults-NotificationService.debug.xcconfig"; sourceTree = ""; };
B37C79D9BD0742CE936B6982 /* libc++.tbd */ = {isa = PBXFileReference; explicitFileType = undefined; fileEncoding = 9; includeInIndex = 0; lastKnownFileType = "sourcecode.text-based-dylib-definition"; name = "libc++.tbd"; path = "usr/lib/libc++.tbd"; sourceTree = SDKROOT; };
BA7E862283664608B3894E34 /* libWatermelonDB.a */ = {isa = PBXFileReference; explicitFileType = undefined; fileEncoding = 9; includeInIndex = 0; lastKnownFileType = archive.ar; path = libWatermelonDB.a; sourceTree = ""; };
- C39C3A2ADF65BEE59DE88C14 /* libPods-defaults-Rocket.Chat.a */ = {isa = PBXFileReference; explicitFileType = archive.ar; includeInIndex = 0; path = "libPods-defaults-Rocket.Chat.a"; sourceTree = BUILT_PRODUCTS_DIR; };
- C7C47F5259E6C50F5F091177 /* libPods-defaults-RocketChatRN.a */ = {isa = PBXFileReference; explicitFileType = archive.ar; includeInIndex = 0; path = "libPods-defaults-RocketChatRN.a"; sourceTree = BUILT_PRODUCTS_DIR; };
- E4B2A652A63425C0D2A10308 /* Pods-defaults-NotificationService.release.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; name = "Pods-defaults-NotificationService.release.xcconfig"; path = "Target Support Files/Pods-defaults-NotificationService/Pods-defaults-NotificationService.release.xcconfig"; sourceTree = ""; };
- ED7365DBECFD3329826DF680 /* Pods-defaults-Rocket.Chat.debug.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; name = "Pods-defaults-Rocket.Chat.debug.xcconfig"; path = "Target Support Files/Pods-defaults-Rocket.Chat/Pods-defaults-Rocket.Chat.debug.xcconfig"; sourceTree = ""; };
+ BEEF0800F1E2C6C9B9DC1B17 /* libPods-defaults-Rocket.Chat.a */ = {isa = PBXFileReference; explicitFileType = archive.ar; includeInIndex = 0; path = "libPods-defaults-Rocket.Chat.a"; sourceTree = BUILT_PRODUCTS_DIR; };
+ E52D0DFBF3BEC0B54670215A /* libPods-defaults-NotificationService.a */ = {isa = PBXFileReference; explicitFileType = archive.ar; includeInIndex = 0; path = "libPods-defaults-NotificationService.a"; sourceTree = BUILT_PRODUCTS_DIR; };
+ F35D225DC21083A127C3E7CB /* Pods-defaults-NotificationService.release.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; name = "Pods-defaults-NotificationService.release.xcconfig"; path = "Target Support Files/Pods-defaults-NotificationService/Pods-defaults-NotificationService.release.xcconfig"; sourceTree = ""; };
/* End PBXFileReference section */
/* Begin PBXFrameworksBuildPhase section */
@@ -311,7 +311,7 @@
7ACD4897222860DE00442C55 /* JavaScriptCore.framework in Frameworks */,
24A2AEF2383D44B586D31C01 /* libz.tbd in Frameworks */,
DD2BA30A89E64F189C2C24AC /* libWatermelonDB.a in Frameworks */,
- 355DF2C1EB6AE2EDAA4420A1 /* libPods-defaults-RocketChatRN.a in Frameworks */,
+ E24DFBE76AD79B9378F9C4A9 /* libPods-defaults-RocketChatRN.a in Frameworks */,
);
runOnlyForDeploymentPostprocessing = 0;
};
@@ -320,7 +320,7 @@
buildActionMask = 2147483647;
files = (
1E25743422CBA2CF005A877F /* JavaScriptCore.framework in Frameworks */,
- DEAD0F91AC857FAF265F39FE /* libPods-defaults-ShareRocketChatRN.a in Frameworks */,
+ 7F7CD19B61A4AFEB3C7E8DA0 /* libPods-defaults-ShareRocketChatRN.a in Frameworks */,
);
runOnlyForDeploymentPostprocessing = 0;
};
@@ -328,7 +328,7 @@
isa = PBXFrameworksBuildPhase;
buildActionMask = 2147483647;
files = (
- 3428841903D5E9DF496DE48A /* libPods-defaults-NotificationService.a in Frameworks */,
+ 6182E4536BDDC0D2089CFC2D /* libPods-defaults-NotificationService.a in Frameworks */,
);
runOnlyForDeploymentPostprocessing = 0;
};
@@ -349,7 +349,7 @@
7AAB3E3D257E6A6E00707CF6 /* JavaScriptCore.framework in Frameworks */,
7AAB3E3E257E6A6E00707CF6 /* libz.tbd in Frameworks */,
7AAB3E3F257E6A6E00707CF6 /* libWatermelonDB.a in Frameworks */,
- C4118613B1A26D0EE69ABB50 /* libPods-defaults-Rocket.Chat.a in Frameworks */,
+ 31F6989CEEDC99B631FF14A1 /* libPods-defaults-Rocket.Chat.a in Frameworks */,
);
runOnlyForDeploymentPostprocessing = 0;
};
@@ -501,14 +501,14 @@
7AC2B09613AA7C3FEBAC9F57 /* Pods */ = {
isa = PBXGroup;
children = (
- A937EDE060FF1D99EC1D5668 /* Pods-defaults-NotificationService.debug.xcconfig */,
- E4B2A652A63425C0D2A10308 /* Pods-defaults-NotificationService.release.xcconfig */,
- ED7365DBECFD3329826DF680 /* Pods-defaults-Rocket.Chat.debug.xcconfig */,
- B313929D5A0461D5D08B2A64 /* Pods-defaults-Rocket.Chat.release.xcconfig */,
- 5C4E40513802F0D083548B91 /* Pods-defaults-RocketChatRN.debug.xcconfig */,
- A889D1B10F353A4A17269CCD /* Pods-defaults-RocketChatRN.release.xcconfig */,
- 6392EAC856E40FC344F534E5 /* Pods-defaults-ShareRocketChatRN.debug.xcconfig */,
- 5AEADD477F93997903C0A9D2 /* Pods-defaults-ShareRocketChatRN.release.xcconfig */,
+ A55168E03501CCEDF17A2ED6 /* Pods-defaults-NotificationService.debug.xcconfig */,
+ F35D225DC21083A127C3E7CB /* Pods-defaults-NotificationService.release.xcconfig */,
+ 2D5EED0CA4EE40F7CCB182E1 /* Pods-defaults-Rocket.Chat.debug.xcconfig */,
+ 778F20307FD6CE7A7F73DE7A /* Pods-defaults-Rocket.Chat.release.xcconfig */,
+ 9FC8E091220C5BADC415C75D /* Pods-defaults-RocketChatRN.debug.xcconfig */,
+ 6BE39B02344777D199E20615 /* Pods-defaults-RocketChatRN.release.xcconfig */,
+ 7953BE5657102E9F711003EA /* Pods-defaults-ShareRocketChatRN.debug.xcconfig */,
+ 24F0638AC692626312816D98 /* Pods-defaults-ShareRocketChatRN.release.xcconfig */,
);
path = Pods;
sourceTree = "";
@@ -599,10 +599,10 @@
7ACD4853222860DE00442C55 /* JavaScriptCore.framework */,
B37C79D9BD0742CE936B6982 /* libc++.tbd */,
06BB44DD4855498082A744AD /* libz.tbd */,
- 9AD6F4F1CA81CFBFAB9147D1 /* libPods-defaults-NotificationService.a */,
- C39C3A2ADF65BEE59DE88C14 /* libPods-defaults-Rocket.Chat.a */,
- C7C47F5259E6C50F5F091177 /* libPods-defaults-RocketChatRN.a */,
- 50B06A24F363113116685C61 /* libPods-defaults-ShareRocketChatRN.a */,
+ E52D0DFBF3BEC0B54670215A /* libPods-defaults-NotificationService.a */,
+ BEEF0800F1E2C6C9B9DC1B17 /* libPods-defaults-Rocket.Chat.a */,
+ 6C9449507269E40A7E2D75C1 /* libPods-defaults-RocketChatRN.a */,
+ 75F8546FE2CD36242E77FCD5 /* libPods-defaults-ShareRocketChatRN.a */,
);
name = Frameworks;
sourceTree = "";
@@ -622,7 +622,7 @@
isa = PBXNativeTarget;
buildConfigurationList = 13B07F931A680F5B00A75B9A /* Build configuration list for PBXNativeTarget "RocketChatRN" */;
buildPhases = (
- D3E98AA378144ED15756620A /* [CP] Check Pods Manifest.lock */,
+ 4CE0BF2C26BD8F473DED11FF /* [CP] Check Pods Manifest.lock */,
7AA5C63E23E30D110005C4A7 /* Start Packager */,
13B07F871A680F5B00A75B9A /* Sources */,
13B07F8C1A680F5B00A75B9A /* Frameworks */,
@@ -631,8 +631,8 @@
1EC6ACF422CB9FC300A41C61 /* Embed App Extensions */,
1E1EA8082326CCE300E22452 /* ShellScript */,
7AAE9EB32891A0D20024F559 /* Upload source maps to Bugsnag */,
- 66A3015BFB84EEA5AD57CB77 /* [CP] Embed Pods Frameworks */,
- 14A8B4EC0F8A649A7505601B /* [CP] Copy Pods Resources */,
+ 33C3D0E698389B3B8CC9421A /* [CP] Embed Pods Frameworks */,
+ F117217EEEF2170623944723 /* [CP] Copy Pods Resources */,
);
buildRules = (
);
@@ -649,12 +649,12 @@
isa = PBXNativeTarget;
buildConfigurationList = 1EC6ACF322CB9FC300A41C61 /* Build configuration list for PBXNativeTarget "ShareRocketChatRN" */;
buildPhases = (
- 16DB9247ECF7DA6854EAEED0 /* [CP] Check Pods Manifest.lock */,
+ 9F2F950CCEDDB608F3071E73 /* [CP] Check Pods Manifest.lock */,
1EC6ACAC22CB9FC300A41C61 /* Sources */,
1EC6ACAD22CB9FC300A41C61 /* Frameworks */,
1EC6ACAE22CB9FC300A41C61 /* Resources */,
1EFE4DC322CBF36300B766B7 /* ShellScript */,
- 988B6B847FD48652B08C2C4B /* [CP] Copy Pods Resources */,
+ 0C600DA87FB8C7734D23DE39 /* [CP] Copy Pods Resources */,
);
buildRules = (
);
@@ -669,11 +669,11 @@
isa = PBXNativeTarget;
buildConfigurationList = 1EFEB5A02493B6640072EDC0 /* Build configuration list for PBXNativeTarget "NotificationService" */;
buildPhases = (
- 124D7211AD67866B3E6617D6 /* [CP] Check Pods Manifest.lock */,
+ EED89E0438523CF882225344 /* [CP] Check Pods Manifest.lock */,
1EFEB5912493B6640072EDC0 /* Sources */,
1EFEB5922493B6640072EDC0 /* Frameworks */,
1EFEB5932493B6640072EDC0 /* Resources */,
- 9F44D30A536FCB13F6ADAF2B /* [CP] Copy Pods Resources */,
+ 1FD50711366CA256C89F0267 /* [CP] Copy Pods Resources */,
);
buildRules = (
);
@@ -688,7 +688,7 @@
isa = PBXNativeTarget;
buildConfigurationList = 7AAB3E4F257E6A6E00707CF6 /* Build configuration list for PBXNativeTarget "Rocket.Chat" */;
buildPhases = (
- F06B5286D802D0B3D33CE0F7 /* [CP] Check Pods Manifest.lock */,
+ 8C766D4428842936DEE2B848 /* [CP] Check Pods Manifest.lock */,
7AAB3E13257E6A6E00707CF6 /* Start Packager */,
7AAB3E14257E6A6E00707CF6 /* Sources */,
7AAB3E32257E6A6E00707CF6 /* Frameworks */,
@@ -697,8 +697,8 @@
7AAB3E48257E6A6E00707CF6 /* Embed App Extensions */,
7AAB3E4B257E6A6E00707CF6 /* ShellScript */,
7A10288726B1D15200E47EF8 /* Upload source maps to Bugsnag */,
- 26C4B61916A27FA43C88D95B /* [CP] Embed Pods Frameworks */,
- 3E8F10F4C4AD74FAB2B39BB7 /* [CP] Copy Pods Resources */,
+ 0566D22F2F3EEA4699225545 /* [CP] Embed Pods Frameworks */,
+ D778437EB61E7DFF124A7F9D /* [CP] Copy Pods Resources */,
);
buildRules = (
);
@@ -848,35 +848,37 @@
shellPath = /bin/sh;
shellScript = "export EXTRA_PACKAGER_ARGS=\"--sourcemap-output $TMPDIR/$(md5 -qs \"$CONFIGURATION_BUILD_DIR\")-main.jsbundle.map\"\nexport NODE_BINARY=node\n../node_modules/react-native/scripts/react-native-xcode.sh\n";
};
- 124D7211AD67866B3E6617D6 /* [CP] Check Pods Manifest.lock */ = {
+ 0566D22F2F3EEA4699225545 /* [CP] Embed Pods Frameworks */ = {
isa = PBXShellScriptBuildPhase;
buildActionMask = 2147483647;
files = (
);
- inputFileListPaths = (
- );
inputPaths = (
- "${PODS_PODFILE_DIR_PATH}/Podfile.lock",
- "${PODS_ROOT}/Manifest.lock",
- );
- name = "[CP] Check Pods Manifest.lock";
- outputFileListPaths = (
+ "${PODS_ROOT}/Target Support Files/Pods-defaults-Rocket.Chat/Pods-defaults-Rocket.Chat-frameworks.sh",
+ "${PODS_XCFRAMEWORKS_BUILD_DIR}/JitsiMeetSDKLite/JitsiMeetSDK.framework/JitsiMeetSDK",
+ "${PODS_XCFRAMEWORKS_BUILD_DIR}/JitsiWebRTC/WebRTC.framework/WebRTC",
+ "${PODS_XCFRAMEWORKS_BUILD_DIR}/OpenSSL-Universal/OpenSSL.framework/OpenSSL",
+ "${PODS_XCFRAMEWORKS_BUILD_DIR}/hermes-engine/hermes.framework/hermes",
);
+ name = "[CP] Embed Pods Frameworks";
outputPaths = (
- "$(DERIVED_FILE_DIR)/Pods-defaults-NotificationService-checkManifestLockResult.txt",
+ "${TARGET_BUILD_DIR}/${FRAMEWORKS_FOLDER_PATH}/JitsiMeetSDK.framework",
+ "${TARGET_BUILD_DIR}/${FRAMEWORKS_FOLDER_PATH}/WebRTC.framework",
+ "${TARGET_BUILD_DIR}/${FRAMEWORKS_FOLDER_PATH}/OpenSSL.framework",
+ "${TARGET_BUILD_DIR}/${FRAMEWORKS_FOLDER_PATH}/hermes.framework",
);
runOnlyForDeploymentPostprocessing = 0;
shellPath = /bin/sh;
- shellScript = "diff \"${PODS_PODFILE_DIR_PATH}/Podfile.lock\" \"${PODS_ROOT}/Manifest.lock\" > /dev/null\nif [ $? != 0 ] ; then\n # print error to STDERR\n echo \"error: The sandbox is not in sync with the Podfile.lock. Run 'pod install' or update your CocoaPods installation.\" >&2\n exit 1\nfi\n# This output is used by Xcode 'outputs' to avoid re-running this script phase.\necho \"SUCCESS\" > \"${SCRIPT_OUTPUT_FILE_0}\"\n";
+ shellScript = "\"${PODS_ROOT}/Target Support Files/Pods-defaults-Rocket.Chat/Pods-defaults-Rocket.Chat-frameworks.sh\"\n";
showEnvVarsInLog = 0;
};
- 14A8B4EC0F8A649A7505601B /* [CP] Copy Pods Resources */ = {
+ 0C600DA87FB8C7734D23DE39 /* [CP] Copy Pods Resources */ = {
isa = PBXShellScriptBuildPhase;
buildActionMask = 2147483647;
files = (
);
inputPaths = (
- "${PODS_ROOT}/Target Support Files/Pods-defaults-RocketChatRN/Pods-defaults-RocketChatRN-resources.sh",
+ "${PODS_ROOT}/Target Support Files/Pods-defaults-ShareRocketChatRN/Pods-defaults-ShareRocketChatRN-resources.sh",
"${PODS_CONFIGURATION_BUILD_DIR}/RNImageCropPicker/QBImagePicker.bundle",
"${PODS_ROOT}/../../node_modules/react-native-vector-icons/Fonts/AntDesign.ttf",
"${PODS_ROOT}/../../node_modules/react-native-vector-icons/Fonts/Entypo.ttf",
@@ -923,29 +925,7 @@
);
runOnlyForDeploymentPostprocessing = 0;
shellPath = /bin/sh;
- shellScript = "\"${PODS_ROOT}/Target Support Files/Pods-defaults-RocketChatRN/Pods-defaults-RocketChatRN-resources.sh\"\n";
- showEnvVarsInLog = 0;
- };
- 16DB9247ECF7DA6854EAEED0 /* [CP] Check Pods Manifest.lock */ = {
- isa = PBXShellScriptBuildPhase;
- buildActionMask = 2147483647;
- files = (
- );
- inputFileListPaths = (
- );
- inputPaths = (
- "${PODS_PODFILE_DIR_PATH}/Podfile.lock",
- "${PODS_ROOT}/Manifest.lock",
- );
- name = "[CP] Check Pods Manifest.lock";
- outputFileListPaths = (
- );
- outputPaths = (
- "$(DERIVED_FILE_DIR)/Pods-defaults-ShareRocketChatRN-checkManifestLockResult.txt",
- );
- runOnlyForDeploymentPostprocessing = 0;
- shellPath = /bin/sh;
- shellScript = "diff \"${PODS_PODFILE_DIR_PATH}/Podfile.lock\" \"${PODS_ROOT}/Manifest.lock\" > /dev/null\nif [ $? != 0 ] ; then\n # print error to STDERR\n echo \"error: The sandbox is not in sync with the Podfile.lock. Run 'pod install' or update your CocoaPods installation.\" >&2\n exit 1\nfi\n# This output is used by Xcode 'outputs' to avoid re-running this script phase.\necho \"SUCCESS\" > \"${SCRIPT_OUTPUT_FILE_0}\"\n";
+ shellScript = "\"${PODS_ROOT}/Target Support Files/Pods-defaults-ShareRocketChatRN/Pods-defaults-ShareRocketChatRN-resources.sh\"\n";
showEnvVarsInLog = 0;
};
1E1EA8082326CCE300E22452 /* ShellScript */ = {
@@ -982,37 +962,13 @@
shellPath = /bin/sh;
shellScript = "export EXTRA_PACKAGER_ARGS=\"--sourcemap-output $TMPDIR/$(md5 -qs \"$CONFIGURATION_BUILD_DIR\")-main.jsbundle.map\"\nexport NODE_BINARY=node\n../node_modules/react-native/scripts/react-native-xcode.sh\n";
};
- 26C4B61916A27FA43C88D95B /* [CP] Embed Pods Frameworks */ = {
+ 1FD50711366CA256C89F0267 /* [CP] Copy Pods Resources */ = {
isa = PBXShellScriptBuildPhase;
buildActionMask = 2147483647;
files = (
);
inputPaths = (
- "${PODS_ROOT}/Target Support Files/Pods-defaults-Rocket.Chat/Pods-defaults-Rocket.Chat-frameworks.sh",
- "${PODS_XCFRAMEWORKS_BUILD_DIR}/JitsiMeetSDKLite/JitsiMeetSDK.framework/JitsiMeetSDK",
- "${PODS_XCFRAMEWORKS_BUILD_DIR}/JitsiWebRTC/WebRTC.framework/WebRTC",
- "${PODS_XCFRAMEWORKS_BUILD_DIR}/OpenSSL-Universal/OpenSSL.framework/OpenSSL",
- "${PODS_XCFRAMEWORKS_BUILD_DIR}/hermes-engine/hermes.framework/hermes",
- );
- name = "[CP] Embed Pods Frameworks";
- outputPaths = (
- "${TARGET_BUILD_DIR}/${FRAMEWORKS_FOLDER_PATH}/JitsiMeetSDK.framework",
- "${TARGET_BUILD_DIR}/${FRAMEWORKS_FOLDER_PATH}/WebRTC.framework",
- "${TARGET_BUILD_DIR}/${FRAMEWORKS_FOLDER_PATH}/OpenSSL.framework",
- "${TARGET_BUILD_DIR}/${FRAMEWORKS_FOLDER_PATH}/hermes.framework",
- );
- runOnlyForDeploymentPostprocessing = 0;
- shellPath = /bin/sh;
- shellScript = "\"${PODS_ROOT}/Target Support Files/Pods-defaults-Rocket.Chat/Pods-defaults-Rocket.Chat-frameworks.sh\"\n";
- showEnvVarsInLog = 0;
- };
- 3E8F10F4C4AD74FAB2B39BB7 /* [CP] Copy Pods Resources */ = {
- isa = PBXShellScriptBuildPhase;
- buildActionMask = 2147483647;
- files = (
- );
- inputPaths = (
- "${PODS_ROOT}/Target Support Files/Pods-defaults-Rocket.Chat/Pods-defaults-Rocket.Chat-resources.sh",
+ "${PODS_ROOT}/Target Support Files/Pods-defaults-NotificationService/Pods-defaults-NotificationService-resources.sh",
"${PODS_CONFIGURATION_BUILD_DIR}/RNImageCropPicker/QBImagePicker.bundle",
"${PODS_ROOT}/../../node_modules/react-native-vector-icons/Fonts/AntDesign.ttf",
"${PODS_ROOT}/../../node_modules/react-native-vector-icons/Fonts/Entypo.ttf",
@@ -1059,10 +1015,10 @@
);
runOnlyForDeploymentPostprocessing = 0;
shellPath = /bin/sh;
- shellScript = "\"${PODS_ROOT}/Target Support Files/Pods-defaults-Rocket.Chat/Pods-defaults-Rocket.Chat-resources.sh\"\n";
+ shellScript = "\"${PODS_ROOT}/Target Support Files/Pods-defaults-NotificationService/Pods-defaults-NotificationService-resources.sh\"\n";
showEnvVarsInLog = 0;
};
- 66A3015BFB84EEA5AD57CB77 /* [CP] Embed Pods Frameworks */ = {
+ 33C3D0E698389B3B8CC9421A /* [CP] Embed Pods Frameworks */ = {
isa = PBXShellScriptBuildPhase;
buildActionMask = 2147483647;
files = (
@@ -1086,6 +1042,28 @@
shellScript = "\"${PODS_ROOT}/Target Support Files/Pods-defaults-RocketChatRN/Pods-defaults-RocketChatRN-frameworks.sh\"\n";
showEnvVarsInLog = 0;
};
+ 4CE0BF2C26BD8F473DED11FF /* [CP] Check Pods Manifest.lock */ = {
+ isa = PBXShellScriptBuildPhase;
+ buildActionMask = 2147483647;
+ files = (
+ );
+ inputFileListPaths = (
+ );
+ inputPaths = (
+ "${PODS_PODFILE_DIR_PATH}/Podfile.lock",
+ "${PODS_ROOT}/Manifest.lock",
+ );
+ name = "[CP] Check Pods Manifest.lock";
+ outputFileListPaths = (
+ );
+ outputPaths = (
+ "$(DERIVED_FILE_DIR)/Pods-defaults-RocketChatRN-checkManifestLockResult.txt",
+ );
+ runOnlyForDeploymentPostprocessing = 0;
+ shellPath = /bin/sh;
+ shellScript = "diff \"${PODS_PODFILE_DIR_PATH}/Podfile.lock\" \"${PODS_ROOT}/Manifest.lock\" > /dev/null\nif [ $? != 0 ] ; then\n # print error to STDERR\n echo \"error: The sandbox is not in sync with the Podfile.lock. Run 'pod install' or update your CocoaPods installation.\" >&2\n exit 1\nfi\n# This output is used by Xcode 'outputs' to avoid re-running this script phase.\necho \"SUCCESS\" > \"${SCRIPT_OUTPUT_FILE_0}\"\n";
+ showEnvVarsInLog = 0;
+ };
7A10288726B1D15200E47EF8 /* Upload source maps to Bugsnag */ = {
isa = PBXShellScriptBuildPhase;
buildActionMask = 2147483647;
@@ -1189,141 +1167,7 @@
shellPath = /bin/sh;
shellScript = "SOURCE_MAP=\"$TMPDIR/$(md5 -qs \"$CONFIGURATION_BUILD_DIR\")-main.jsbundle.map\" ../node_modules/@bugsnag/react-native/bugsnag-react-native-xcode.sh\n";
};
- 988B6B847FD48652B08C2C4B /* [CP] Copy Pods Resources */ = {
- isa = PBXShellScriptBuildPhase;
- buildActionMask = 2147483647;
- files = (
- );
- inputPaths = (
- "${PODS_ROOT}/Target Support Files/Pods-defaults-ShareRocketChatRN/Pods-defaults-ShareRocketChatRN-resources.sh",
- "${PODS_CONFIGURATION_BUILD_DIR}/RNImageCropPicker/QBImagePicker.bundle",
- "${PODS_ROOT}/../../node_modules/react-native-vector-icons/Fonts/AntDesign.ttf",
- "${PODS_ROOT}/../../node_modules/react-native-vector-icons/Fonts/Entypo.ttf",
- "${PODS_ROOT}/../../node_modules/react-native-vector-icons/Fonts/EvilIcons.ttf",
- "${PODS_ROOT}/../../node_modules/react-native-vector-icons/Fonts/Feather.ttf",
- "${PODS_ROOT}/../../node_modules/react-native-vector-icons/Fonts/FontAwesome.ttf",
- "${PODS_ROOT}/../../node_modules/react-native-vector-icons/Fonts/FontAwesome5_Brands.ttf",
- "${PODS_ROOT}/../../node_modules/react-native-vector-icons/Fonts/FontAwesome5_Regular.ttf",
- "${PODS_ROOT}/../../node_modules/react-native-vector-icons/Fonts/FontAwesome5_Solid.ttf",
- "${PODS_ROOT}/../../node_modules/react-native-vector-icons/Fonts/Fontisto.ttf",
- "${PODS_ROOT}/../../node_modules/react-native-vector-icons/Fonts/Foundation.ttf",
- "${PODS_ROOT}/../../node_modules/react-native-vector-icons/Fonts/Ionicons.ttf",
- "${PODS_ROOT}/../../node_modules/react-native-vector-icons/Fonts/MaterialCommunityIcons.ttf",
- "${PODS_ROOT}/../../node_modules/react-native-vector-icons/Fonts/MaterialIcons.ttf",
- "${PODS_ROOT}/../../node_modules/react-native-vector-icons/Fonts/Octicons.ttf",
- "${PODS_ROOT}/../../node_modules/react-native-vector-icons/Fonts/SimpleLineIcons.ttf",
- "${PODS_ROOT}/../../node_modules/react-native-vector-icons/Fonts/Zocial.ttf",
- "${PODS_CONFIGURATION_BUILD_DIR}/React-Core/AccessibilityResources.bundle",
- "${PODS_CONFIGURATION_BUILD_DIR}/TOCropViewController/TOCropViewControllerBundle.bundle",
- "${PODS_CONFIGURATION_BUILD_DIR}/iosMath/mathFonts.bundle",
- );
- name = "[CP] Copy Pods Resources";
- outputPaths = (
- "${TARGET_BUILD_DIR}/${UNLOCALIZED_RESOURCES_FOLDER_PATH}/QBImagePicker.bundle",
- "${TARGET_BUILD_DIR}/${UNLOCALIZED_RESOURCES_FOLDER_PATH}/AntDesign.ttf",
- "${TARGET_BUILD_DIR}/${UNLOCALIZED_RESOURCES_FOLDER_PATH}/Entypo.ttf",
- "${TARGET_BUILD_DIR}/${UNLOCALIZED_RESOURCES_FOLDER_PATH}/EvilIcons.ttf",
- "${TARGET_BUILD_DIR}/${UNLOCALIZED_RESOURCES_FOLDER_PATH}/Feather.ttf",
- "${TARGET_BUILD_DIR}/${UNLOCALIZED_RESOURCES_FOLDER_PATH}/FontAwesome.ttf",
- "${TARGET_BUILD_DIR}/${UNLOCALIZED_RESOURCES_FOLDER_PATH}/FontAwesome5_Brands.ttf",
- "${TARGET_BUILD_DIR}/${UNLOCALIZED_RESOURCES_FOLDER_PATH}/FontAwesome5_Regular.ttf",
- "${TARGET_BUILD_DIR}/${UNLOCALIZED_RESOURCES_FOLDER_PATH}/FontAwesome5_Solid.ttf",
- "${TARGET_BUILD_DIR}/${UNLOCALIZED_RESOURCES_FOLDER_PATH}/Fontisto.ttf",
- "${TARGET_BUILD_DIR}/${UNLOCALIZED_RESOURCES_FOLDER_PATH}/Foundation.ttf",
- "${TARGET_BUILD_DIR}/${UNLOCALIZED_RESOURCES_FOLDER_PATH}/Ionicons.ttf",
- "${TARGET_BUILD_DIR}/${UNLOCALIZED_RESOURCES_FOLDER_PATH}/MaterialCommunityIcons.ttf",
- "${TARGET_BUILD_DIR}/${UNLOCALIZED_RESOURCES_FOLDER_PATH}/MaterialIcons.ttf",
- "${TARGET_BUILD_DIR}/${UNLOCALIZED_RESOURCES_FOLDER_PATH}/Octicons.ttf",
- "${TARGET_BUILD_DIR}/${UNLOCALIZED_RESOURCES_FOLDER_PATH}/SimpleLineIcons.ttf",
- "${TARGET_BUILD_DIR}/${UNLOCALIZED_RESOURCES_FOLDER_PATH}/Zocial.ttf",
- "${TARGET_BUILD_DIR}/${UNLOCALIZED_RESOURCES_FOLDER_PATH}/AccessibilityResources.bundle",
- "${TARGET_BUILD_DIR}/${UNLOCALIZED_RESOURCES_FOLDER_PATH}/TOCropViewControllerBundle.bundle",
- "${TARGET_BUILD_DIR}/${UNLOCALIZED_RESOURCES_FOLDER_PATH}/mathFonts.bundle",
- );
- runOnlyForDeploymentPostprocessing = 0;
- shellPath = /bin/sh;
- shellScript = "\"${PODS_ROOT}/Target Support Files/Pods-defaults-ShareRocketChatRN/Pods-defaults-ShareRocketChatRN-resources.sh\"\n";
- showEnvVarsInLog = 0;
- };
- 9F44D30A536FCB13F6ADAF2B /* [CP] Copy Pods Resources */ = {
- isa = PBXShellScriptBuildPhase;
- buildActionMask = 2147483647;
- files = (
- );
- inputPaths = (
- "${PODS_ROOT}/Target Support Files/Pods-defaults-NotificationService/Pods-defaults-NotificationService-resources.sh",
- "${PODS_CONFIGURATION_BUILD_DIR}/RNImageCropPicker/QBImagePicker.bundle",
- "${PODS_ROOT}/../../node_modules/react-native-vector-icons/Fonts/AntDesign.ttf",
- "${PODS_ROOT}/../../node_modules/react-native-vector-icons/Fonts/Entypo.ttf",
- "${PODS_ROOT}/../../node_modules/react-native-vector-icons/Fonts/EvilIcons.ttf",
- "${PODS_ROOT}/../../node_modules/react-native-vector-icons/Fonts/Feather.ttf",
- "${PODS_ROOT}/../../node_modules/react-native-vector-icons/Fonts/FontAwesome.ttf",
- "${PODS_ROOT}/../../node_modules/react-native-vector-icons/Fonts/FontAwesome5_Brands.ttf",
- "${PODS_ROOT}/../../node_modules/react-native-vector-icons/Fonts/FontAwesome5_Regular.ttf",
- "${PODS_ROOT}/../../node_modules/react-native-vector-icons/Fonts/FontAwesome5_Solid.ttf",
- "${PODS_ROOT}/../../node_modules/react-native-vector-icons/Fonts/Fontisto.ttf",
- "${PODS_ROOT}/../../node_modules/react-native-vector-icons/Fonts/Foundation.ttf",
- "${PODS_ROOT}/../../node_modules/react-native-vector-icons/Fonts/Ionicons.ttf",
- "${PODS_ROOT}/../../node_modules/react-native-vector-icons/Fonts/MaterialCommunityIcons.ttf",
- "${PODS_ROOT}/../../node_modules/react-native-vector-icons/Fonts/MaterialIcons.ttf",
- "${PODS_ROOT}/../../node_modules/react-native-vector-icons/Fonts/Octicons.ttf",
- "${PODS_ROOT}/../../node_modules/react-native-vector-icons/Fonts/SimpleLineIcons.ttf",
- "${PODS_ROOT}/../../node_modules/react-native-vector-icons/Fonts/Zocial.ttf",
- "${PODS_CONFIGURATION_BUILD_DIR}/React-Core/AccessibilityResources.bundle",
- "${PODS_CONFIGURATION_BUILD_DIR}/TOCropViewController/TOCropViewControllerBundle.bundle",
- "${PODS_CONFIGURATION_BUILD_DIR}/iosMath/mathFonts.bundle",
- );
- name = "[CP] Copy Pods Resources";
- outputPaths = (
- "${TARGET_BUILD_DIR}/${UNLOCALIZED_RESOURCES_FOLDER_PATH}/QBImagePicker.bundle",
- "${TARGET_BUILD_DIR}/${UNLOCALIZED_RESOURCES_FOLDER_PATH}/AntDesign.ttf",
- "${TARGET_BUILD_DIR}/${UNLOCALIZED_RESOURCES_FOLDER_PATH}/Entypo.ttf",
- "${TARGET_BUILD_DIR}/${UNLOCALIZED_RESOURCES_FOLDER_PATH}/EvilIcons.ttf",
- "${TARGET_BUILD_DIR}/${UNLOCALIZED_RESOURCES_FOLDER_PATH}/Feather.ttf",
- "${TARGET_BUILD_DIR}/${UNLOCALIZED_RESOURCES_FOLDER_PATH}/FontAwesome.ttf",
- "${TARGET_BUILD_DIR}/${UNLOCALIZED_RESOURCES_FOLDER_PATH}/FontAwesome5_Brands.ttf",
- "${TARGET_BUILD_DIR}/${UNLOCALIZED_RESOURCES_FOLDER_PATH}/FontAwesome5_Regular.ttf",
- "${TARGET_BUILD_DIR}/${UNLOCALIZED_RESOURCES_FOLDER_PATH}/FontAwesome5_Solid.ttf",
- "${TARGET_BUILD_DIR}/${UNLOCALIZED_RESOURCES_FOLDER_PATH}/Fontisto.ttf",
- "${TARGET_BUILD_DIR}/${UNLOCALIZED_RESOURCES_FOLDER_PATH}/Foundation.ttf",
- "${TARGET_BUILD_DIR}/${UNLOCALIZED_RESOURCES_FOLDER_PATH}/Ionicons.ttf",
- "${TARGET_BUILD_DIR}/${UNLOCALIZED_RESOURCES_FOLDER_PATH}/MaterialCommunityIcons.ttf",
- "${TARGET_BUILD_DIR}/${UNLOCALIZED_RESOURCES_FOLDER_PATH}/MaterialIcons.ttf",
- "${TARGET_BUILD_DIR}/${UNLOCALIZED_RESOURCES_FOLDER_PATH}/Octicons.ttf",
- "${TARGET_BUILD_DIR}/${UNLOCALIZED_RESOURCES_FOLDER_PATH}/SimpleLineIcons.ttf",
- "${TARGET_BUILD_DIR}/${UNLOCALIZED_RESOURCES_FOLDER_PATH}/Zocial.ttf",
- "${TARGET_BUILD_DIR}/${UNLOCALIZED_RESOURCES_FOLDER_PATH}/AccessibilityResources.bundle",
- "${TARGET_BUILD_DIR}/${UNLOCALIZED_RESOURCES_FOLDER_PATH}/TOCropViewControllerBundle.bundle",
- "${TARGET_BUILD_DIR}/${UNLOCALIZED_RESOURCES_FOLDER_PATH}/mathFonts.bundle",
- );
- runOnlyForDeploymentPostprocessing = 0;
- shellPath = /bin/sh;
- shellScript = "\"${PODS_ROOT}/Target Support Files/Pods-defaults-NotificationService/Pods-defaults-NotificationService-resources.sh\"\n";
- showEnvVarsInLog = 0;
- };
- D3E98AA378144ED15756620A /* [CP] Check Pods Manifest.lock */ = {
- isa = PBXShellScriptBuildPhase;
- buildActionMask = 2147483647;
- files = (
- );
- inputFileListPaths = (
- );
- inputPaths = (
- "${PODS_PODFILE_DIR_PATH}/Podfile.lock",
- "${PODS_ROOT}/Manifest.lock",
- );
- name = "[CP] Check Pods Manifest.lock";
- outputFileListPaths = (
- );
- outputPaths = (
- "$(DERIVED_FILE_DIR)/Pods-defaults-RocketChatRN-checkManifestLockResult.txt",
- );
- runOnlyForDeploymentPostprocessing = 0;
- shellPath = /bin/sh;
- shellScript = "diff \"${PODS_PODFILE_DIR_PATH}/Podfile.lock\" \"${PODS_ROOT}/Manifest.lock\" > /dev/null\nif [ $? != 0 ] ; then\n # print error to STDERR\n echo \"error: The sandbox is not in sync with the Podfile.lock. Run 'pod install' or update your CocoaPods installation.\" >&2\n exit 1\nfi\n# This output is used by Xcode 'outputs' to avoid re-running this script phase.\necho \"SUCCESS\" > \"${SCRIPT_OUTPUT_FILE_0}\"\n";
- showEnvVarsInLog = 0;
- };
- F06B5286D802D0B3D33CE0F7 /* [CP] Check Pods Manifest.lock */ = {
+ 8C766D4428842936DEE2B848 /* [CP] Check Pods Manifest.lock */ = {
isa = PBXShellScriptBuildPhase;
buildActionMask = 2147483647;
files = (
@@ -1345,6 +1189,162 @@
shellScript = "diff \"${PODS_PODFILE_DIR_PATH}/Podfile.lock\" \"${PODS_ROOT}/Manifest.lock\" > /dev/null\nif [ $? != 0 ] ; then\n # print error to STDERR\n echo \"error: The sandbox is not in sync with the Podfile.lock. Run 'pod install' or update your CocoaPods installation.\" >&2\n exit 1\nfi\n# This output is used by Xcode 'outputs' to avoid re-running this script phase.\necho \"SUCCESS\" > \"${SCRIPT_OUTPUT_FILE_0}\"\n";
showEnvVarsInLog = 0;
};
+ 9F2F950CCEDDB608F3071E73 /* [CP] Check Pods Manifest.lock */ = {
+ isa = PBXShellScriptBuildPhase;
+ buildActionMask = 2147483647;
+ files = (
+ );
+ inputFileListPaths = (
+ );
+ inputPaths = (
+ "${PODS_PODFILE_DIR_PATH}/Podfile.lock",
+ "${PODS_ROOT}/Manifest.lock",
+ );
+ name = "[CP] Check Pods Manifest.lock";
+ outputFileListPaths = (
+ );
+ outputPaths = (
+ "$(DERIVED_FILE_DIR)/Pods-defaults-ShareRocketChatRN-checkManifestLockResult.txt",
+ );
+ runOnlyForDeploymentPostprocessing = 0;
+ shellPath = /bin/sh;
+ shellScript = "diff \"${PODS_PODFILE_DIR_PATH}/Podfile.lock\" \"${PODS_ROOT}/Manifest.lock\" > /dev/null\nif [ $? != 0 ] ; then\n # print error to STDERR\n echo \"error: The sandbox is not in sync with the Podfile.lock. Run 'pod install' or update your CocoaPods installation.\" >&2\n exit 1\nfi\n# This output is used by Xcode 'outputs' to avoid re-running this script phase.\necho \"SUCCESS\" > \"${SCRIPT_OUTPUT_FILE_0}\"\n";
+ showEnvVarsInLog = 0;
+ };
+ D778437EB61E7DFF124A7F9D /* [CP] Copy Pods Resources */ = {
+ isa = PBXShellScriptBuildPhase;
+ buildActionMask = 2147483647;
+ files = (
+ );
+ inputPaths = (
+ "${PODS_ROOT}/Target Support Files/Pods-defaults-Rocket.Chat/Pods-defaults-Rocket.Chat-resources.sh",
+ "${PODS_CONFIGURATION_BUILD_DIR}/RNImageCropPicker/QBImagePicker.bundle",
+ "${PODS_ROOT}/../../node_modules/react-native-vector-icons/Fonts/AntDesign.ttf",
+ "${PODS_ROOT}/../../node_modules/react-native-vector-icons/Fonts/Entypo.ttf",
+ "${PODS_ROOT}/../../node_modules/react-native-vector-icons/Fonts/EvilIcons.ttf",
+ "${PODS_ROOT}/../../node_modules/react-native-vector-icons/Fonts/Feather.ttf",
+ "${PODS_ROOT}/../../node_modules/react-native-vector-icons/Fonts/FontAwesome.ttf",
+ "${PODS_ROOT}/../../node_modules/react-native-vector-icons/Fonts/FontAwesome5_Brands.ttf",
+ "${PODS_ROOT}/../../node_modules/react-native-vector-icons/Fonts/FontAwesome5_Regular.ttf",
+ "${PODS_ROOT}/../../node_modules/react-native-vector-icons/Fonts/FontAwesome5_Solid.ttf",
+ "${PODS_ROOT}/../../node_modules/react-native-vector-icons/Fonts/Fontisto.ttf",
+ "${PODS_ROOT}/../../node_modules/react-native-vector-icons/Fonts/Foundation.ttf",
+ "${PODS_ROOT}/../../node_modules/react-native-vector-icons/Fonts/Ionicons.ttf",
+ "${PODS_ROOT}/../../node_modules/react-native-vector-icons/Fonts/MaterialCommunityIcons.ttf",
+ "${PODS_ROOT}/../../node_modules/react-native-vector-icons/Fonts/MaterialIcons.ttf",
+ "${PODS_ROOT}/../../node_modules/react-native-vector-icons/Fonts/Octicons.ttf",
+ "${PODS_ROOT}/../../node_modules/react-native-vector-icons/Fonts/SimpleLineIcons.ttf",
+ "${PODS_ROOT}/../../node_modules/react-native-vector-icons/Fonts/Zocial.ttf",
+ "${PODS_CONFIGURATION_BUILD_DIR}/React-Core/AccessibilityResources.bundle",
+ "${PODS_CONFIGURATION_BUILD_DIR}/TOCropViewController/TOCropViewControllerBundle.bundle",
+ "${PODS_CONFIGURATION_BUILD_DIR}/iosMath/mathFonts.bundle",
+ );
+ name = "[CP] Copy Pods Resources";
+ outputPaths = (
+ "${TARGET_BUILD_DIR}/${UNLOCALIZED_RESOURCES_FOLDER_PATH}/QBImagePicker.bundle",
+ "${TARGET_BUILD_DIR}/${UNLOCALIZED_RESOURCES_FOLDER_PATH}/AntDesign.ttf",
+ "${TARGET_BUILD_DIR}/${UNLOCALIZED_RESOURCES_FOLDER_PATH}/Entypo.ttf",
+ "${TARGET_BUILD_DIR}/${UNLOCALIZED_RESOURCES_FOLDER_PATH}/EvilIcons.ttf",
+ "${TARGET_BUILD_DIR}/${UNLOCALIZED_RESOURCES_FOLDER_PATH}/Feather.ttf",
+ "${TARGET_BUILD_DIR}/${UNLOCALIZED_RESOURCES_FOLDER_PATH}/FontAwesome.ttf",
+ "${TARGET_BUILD_DIR}/${UNLOCALIZED_RESOURCES_FOLDER_PATH}/FontAwesome5_Brands.ttf",
+ "${TARGET_BUILD_DIR}/${UNLOCALIZED_RESOURCES_FOLDER_PATH}/FontAwesome5_Regular.ttf",
+ "${TARGET_BUILD_DIR}/${UNLOCALIZED_RESOURCES_FOLDER_PATH}/FontAwesome5_Solid.ttf",
+ "${TARGET_BUILD_DIR}/${UNLOCALIZED_RESOURCES_FOLDER_PATH}/Fontisto.ttf",
+ "${TARGET_BUILD_DIR}/${UNLOCALIZED_RESOURCES_FOLDER_PATH}/Foundation.ttf",
+ "${TARGET_BUILD_DIR}/${UNLOCALIZED_RESOURCES_FOLDER_PATH}/Ionicons.ttf",
+ "${TARGET_BUILD_DIR}/${UNLOCALIZED_RESOURCES_FOLDER_PATH}/MaterialCommunityIcons.ttf",
+ "${TARGET_BUILD_DIR}/${UNLOCALIZED_RESOURCES_FOLDER_PATH}/MaterialIcons.ttf",
+ "${TARGET_BUILD_DIR}/${UNLOCALIZED_RESOURCES_FOLDER_PATH}/Octicons.ttf",
+ "${TARGET_BUILD_DIR}/${UNLOCALIZED_RESOURCES_FOLDER_PATH}/SimpleLineIcons.ttf",
+ "${TARGET_BUILD_DIR}/${UNLOCALIZED_RESOURCES_FOLDER_PATH}/Zocial.ttf",
+ "${TARGET_BUILD_DIR}/${UNLOCALIZED_RESOURCES_FOLDER_PATH}/AccessibilityResources.bundle",
+ "${TARGET_BUILD_DIR}/${UNLOCALIZED_RESOURCES_FOLDER_PATH}/TOCropViewControllerBundle.bundle",
+ "${TARGET_BUILD_DIR}/${UNLOCALIZED_RESOURCES_FOLDER_PATH}/mathFonts.bundle",
+ );
+ runOnlyForDeploymentPostprocessing = 0;
+ shellPath = /bin/sh;
+ shellScript = "\"${PODS_ROOT}/Target Support Files/Pods-defaults-Rocket.Chat/Pods-defaults-Rocket.Chat-resources.sh\"\n";
+ showEnvVarsInLog = 0;
+ };
+ EED89E0438523CF882225344 /* [CP] Check Pods Manifest.lock */ = {
+ isa = PBXShellScriptBuildPhase;
+ buildActionMask = 2147483647;
+ files = (
+ );
+ inputFileListPaths = (
+ );
+ inputPaths = (
+ "${PODS_PODFILE_DIR_PATH}/Podfile.lock",
+ "${PODS_ROOT}/Manifest.lock",
+ );
+ name = "[CP] Check Pods Manifest.lock";
+ outputFileListPaths = (
+ );
+ outputPaths = (
+ "$(DERIVED_FILE_DIR)/Pods-defaults-NotificationService-checkManifestLockResult.txt",
+ );
+ runOnlyForDeploymentPostprocessing = 0;
+ shellPath = /bin/sh;
+ shellScript = "diff \"${PODS_PODFILE_DIR_PATH}/Podfile.lock\" \"${PODS_ROOT}/Manifest.lock\" > /dev/null\nif [ $? != 0 ] ; then\n # print error to STDERR\n echo \"error: The sandbox is not in sync with the Podfile.lock. Run 'pod install' or update your CocoaPods installation.\" >&2\n exit 1\nfi\n# This output is used by Xcode 'outputs' to avoid re-running this script phase.\necho \"SUCCESS\" > \"${SCRIPT_OUTPUT_FILE_0}\"\n";
+ showEnvVarsInLog = 0;
+ };
+ F117217EEEF2170623944723 /* [CP] Copy Pods Resources */ = {
+ isa = PBXShellScriptBuildPhase;
+ buildActionMask = 2147483647;
+ files = (
+ );
+ inputPaths = (
+ "${PODS_ROOT}/Target Support Files/Pods-defaults-RocketChatRN/Pods-defaults-RocketChatRN-resources.sh",
+ "${PODS_CONFIGURATION_BUILD_DIR}/RNImageCropPicker/QBImagePicker.bundle",
+ "${PODS_ROOT}/../../node_modules/react-native-vector-icons/Fonts/AntDesign.ttf",
+ "${PODS_ROOT}/../../node_modules/react-native-vector-icons/Fonts/Entypo.ttf",
+ "${PODS_ROOT}/../../node_modules/react-native-vector-icons/Fonts/EvilIcons.ttf",
+ "${PODS_ROOT}/../../node_modules/react-native-vector-icons/Fonts/Feather.ttf",
+ "${PODS_ROOT}/../../node_modules/react-native-vector-icons/Fonts/FontAwesome.ttf",
+ "${PODS_ROOT}/../../node_modules/react-native-vector-icons/Fonts/FontAwesome5_Brands.ttf",
+ "${PODS_ROOT}/../../node_modules/react-native-vector-icons/Fonts/FontAwesome5_Regular.ttf",
+ "${PODS_ROOT}/../../node_modules/react-native-vector-icons/Fonts/FontAwesome5_Solid.ttf",
+ "${PODS_ROOT}/../../node_modules/react-native-vector-icons/Fonts/Fontisto.ttf",
+ "${PODS_ROOT}/../../node_modules/react-native-vector-icons/Fonts/Foundation.ttf",
+ "${PODS_ROOT}/../../node_modules/react-native-vector-icons/Fonts/Ionicons.ttf",
+ "${PODS_ROOT}/../../node_modules/react-native-vector-icons/Fonts/MaterialCommunityIcons.ttf",
+ "${PODS_ROOT}/../../node_modules/react-native-vector-icons/Fonts/MaterialIcons.ttf",
+ "${PODS_ROOT}/../../node_modules/react-native-vector-icons/Fonts/Octicons.ttf",
+ "${PODS_ROOT}/../../node_modules/react-native-vector-icons/Fonts/SimpleLineIcons.ttf",
+ "${PODS_ROOT}/../../node_modules/react-native-vector-icons/Fonts/Zocial.ttf",
+ "${PODS_CONFIGURATION_BUILD_DIR}/React-Core/AccessibilityResources.bundle",
+ "${PODS_CONFIGURATION_BUILD_DIR}/TOCropViewController/TOCropViewControllerBundle.bundle",
+ "${PODS_CONFIGURATION_BUILD_DIR}/iosMath/mathFonts.bundle",
+ );
+ name = "[CP] Copy Pods Resources";
+ outputPaths = (
+ "${TARGET_BUILD_DIR}/${UNLOCALIZED_RESOURCES_FOLDER_PATH}/QBImagePicker.bundle",
+ "${TARGET_BUILD_DIR}/${UNLOCALIZED_RESOURCES_FOLDER_PATH}/AntDesign.ttf",
+ "${TARGET_BUILD_DIR}/${UNLOCALIZED_RESOURCES_FOLDER_PATH}/Entypo.ttf",
+ "${TARGET_BUILD_DIR}/${UNLOCALIZED_RESOURCES_FOLDER_PATH}/EvilIcons.ttf",
+ "${TARGET_BUILD_DIR}/${UNLOCALIZED_RESOURCES_FOLDER_PATH}/Feather.ttf",
+ "${TARGET_BUILD_DIR}/${UNLOCALIZED_RESOURCES_FOLDER_PATH}/FontAwesome.ttf",
+ "${TARGET_BUILD_DIR}/${UNLOCALIZED_RESOURCES_FOLDER_PATH}/FontAwesome5_Brands.ttf",
+ "${TARGET_BUILD_DIR}/${UNLOCALIZED_RESOURCES_FOLDER_PATH}/FontAwesome5_Regular.ttf",
+ "${TARGET_BUILD_DIR}/${UNLOCALIZED_RESOURCES_FOLDER_PATH}/FontAwesome5_Solid.ttf",
+ "${TARGET_BUILD_DIR}/${UNLOCALIZED_RESOURCES_FOLDER_PATH}/Fontisto.ttf",
+ "${TARGET_BUILD_DIR}/${UNLOCALIZED_RESOURCES_FOLDER_PATH}/Foundation.ttf",
+ "${TARGET_BUILD_DIR}/${UNLOCALIZED_RESOURCES_FOLDER_PATH}/Ionicons.ttf",
+ "${TARGET_BUILD_DIR}/${UNLOCALIZED_RESOURCES_FOLDER_PATH}/MaterialCommunityIcons.ttf",
+ "${TARGET_BUILD_DIR}/${UNLOCALIZED_RESOURCES_FOLDER_PATH}/MaterialIcons.ttf",
+ "${TARGET_BUILD_DIR}/${UNLOCALIZED_RESOURCES_FOLDER_PATH}/Octicons.ttf",
+ "${TARGET_BUILD_DIR}/${UNLOCALIZED_RESOURCES_FOLDER_PATH}/SimpleLineIcons.ttf",
+ "${TARGET_BUILD_DIR}/${UNLOCALIZED_RESOURCES_FOLDER_PATH}/Zocial.ttf",
+ "${TARGET_BUILD_DIR}/${UNLOCALIZED_RESOURCES_FOLDER_PATH}/AccessibilityResources.bundle",
+ "${TARGET_BUILD_DIR}/${UNLOCALIZED_RESOURCES_FOLDER_PATH}/TOCropViewControllerBundle.bundle",
+ "${TARGET_BUILD_DIR}/${UNLOCALIZED_RESOURCES_FOLDER_PATH}/mathFonts.bundle",
+ );
+ runOnlyForDeploymentPostprocessing = 0;
+ shellPath = /bin/sh;
+ shellScript = "\"${PODS_ROOT}/Target Support Files/Pods-defaults-RocketChatRN/Pods-defaults-RocketChatRN-resources.sh\"\n";
+ showEnvVarsInLog = 0;
+ };
/* End PBXShellScriptBuildPhase section */
/* Begin PBXSourcesBuildPhase section */
@@ -1502,7 +1502,7 @@
/* Begin XCBuildConfiguration section */
13B07F941A680F5B00A75B9A /* Debug */ = {
isa = XCBuildConfiguration;
- baseConfigurationReference = 5C4E40513802F0D083548B91 /* Pods-defaults-RocketChatRN.debug.xcconfig */;
+ baseConfigurationReference = 9FC8E091220C5BADC415C75D /* Pods-defaults-RocketChatRN.debug.xcconfig */;
buildSettings = {
ALWAYS_EMBED_SWIFT_STANDARD_LIBRARIES = YES;
APPLICATION_EXTENSION_API_ONLY = NO;
@@ -1547,7 +1547,6 @@
OTHER_SWIFT_FLAGS = "$(inherited) -D EXPO_CONFIGURATION_DEBUG";
PRODUCT_BUNDLE_IDENTIFIER = chat.rocket.reactnative;
PRODUCT_NAME = "Rocket.Chat Experimental";
- PROVISIONING_PROFILE_SPECIFIER = "match Development chat.rocket.reactnative 1614015157";
SWIFT_OBJC_BRIDGING_HEADER = "RocketChatRN-Bridging-Header.h";
SWIFT_OBJC_INTERFACE_HEADER_NAME = "RocketChatRN-Swift.h";
SWIFT_OPTIMIZATION_LEVEL = "-Onone";
@@ -1559,7 +1558,7 @@
};
13B07F951A680F5B00A75B9A /* Release */ = {
isa = XCBuildConfiguration;
- baseConfigurationReference = A889D1B10F353A4A17269CCD /* Pods-defaults-RocketChatRN.release.xcconfig */;
+ baseConfigurationReference = 6BE39B02344777D199E20615 /* Pods-defaults-RocketChatRN.release.xcconfig */;
buildSettings = {
ALWAYS_EMBED_SWIFT_STANDARD_LIBRARIES = YES;
APPLICATION_EXTENSION_API_ONLY = NO;
@@ -1615,7 +1614,7 @@
};
1EC6ACBC22CB9FC300A41C61 /* Debug */ = {
isa = XCBuildConfiguration;
- baseConfigurationReference = 6392EAC856E40FC344F534E5 /* Pods-defaults-ShareRocketChatRN.debug.xcconfig */;
+ baseConfigurationReference = 7953BE5657102E9F711003EA /* Pods-defaults-ShareRocketChatRN.debug.xcconfig */;
buildSettings = {
ALWAYS_EMBED_SWIFT_STANDARD_LIBRARIES = "$(EMBEDDED_CONTENT_CONTAINS_SWIFT)";
APPLICATION_EXTENSION_API_ONLY = YES;
@@ -1675,7 +1674,6 @@
OTHER_SWIFT_FLAGS = "$(inherited) -D EXPO_CONFIGURATION_DEBUG";
PRODUCT_BUNDLE_IDENTIFIER = chat.rocket.reactnative.ShareExtension;
PRODUCT_NAME = "$(TARGET_NAME)";
- PROVISIONING_PROFILE_SPECIFIER = "match Development chat.rocket.reactnative.ShareExtension 1614015146";
SKIP_INSTALL = YES;
SWIFT_VERSION = 5.0;
TARGETED_DEVICE_FAMILY = "1,2";
@@ -1684,7 +1682,7 @@
};
1EC6ACBD22CB9FC300A41C61 /* Release */ = {
isa = XCBuildConfiguration;
- baseConfigurationReference = 5AEADD477F93997903C0A9D2 /* Pods-defaults-ShareRocketChatRN.release.xcconfig */;
+ baseConfigurationReference = 24F0638AC692626312816D98 /* Pods-defaults-ShareRocketChatRN.release.xcconfig */;
buildSettings = {
ALWAYS_EMBED_SWIFT_STANDARD_LIBRARIES = "$(EMBEDDED_CONTENT_CONTAINS_SWIFT)";
APPLICATION_EXTENSION_API_ONLY = YES;
@@ -1743,7 +1741,7 @@
OTHER_SWIFT_FLAGS = "$(inherited) -D EXPO_CONFIGURATION_RELEASE";
PRODUCT_BUNDLE_IDENTIFIER = chat.rocket.reactnative.ShareExtension;
PRODUCT_NAME = "$(TARGET_NAME)";
- PROVISIONING_PROFILE_SPECIFIER = "chat.rocket.reactnative.ShareExtension AppStore";
+ PROVISIONING_PROFILE_SPECIFIER = "match AppStore chat.rocket.reactnative.ShareExtension";
SKIP_INSTALL = YES;
SWIFT_VERSION = 5.0;
TARGETED_DEVICE_FAMILY = "1,2";
@@ -1752,7 +1750,7 @@
};
1EFEB59D2493B6640072EDC0 /* Debug */ = {
isa = XCBuildConfiguration;
- baseConfigurationReference = A937EDE060FF1D99EC1D5668 /* Pods-defaults-NotificationService.debug.xcconfig */;
+ baseConfigurationReference = A55168E03501CCEDF17A2ED6 /* Pods-defaults-NotificationService.debug.xcconfig */;
buildSettings = {
ALWAYS_EMBED_SWIFT_STANDARD_LIBRARIES = "$(EMBEDDED_CONTENT_CONTAINS_SWIFT)";
CLANG_ANALYZER_NONNULL = YES;
@@ -1772,13 +1770,12 @@
INFOPLIST_FILE = NotificationService/Info.plist;
IPHONEOS_DEPLOYMENT_TARGET = 12.0;
LD_RUNPATH_SEARCH_PATHS = "$(inherited) @executable_path/Frameworks @executable_path/../../Frameworks";
- MARKETING_VERSION = 4.35.1;
+ MARKETING_VERSION = 4.36.0;
MTL_ENABLE_DEBUG_INFO = INCLUDE_SOURCE;
MTL_FAST_MATH = YES;
OTHER_SWIFT_FLAGS = "$(inherited) -D EXPO_CONFIGURATION_DEBUG";
PRODUCT_BUNDLE_IDENTIFIER = chat.rocket.reactnative.NotificationService;
PRODUCT_NAME = "$(TARGET_NAME)";
- PROVISIONING_PROFILE_SPECIFIER = "match Development chat.rocket.reactnative.NotificationService 1614015134";
SKIP_INSTALL = YES;
SWIFT_ACTIVE_COMPILATION_CONDITIONS = DEBUG;
SWIFT_OBJC_BRIDGING_HEADER = "NotificationService/NotificationService-Bridging-Header.h";
@@ -1790,7 +1787,7 @@
};
1EFEB59E2493B6640072EDC0 /* Release */ = {
isa = XCBuildConfiguration;
- baseConfigurationReference = E4B2A652A63425C0D2A10308 /* Pods-defaults-NotificationService.release.xcconfig */;
+ baseConfigurationReference = F35D225DC21083A127C3E7CB /* Pods-defaults-NotificationService.release.xcconfig */;
buildSettings = {
ALWAYS_EMBED_SWIFT_STANDARD_LIBRARIES = "$(EMBEDDED_CONTENT_CONTAINS_SWIFT)";
CLANG_ANALYZER_NONNULL = YES;
@@ -1812,12 +1809,12 @@
INFOPLIST_FILE = NotificationService/Info.plist;
IPHONEOS_DEPLOYMENT_TARGET = 12.0;
LD_RUNPATH_SEARCH_PATHS = "$(inherited) @executable_path/Frameworks @executable_path/../../Frameworks";
- MARKETING_VERSION = 4.35.1;
+ MARKETING_VERSION = 4.36.0;
MTL_FAST_MATH = YES;
OTHER_SWIFT_FLAGS = "$(inherited) -D EXPO_CONFIGURATION_RELEASE";
PRODUCT_BUNDLE_IDENTIFIER = chat.rocket.reactnative.NotificationService;
PRODUCT_NAME = "$(TARGET_NAME)";
- PROVISIONING_PROFILE_SPECIFIER = "chat.rocket.reactnative.NotificationService AppStore";
+ PROVISIONING_PROFILE_SPECIFIER = "match AppStore chat.rocket.reactnative.NotificationService";
SKIP_INSTALL = YES;
SWIFT_OBJC_BRIDGING_HEADER = "NotificationService/NotificationService-Bridging-Header.h";
SWIFT_OPTIMIZATION_LEVEL = "-O";
@@ -1828,7 +1825,7 @@
};
7AAB3E50257E6A6E00707CF6 /* Debug */ = {
isa = XCBuildConfiguration;
- baseConfigurationReference = ED7365DBECFD3329826DF680 /* Pods-defaults-Rocket.Chat.debug.xcconfig */;
+ baseConfigurationReference = 2D5EED0CA4EE40F7CCB182E1 /* Pods-defaults-Rocket.Chat.debug.xcconfig */;
buildSettings = {
ALWAYS_EMBED_SWIFT_STANDARD_LIBRARIES = YES;
APPLICATION_EXTENSION_API_ONLY = NO;
@@ -1882,7 +1879,7 @@
};
7AAB3E51257E6A6E00707CF6 /* Release */ = {
isa = XCBuildConfiguration;
- baseConfigurationReference = B313929D5A0461D5D08B2A64 /* Pods-defaults-Rocket.Chat.release.xcconfig */;
+ baseConfigurationReference = 778F20307FD6CE7A7F73DE7A /* Pods-defaults-Rocket.Chat.release.xcconfig */;
buildSettings = {
ALWAYS_EMBED_SWIFT_STANDARD_LIBRARIES = YES;
APPLICATION_EXTENSION_API_ONLY = NO;
diff --git a/ios/RocketChatRN/Info.plist b/ios/RocketChatRN/Info.plist
index dd39cceb5..82d5169ea 100644
--- a/ios/RocketChatRN/Info.plist
+++ b/ios/RocketChatRN/Info.plist
@@ -26,7 +26,7 @@
CFBundlePackageType
APPL
CFBundleShortVersionString
- 4.35.1
+ 4.36.0
CFBundleSignature
????
CFBundleURLTypes
diff --git a/ios/ShareRocketChatRN/Info.plist b/ios/ShareRocketChatRN/Info.plist
index e428d3be9..1619677fd 100644
--- a/ios/ShareRocketChatRN/Info.plist
+++ b/ios/ShareRocketChatRN/Info.plist
@@ -26,7 +26,7 @@
CFBundlePackageType
XPC!
CFBundleShortVersionString
- 4.35.1
+ 4.36.0
CFBundleVersion
1
KeychainGroup
diff --git a/ios/custom.ttf b/ios/custom.ttf
index ae3cd7da2..9d9d1f012 100644
Binary files a/ios/custom.ttf and b/ios/custom.ttf differ
diff --git a/package.json b/package.json
index 191864d34..cc94d53b9 100644
--- a/package.json
+++ b/package.json
@@ -1,6 +1,6 @@
{
"name": "rocket-chat-reactnative",
- "version": "4.35.1",
+ "version": "4.36.0",
"private": true,
"scripts": {
"start": "react-native start",
@@ -130,7 +130,7 @@
"react-native-simple-crypto": "RocketChat/react-native-simple-crypto#0.5.1",
"react-native-skeleton-placeholder": "^5.2.3",
"react-native-slowlog": "^1.0.2",
- "react-native-svg": "^12.3.0",
+ "react-native-svg": "^13.8.0",
"react-native-ui-lib": "RocketChat/react-native-ui-lib",
"react-native-vector-icons": "9.1.0",
"react-native-webview": "10.3.2",
diff --git a/yarn.lock b/yarn.lock
index 4f6f18834..3a2d13c6b 100644
--- a/yarn.lock
+++ b/yarn.lock
@@ -9492,15 +9492,15 @@ css-select@^1.1.0:
domutils "1.5.1"
nth-check "~1.0.1"
-css-select@^4.2.1:
- version "4.2.1"
- resolved "https://registry.yarnpkg.com/css-select/-/css-select-4.2.1.tgz#9e665d6ae4c7f9d65dbe69d0316e3221fb274cdd"
- integrity sha512-/aUslKhzkTNCQUB2qTX84lVmfia9NyjP3WpDGtj/WxhwBzWBYUV3DgUpurHTme8UTPcPlAD1DJ+b0nN/t50zDQ==
+css-select@^5.1.0:
+ version "5.1.0"
+ resolved "https://registry.yarnpkg.com/css-select/-/css-select-5.1.0.tgz#b8ebd6554c3637ccc76688804ad3f6a6fdaea8a6"
+ integrity sha512-nwoRF1rvRRnnCqqY7updORDsuqKzqYJ28+oSMaJMMgOauh3fvwHqMS7EZpIPqK8GL+g9mKxF1vP/ZjSeNjEVHg==
dependencies:
boolbase "^1.0.0"
- css-what "^5.1.0"
- domhandler "^4.3.0"
- domutils "^2.8.0"
+ css-what "^6.1.0"
+ domhandler "^5.0.2"
+ domutils "^3.0.1"
nth-check "^2.0.1"
css-selector-parser@^1.0.0:
@@ -9517,7 +9517,7 @@ css-to-react-native@^2.2.1:
css-color-keywords "^1.0.0"
postcss-value-parser "^3.3.0"
-css-tree@^1.0.0-alpha.39:
+css-tree@^1.1.3:
version "1.1.3"
resolved "https://registry.yarnpkg.com/css-tree/-/css-tree-1.1.3.tgz#eb4870fb6fd7707327ec95c2ff2ab09b5e8db91d"
integrity sha512-tRpdppF7TRazZrjJ6v3stzv93qxRcSsFmW6cX0Zm2NVKpxE1WV1HblnghVv9TreireHkqI/VDEsfolRF1p6y7Q==
@@ -9530,10 +9530,10 @@ css-what@2.1:
resolved "https://registry.yarnpkg.com/css-what/-/css-what-2.1.3.tgz#a6d7604573365fe74686c3f311c56513d88285f2"
integrity sha512-a+EPoD+uZiNfh+5fxw2nO9QwFa6nJe2Or35fGY6Ipw1R3R4AGz1d1TEZrCegvw2YTmZ0jXirGYlzxxpYSHwpEg==
-css-what@^5.1.0:
- version "5.1.0"
- resolved "https://registry.yarnpkg.com/css-what/-/css-what-5.1.0.tgz#3f7b707aadf633baf62c2ceb8579b545bb40f7fe"
- integrity sha512-arSMRWIIFY0hV8pIxZMEfmMI47Wj3R/aWpZDDxWYCPEiOMv6tfOrnpDtgxBYPEQD4V0Y/958+1TdC3iWTFcUPw==
+css-what@^6.1.0:
+ version "6.1.0"
+ resolved "https://registry.yarnpkg.com/css-what/-/css-what-6.1.0.tgz#fb5effcf76f1ddea2c81bdfaa4de44e79bac70f4"
+ integrity sha512-HTUrgRJ7r4dsZKU6GjmpfRK1O76h97Z8MfS1G0FozR+oF2kG6Vfe8JE6zwrkbxigziPHinCJ+gCPjA9EaBDtRw==
cssesc@^3.0.0:
version "3.0.0"
@@ -9929,14 +9929,14 @@ dom-serializer@0:
domelementtype "^2.0.1"
entities "^2.0.0"
-dom-serializer@^1.0.1:
- version "1.3.2"
- resolved "https://registry.yarnpkg.com/dom-serializer/-/dom-serializer-1.3.2.tgz#6206437d32ceefaec7161803230c7a20bc1b4d91"
- integrity sha512-5c54Bk5Dw4qAxNOI1pFEizPSjVsx5+bpJKmL2kPn8JhBUq2q09tTCa3mjijun2NfK78NMouDYNMBkOrPZiS+ig==
+dom-serializer@^2.0.0:
+ version "2.0.0"
+ resolved "https://registry.yarnpkg.com/dom-serializer/-/dom-serializer-2.0.0.tgz#e41b802e1eedf9f6cae183ce5e622d789d7d8e53"
+ integrity sha512-wIkAryiqt/nV5EQKqQpo3SToSOV9J0DnbJqwK7Wv/Trc92zIAYZ4FlMu+JPFW1DfGFt81ZTCGgDEabffXeLyJg==
dependencies:
- domelementtype "^2.0.1"
- domhandler "^4.2.0"
- entities "^2.0.0"
+ domelementtype "^2.3.0"
+ domhandler "^5.0.2"
+ entities "^4.2.0"
dom-walk@^0.1.0:
version "0.1.2"
@@ -9958,10 +9958,10 @@ domelementtype@^2.0.1:
resolved "https://registry.yarnpkg.com/domelementtype/-/domelementtype-2.0.1.tgz#1f8bdfe91f5a78063274e803b4bdcedf6e94f94d"
integrity sha512-5HOHUDsYZWV8FGWN0Njbr/Rn7f/eWSQi1v7+HsUVwXgn8nWWlL64zKDkS0n8ZmQ3mlWOMuXOnR+7Nx/5tMO5AQ==
-domelementtype@^2.2.0:
- version "2.2.0"
- resolved "https://registry.yarnpkg.com/domelementtype/-/domelementtype-2.2.0.tgz#9a0b6c2782ed6a1c7323d42267183df9bd8b1d57"
- integrity sha512-DtBMo82pv1dFtUmHyr48beiuq792Sxohr+8Hm9zoxklYPfa6n0Z3Byjj2IV7bmr2IyqClnqEQhfgHJJ5QF0R5A==
+domelementtype@^2.3.0:
+ version "2.3.0"
+ resolved "https://registry.yarnpkg.com/domelementtype/-/domelementtype-2.3.0.tgz#5c45e8e869952626331d7aab326d01daf65d589d"
+ integrity sha512-OLETBj6w0OsagBwdXnPdN0cnMfF9opN69co+7ZrbfPGrdpPVNBUj02spi6B1N7wChLQiPn4CSH/zJvXw56gmHw==
domhandler@^2.3.0:
version "2.4.2"
@@ -9970,12 +9970,12 @@ domhandler@^2.3.0:
dependencies:
domelementtype "1"
-domhandler@^4.2.0, domhandler@^4.3.0:
- version "4.3.1"
- resolved "https://registry.yarnpkg.com/domhandler/-/domhandler-4.3.1.tgz#8d792033416f59d68bc03a5aa7b018c1ca89279c"
- integrity sha512-GrwoxYN+uWlzO8uhUXRl0P+kHE4GtVPfYzVLcUxPL7KNdHKj66vvlhiweIHqYYXWlw+T8iLMp42Lm67ghw4WMQ==
+domhandler@^5.0.1, domhandler@^5.0.2:
+ version "5.0.3"
+ resolved "https://registry.yarnpkg.com/domhandler/-/domhandler-5.0.3.tgz#cc385f7f751f1d1fc650c21374804254538c7d31"
+ integrity sha512-cgwlv/1iFQiFnU96XXgROh8xTeetsnJiDsTc7TYCLFd9+/WNkIqPTxiM/8pSd8VIrhXGTf1Ny1q1hquVqDJB5w==
dependencies:
- domelementtype "^2.2.0"
+ domelementtype "^2.3.0"
domutils@1.5.1:
version "1.5.1"
@@ -9993,14 +9993,14 @@ domutils@^1.5.1:
dom-serializer "0"
domelementtype "1"
-domutils@^2.8.0:
- version "2.8.0"
- resolved "https://registry.yarnpkg.com/domutils/-/domutils-2.8.0.tgz#4437def5db6e2d1f5d6ee859bd95ca7d02048135"
- integrity sha512-w96Cjofp72M5IIhpjgobBimYEfoPjx1Vx0BSX9P30WBdZW2WIKU0T1Bd0kz2eNZ9ikjKgHbEyKx8BB6H1L3h3A==
+domutils@^3.0.1:
+ version "3.0.1"
+ resolved "https://registry.yarnpkg.com/domutils/-/domutils-3.0.1.tgz#696b3875238338cb186b6c0612bd4901c89a4f1c"
+ integrity sha512-z08c1l761iKhDFtfXO04C7kTdPBLi41zwOZl00WS8b5eiaebNpY00HKbztwBq+e3vyqWNwWF3mP9YLUeqIrF+Q==
dependencies:
- dom-serializer "^1.0.1"
- domelementtype "^2.2.0"
- domhandler "^4.2.0"
+ dom-serializer "^2.0.0"
+ domelementtype "^2.3.0"
+ domhandler "^5.0.1"
dot-case@^3.0.3:
version "3.0.3"
@@ -10236,6 +10236,11 @@ entities@^2.0.0:
resolved "https://registry.yarnpkg.com/entities/-/entities-2.0.2.tgz#ac74db0bba8d33808bbf36809c3a5c3683531436"
integrity sha512-dmD3AvJQBUjKpcNkoqr+x+IF0SdRtPz9Vk0uTy4yWqga9ibB6s4v++QFWNohjiUGoMlF552ZvNyXDxz5iW0qmw==
+entities@^4.2.0:
+ version "4.4.0"
+ resolved "https://registry.yarnpkg.com/entities/-/entities-4.4.0.tgz#97bdaba170339446495e653cfd2db78962900174"
+ integrity sha512-oYp7156SP8LkeGD0GF85ad1X9Ai79WtRsZ2gxJqtBuzH+98YUV6jkHEKlZkMbcrjJjIVJNIDP/3WL9wQkoPbWA==
+
env-editor@^0.4.1:
version "0.4.2"
resolved "https://registry.yarnpkg.com/env-editor/-/env-editor-0.4.2.tgz#4e76568d0bd8f5c2b6d314a9412c8fe9aa3ae861"
@@ -17598,13 +17603,13 @@ react-native-slowlog@^1.0.2:
resolved "https://registry.yarnpkg.com/react-native-slowlog/-/react-native-slowlog-1.0.2.tgz#5520979e3ef9d5273495d431ff3be34f02e35c89"
integrity sha1-VSCXnj751Sc0ldQx/zvjTwLjXIk=
-react-native-svg@^12.3.0:
- version "12.3.0"
- resolved "https://registry.yarnpkg.com/react-native-svg/-/react-native-svg-12.3.0.tgz#40f657c5d1ee366df23f3ec8dae76fd276b86248"
- integrity sha512-ESG1g1j7/WLD7X3XRFTQHVv0r6DpbHNNcdusngAODIxG88wpTWUZkhcM3A2HJTb+BbXTFDamHv7FwtRKWQ/ALg==
+react-native-svg@^13.8.0:
+ version "13.8.0"
+ resolved "https://registry.yarnpkg.com/react-native-svg/-/react-native-svg-13.8.0.tgz#b6a22cf77f8098f910490a13aeb160a37e182f97"
+ integrity sha512-G8Mx6W86da+vFimZBJvA93POw8yz0fgDS5biy6oIjMWVJVQSDzCyzwO/zY0yuZmCDhKSZzogl5m0wXXvW2OcTA==
dependencies:
- css-select "^4.2.1"
- css-tree "^1.0.0-alpha.39"
+ css-select "^5.1.0"
+ css-tree "^1.1.3"
react-native-swipe-gestures@^1.0.5:
version "1.0.5"