[NEW] Room Loading(#372)
<!-- INSTRUCTION: Keep the line below to notify all core developers about this new PR --> @RocketChat/ReactNative <!-- INSTRUCTION: Inform the issue number that this PR closes, or remove the line below --> <!-- INSTRUCTION: Tell us more about your PR with screen shots if you can -->
This commit is contained in:
parent
2e245e4d7c
commit
53ceaf858b
2
.babelrc
2
.babelrc
|
@ -1,6 +1,6 @@
|
||||||
{
|
{
|
||||||
"presets": ["react-native"],
|
"presets": ["react-native"],
|
||||||
"plugins": ["transform-decorators-legacy"],
|
"plugins": [["@babel/plugin-proposal-decorators", { "legacy": true }]],
|
||||||
"env": {
|
"env": {
|
||||||
"production": {
|
"production": {
|
||||||
"plugins": ["transform-remove-console"]
|
"plugins": ["transform-remove-console"]
|
||||||
|
|
|
@ -48,9 +48,7 @@ exports[`render channel 1`] = `
|
||||||
}
|
}
|
||||||
>
|
>
|
||||||
<Text
|
<Text
|
||||||
accessible={true}
|
|
||||||
allowFontScaling={false}
|
allowFontScaling={false}
|
||||||
ellipsizeMode="tail"
|
|
||||||
style={
|
style={
|
||||||
Array [
|
Array [
|
||||||
Object {
|
Object {
|
||||||
|
@ -88,9 +86,7 @@ exports[`render channel 1`] = `
|
||||||
}
|
}
|
||||||
>
|
>
|
||||||
<Text
|
<Text
|
||||||
accessible={true}
|
|
||||||
allowFontScaling={false}
|
allowFontScaling={false}
|
||||||
ellipsizeMode="tail"
|
|
||||||
style={
|
style={
|
||||||
Array [
|
Array [
|
||||||
Object {
|
Object {
|
||||||
|
@ -112,8 +108,6 @@ exports[`render channel 1`] = `
|
||||||
|
|
||||||
</Text>
|
</Text>
|
||||||
<Text
|
<Text
|
||||||
accessible={true}
|
|
||||||
allowFontScaling={true}
|
|
||||||
ellipsizeMode="tail"
|
ellipsizeMode="tail"
|
||||||
numberOfLines={1}
|
numberOfLines={1}
|
||||||
style={
|
style={
|
||||||
|
@ -131,8 +125,6 @@ exports[`render channel 1`] = `
|
||||||
general
|
general
|
||||||
</Text>
|
</Text>
|
||||||
<Text
|
<Text
|
||||||
accessible={true}
|
|
||||||
allowFontScaling={true}
|
|
||||||
ellipsizeMode="tail"
|
ellipsizeMode="tail"
|
||||||
numberOfLines={1}
|
numberOfLines={1}
|
||||||
style={
|
style={
|
||||||
|
@ -213,9 +205,7 @@ exports[`render no icon 1`] = `
|
||||||
}
|
}
|
||||||
>
|
>
|
||||||
<Text
|
<Text
|
||||||
accessible={true}
|
|
||||||
allowFontScaling={false}
|
allowFontScaling={false}
|
||||||
ellipsizeMode="tail"
|
|
||||||
style={
|
style={
|
||||||
Array [
|
Array [
|
||||||
Object {
|
Object {
|
||||||
|
@ -253,9 +243,7 @@ exports[`render no icon 1`] = `
|
||||||
}
|
}
|
||||||
>
|
>
|
||||||
<Text
|
<Text
|
||||||
accessible={true}
|
|
||||||
allowFontScaling={false}
|
allowFontScaling={false}
|
||||||
ellipsizeMode="tail"
|
|
||||||
style={
|
style={
|
||||||
Array [
|
Array [
|
||||||
Object {
|
Object {
|
||||||
|
@ -277,8 +265,6 @@ exports[`render no icon 1`] = `
|
||||||
|
|
||||||
</Text>
|
</Text>
|
||||||
<Text
|
<Text
|
||||||
accessible={true}
|
|
||||||
allowFontScaling={true}
|
|
||||||
ellipsizeMode="tail"
|
ellipsizeMode="tail"
|
||||||
numberOfLines={1}
|
numberOfLines={1}
|
||||||
style={
|
style={
|
||||||
|
@ -296,8 +282,6 @@ exports[`render no icon 1`] = `
|
||||||
name
|
name
|
||||||
</Text>
|
</Text>
|
||||||
<Text
|
<Text
|
||||||
accessible={true}
|
|
||||||
allowFontScaling={true}
|
|
||||||
ellipsizeMode="tail"
|
ellipsizeMode="tail"
|
||||||
numberOfLines={1}
|
numberOfLines={1}
|
||||||
style={
|
style={
|
||||||
|
@ -378,9 +362,7 @@ exports[`render private group 1`] = `
|
||||||
}
|
}
|
||||||
>
|
>
|
||||||
<Text
|
<Text
|
||||||
accessible={true}
|
|
||||||
allowFontScaling={false}
|
allowFontScaling={false}
|
||||||
ellipsizeMode="tail"
|
|
||||||
style={
|
style={
|
||||||
Array [
|
Array [
|
||||||
Object {
|
Object {
|
||||||
|
@ -418,9 +400,7 @@ exports[`render private group 1`] = `
|
||||||
}
|
}
|
||||||
>
|
>
|
||||||
<Text
|
<Text
|
||||||
accessible={true}
|
|
||||||
allowFontScaling={false}
|
allowFontScaling={false}
|
||||||
ellipsizeMode="tail"
|
|
||||||
style={
|
style={
|
||||||
Array [
|
Array [
|
||||||
Object {
|
Object {
|
||||||
|
@ -442,8 +422,6 @@ exports[`render private group 1`] = `
|
||||||
|
|
||||||
</Text>
|
</Text>
|
||||||
<Text
|
<Text
|
||||||
accessible={true}
|
|
||||||
allowFontScaling={true}
|
|
||||||
ellipsizeMode="tail"
|
ellipsizeMode="tail"
|
||||||
numberOfLines={1}
|
numberOfLines={1}
|
||||||
style={
|
style={
|
||||||
|
@ -461,8 +439,6 @@ exports[`render private group 1`] = `
|
||||||
private-group
|
private-group
|
||||||
</Text>
|
</Text>
|
||||||
<Text
|
<Text
|
||||||
accessible={true}
|
|
||||||
allowFontScaling={true}
|
|
||||||
ellipsizeMode="tail"
|
ellipsizeMode="tail"
|
||||||
numberOfLines={1}
|
numberOfLines={1}
|
||||||
style={
|
style={
|
||||||
|
@ -544,9 +520,7 @@ exports[`render unread +999 1`] = `
|
||||||
}
|
}
|
||||||
>
|
>
|
||||||
<Text
|
<Text
|
||||||
accessible={true}
|
|
||||||
allowFontScaling={false}
|
allowFontScaling={false}
|
||||||
ellipsizeMode="tail"
|
|
||||||
style={
|
style={
|
||||||
Array [
|
Array [
|
||||||
Object {
|
Object {
|
||||||
|
@ -646,9 +620,7 @@ exports[`render unread +999 1`] = `
|
||||||
}
|
}
|
||||||
>
|
>
|
||||||
<Text
|
<Text
|
||||||
accessible={true}
|
|
||||||
allowFontScaling={false}
|
allowFontScaling={false}
|
||||||
ellipsizeMode="tail"
|
|
||||||
style={
|
style={
|
||||||
Array [
|
Array [
|
||||||
Object {
|
Object {
|
||||||
|
@ -670,8 +642,6 @@ exports[`render unread +999 1`] = `
|
||||||
|
|
||||||
</Text>
|
</Text>
|
||||||
<Text
|
<Text
|
||||||
accessible={true}
|
|
||||||
allowFontScaling={true}
|
|
||||||
ellipsizeMode="tail"
|
ellipsizeMode="tail"
|
||||||
numberOfLines={1}
|
numberOfLines={1}
|
||||||
style={
|
style={
|
||||||
|
@ -689,8 +659,6 @@ exports[`render unread +999 1`] = `
|
||||||
name
|
name
|
||||||
</Text>
|
</Text>
|
||||||
<Text
|
<Text
|
||||||
accessible={true}
|
|
||||||
allowFontScaling={true}
|
|
||||||
ellipsizeMode="tail"
|
ellipsizeMode="tail"
|
||||||
numberOfLines={1}
|
numberOfLines={1}
|
||||||
style={
|
style={
|
||||||
|
@ -718,9 +686,6 @@ exports[`render unread +999 1`] = `
|
||||||
}
|
}
|
||||||
>
|
>
|
||||||
<Text
|
<Text
|
||||||
accessible={true}
|
|
||||||
allowFontScaling={true}
|
|
||||||
ellipsizeMode="tail"
|
|
||||||
style={
|
style={
|
||||||
Object {
|
Object {
|
||||||
"alignItems": "center",
|
"alignItems": "center",
|
||||||
|
@ -794,9 +759,7 @@ exports[`render unread 1`] = `
|
||||||
}
|
}
|
||||||
>
|
>
|
||||||
<Text
|
<Text
|
||||||
accessible={true}
|
|
||||||
allowFontScaling={false}
|
allowFontScaling={false}
|
||||||
ellipsizeMode="tail"
|
|
||||||
style={
|
style={
|
||||||
Array [
|
Array [
|
||||||
Object {
|
Object {
|
||||||
|
@ -896,9 +859,7 @@ exports[`render unread 1`] = `
|
||||||
}
|
}
|
||||||
>
|
>
|
||||||
<Text
|
<Text
|
||||||
accessible={true}
|
|
||||||
allowFontScaling={false}
|
allowFontScaling={false}
|
||||||
ellipsizeMode="tail"
|
|
||||||
style={
|
style={
|
||||||
Array [
|
Array [
|
||||||
Object {
|
Object {
|
||||||
|
@ -920,8 +881,6 @@ exports[`render unread 1`] = `
|
||||||
|
|
||||||
</Text>
|
</Text>
|
||||||
<Text
|
<Text
|
||||||
accessible={true}
|
|
||||||
allowFontScaling={true}
|
|
||||||
ellipsizeMode="tail"
|
ellipsizeMode="tail"
|
||||||
numberOfLines={1}
|
numberOfLines={1}
|
||||||
style={
|
style={
|
||||||
|
@ -939,8 +898,6 @@ exports[`render unread 1`] = `
|
||||||
name
|
name
|
||||||
</Text>
|
</Text>
|
||||||
<Text
|
<Text
|
||||||
accessible={true}
|
|
||||||
allowFontScaling={true}
|
|
||||||
ellipsizeMode="tail"
|
ellipsizeMode="tail"
|
||||||
numberOfLines={1}
|
numberOfLines={1}
|
||||||
style={
|
style={
|
||||||
|
@ -968,9 +925,6 @@ exports[`render unread 1`] = `
|
||||||
}
|
}
|
||||||
>
|
>
|
||||||
<Text
|
<Text
|
||||||
accessible={true}
|
|
||||||
allowFontScaling={true}
|
|
||||||
ellipsizeMode="tail"
|
|
||||||
style={
|
style={
|
||||||
Object {
|
Object {
|
||||||
"alignItems": "center",
|
"alignItems": "center",
|
||||||
|
@ -1044,9 +998,7 @@ exports[`renders correctly 1`] = `
|
||||||
}
|
}
|
||||||
>
|
>
|
||||||
<Text
|
<Text
|
||||||
accessible={true}
|
|
||||||
allowFontScaling={false}
|
allowFontScaling={false}
|
||||||
ellipsizeMode="tail"
|
|
||||||
style={
|
style={
|
||||||
Array [
|
Array [
|
||||||
Object {
|
Object {
|
||||||
|
@ -1146,9 +1098,7 @@ exports[`renders correctly 1`] = `
|
||||||
}
|
}
|
||||||
>
|
>
|
||||||
<Text
|
<Text
|
||||||
accessible={true}
|
|
||||||
allowFontScaling={false}
|
allowFontScaling={false}
|
||||||
ellipsizeMode="tail"
|
|
||||||
style={
|
style={
|
||||||
Array [
|
Array [
|
||||||
Object {
|
Object {
|
||||||
|
@ -1170,8 +1120,6 @@ exports[`renders correctly 1`] = `
|
||||||
|
|
||||||
</Text>
|
</Text>
|
||||||
<Text
|
<Text
|
||||||
accessible={true}
|
|
||||||
allowFontScaling={true}
|
|
||||||
ellipsizeMode="tail"
|
ellipsizeMode="tail"
|
||||||
numberOfLines={1}
|
numberOfLines={1}
|
||||||
style={
|
style={
|
||||||
|
@ -1189,8 +1137,6 @@ exports[`renders correctly 1`] = `
|
||||||
name
|
name
|
||||||
</Text>
|
</Text>
|
||||||
<Text
|
<Text
|
||||||
accessible={true}
|
|
||||||
allowFontScaling={true}
|
|
||||||
ellipsizeMode="tail"
|
ellipsizeMode="tail"
|
||||||
numberOfLines={1}
|
numberOfLines={1}
|
||||||
style={
|
style={
|
||||||
|
|
|
@ -21,9 +21,7 @@ exports[`Storyshots Avatar avatar 1`] = `
|
||||||
}
|
}
|
||||||
>
|
>
|
||||||
<Text
|
<Text
|
||||||
accessible={true}
|
|
||||||
allowFontScaling={false}
|
allowFontScaling={false}
|
||||||
ellipsizeMode="tail"
|
|
||||||
style={
|
style={
|
||||||
Array [
|
Array [
|
||||||
Object {
|
Object {
|
||||||
|
@ -95,9 +93,7 @@ exports[`Storyshots Avatar avatar 1`] = `
|
||||||
}
|
}
|
||||||
>
|
>
|
||||||
<Text
|
<Text
|
||||||
accessible={true}
|
|
||||||
allowFontScaling={false}
|
allowFontScaling={false}
|
||||||
ellipsizeMode="tail"
|
|
||||||
style={
|
style={
|
||||||
Array [
|
Array [
|
||||||
Object {
|
Object {
|
||||||
|
@ -169,9 +165,7 @@ exports[`Storyshots Avatar avatar 1`] = `
|
||||||
}
|
}
|
||||||
>
|
>
|
||||||
<Text
|
<Text
|
||||||
accessible={true}
|
|
||||||
allowFontScaling={false}
|
allowFontScaling={false}
|
||||||
ellipsizeMode="tail"
|
|
||||||
style={
|
style={
|
||||||
Array [
|
Array [
|
||||||
Object {
|
Object {
|
||||||
|
@ -243,9 +237,7 @@ exports[`Storyshots Avatar avatar 1`] = `
|
||||||
}
|
}
|
||||||
>
|
>
|
||||||
<Text
|
<Text
|
||||||
accessible={true}
|
|
||||||
allowFontScaling={false}
|
allowFontScaling={false}
|
||||||
ellipsizeMode="tail"
|
|
||||||
style={
|
style={
|
||||||
Array [
|
Array [
|
||||||
Object {
|
Object {
|
||||||
|
@ -352,9 +344,7 @@ exports[`Storyshots Channel Cell Direct Messages 1`] = `
|
||||||
}
|
}
|
||||||
>
|
>
|
||||||
<Text
|
<Text
|
||||||
accessible={true}
|
|
||||||
allowFontScaling={false}
|
allowFontScaling={false}
|
||||||
ellipsizeMode="tail"
|
|
||||||
style={
|
style={
|
||||||
Array [
|
Array [
|
||||||
Object {
|
Object {
|
||||||
|
@ -454,9 +444,7 @@ exports[`Storyshots Channel Cell Direct Messages 1`] = `
|
||||||
}
|
}
|
||||||
>
|
>
|
||||||
<Text
|
<Text
|
||||||
accessible={true}
|
|
||||||
allowFontScaling={false}
|
allowFontScaling={false}
|
||||||
ellipsizeMode="tail"
|
|
||||||
style={
|
style={
|
||||||
Array [
|
Array [
|
||||||
Object {
|
Object {
|
||||||
|
@ -478,8 +466,6 @@ exports[`Storyshots Channel Cell Direct Messages 1`] = `
|
||||||
|
|
||||||
</Text>
|
</Text>
|
||||||
<Text
|
<Text
|
||||||
accessible={true}
|
|
||||||
allowFontScaling={true}
|
|
||||||
ellipsizeMode="tail"
|
ellipsizeMode="tail"
|
||||||
numberOfLines={1}
|
numberOfLines={1}
|
||||||
style={
|
style={
|
||||||
|
@ -497,8 +483,6 @@ exports[`Storyshots Channel Cell Direct Messages 1`] = `
|
||||||
rocket.cat
|
rocket.cat
|
||||||
</Text>
|
</Text>
|
||||||
<Text
|
<Text
|
||||||
accessible={true}
|
|
||||||
allowFontScaling={true}
|
|
||||||
ellipsizeMode="tail"
|
ellipsizeMode="tail"
|
||||||
numberOfLines={1}
|
numberOfLines={1}
|
||||||
style={
|
style={
|
||||||
|
@ -574,9 +558,7 @@ exports[`Storyshots Channel Cell Direct Messages 1`] = `
|
||||||
}
|
}
|
||||||
>
|
>
|
||||||
<Text
|
<Text
|
||||||
accessible={true}
|
|
||||||
allowFontScaling={false}
|
allowFontScaling={false}
|
||||||
ellipsizeMode="tail"
|
|
||||||
style={
|
style={
|
||||||
Array [
|
Array [
|
||||||
Object {
|
Object {
|
||||||
|
@ -676,9 +658,7 @@ exports[`Storyshots Channel Cell Direct Messages 1`] = `
|
||||||
}
|
}
|
||||||
>
|
>
|
||||||
<Text
|
<Text
|
||||||
accessible={true}
|
|
||||||
allowFontScaling={false}
|
allowFontScaling={false}
|
||||||
ellipsizeMode="tail"
|
|
||||||
style={
|
style={
|
||||||
Array [
|
Array [
|
||||||
Object {
|
Object {
|
||||||
|
@ -700,8 +680,6 @@ exports[`Storyshots Channel Cell Direct Messages 1`] = `
|
||||||
|
|
||||||
</Text>
|
</Text>
|
||||||
<Text
|
<Text
|
||||||
accessible={true}
|
|
||||||
allowFontScaling={true}
|
|
||||||
ellipsizeMode="tail"
|
ellipsizeMode="tail"
|
||||||
numberOfLines={1}
|
numberOfLines={1}
|
||||||
style={
|
style={
|
||||||
|
@ -721,8 +699,6 @@ exports[`Storyshots Channel Cell Direct Messages 1`] = `
|
||||||
rocket.cat
|
rocket.cat
|
||||||
</Text>
|
</Text>
|
||||||
<Text
|
<Text
|
||||||
accessible={true}
|
|
||||||
allowFontScaling={true}
|
|
||||||
ellipsizeMode="tail"
|
ellipsizeMode="tail"
|
||||||
numberOfLines={1}
|
numberOfLines={1}
|
||||||
style={
|
style={
|
||||||
|
@ -800,9 +776,7 @@ exports[`Storyshots Channel Cell Direct Messages 1`] = `
|
||||||
}
|
}
|
||||||
>
|
>
|
||||||
<Text
|
<Text
|
||||||
accessible={true}
|
|
||||||
allowFontScaling={false}
|
allowFontScaling={false}
|
||||||
ellipsizeMode="tail"
|
|
||||||
style={
|
style={
|
||||||
Array [
|
Array [
|
||||||
Object {
|
Object {
|
||||||
|
@ -902,9 +876,7 @@ exports[`Storyshots Channel Cell Direct Messages 1`] = `
|
||||||
}
|
}
|
||||||
>
|
>
|
||||||
<Text
|
<Text
|
||||||
accessible={true}
|
|
||||||
allowFontScaling={false}
|
allowFontScaling={false}
|
||||||
ellipsizeMode="tail"
|
|
||||||
style={
|
style={
|
||||||
Array [
|
Array [
|
||||||
Object {
|
Object {
|
||||||
|
@ -926,8 +898,6 @@ exports[`Storyshots Channel Cell Direct Messages 1`] = `
|
||||||
|
|
||||||
</Text>
|
</Text>
|
||||||
<Text
|
<Text
|
||||||
accessible={true}
|
|
||||||
allowFontScaling={true}
|
|
||||||
ellipsizeMode="tail"
|
ellipsizeMode="tail"
|
||||||
numberOfLines={1}
|
numberOfLines={1}
|
||||||
style={
|
style={
|
||||||
|
@ -945,8 +915,6 @@ exports[`Storyshots Channel Cell Direct Messages 1`] = `
|
||||||
rocket.cat
|
rocket.cat
|
||||||
</Text>
|
</Text>
|
||||||
<Text
|
<Text
|
||||||
accessible={true}
|
|
||||||
allowFontScaling={true}
|
|
||||||
ellipsizeMode="tail"
|
ellipsizeMode="tail"
|
||||||
numberOfLines={1}
|
numberOfLines={1}
|
||||||
style={
|
style={
|
||||||
|
@ -974,9 +942,6 @@ exports[`Storyshots Channel Cell Direct Messages 1`] = `
|
||||||
}
|
}
|
||||||
>
|
>
|
||||||
<Text
|
<Text
|
||||||
accessible={true}
|
|
||||||
allowFontScaling={true}
|
|
||||||
ellipsizeMode="tail"
|
|
||||||
style={
|
style={
|
||||||
Object {
|
Object {
|
||||||
"alignItems": "center",
|
"alignItems": "center",
|
||||||
|
@ -1045,9 +1010,7 @@ exports[`Storyshots Channel Cell Direct Messages 1`] = `
|
||||||
}
|
}
|
||||||
>
|
>
|
||||||
<Text
|
<Text
|
||||||
accessible={true}
|
|
||||||
allowFontScaling={false}
|
allowFontScaling={false}
|
||||||
ellipsizeMode="tail"
|
|
||||||
style={
|
style={
|
||||||
Array [
|
Array [
|
||||||
Object {
|
Object {
|
||||||
|
@ -1147,9 +1110,7 @@ exports[`Storyshots Channel Cell Direct Messages 1`] = `
|
||||||
}
|
}
|
||||||
>
|
>
|
||||||
<Text
|
<Text
|
||||||
accessible={true}
|
|
||||||
allowFontScaling={false}
|
allowFontScaling={false}
|
||||||
ellipsizeMode="tail"
|
|
||||||
style={
|
style={
|
||||||
Array [
|
Array [
|
||||||
Object {
|
Object {
|
||||||
|
@ -1171,8 +1132,6 @@ exports[`Storyshots Channel Cell Direct Messages 1`] = `
|
||||||
|
|
||||||
</Text>
|
</Text>
|
||||||
<Text
|
<Text
|
||||||
accessible={true}
|
|
||||||
allowFontScaling={true}
|
|
||||||
ellipsizeMode="tail"
|
ellipsizeMode="tail"
|
||||||
numberOfLines={1}
|
numberOfLines={1}
|
||||||
style={
|
style={
|
||||||
|
@ -1192,8 +1151,6 @@ exports[`Storyshots Channel Cell Direct Messages 1`] = `
|
||||||
Lorem Ipsum is simply dummy text of the printing and typesetting industry. Lorem Ipsum has been the industry's 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
|
Lorem Ipsum is simply dummy text of the printing and typesetting industry. Lorem Ipsum has been the industry's 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
|
||||||
</Text>
|
</Text>
|
||||||
<Text
|
<Text
|
||||||
accessible={true}
|
|
||||||
allowFontScaling={true}
|
|
||||||
ellipsizeMode="tail"
|
ellipsizeMode="tail"
|
||||||
numberOfLines={1}
|
numberOfLines={1}
|
||||||
style={
|
style={
|
||||||
|
@ -1223,9 +1180,6 @@ exports[`Storyshots Channel Cell Direct Messages 1`] = `
|
||||||
}
|
}
|
||||||
>
|
>
|
||||||
<Text
|
<Text
|
||||||
accessible={true}
|
|
||||||
allowFontScaling={true}
|
|
||||||
ellipsizeMode="tail"
|
|
||||||
style={
|
style={
|
||||||
Object {
|
Object {
|
||||||
"alignItems": "center",
|
"alignItems": "center",
|
||||||
|
@ -1294,9 +1248,7 @@ exports[`Storyshots Channel Cell Direct Messages 1`] = `
|
||||||
}
|
}
|
||||||
>
|
>
|
||||||
<Text
|
<Text
|
||||||
accessible={true}
|
|
||||||
allowFontScaling={false}
|
allowFontScaling={false}
|
||||||
ellipsizeMode="tail"
|
|
||||||
style={
|
style={
|
||||||
Array [
|
Array [
|
||||||
Object {
|
Object {
|
||||||
|
@ -1396,9 +1348,7 @@ exports[`Storyshots Channel Cell Direct Messages 1`] = `
|
||||||
}
|
}
|
||||||
>
|
>
|
||||||
<Text
|
<Text
|
||||||
accessible={true}
|
|
||||||
allowFontScaling={false}
|
allowFontScaling={false}
|
||||||
ellipsizeMode="tail"
|
|
||||||
style={
|
style={
|
||||||
Array [
|
Array [
|
||||||
Object {
|
Object {
|
||||||
|
@ -1420,8 +1370,6 @@ exports[`Storyshots Channel Cell Direct Messages 1`] = `
|
||||||
|
|
||||||
</Text>
|
</Text>
|
||||||
<Text
|
<Text
|
||||||
accessible={true}
|
|
||||||
allowFontScaling={true}
|
|
||||||
ellipsizeMode="tail"
|
ellipsizeMode="tail"
|
||||||
numberOfLines={1}
|
numberOfLines={1}
|
||||||
style={
|
style={
|
||||||
|
@ -1439,8 +1387,6 @@ exports[`Storyshots Channel Cell Direct Messages 1`] = `
|
||||||
Lorem Ipsum is simply dummy text of the printing and typesetting industry. Lorem Ipsum has been the industry's 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
|
Lorem Ipsum is simply dummy text of the printing and typesetting industry. Lorem Ipsum has been the industry's 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
|
||||||
</Text>
|
</Text>
|
||||||
<Text
|
<Text
|
||||||
accessible={true}
|
|
||||||
allowFontScaling={true}
|
|
||||||
ellipsizeMode="tail"
|
ellipsizeMode="tail"
|
||||||
numberOfLines={1}
|
numberOfLines={1}
|
||||||
style={
|
style={
|
||||||
|
@ -1468,9 +1414,6 @@ exports[`Storyshots Channel Cell Direct Messages 1`] = `
|
||||||
}
|
}
|
||||||
>
|
>
|
||||||
<Text
|
<Text
|
||||||
accessible={true}
|
|
||||||
allowFontScaling={true}
|
|
||||||
ellipsizeMode="tail"
|
|
||||||
style={
|
style={
|
||||||
Object {
|
Object {
|
||||||
"alignItems": "center",
|
"alignItems": "center",
|
||||||
|
@ -1539,9 +1482,7 @@ exports[`Storyshots Channel Cell Direct Messages 1`] = `
|
||||||
}
|
}
|
||||||
>
|
>
|
||||||
<Text
|
<Text
|
||||||
accessible={true}
|
|
||||||
allowFontScaling={false}
|
allowFontScaling={false}
|
||||||
ellipsizeMode="tail"
|
|
||||||
style={
|
style={
|
||||||
Array [
|
Array [
|
||||||
Object {
|
Object {
|
||||||
|
@ -1641,9 +1582,7 @@ exports[`Storyshots Channel Cell Direct Messages 1`] = `
|
||||||
}
|
}
|
||||||
>
|
>
|
||||||
<Text
|
<Text
|
||||||
accessible={true}
|
|
||||||
allowFontScaling={false}
|
allowFontScaling={false}
|
||||||
ellipsizeMode="tail"
|
|
||||||
style={
|
style={
|
||||||
Array [
|
Array [
|
||||||
Object {
|
Object {
|
||||||
|
@ -1665,8 +1604,6 @@ exports[`Storyshots Channel Cell Direct Messages 1`] = `
|
||||||
|
|
||||||
</Text>
|
</Text>
|
||||||
<Text
|
<Text
|
||||||
accessible={true}
|
|
||||||
allowFontScaling={true}
|
|
||||||
ellipsizeMode="tail"
|
ellipsizeMode="tail"
|
||||||
numberOfLines={1}
|
numberOfLines={1}
|
||||||
style={
|
style={
|
||||||
|
@ -1684,8 +1621,6 @@ exports[`Storyshots Channel Cell Direct Messages 1`] = `
|
||||||
Lorem Ipsum is simply dummy text of the printing and typesetting industry. Lorem Ipsum has been the industry's 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
|
Lorem Ipsum is simply dummy text of the printing and typesetting industry. Lorem Ipsum has been the industry's 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
|
||||||
</Text>
|
</Text>
|
||||||
<Text
|
<Text
|
||||||
accessible={true}
|
|
||||||
allowFontScaling={true}
|
|
||||||
ellipsizeMode="tail"
|
ellipsizeMode="tail"
|
||||||
numberOfLines={1}
|
numberOfLines={1}
|
||||||
style={
|
style={
|
||||||
|
@ -1713,9 +1648,6 @@ exports[`Storyshots Channel Cell Direct Messages 1`] = `
|
||||||
}
|
}
|
||||||
>
|
>
|
||||||
<Text
|
<Text
|
||||||
accessible={true}
|
|
||||||
allowFontScaling={true}
|
|
||||||
ellipsizeMode="tail"
|
|
||||||
style={
|
style={
|
||||||
Object {
|
Object {
|
||||||
"alignItems": "center",
|
"alignItems": "center",
|
||||||
|
@ -1784,9 +1716,7 @@ exports[`Storyshots Channel Cell Direct Messages 1`] = `
|
||||||
}
|
}
|
||||||
>
|
>
|
||||||
<Text
|
<Text
|
||||||
accessible={true}
|
|
||||||
allowFontScaling={false}
|
allowFontScaling={false}
|
||||||
ellipsizeMode="tail"
|
|
||||||
style={
|
style={
|
||||||
Array [
|
Array [
|
||||||
Object {
|
Object {
|
||||||
|
@ -1886,9 +1816,7 @@ exports[`Storyshots Channel Cell Direct Messages 1`] = `
|
||||||
}
|
}
|
||||||
>
|
>
|
||||||
<Text
|
<Text
|
||||||
accessible={true}
|
|
||||||
allowFontScaling={false}
|
allowFontScaling={false}
|
||||||
ellipsizeMode="tail"
|
|
||||||
style={
|
style={
|
||||||
Array [
|
Array [
|
||||||
Object {
|
Object {
|
||||||
|
@ -1910,8 +1838,6 @@ exports[`Storyshots Channel Cell Direct Messages 1`] = `
|
||||||
|
|
||||||
</Text>
|
</Text>
|
||||||
<Text
|
<Text
|
||||||
accessible={true}
|
|
||||||
allowFontScaling={true}
|
|
||||||
ellipsizeMode="tail"
|
ellipsizeMode="tail"
|
||||||
numberOfLines={1}
|
numberOfLines={1}
|
||||||
style={
|
style={
|
||||||
|
@ -1929,8 +1855,6 @@ exports[`Storyshots Channel Cell Direct Messages 1`] = `
|
||||||
Lorem Ipsum is simply dummy text of the printing and typesetting industry. Lorem Ipsum has been the industry's 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
|
Lorem Ipsum is simply dummy text of the printing and typesetting industry. Lorem Ipsum has been the industry's 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
|
||||||
</Text>
|
</Text>
|
||||||
<Text
|
<Text
|
||||||
accessible={true}
|
|
||||||
allowFontScaling={true}
|
|
||||||
ellipsizeMode="tail"
|
ellipsizeMode="tail"
|
||||||
numberOfLines={1}
|
numberOfLines={1}
|
||||||
style={
|
style={
|
||||||
|
@ -1958,9 +1882,6 @@ exports[`Storyshots Channel Cell Direct Messages 1`] = `
|
||||||
}
|
}
|
||||||
>
|
>
|
||||||
<Text
|
<Text
|
||||||
accessible={true}
|
|
||||||
allowFontScaling={true}
|
|
||||||
ellipsizeMode="tail"
|
|
||||||
style={
|
style={
|
||||||
Object {
|
Object {
|
||||||
"alignItems": "center",
|
"alignItems": "center",
|
||||||
|
@ -2029,9 +1950,7 @@ exports[`Storyshots Channel Cell Direct Messages 1`] = `
|
||||||
}
|
}
|
||||||
>
|
>
|
||||||
<Text
|
<Text
|
||||||
accessible={true}
|
|
||||||
allowFontScaling={false}
|
allowFontScaling={false}
|
||||||
ellipsizeMode="tail"
|
|
||||||
style={
|
style={
|
||||||
Array [
|
Array [
|
||||||
Object {
|
Object {
|
||||||
|
@ -2131,9 +2050,7 @@ exports[`Storyshots Channel Cell Direct Messages 1`] = `
|
||||||
}
|
}
|
||||||
>
|
>
|
||||||
<Text
|
<Text
|
||||||
accessible={true}
|
|
||||||
allowFontScaling={false}
|
allowFontScaling={false}
|
||||||
ellipsizeMode="tail"
|
|
||||||
style={
|
style={
|
||||||
Array [
|
Array [
|
||||||
Object {
|
Object {
|
||||||
|
@ -2155,8 +2072,6 @@ exports[`Storyshots Channel Cell Direct Messages 1`] = `
|
||||||
|
|
||||||
</Text>
|
</Text>
|
||||||
<Text
|
<Text
|
||||||
accessible={true}
|
|
||||||
allowFontScaling={true}
|
|
||||||
ellipsizeMode="tail"
|
ellipsizeMode="tail"
|
||||||
numberOfLines={1}
|
numberOfLines={1}
|
||||||
style={
|
style={
|
||||||
|
@ -2174,8 +2089,6 @@ exports[`Storyshots Channel Cell Direct Messages 1`] = `
|
||||||
Lorem Ipsum is simply dummy text of the printing and typesetting industry. Lorem Ipsum has been the industry's 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
|
Lorem Ipsum is simply dummy text of the printing and typesetting industry. Lorem Ipsum has been the industry's 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
|
||||||
</Text>
|
</Text>
|
||||||
<Text
|
<Text
|
||||||
accessible={true}
|
|
||||||
allowFontScaling={true}
|
|
||||||
ellipsizeMode="tail"
|
ellipsizeMode="tail"
|
||||||
numberOfLines={1}
|
numberOfLines={1}
|
||||||
style={
|
style={
|
||||||
|
@ -2203,9 +2116,6 @@ exports[`Storyshots Channel Cell Direct Messages 1`] = `
|
||||||
}
|
}
|
||||||
>
|
>
|
||||||
<Text
|
<Text
|
||||||
accessible={true}
|
|
||||||
allowFontScaling={true}
|
|
||||||
ellipsizeMode="tail"
|
|
||||||
style={
|
style={
|
||||||
Object {
|
Object {
|
||||||
"alignItems": "center",
|
"alignItems": "center",
|
||||||
|
@ -2274,9 +2184,7 @@ exports[`Storyshots Channel Cell Direct Messages 1`] = `
|
||||||
}
|
}
|
||||||
>
|
>
|
||||||
<Text
|
<Text
|
||||||
accessible={true}
|
|
||||||
allowFontScaling={false}
|
allowFontScaling={false}
|
||||||
ellipsizeMode="tail"
|
|
||||||
style={
|
style={
|
||||||
Array [
|
Array [
|
||||||
Object {
|
Object {
|
||||||
|
@ -2376,9 +2284,7 @@ exports[`Storyshots Channel Cell Direct Messages 1`] = `
|
||||||
}
|
}
|
||||||
>
|
>
|
||||||
<Text
|
<Text
|
||||||
accessible={true}
|
|
||||||
allowFontScaling={false}
|
allowFontScaling={false}
|
||||||
ellipsizeMode="tail"
|
|
||||||
style={
|
style={
|
||||||
Array [
|
Array [
|
||||||
Object {
|
Object {
|
||||||
|
@ -2400,8 +2306,6 @@ exports[`Storyshots Channel Cell Direct Messages 1`] = `
|
||||||
|
|
||||||
</Text>
|
</Text>
|
||||||
<Text
|
<Text
|
||||||
accessible={true}
|
|
||||||
allowFontScaling={true}
|
|
||||||
ellipsizeMode="tail"
|
ellipsizeMode="tail"
|
||||||
numberOfLines={1}
|
numberOfLines={1}
|
||||||
style={
|
style={
|
||||||
|
@ -2419,8 +2323,6 @@ exports[`Storyshots Channel Cell Direct Messages 1`] = `
|
||||||
W
|
W
|
||||||
</Text>
|
</Text>
|
||||||
<Text
|
<Text
|
||||||
accessible={true}
|
|
||||||
allowFontScaling={true}
|
|
||||||
ellipsizeMode="tail"
|
ellipsizeMode="tail"
|
||||||
numberOfLines={1}
|
numberOfLines={1}
|
||||||
style={
|
style={
|
||||||
|
@ -2496,9 +2398,7 @@ exports[`Storyshots Channel Cell Direct Messages 1`] = `
|
||||||
}
|
}
|
||||||
>
|
>
|
||||||
<Text
|
<Text
|
||||||
accessible={true}
|
|
||||||
allowFontScaling={false}
|
allowFontScaling={false}
|
||||||
ellipsizeMode="tail"
|
|
||||||
style={
|
style={
|
||||||
Array [
|
Array [
|
||||||
Object {
|
Object {
|
||||||
|
@ -2598,9 +2498,7 @@ exports[`Storyshots Channel Cell Direct Messages 1`] = `
|
||||||
}
|
}
|
||||||
>
|
>
|
||||||
<Text
|
<Text
|
||||||
accessible={true}
|
|
||||||
allowFontScaling={false}
|
allowFontScaling={false}
|
||||||
ellipsizeMode="tail"
|
|
||||||
style={
|
style={
|
||||||
Array [
|
Array [
|
||||||
Object {
|
Object {
|
||||||
|
@ -2622,8 +2520,6 @@ exports[`Storyshots Channel Cell Direct Messages 1`] = `
|
||||||
|
|
||||||
</Text>
|
</Text>
|
||||||
<Text
|
<Text
|
||||||
accessible={true}
|
|
||||||
allowFontScaling={true}
|
|
||||||
ellipsizeMode="tail"
|
ellipsizeMode="tail"
|
||||||
numberOfLines={1}
|
numberOfLines={1}
|
||||||
style={
|
style={
|
||||||
|
@ -2641,8 +2537,6 @@ exports[`Storyshots Channel Cell Direct Messages 1`] = `
|
||||||
WW
|
WW
|
||||||
</Text>
|
</Text>
|
||||||
<Text
|
<Text
|
||||||
accessible={true}
|
|
||||||
allowFontScaling={true}
|
|
||||||
ellipsizeMode="tail"
|
ellipsizeMode="tail"
|
||||||
numberOfLines={1}
|
numberOfLines={1}
|
||||||
style={
|
style={
|
||||||
|
@ -2718,9 +2612,7 @@ exports[`Storyshots Channel Cell Direct Messages 1`] = `
|
||||||
}
|
}
|
||||||
>
|
>
|
||||||
<Text
|
<Text
|
||||||
accessible={true}
|
|
||||||
allowFontScaling={false}
|
allowFontScaling={false}
|
||||||
ellipsizeMode="tail"
|
|
||||||
style={
|
style={
|
||||||
Array [
|
Array [
|
||||||
Object {
|
Object {
|
||||||
|
@ -2820,9 +2712,7 @@ exports[`Storyshots Channel Cell Direct Messages 1`] = `
|
||||||
}
|
}
|
||||||
>
|
>
|
||||||
<Text
|
<Text
|
||||||
accessible={true}
|
|
||||||
allowFontScaling={false}
|
allowFontScaling={false}
|
||||||
ellipsizeMode="tail"
|
|
||||||
style={
|
style={
|
||||||
Array [
|
Array [
|
||||||
Object {
|
Object {
|
||||||
|
@ -2844,8 +2734,6 @@ exports[`Storyshots Channel Cell Direct Messages 1`] = `
|
||||||
|
|
||||||
</Text>
|
</Text>
|
||||||
<Text
|
<Text
|
||||||
accessible={true}
|
|
||||||
allowFontScaling={true}
|
|
||||||
ellipsizeMode="tail"
|
ellipsizeMode="tail"
|
||||||
numberOfLines={1}
|
numberOfLines={1}
|
||||||
style={
|
style={
|
||||||
|
@ -2863,8 +2751,6 @@ exports[`Storyshots Channel Cell Direct Messages 1`] = `
|
||||||
|
|
||||||
</Text>
|
</Text>
|
||||||
<Text
|
<Text
|
||||||
accessible={true}
|
|
||||||
allowFontScaling={true}
|
|
||||||
ellipsizeMode="tail"
|
ellipsizeMode="tail"
|
||||||
numberOfLines={1}
|
numberOfLines={1}
|
||||||
style={
|
style={
|
||||||
|
|
|
@ -104,6 +104,7 @@ android {
|
||||||
}
|
}
|
||||||
missingDimensionStrategy "RNN.reactNativeVersion", "reactNative55"
|
missingDimensionStrategy "RNN.reactNativeVersion", "reactNative55"
|
||||||
vectorDrawables.useSupportLibrary = true
|
vectorDrawables.useSupportLibrary = true
|
||||||
|
multiDexEnabled true
|
||||||
}
|
}
|
||||||
|
|
||||||
compileOptions {
|
compileOptions {
|
||||||
|
@ -200,8 +201,9 @@ dependencies {
|
||||||
implementation 'com.android.support:customtabs:27.1.0'
|
implementation 'com.android.support:customtabs:27.1.0'
|
||||||
implementation 'com.android.support:design:27.1.0'
|
implementation 'com.android.support:design:27.1.0'
|
||||||
implementation "com.facebook.react:react-native:+" // From node_modules
|
implementation "com.facebook.react:react-native:+" // From node_modules
|
||||||
implementation 'com.facebook.fresco:fresco:1.7.1'
|
implementation 'com.facebook.fresco:animated-gif:1.9.0'
|
||||||
implementation 'com.facebook.fresco:animated-gif:1.7.1'
|
implementation 'com.facebook.fresco:animated-webp:1.9.0'
|
||||||
|
implementation 'com.facebook.fresco:webpsupport:1.9.0'
|
||||||
implementation('com.crashlytics.sdk.android:crashlytics:2.9.2@aar') {
|
implementation('com.crashlytics.sdk.android:crashlytics:2.9.2@aar') {
|
||||||
transitive = true;
|
transitive = true;
|
||||||
}
|
}
|
||||||
|
|
|
@ -32,3 +32,15 @@ allprojects {
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
subprojects {
|
||||||
|
afterEvaluate {
|
||||||
|
android {
|
||||||
|
compileSdkVersion 27
|
||||||
|
buildToolsVersion "27.0.3"
|
||||||
|
defaultConfig {
|
||||||
|
targetSdkVersion 27
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
|
@ -1,7 +1,6 @@
|
||||||
import React from 'react';
|
import React from 'react';
|
||||||
import { ViewPropTypes } from 'react-native';
|
import { ViewPropTypes, Image } from 'react-native';
|
||||||
import PropTypes from 'prop-types';
|
import PropTypes from 'prop-types';
|
||||||
import FastImage from 'react-native-fast-image';
|
|
||||||
import { connect } from 'react-redux';
|
import { connect } from 'react-redux';
|
||||||
|
|
||||||
@connect(state => ({
|
@connect(state => ({
|
||||||
|
@ -19,7 +18,7 @@ export default class CustomEmoji extends React.Component {
|
||||||
render() {
|
render() {
|
||||||
const { baseUrl, emoji, style } = this.props;
|
const { baseUrl, emoji, style } = this.props;
|
||||||
return (
|
return (
|
||||||
<FastImage
|
<Image
|
||||||
style={style}
|
style={style}
|
||||||
source={{ uri: `${ baseUrl }/emoji-custom/${ encodeURIComponent(emoji.content || emoji.name) }.${ emoji.extension }` }}
|
source={{ uri: `${ baseUrl }/emoji-custom/${ encodeURIComponent(emoji.content || emoji.name) }.${ emoji.extension }` }}
|
||||||
/>
|
/>
|
||||||
|
|
|
@ -53,8 +53,8 @@ export default class Markdown extends React.Component {
|
||||||
</Text>
|
</Text>
|
||||||
),
|
),
|
||||||
emoji: (node) => {
|
emoji: (node) => {
|
||||||
if (node.children && node.children.length && node.children[0].children && node.children[0].children.length) {
|
if (node.children && node.children.length && node.children[0].content) {
|
||||||
const { content } = node.children[0].children[0];
|
const { content } = node.children[0];
|
||||||
const emojiExtension = customEmojis[content];
|
const emojiExtension = customEmojis[content];
|
||||||
if (emojiExtension) {
|
if (emojiExtension) {
|
||||||
const emoji = { extension: emojiExtension, content };
|
const emoji = { extension: emojiExtension, content };
|
||||||
|
@ -64,6 +64,7 @@ export default class Markdown extends React.Component {
|
||||||
}
|
}
|
||||||
return null;
|
return null;
|
||||||
},
|
},
|
||||||
|
blocklink: () => {},
|
||||||
...rules
|
...rules
|
||||||
}}
|
}}
|
||||||
style={{
|
style={{
|
||||||
|
|
|
@ -43,7 +43,7 @@ export default function(md) {
|
||||||
const { delimiters } = state;
|
const { delimiters } = state;
|
||||||
const max = delimiters.length;
|
const max = delimiters.length;
|
||||||
|
|
||||||
for (const i = 0; i < max; i++) { // eslint-disable-line
|
for (let i = 0; i < max; i += 1) {
|
||||||
startDelim = delimiters[i];
|
startDelim = delimiters[i];
|
||||||
|
|
||||||
// :
|
// :
|
||||||
|
|
|
@ -212,7 +212,7 @@ export default class Message extends React.Component {
|
||||||
}
|
}
|
||||||
|
|
||||||
return (
|
return (
|
||||||
<View style={styles.flex}>
|
<View style={[styles.flex, { marginTop: 5 }]}>
|
||||||
<Avatar
|
<Avatar
|
||||||
style={styles.avatar}
|
style={styles.avatar}
|
||||||
text={item.avatar ? '' : username}
|
text={item.avatar ? '' : username}
|
||||||
|
@ -281,7 +281,6 @@ export default class Message extends React.Component {
|
||||||
renderReaction = (reaction) => {
|
renderReaction = (reaction) => {
|
||||||
const reacted = reaction.usernames.findIndex(item => item.value === this.props.user.username) !== -1;
|
const reacted = reaction.usernames.findIndex(item => item.value === this.props.user.username) !== -1;
|
||||||
const reactedContainerStyle = reacted && styles.reactedContainer;
|
const reactedContainerStyle = reacted && styles.reactedContainer;
|
||||||
const reactedCount = reacted && styles.reactedCountText;
|
|
||||||
return (
|
return (
|
||||||
<TouchableOpacity
|
<TouchableOpacity
|
||||||
onPress={() => this.onReactionPress(reaction.emoji)}
|
onPress={() => this.onReactionPress(reaction.emoji)}
|
||||||
|
@ -295,7 +294,7 @@ export default class Message extends React.Component {
|
||||||
standardEmojiStyle={styles.reactionEmoji}
|
standardEmojiStyle={styles.reactionEmoji}
|
||||||
customEmojiStyle={styles.reactionCustomEmoji}
|
customEmojiStyle={styles.reactionCustomEmoji}
|
||||||
/>
|
/>
|
||||||
<Text style={[styles.reactionCount, reactedCount]}>{ reaction.usernames.length }</Text>
|
<Text style={styles.reactionCount}>{ reaction.usernames.length }</Text>
|
||||||
</View>
|
</View>
|
||||||
</TouchableOpacity>
|
</TouchableOpacity>
|
||||||
);
|
);
|
||||||
|
@ -312,9 +311,9 @@ export default class Message extends React.Component {
|
||||||
onPress={() => this.props.toggleReactionPicker(this.parseMessage())}
|
onPress={() => this.props.toggleReactionPicker(this.parseMessage())}
|
||||||
key='message-add-reaction'
|
key='message-add-reaction'
|
||||||
testID='message-add-reaction'
|
testID='message-add-reaction'
|
||||||
style={styles.reactionContainer}
|
style={[styles.reactionContainer, styles.addReactionContainer]}
|
||||||
>
|
>
|
||||||
<Icon name='insert-emoticon' color='#aaaaaa' size={15} />
|
<Icon name='insert-emoticon' color='#1D74F5' size={18} />
|
||||||
</TouchableOpacity>
|
</TouchableOpacity>
|
||||||
</View>
|
</View>
|
||||||
);
|
);
|
||||||
|
|
|
@ -42,43 +42,42 @@ export default StyleSheet.create({
|
||||||
reactionsContainer: {
|
reactionsContainer: {
|
||||||
flexDirection: 'row',
|
flexDirection: 'row',
|
||||||
flexWrap: 'wrap',
|
flexWrap: 'wrap',
|
||||||
marginTop: 6
|
marginTop: 10
|
||||||
},
|
},
|
||||||
reactionContainer: {
|
reactionContainer: {
|
||||||
flexDirection: 'row',
|
flexDirection: 'row',
|
||||||
justifyContent: 'center',
|
justifyContent: 'center',
|
||||||
alignItems: 'center',
|
alignItems: 'center',
|
||||||
padding: 3,
|
paddingHorizontal: 10,
|
||||||
borderWidth: 1,
|
paddingVertical: 5,
|
||||||
borderColor: '#cccccc',
|
|
||||||
borderRadius: 4,
|
borderRadius: 4,
|
||||||
marginRight: 5,
|
marginRight: 10,
|
||||||
marginBottom: 5,
|
marginBottom: 10,
|
||||||
height: 23,
|
maxHeight: 28,
|
||||||
width: 35
|
backgroundColor: '#E8F2FF'
|
||||||
|
},
|
||||||
|
addReactionContainer: {
|
||||||
|
paddingHorizontal: 15
|
||||||
},
|
},
|
||||||
reactionCount: {
|
reactionCount: {
|
||||||
fontSize: 12,
|
fontSize: 14,
|
||||||
marginLeft: 2,
|
marginLeft: 3,
|
||||||
fontWeight: '600',
|
fontWeight: '600',
|
||||||
color: '#aaaaaa'
|
color: '#1D74F5'
|
||||||
},
|
},
|
||||||
reactionEmoji: {
|
reactionEmoji: {
|
||||||
fontSize: 12
|
fontSize: 14
|
||||||
},
|
},
|
||||||
reactionCustomEmoji: {
|
reactionCustomEmoji: {
|
||||||
width: 15,
|
width: 20,
|
||||||
height: 15
|
height: 20
|
||||||
},
|
},
|
||||||
avatar: {
|
avatar: {
|
||||||
marginRight: 10
|
marginRight: 10
|
||||||
},
|
},
|
||||||
reactedContainer: {
|
reactedContainer: {
|
||||||
borderColor: '#bde1fe',
|
borderWidth: 0,
|
||||||
backgroundColor: '#f3f9ff'
|
backgroundColor: '#D1DAE6'
|
||||||
},
|
|
||||||
reactedCountText: {
|
|
||||||
color: '#4fb0fc'
|
|
||||||
},
|
},
|
||||||
errorIcon: {
|
errorIcon: {
|
||||||
padding: 10,
|
padding: 10,
|
||||||
|
|
|
@ -39,7 +39,7 @@ export default async function() {
|
||||||
return new Promise(async(resolve, reject) => {
|
return new Promise(async(resolve, reject) => {
|
||||||
try {
|
try {
|
||||||
// eslint-disable-next-line
|
// eslint-disable-next-line
|
||||||
const { subscriptions, rooms } = await (false && this.ddp.status ? getRoomDpp.apply(this) : getRoomRest.apply(this));
|
const { subscriptions, rooms } = await (this.ddp.status ? getRoomDpp.apply(this) : getRoomRest.apply(this));
|
||||||
|
|
||||||
const data = rooms.map(room => ({ room, sub: database.objects('subscriptions').filtered('rid == $0', room._id) }));
|
const data = rooms.map(room => ({ room, sub: database.objects('subscriptions').filtered('rid == $0', room._id) }));
|
||||||
|
|
||||||
|
|
|
@ -18,9 +18,9 @@ export default (msg) => {
|
||||||
msg.reactions = msg.reactions || [];
|
msg.reactions = msg.reactions || [];
|
||||||
// TODO: api problems
|
// TODO: api problems
|
||||||
if (Array.isArray(msg.reactions)) {
|
if (Array.isArray(msg.reactions)) {
|
||||||
msg.reactions = msg.reactions.map((value, key) => ({ teste: 1, emoji: key, usernames: value.usernames.map(username => ({ value: username })) }));
|
msg.reactions = msg.reactions.map((value, key) => ({ emoji: key, usernames: value.usernames.map(username => ({ value: username })) }));
|
||||||
} else {
|
} else {
|
||||||
msg.reactions = Object.keys(msg.reactions).map(key => ({ teste: 1, emoji: key, usernames: msg.reactions[key].usernames.map(username => ({ value: username })) }));
|
msg.reactions = Object.keys(msg.reactions).map(key => ({ emoji: key, usernames: msg.reactions[key].usernames.map(username => ({ value: username })) }));
|
||||||
}
|
}
|
||||||
msg.urls = msg.urls ? parseUrls(msg.urls) : [];
|
msg.urls = msg.urls ? parseUrls(msg.urls) : [];
|
||||||
msg._updatedAt = new Date();
|
msg._updatedAt = new Date();
|
||||||
|
|
|
@ -37,7 +37,8 @@ export default async function loadMessagesForRoom(...args) {
|
||||||
return new Promise(async(resolve, reject) => {
|
return new Promise(async(resolve, reject) => {
|
||||||
try {
|
try {
|
||||||
// eslint-disable-next-line
|
// eslint-disable-next-line
|
||||||
const data = (await (false && this.ddp.status ? loadMessagesForRoomDDP.call(this, ...args) : loadMessagesForRoomRest.call(this, ...args))).map(buildMessage);
|
const data = (await (this.ddp.status ? loadMessagesForRoomDDP.call(this, ...args) : loadMessagesForRoomRest.call(this, ...args))).map(buildMessage);
|
||||||
|
|
||||||
if (data && data.length) {
|
if (data && data.length) {
|
||||||
InteractionManager.runAfterInteractions(() => {
|
InteractionManager.runAfterInteractions(() => {
|
||||||
db.write(() => data.forEach(message => db.create('messages', message, true)));
|
db.write(() => data.forEach(message => db.create('messages', message, true)));
|
||||||
|
|
|
@ -43,7 +43,7 @@ export default async function(...args) {
|
||||||
return new Promise(async(resolve, reject) => {
|
return new Promise(async(resolve, reject) => {
|
||||||
try {
|
try {
|
||||||
// eslint-disable-next-line
|
// eslint-disable-next-line
|
||||||
const data = (await (false && this.ddp.status ? loadMissedMessagesDDP.call(this, ...args) : loadMissedMessagesRest.call(this, ...args)));
|
const data = (await (this.ddp.status ? loadMissedMessagesDDP.call(this, ...args) : loadMissedMessagesRest.call(this, ...args)));
|
||||||
|
|
||||||
if (data) {
|
if (data) {
|
||||||
data.forEach(buildMessage);
|
data.forEach(buildMessage);
|
||||||
|
|
|
@ -20,7 +20,7 @@ export default async function readMessages(rid) {
|
||||||
const { database: db } = database;
|
const { database: db } = database;
|
||||||
try {
|
try {
|
||||||
// eslint-disable-next-line
|
// eslint-disable-next-line
|
||||||
const data = await (false && this.ddp.status ? readMessagesDDP.call(this, rid) : readMessagesREST.call(this, rid));
|
const data = await (this.ddp.status ? readMessagesDDP.call(this, rid) : readMessagesREST.call(this, rid));
|
||||||
const [subscription] = db.objects('subscriptions').filtered('rid = $0', rid);
|
const [subscription] = db.objects('subscriptions').filtered('rid = $0', rid);
|
||||||
db.write(() => {
|
db.write(() => {
|
||||||
subscription.open = true;
|
subscription.open = true;
|
||||||
|
|
|
@ -46,7 +46,7 @@ function sendMessageByDDP(message) {
|
||||||
export async function _sendMessageCall(message) {
|
export async function _sendMessageCall(message) {
|
||||||
try {
|
try {
|
||||||
// eslint-disable-next-line
|
// eslint-disable-next-line
|
||||||
const data = await (false && this.ddp.status ? sendMessageByDDP.call(this, message) : sendMessageByRest.call(this, message));
|
const data = await (this.ddp.status ? sendMessageByDDP.call(this, message) : sendMessageByRest.call(this, message));
|
||||||
return data;
|
return data;
|
||||||
} catch (e) {
|
} catch (e) {
|
||||||
database.write(() => {
|
database.write(() => {
|
||||||
|
|
|
@ -18,7 +18,7 @@ const styles = StyleSheet.create({
|
||||||
paddingHorizontal: 16,
|
paddingHorizontal: 16,
|
||||||
paddingVertical: 12,
|
paddingVertical: 12,
|
||||||
alignItems: 'center',
|
alignItems: 'center',
|
||||||
borderBottomWidth: 0.5,
|
borderBottomWidth: StyleSheet.hairlineWidth,
|
||||||
borderBottomColor: '#ddd'
|
borderBottomColor: '#ddd'
|
||||||
},
|
},
|
||||||
number: {
|
number: {
|
||||||
|
|
|
@ -74,7 +74,7 @@ export class List extends React.Component {
|
||||||
onEndReached={() => this.props.onEndReached(this.data[this.data.length - 1])}
|
onEndReached={() => this.props.onEndReached(this.data[this.data.length - 1])}
|
||||||
dataSource={this.dataSource}
|
dataSource={this.dataSource}
|
||||||
renderRow={(item, previousItem) => this.props.renderRow(item, previousItem)}
|
renderRow={(item, previousItem) => this.props.renderRow(item, previousItem)}
|
||||||
initialListSize={20}
|
initialListSize={1}
|
||||||
pageSize={20}
|
pageSize={20}
|
||||||
testID='room-view-messages'
|
testID='room-view-messages'
|
||||||
{...scrollPersistTaps}
|
{...scrollPersistTaps}
|
||||||
|
|
|
@ -1,6 +1,6 @@
|
||||||
import React from 'react';
|
import React from 'react';
|
||||||
import PropTypes from 'prop-types';
|
import PropTypes from 'prop-types';
|
||||||
import { Text, View, LayoutAnimation } from 'react-native';
|
import { Text, View, LayoutAnimation, ActivityIndicator } from 'react-native';
|
||||||
import { connect } from 'react-redux';
|
import { connect } from 'react-redux';
|
||||||
import equal from 'deep-equal';
|
import equal from 'deep-equal';
|
||||||
|
|
||||||
|
@ -63,7 +63,7 @@ export default class RoomView extends LoggedView {
|
||||||
this.rid = props.rid;
|
this.rid = props.rid;
|
||||||
this.rooms = database.objects('subscriptions').filtered('rid = $0', this.rid);
|
this.rooms = database.objects('subscriptions').filtered('rid = $0', this.rid);
|
||||||
this.state = {
|
this.state = {
|
||||||
loaded: true,
|
loaded: false,
|
||||||
joined: typeof props.rid === 'undefined',
|
joined: typeof props.rid === 'undefined',
|
||||||
room: {},
|
room: {},
|
||||||
end: false
|
end: false
|
||||||
|
@ -93,6 +93,7 @@ export default class RoomView extends LoggedView {
|
||||||
side: 'left',
|
side: 'left',
|
||||||
enabled: false
|
enabled: false
|
||||||
});
|
});
|
||||||
|
this.setState({ loaded: true });
|
||||||
}
|
}
|
||||||
shouldComponentUpdate(nextProps, nextState) {
|
shouldComponentUpdate(nextProps, nextState) {
|
||||||
return !(equal(this.props, nextProps) && equal(this.state, nextState) && this.state.room.ro === nextState.room.ro);
|
return !(equal(this.props, nextProps) && equal(this.state, nextState) && this.state.room.ro === nextState.room.ro);
|
||||||
|
@ -175,14 +176,16 @@ export default class RoomView extends LoggedView {
|
||||||
updateRoom = async() => {
|
updateRoom = async() => {
|
||||||
if (this.rooms.length > 0) {
|
if (this.rooms.length > 0) {
|
||||||
const { room: prevRoom } = this.state;
|
const { room: prevRoom } = this.state;
|
||||||
await this.setState({ room: JSON.parse(JSON.stringify(this.rooms[0])) });
|
const room = JSON.parse(JSON.stringify(this.rooms[0]));
|
||||||
|
this.setState({ room });
|
||||||
|
|
||||||
if (!prevRoom.rid) {
|
if (!prevRoom.rid) {
|
||||||
this.props.navigator.setTitle({ title: this.state.room.name });
|
this.props.navigator.setTitle({ title: room.name });
|
||||||
await this.props.openRoom({
|
this.props.openRoom({
|
||||||
...this.state.room
|
...room
|
||||||
});
|
});
|
||||||
if (this.state.room.alert || this.state.room.unread || this.state.room.userMentions) {
|
if (room.alert || room.unread || room.userMentions) {
|
||||||
this.props.setLastOpen(this.state.room.ls);
|
this.props.setLastOpen(room.ls);
|
||||||
} else {
|
} else {
|
||||||
this.props.setLastOpen(null);
|
this.props.setLastOpen(null);
|
||||||
}
|
}
|
||||||
|
@ -273,9 +276,12 @@ export default class RoomView extends LoggedView {
|
||||||
}
|
}
|
||||||
return <Text style={styles.loadingMore}>{I18n.t('Loading_messages_ellipsis')}</Text>;
|
return <Text style={styles.loadingMore}>{I18n.t('Loading_messages_ellipsis')}</Text>;
|
||||||
}
|
}
|
||||||
render() {
|
|
||||||
|
renderList = () => {
|
||||||
|
if (!this.state.loaded) {
|
||||||
|
return <ActivityIndicator style={styles.loading} />;
|
||||||
|
}
|
||||||
return (
|
return (
|
||||||
<View style={styles.container} testID='room-view'>
|
|
||||||
<List
|
<List
|
||||||
key='room-view-messages'
|
key='room-view-messages'
|
||||||
end={this.state.end}
|
end={this.state.end}
|
||||||
|
@ -284,6 +290,13 @@ export default class RoomView extends LoggedView {
|
||||||
onEndReached={this.onEndReached}
|
onEndReached={this.onEndReached}
|
||||||
renderRow={this.renderItem}
|
renderRow={this.renderItem}
|
||||||
/>
|
/>
|
||||||
|
);
|
||||||
|
}
|
||||||
|
|
||||||
|
render() {
|
||||||
|
return (
|
||||||
|
<View style={styles.container} testID='room-view'>
|
||||||
|
{this.renderList()}
|
||||||
{this.renderFooter()}
|
{this.renderFooter()}
|
||||||
{this.state.room._id && this.props.showActions ?
|
{this.state.room._id && this.props.showActions ?
|
||||||
<MessageActions room={this.state.room} user={this.props.user} /> :
|
<MessageActions room={this.state.room} user={this.props.user} /> :
|
||||||
|
|
|
@ -44,5 +44,8 @@ export default StyleSheet.create({
|
||||||
backgroundColor: '#F7F7F7',
|
backgroundColor: '#F7F7F7',
|
||||||
borderRadius: 4,
|
borderRadius: 4,
|
||||||
flexDirection: 'column'
|
flexDirection: 'column'
|
||||||
|
},
|
||||||
|
loading: {
|
||||||
|
flex: 1
|
||||||
}
|
}
|
||||||
});
|
});
|
||||||
|
|
|
@ -36,8 +36,6 @@ export default class RoomsListView extends LoggedView {
|
||||||
search: [],
|
search: [],
|
||||||
rooms: []
|
rooms: []
|
||||||
};
|
};
|
||||||
this.data = database.objects('subscriptions').filtered('archived != true && open == true').sorted('roomUpdatedAt', true);
|
|
||||||
this.data.addListener(this.updateState);
|
|
||||||
props.navigator.setOnNavigatorEvent(this.onNavigatorEvent.bind(this));
|
props.navigator.setOnNavigatorEvent(this.onNavigatorEvent.bind(this));
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -45,11 +43,13 @@ export default class RoomsListView extends LoggedView {
|
||||||
this.initDefaultHeader();
|
this.initDefaultHeader();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
componentDidMount() {
|
||||||
|
this.getSubscriptions();
|
||||||
|
}
|
||||||
|
|
||||||
componentWillReceiveProps(props) {
|
componentWillReceiveProps(props) {
|
||||||
if (this.props.server !== props.server) {
|
if (this.props.server !== props.server && props.server) {
|
||||||
this.data.removeListener(this.updateState);
|
this.getSubscriptions();
|
||||||
this.data = database.objects('subscriptions').filtered('archived != true && open == true').sorted('roomUpdatedAt', true);
|
|
||||||
this.data.addListener(this.updateState);
|
|
||||||
} else if (this.props.searchText !== props.searchText) {
|
} else if (this.props.searchText !== props.searchText) {
|
||||||
this.search(props.searchText);
|
this.search(props.searchText);
|
||||||
}
|
}
|
||||||
|
@ -96,6 +96,16 @@ export default class RoomsListView extends LoggedView {
|
||||||
this.search(text);
|
this.search(text);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
getSubscriptions = () => {
|
||||||
|
if (this.data && this.data.removeListener) {
|
||||||
|
this.data.removeListener(this.updateState);
|
||||||
|
}
|
||||||
|
if (this.props.server && this.hasActiveDB()) {
|
||||||
|
this.data = database.objects('subscriptions').filtered('archived != true && open == true').sorted('roomUpdatedAt', true);
|
||||||
|
this.data.addListener(this.updateState);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
initDefaultHeader = () => {
|
initDefaultHeader = () => {
|
||||||
const { navigator } = this.props;
|
const { navigator } = this.props;
|
||||||
const rightButtons = [{
|
const rightButtons = [{
|
||||||
|
@ -137,6 +147,9 @@ export default class RoomsListView extends LoggedView {
|
||||||
BackHandler.addEventListener('hardwareBackPress', this.handleBackPress);
|
BackHandler.addEventListener('hardwareBackPress', this.handleBackPress);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
// this is necessary during development (enables Cmd + r)
|
||||||
|
hasActiveDB = () => database && database.databases && database.databases.activeDB;
|
||||||
|
|
||||||
cancelSearchingAndroid = () => {
|
cancelSearchingAndroid = () => {
|
||||||
if (Platform.OS === 'android') {
|
if (Platform.OS === 'android') {
|
||||||
this.props.navigator.setStyle({
|
this.props.navigator.setStyle({
|
||||||
|
|
|
@ -107,7 +107,7 @@ describe('Broadcast room', () => {
|
||||||
|
|
||||||
after(async() => {
|
after(async() => {
|
||||||
// log back as main test user and left screen on RoomsListView
|
// log back as main test user and left screen on RoomsListView
|
||||||
await tapBack();
|
await tapBack('Messages');
|
||||||
await waitFor(element(by.id('rooms-list-view'))).toBeVisible().withTimeout(2000);
|
await waitFor(element(by.id('rooms-list-view'))).toBeVisible().withTimeout(2000);
|
||||||
await logout();
|
await logout();
|
||||||
await navigateToLogin();
|
await navigateToLogin();
|
||||||
|
|
|
@ -1,7 +1,7 @@
|
||||||
const random = require('./helpers/random');
|
const random = require('./helpers/random');
|
||||||
const value = random(20);
|
const value = random(20);
|
||||||
const data = {
|
const data = {
|
||||||
server: 'https://stable.rocket.chat',
|
server: 'https://unstable.rocket.chat',
|
||||||
alternateServer: 'https://stable.rocket.chat',
|
alternateServer: 'https://stable.rocket.chat',
|
||||||
user: `user${ value }`,
|
user: `user${ value }`,
|
||||||
password: `password${ value }`,
|
password: `password${ value }`,
|
||||||
|
|
|
@ -1,4 +1,4 @@
|
||||||
import 'babel-polyfill';
|
import '@babel/polyfill';
|
||||||
import 'regenerator-runtime/runtime';
|
import 'regenerator-runtime/runtime';
|
||||||
|
|
||||||
import './app/ReactotronConfig';
|
import './app/ReactotronConfig';
|
||||||
|
|
2
index.js
2
index.js
|
@ -1,4 +1,4 @@
|
||||||
import 'babel-polyfill';
|
import '@babel/polyfill';
|
||||||
import 'regenerator-runtime/runtime';
|
import 'regenerator-runtime/runtime';
|
||||||
|
|
||||||
import './app/ReactotronConfig';
|
import './app/ReactotronConfig';
|
||||||
|
|
File diff suppressed because it is too large
Load Diff
38
package.json
38
package.json
|
@ -23,13 +23,10 @@
|
||||||
]
|
]
|
||||||
},
|
},
|
||||||
"dependencies": {
|
"dependencies": {
|
||||||
|
"@babel/polyfill": "^7.0.0-beta.47",
|
||||||
"@remobile/react-native-toast": "^1.0.7",
|
"@remobile/react-native-toast": "^1.0.7",
|
||||||
"@storybook/addons": "^3.4.8",
|
"@storybook/addons": "^3.4.8",
|
||||||
"@storybook/react-native": "^3.4.8",
|
"@storybook/react-native": "^3.4.8",
|
||||||
"babel-plugin-transform-decorators-legacy": "^1.3.5",
|
|
||||||
"babel-plugin-transform-remove-console": "^6.9.4",
|
|
||||||
"babel-polyfill": "^6.26.0",
|
|
||||||
"babel-preset-expo": "^4.0.0",
|
|
||||||
"deep-equal": "^1.0.1",
|
"deep-equal": "^1.0.1",
|
||||||
"ejson": "^2.1.2",
|
"ejson": "^2.1.2",
|
||||||
"js-base64": "^2.4.6",
|
"js-base64": "^2.4.6",
|
||||||
|
@ -41,10 +38,10 @@
|
||||||
"react": "^16.4.1",
|
"react": "^16.4.1",
|
||||||
"react-clone-referenced-element": "^1.0.1",
|
"react-clone-referenced-element": "^1.0.1",
|
||||||
"react-emojione": "^5.0.0",
|
"react-emojione": "^5.0.0",
|
||||||
"react-native": "^0.55.4",
|
"react-native": "^0.56.0",
|
||||||
"react-native-actionsheet": "^2.4.2",
|
"react-native-actionsheet": "^2.4.2",
|
||||||
"react-native-audio": "^4.1.3",
|
"react-native-audio": "^4.1.3",
|
||||||
"react-native-dialog": "^5.0.0",
|
"react-native-dialog": "^5.1.0",
|
||||||
"react-native-fabric": "^0.5.1",
|
"react-native-fabric": "^0.5.1",
|
||||||
"react-native-fast-image": "^4.0.14",
|
"react-native-fast-image": "^4.0.14",
|
||||||
"react-native-i18n": "^2.0.14",
|
"react-native-i18n": "^2.0.14",
|
||||||
|
@ -62,7 +59,7 @@
|
||||||
"react-native-picker-select": "^4.0.0",
|
"react-native-picker-select": "^4.0.0",
|
||||||
"react-native-responsive-ui": "^1.1.1",
|
"react-native-responsive-ui": "^1.1.1",
|
||||||
"react-native-safari-view": "^2.1.0",
|
"react-native-safari-view": "^2.1.0",
|
||||||
"react-native-scrollable-tab-view": "^0.8.0",
|
"react-native-scrollable-tab-view": "git+https://github.com/skv-headless/react-native-scrollable-tab-view.git",
|
||||||
"react-native-slider": "^0.11.0",
|
"react-native-slider": "^0.11.0",
|
||||||
"react-native-svg": "^6.4.1",
|
"react-native-svg": "^6.4.1",
|
||||||
"react-native-svg-image": "^2.0.1",
|
"react-native-svg-image": "^2.0.1",
|
||||||
|
@ -71,7 +68,7 @@
|
||||||
"react-native-video-controls": "^2.2.3",
|
"react-native-video-controls": "^2.2.3",
|
||||||
"react-native-zeroconf": "^0.9.0",
|
"react-native-zeroconf": "^0.9.0",
|
||||||
"react-redux": "^5.0.6",
|
"react-redux": "^5.0.6",
|
||||||
"realm": "^2.12.0",
|
"realm": "^2.13.0",
|
||||||
"redux": "^4.0.0",
|
"redux": "^4.0.0",
|
||||||
"redux-enhancer-react-native-appstate": "^0.3.1",
|
"redux-enhancer-react-native-appstate": "^0.3.1",
|
||||||
"redux-immutable-state-invariant": "^2.1.0",
|
"redux-immutable-state-invariant": "^2.1.0",
|
||||||
|
@ -82,23 +79,25 @@
|
||||||
"strip-ansi": "^4.0.0"
|
"strip-ansi": "^4.0.0"
|
||||||
},
|
},
|
||||||
"devDependencies": {
|
"devDependencies": {
|
||||||
|
"@babel/core": "7.0.0-beta.47",
|
||||||
|
"@babel/plugin-proposal-decorators": "7.0.0-beta.47",
|
||||||
"@storybook/addon-storyshots": "^3.4.8",
|
"@storybook/addon-storyshots": "^3.4.8",
|
||||||
"babel-eslint": "^8.2.5",
|
"babel-core": "^7.0.0-beta.47",
|
||||||
"babel-jest": "^23.2.0",
|
"babel-eslint": "^8.2.6",
|
||||||
"babel-plugin-transform-react-remove-prop-types": "^0.4.10",
|
"babel-jest": "^23.4.0",
|
||||||
"babel-preset-es2015": "^6.24.1",
|
"babel-plugin-transform-remove-console": "^6.9.4",
|
||||||
"babel-preset-react-native": "^4.0.0",
|
"babel-preset-react-native": "^5.0.2",
|
||||||
"codecov": "^3.0.2",
|
"codecov": "^3.0.2",
|
||||||
"detox": "^8.0.0",
|
"detox": "^8.0.0",
|
||||||
"eslint": "^4.19.1",
|
"eslint": "^4.19.1",
|
||||||
"eslint-config-airbnb": "^16.1.0",
|
"eslint-config-airbnb": "^16.1.0",
|
||||||
"eslint-plugin-import": "^2.12.0",
|
"eslint-plugin-import": "^2.13.0",
|
||||||
"eslint-plugin-jsx-a11y": "^6.0.3",
|
"eslint-plugin-jsx-a11y": "^6.1.1",
|
||||||
"eslint-plugin-react": "^7.9.1",
|
"eslint-plugin-react": "^7.10.0",
|
||||||
"eslint-plugin-react-native": "^3.2.0",
|
"eslint-plugin-react-native": "^3.2.0",
|
||||||
"identity-obj-proxy": "^3.0.0",
|
"identity-obj-proxy": "^3.0.0",
|
||||||
"jest": "^23.2.0",
|
"jest": "^23.4.1",
|
||||||
"jest-cli": "^23.2.0",
|
"jest-cli": "^23.4.1",
|
||||||
"mocha": "^5.2.0",
|
"mocha": "^5.2.0",
|
||||||
"react-dom": "^16.4.1",
|
"react-dom": "^16.4.1",
|
||||||
"react-native-bundle-visualizer": "^1.3.0",
|
"react-native-bundle-visualizer": "^1.3.0",
|
||||||
|
@ -116,6 +115,9 @@
|
||||||
"collectCoverage": true,
|
"collectCoverage": true,
|
||||||
"moduleNameMapper": {
|
"moduleNameMapper": {
|
||||||
".+\\.(css|styl|less|sass|scss|png|jpg|ttf|woff|woff2)$": "identity-obj-proxy"
|
".+\\.(css|styl|less|sass|scss|png|jpg|ttf|woff|woff2)$": "identity-obj-proxy"
|
||||||
|
},
|
||||||
|
"transform": {
|
||||||
|
"^.+\\.js$": "<rootDir>/node_modules/react-native/jest/preprocessor.js"
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
"snyk": true,
|
"snyk": true,
|
||||||
|
|
Loading…
Reference in New Issue