Merge remote-tracking branch 'origin/redux-saga' into redux-saga
This commit is contained in:
commit
a6207f504d
|
@ -36,6 +36,7 @@
|
||||||
"react/forbid-prop-types": 0,
|
"react/forbid-prop-types": 0,
|
||||||
"jsx-quotes": [2, "prefer-single"],
|
"jsx-quotes": [2, "prefer-single"],
|
||||||
"jsx-a11y/href-no-hash": 0,
|
"jsx-a11y/href-no-hash": 0,
|
||||||
|
"import/prefer-default-export": 0,
|
||||||
"no-underscore-dangle": 0,
|
"no-underscore-dangle": 0,
|
||||||
"no-return-assign": 0,
|
"no-return-assign": 0,
|
||||||
"no-param-reassign": 0,
|
"no-param-reassign": 0,
|
||||||
|
|
|
@ -1,3 +1,9 @@
|
||||||
|
branches:
|
||||||
|
only:
|
||||||
|
- develop
|
||||||
|
- master
|
||||||
|
- "/^\\d+\\.\\d+\\.\\d+(-rc\\.\\d+)?$/"
|
||||||
|
|
||||||
matrix:
|
matrix:
|
||||||
include:
|
include:
|
||||||
- os: linux
|
- os: linux
|
||||||
|
|
|
@ -1,3 +1 @@
|
||||||
module.exports = {
|
export const CachedImage = 'CachedImage';
|
||||||
CachedImage: 'CachedImage'
|
|
||||||
};
|
|
||||||
|
|
|
@ -1,6 +1,4 @@
|
||||||
module.exports = {
|
export const Navigation = {
|
||||||
Navigation: {
|
registerComponent: () => {},
|
||||||
registerComponent: () => {},
|
startSingleScreenApp: () => {}
|
||||||
startSingleScreenApp: () => {}
|
|
||||||
}
|
|
||||||
};
|
};
|
||||||
|
|
|
@ -5,40 +5,28 @@ import RoomItem from '../app/components/RoomItem';
|
||||||
// Note: test renderer must be required after react-native.
|
// Note: test renderer must be required after react-native.
|
||||||
import renderer from 'react-test-renderer';
|
import renderer from 'react-test-renderer';
|
||||||
|
|
||||||
jest.mock('react-native-img-cache', () => {
|
jest.mock('react-native-img-cache', () => { return { CachedImage: 'View' } });
|
||||||
return {
|
|
||||||
CachedImage: 'View'
|
|
||||||
}
|
|
||||||
});
|
|
||||||
|
|
||||||
const component = props => <RoomItem {...props} />
|
|
||||||
|
|
||||||
it('renders correctly', () => {
|
it('renders correctly', () => {
|
||||||
const tree = renderer.create(component({ type: 'd', name: 'name' })).toJSON();
|
expect(renderer.create(<RoomItem type="d" name="name" />).toJSON()).toMatchSnapshot();
|
||||||
expect(tree).toMatchSnapshot();
|
|
||||||
});
|
});
|
||||||
|
|
||||||
it('render unread', () => {
|
it('render unread', () => {
|
||||||
const tree = renderer.create(component({ type: 'd', name: 'name', unread: 1 })).toJSON();
|
expect(renderer.create(<RoomItem type="d" name="name" unread={1} />).toJSON()).toMatchSnapshot();
|
||||||
expect(tree).toMatchSnapshot();
|
|
||||||
});
|
});
|
||||||
|
|
||||||
it('render unread +999', () => {
|
it('render unread +999', () => {
|
||||||
const tree = renderer.create(component({ type: 'd', name: 'name', unread: 1000 })).toJSON();
|
expect(renderer.create(<RoomItem type="d" name="name" unread={1000} />).toJSON()).toMatchSnapshot();
|
||||||
expect(tree).toMatchSnapshot();
|
|
||||||
});
|
});
|
||||||
|
|
||||||
it('render no icon', () => {
|
it('render no icon', () => {
|
||||||
const tree = renderer.create(component({ type: 'X', name: 'name' })).toJSON();
|
expect(renderer.create(<RoomItem type="X" name="name" />).toJSON()).toMatchSnapshot();
|
||||||
expect(tree).toMatchSnapshot();
|
|
||||||
});
|
});
|
||||||
|
|
||||||
it('render private group', () => {
|
it('render private group', () => {
|
||||||
const tree = renderer.create(component({ type: 'g', name: 'private-group' })).toJSON();
|
expect(renderer.create(<RoomItem type="g" name="private-group" /> ).toJSON()).toMatchSnapshot();
|
||||||
expect(tree).toMatchSnapshot();
|
|
||||||
});
|
});
|
||||||
|
|
||||||
it('render channel', () => {
|
it('render channel', () => {
|
||||||
const tree = renderer.create(component({ type: 'c', name: 'general' })).toJSON();
|
expect(renderer.create(<RoomItem type="c" name="general" />).toJSON()).toMatchSnapshot();
|
||||||
expect(tree).toMatchSnapshot();
|
|
||||||
});
|
});
|
||||||
|
|
|
@ -4,15 +4,33 @@ exports[`Storyshots Channel Cell Direct Messages 1`] = `
|
||||||
<RCTScrollView>
|
<RCTScrollView>
|
||||||
<View>
|
<View>
|
||||||
<View
|
<View
|
||||||
|
accessibilityComponentType={undefined}
|
||||||
|
accessibilityLabel={undefined}
|
||||||
|
accessibilityTraits={undefined}
|
||||||
|
accessible={true}
|
||||||
|
collapsable={undefined}
|
||||||
|
hitSlop={undefined}
|
||||||
|
isTVSelectable={true}
|
||||||
|
nativeID={undefined}
|
||||||
|
onLayout={undefined}
|
||||||
|
onResponderGrant={[Function]}
|
||||||
|
onResponderMove={[Function]}
|
||||||
|
onResponderRelease={[Function]}
|
||||||
|
onResponderTerminate={[Function]}
|
||||||
|
onResponderTerminationRequest={[Function]}
|
||||||
|
onStartShouldSetResponder={[Function]}
|
||||||
style={
|
style={
|
||||||
Object {
|
Object {
|
||||||
"alignItems": "center",
|
"alignItems": "center",
|
||||||
"flexDirection": "row",
|
"flexDirection": "row",
|
||||||
"height": 56,
|
"height": 56,
|
||||||
|
"opacity": 1,
|
||||||
"paddingLeft": 16,
|
"paddingLeft": 16,
|
||||||
"paddingRight": 16,
|
"paddingRight": 16,
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
testID={undefined}
|
||||||
|
tvParallaxProperties={undefined}
|
||||||
>
|
>
|
||||||
<View
|
<View
|
||||||
style={
|
style={
|
||||||
|
@ -81,15 +99,33 @@ exports[`Storyshots Channel Cell Direct Messages 1`] = `
|
||||||
</Text>
|
</Text>
|
||||||
</View>
|
</View>
|
||||||
<View
|
<View
|
||||||
|
accessibilityComponentType={undefined}
|
||||||
|
accessibilityLabel={undefined}
|
||||||
|
accessibilityTraits={undefined}
|
||||||
|
accessible={true}
|
||||||
|
collapsable={undefined}
|
||||||
|
hitSlop={undefined}
|
||||||
|
isTVSelectable={true}
|
||||||
|
nativeID={undefined}
|
||||||
|
onLayout={undefined}
|
||||||
|
onResponderGrant={[Function]}
|
||||||
|
onResponderMove={[Function]}
|
||||||
|
onResponderRelease={[Function]}
|
||||||
|
onResponderTerminate={[Function]}
|
||||||
|
onResponderTerminationRequest={[Function]}
|
||||||
|
onStartShouldSetResponder={[Function]}
|
||||||
style={
|
style={
|
||||||
Object {
|
Object {
|
||||||
"alignItems": "center",
|
"alignItems": "center",
|
||||||
"flexDirection": "row",
|
"flexDirection": "row",
|
||||||
"height": 56,
|
"height": 56,
|
||||||
|
"opacity": 1,
|
||||||
"paddingLeft": 16,
|
"paddingLeft": 16,
|
||||||
"paddingRight": 16,
|
"paddingRight": 16,
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
testID={undefined}
|
||||||
|
tvParallaxProperties={undefined}
|
||||||
>
|
>
|
||||||
<View
|
<View
|
||||||
style={
|
style={
|
||||||
|
@ -158,15 +194,33 @@ exports[`Storyshots Channel Cell Direct Messages 1`] = `
|
||||||
</Text>
|
</Text>
|
||||||
</View>
|
</View>
|
||||||
<View
|
<View
|
||||||
|
accessibilityComponentType={undefined}
|
||||||
|
accessibilityLabel={undefined}
|
||||||
|
accessibilityTraits={undefined}
|
||||||
|
accessible={true}
|
||||||
|
collapsable={undefined}
|
||||||
|
hitSlop={undefined}
|
||||||
|
isTVSelectable={true}
|
||||||
|
nativeID={undefined}
|
||||||
|
onLayout={undefined}
|
||||||
|
onResponderGrant={[Function]}
|
||||||
|
onResponderMove={[Function]}
|
||||||
|
onResponderRelease={[Function]}
|
||||||
|
onResponderTerminate={[Function]}
|
||||||
|
onResponderTerminationRequest={[Function]}
|
||||||
|
onStartShouldSetResponder={[Function]}
|
||||||
style={
|
style={
|
||||||
Object {
|
Object {
|
||||||
"alignItems": "center",
|
"alignItems": "center",
|
||||||
"flexDirection": "row",
|
"flexDirection": "row",
|
||||||
"height": 56,
|
"height": 56,
|
||||||
|
"opacity": 1,
|
||||||
"paddingLeft": 16,
|
"paddingLeft": 16,
|
||||||
"paddingRight": 16,
|
"paddingRight": 16,
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
testID={undefined}
|
||||||
|
tvParallaxProperties={undefined}
|
||||||
>
|
>
|
||||||
<View
|
<View
|
||||||
style={
|
style={
|
||||||
|
@ -256,15 +310,33 @@ exports[`Storyshots Channel Cell Direct Messages 1`] = `
|
||||||
</Text>
|
</Text>
|
||||||
</View>
|
</View>
|
||||||
<View
|
<View
|
||||||
|
accessibilityComponentType={undefined}
|
||||||
|
accessibilityLabel={undefined}
|
||||||
|
accessibilityTraits={undefined}
|
||||||
|
accessible={true}
|
||||||
|
collapsable={undefined}
|
||||||
|
hitSlop={undefined}
|
||||||
|
isTVSelectable={true}
|
||||||
|
nativeID={undefined}
|
||||||
|
onLayout={undefined}
|
||||||
|
onResponderGrant={[Function]}
|
||||||
|
onResponderMove={[Function]}
|
||||||
|
onResponderRelease={[Function]}
|
||||||
|
onResponderTerminate={[Function]}
|
||||||
|
onResponderTerminationRequest={[Function]}
|
||||||
|
onStartShouldSetResponder={[Function]}
|
||||||
style={
|
style={
|
||||||
Object {
|
Object {
|
||||||
"alignItems": "center",
|
"alignItems": "center",
|
||||||
"flexDirection": "row",
|
"flexDirection": "row",
|
||||||
"height": 56,
|
"height": 56,
|
||||||
|
"opacity": 1,
|
||||||
"paddingLeft": 16,
|
"paddingLeft": 16,
|
||||||
"paddingRight": 16,
|
"paddingRight": 16,
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
testID={undefined}
|
||||||
|
tvParallaxProperties={undefined}
|
||||||
>
|
>
|
||||||
<View
|
<View
|
||||||
style={
|
style={
|
||||||
|
@ -354,15 +426,33 @@ exports[`Storyshots Channel Cell Direct Messages 1`] = `
|
||||||
</Text>
|
</Text>
|
||||||
</View>
|
</View>
|
||||||
<View
|
<View
|
||||||
|
accessibilityComponentType={undefined}
|
||||||
|
accessibilityLabel={undefined}
|
||||||
|
accessibilityTraits={undefined}
|
||||||
|
accessible={true}
|
||||||
|
collapsable={undefined}
|
||||||
|
hitSlop={undefined}
|
||||||
|
isTVSelectable={true}
|
||||||
|
nativeID={undefined}
|
||||||
|
onLayout={undefined}
|
||||||
|
onResponderGrant={[Function]}
|
||||||
|
onResponderMove={[Function]}
|
||||||
|
onResponderRelease={[Function]}
|
||||||
|
onResponderTerminate={[Function]}
|
||||||
|
onResponderTerminationRequest={[Function]}
|
||||||
|
onStartShouldSetResponder={[Function]}
|
||||||
style={
|
style={
|
||||||
Object {
|
Object {
|
||||||
"alignItems": "center",
|
"alignItems": "center",
|
||||||
"flexDirection": "row",
|
"flexDirection": "row",
|
||||||
"height": 56,
|
"height": 56,
|
||||||
|
"opacity": 1,
|
||||||
"paddingLeft": 16,
|
"paddingLeft": 16,
|
||||||
"paddingRight": 16,
|
"paddingRight": 16,
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
testID={undefined}
|
||||||
|
tvParallaxProperties={undefined}
|
||||||
>
|
>
|
||||||
<View
|
<View
|
||||||
style={
|
style={
|
||||||
|
@ -452,15 +542,33 @@ exports[`Storyshots Channel Cell Direct Messages 1`] = `
|
||||||
</Text>
|
</Text>
|
||||||
</View>
|
</View>
|
||||||
<View
|
<View
|
||||||
|
accessibilityComponentType={undefined}
|
||||||
|
accessibilityLabel={undefined}
|
||||||
|
accessibilityTraits={undefined}
|
||||||
|
accessible={true}
|
||||||
|
collapsable={undefined}
|
||||||
|
hitSlop={undefined}
|
||||||
|
isTVSelectable={true}
|
||||||
|
nativeID={undefined}
|
||||||
|
onLayout={undefined}
|
||||||
|
onResponderGrant={[Function]}
|
||||||
|
onResponderMove={[Function]}
|
||||||
|
onResponderRelease={[Function]}
|
||||||
|
onResponderTerminate={[Function]}
|
||||||
|
onResponderTerminationRequest={[Function]}
|
||||||
|
onStartShouldSetResponder={[Function]}
|
||||||
style={
|
style={
|
||||||
Object {
|
Object {
|
||||||
"alignItems": "center",
|
"alignItems": "center",
|
||||||
"flexDirection": "row",
|
"flexDirection": "row",
|
||||||
"height": 56,
|
"height": 56,
|
||||||
|
"opacity": 1,
|
||||||
"paddingLeft": 16,
|
"paddingLeft": 16,
|
||||||
"paddingRight": 16,
|
"paddingRight": 16,
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
testID={undefined}
|
||||||
|
tvParallaxProperties={undefined}
|
||||||
>
|
>
|
||||||
<View
|
<View
|
||||||
style={
|
style={
|
||||||
|
@ -550,15 +658,33 @@ exports[`Storyshots Channel Cell Direct Messages 1`] = `
|
||||||
</Text>
|
</Text>
|
||||||
</View>
|
</View>
|
||||||
<View
|
<View
|
||||||
|
accessibilityComponentType={undefined}
|
||||||
|
accessibilityLabel={undefined}
|
||||||
|
accessibilityTraits={undefined}
|
||||||
|
accessible={true}
|
||||||
|
collapsable={undefined}
|
||||||
|
hitSlop={undefined}
|
||||||
|
isTVSelectable={true}
|
||||||
|
nativeID={undefined}
|
||||||
|
onLayout={undefined}
|
||||||
|
onResponderGrant={[Function]}
|
||||||
|
onResponderMove={[Function]}
|
||||||
|
onResponderRelease={[Function]}
|
||||||
|
onResponderTerminate={[Function]}
|
||||||
|
onResponderTerminationRequest={[Function]}
|
||||||
|
onStartShouldSetResponder={[Function]}
|
||||||
style={
|
style={
|
||||||
Object {
|
Object {
|
||||||
"alignItems": "center",
|
"alignItems": "center",
|
||||||
"flexDirection": "row",
|
"flexDirection": "row",
|
||||||
"height": 56,
|
"height": 56,
|
||||||
|
"opacity": 1,
|
||||||
"paddingLeft": 16,
|
"paddingLeft": 16,
|
||||||
"paddingRight": 16,
|
"paddingRight": 16,
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
testID={undefined}
|
||||||
|
tvParallaxProperties={undefined}
|
||||||
>
|
>
|
||||||
<View
|
<View
|
||||||
style={
|
style={
|
||||||
|
@ -648,15 +774,33 @@ exports[`Storyshots Channel Cell Direct Messages 1`] = `
|
||||||
</Text>
|
</Text>
|
||||||
</View>
|
</View>
|
||||||
<View
|
<View
|
||||||
|
accessibilityComponentType={undefined}
|
||||||
|
accessibilityLabel={undefined}
|
||||||
|
accessibilityTraits={undefined}
|
||||||
|
accessible={true}
|
||||||
|
collapsable={undefined}
|
||||||
|
hitSlop={undefined}
|
||||||
|
isTVSelectable={true}
|
||||||
|
nativeID={undefined}
|
||||||
|
onLayout={undefined}
|
||||||
|
onResponderGrant={[Function]}
|
||||||
|
onResponderMove={[Function]}
|
||||||
|
onResponderRelease={[Function]}
|
||||||
|
onResponderTerminate={[Function]}
|
||||||
|
onResponderTerminationRequest={[Function]}
|
||||||
|
onStartShouldSetResponder={[Function]}
|
||||||
style={
|
style={
|
||||||
Object {
|
Object {
|
||||||
"alignItems": "center",
|
"alignItems": "center",
|
||||||
"flexDirection": "row",
|
"flexDirection": "row",
|
||||||
"height": 56,
|
"height": 56,
|
||||||
|
"opacity": 1,
|
||||||
"paddingLeft": 16,
|
"paddingLeft": 16,
|
||||||
"paddingRight": 16,
|
"paddingRight": 16,
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
testID={undefined}
|
||||||
|
tvParallaxProperties={undefined}
|
||||||
>
|
>
|
||||||
<View
|
<View
|
||||||
style={
|
style={
|
||||||
|
@ -725,15 +869,33 @@ exports[`Storyshots Channel Cell Direct Messages 1`] = `
|
||||||
</Text>
|
</Text>
|
||||||
</View>
|
</View>
|
||||||
<View
|
<View
|
||||||
|
accessibilityComponentType={undefined}
|
||||||
|
accessibilityLabel={undefined}
|
||||||
|
accessibilityTraits={undefined}
|
||||||
|
accessible={true}
|
||||||
|
collapsable={undefined}
|
||||||
|
hitSlop={undefined}
|
||||||
|
isTVSelectable={true}
|
||||||
|
nativeID={undefined}
|
||||||
|
onLayout={undefined}
|
||||||
|
onResponderGrant={[Function]}
|
||||||
|
onResponderMove={[Function]}
|
||||||
|
onResponderRelease={[Function]}
|
||||||
|
onResponderTerminate={[Function]}
|
||||||
|
onResponderTerminationRequest={[Function]}
|
||||||
|
onStartShouldSetResponder={[Function]}
|
||||||
style={
|
style={
|
||||||
Object {
|
Object {
|
||||||
"alignItems": "center",
|
"alignItems": "center",
|
||||||
"flexDirection": "row",
|
"flexDirection": "row",
|
||||||
"height": 56,
|
"height": 56,
|
||||||
|
"opacity": 1,
|
||||||
"paddingLeft": 16,
|
"paddingLeft": 16,
|
||||||
"paddingRight": 16,
|
"paddingRight": 16,
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
testID={undefined}
|
||||||
|
tvParallaxProperties={undefined}
|
||||||
>
|
>
|
||||||
<View
|
<View
|
||||||
style={
|
style={
|
||||||
|
@ -802,15 +964,33 @@ exports[`Storyshots Channel Cell Direct Messages 1`] = `
|
||||||
</Text>
|
</Text>
|
||||||
</View>
|
</View>
|
||||||
<View
|
<View
|
||||||
|
accessibilityComponentType={undefined}
|
||||||
|
accessibilityLabel={undefined}
|
||||||
|
accessibilityTraits={undefined}
|
||||||
|
accessible={true}
|
||||||
|
collapsable={undefined}
|
||||||
|
hitSlop={undefined}
|
||||||
|
isTVSelectable={true}
|
||||||
|
nativeID={undefined}
|
||||||
|
onLayout={undefined}
|
||||||
|
onResponderGrant={[Function]}
|
||||||
|
onResponderMove={[Function]}
|
||||||
|
onResponderRelease={[Function]}
|
||||||
|
onResponderTerminate={[Function]}
|
||||||
|
onResponderTerminationRequest={[Function]}
|
||||||
|
onStartShouldSetResponder={[Function]}
|
||||||
style={
|
style={
|
||||||
Object {
|
Object {
|
||||||
"alignItems": "center",
|
"alignItems": "center",
|
||||||
"flexDirection": "row",
|
"flexDirection": "row",
|
||||||
"height": 56,
|
"height": 56,
|
||||||
|
"opacity": 1,
|
||||||
"paddingLeft": 16,
|
"paddingLeft": 16,
|
||||||
"paddingRight": 16,
|
"paddingRight": 16,
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
testID={undefined}
|
||||||
|
tvParallaxProperties={undefined}
|
||||||
>
|
>
|
||||||
<View
|
<View
|
||||||
style={
|
style={
|
||||||
|
|
|
@ -30,124 +30,3 @@ export function login() {
|
||||||
type: 'LOGIN'
|
type: 'LOGIN'
|
||||||
};
|
};
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
// // GENRES
|
|
||||||
// export function retrieveMoviesGenresSuccess(res) {
|
|
||||||
// return {
|
|
||||||
// type: types.RETRIEVE_MOVIES_GENRES_SUCCESS,
|
|
||||||
// moviesGenres: res.data
|
|
||||||
// };
|
|
||||||
// }
|
|
||||||
|
|
||||||
// export function retrieveMoviesGenres() {
|
|
||||||
// return function (dispatch) {
|
|
||||||
// return axios.get(`${TMDB_URL}/genre/movie/list?api_key=${TMDB_API_KEY}`)
|
|
||||||
// .then(res => {
|
|
||||||
// dispatch(retrieveMoviesGenresSuccess(res));
|
|
||||||
// })
|
|
||||||
// .catch(error => {
|
|
||||||
// console.log(error); //eslint-disable-line
|
|
||||||
// });
|
|
||||||
// };
|
|
||||||
// }
|
|
||||||
|
|
||||||
// // POPULAR
|
|
||||||
// export function retrievePopularMoviesSuccess(res) {
|
|
||||||
// return {
|
|
||||||
// type: types.RETRIEVE_POPULAR_MOVIES_SUCCESS,
|
|
||||||
// popularMovies: res.data
|
|
||||||
// };
|
|
||||||
// }
|
|
||||||
|
|
||||||
// export function retrievePopularMovies(page) {
|
|
||||||
// return function (dispatch) {
|
|
||||||
// return axios.get(`${TMDB_URL}/movie/popular?api_key=${TMDB_API_KEY}&page=${page}`)
|
|
||||||
// .then(res => {
|
|
||||||
// dispatch(retrievePopularMoviesSuccess(res));
|
|
||||||
// })
|
|
||||||
// .catch(error => {
|
|
||||||
// console.log('Popular', error); //eslint-disable-line
|
|
||||||
// });
|
|
||||||
// };
|
|
||||||
// }
|
|
||||||
|
|
||||||
// // NOW PLAYING
|
|
||||||
// export function retrieveNowPlayingMoviesSuccess(res) {
|
|
||||||
// return {
|
|
||||||
// type: types.RETRIEVE_NOWPLAYING_MOVIES_SUCCESS,
|
|
||||||
// nowPlayingMovies: res.data
|
|
||||||
// };
|
|
||||||
// }
|
|
||||||
|
|
||||||
// export function retrieveNowPlayingMovies(page) {
|
|
||||||
// return function (dispatch) {
|
|
||||||
// return axios.get(`${TMDB_URL}/movie/now_playing?api_key=${TMDB_API_KEY}&page=${page}`)
|
|
||||||
// .then(res => {
|
|
||||||
// dispatch(retrieveNowPlayingMoviesSuccess(res));
|
|
||||||
// })
|
|
||||||
// .catch(error => {
|
|
||||||
// console.log('Now Playing', error); //eslint-disable-line
|
|
||||||
// });
|
|
||||||
// };
|
|
||||||
// }
|
|
||||||
|
|
||||||
// // MOVIES LIST
|
|
||||||
// export function retrieveMoviesListSuccess(res) {
|
|
||||||
// return {
|
|
||||||
// type: types.RETRIEVE_MOVIES_LIST_SUCCESS,
|
|
||||||
// list: res.data
|
|
||||||
// };
|
|
||||||
// }
|
|
||||||
|
|
||||||
// export function retrieveMoviesList(type, page) {
|
|
||||||
// return function (dispatch) {
|
|
||||||
// return axios.get(`${TMDB_URL}/movie/${type}?api_key=${TMDB_API_KEY}&page=${page}`)
|
|
||||||
// .then(res => {
|
|
||||||
// dispatch(retrieveMoviesListSuccess(res));
|
|
||||||
// })
|
|
||||||
// .catch(error => {
|
|
||||||
// console.log('Movies List', error); //eslint-disable-line
|
|
||||||
// });
|
|
||||||
// };
|
|
||||||
// }
|
|
||||||
|
|
||||||
// // SEARCH RESULTS
|
|
||||||
// export function retrieveMoviesSearchResultsSuccess(res) {
|
|
||||||
// return {
|
|
||||||
// type: types.RETRIEVE_MOVIES_SEARCH_RESULT_SUCCESS,
|
|
||||||
// searchResults: res.data
|
|
||||||
// };
|
|
||||||
// }
|
|
||||||
|
|
||||||
// export function retrieveMoviesSearchResults(query, page) {
|
|
||||||
// return function (dispatch) {
|
|
||||||
// return axios.get(`${TMDB_URL}/search/movie?api_key=${TMDB_API_KEY}&query=${query}&page=${page}`)
|
|
||||||
// .then(res => {
|
|
||||||
// dispatch(retrieveMoviesSearchResultsSuccess(res));
|
|
||||||
// })
|
|
||||||
// .catch(error => {
|
|
||||||
// console.log('Movies Search Results', error); //eslint-disable-line
|
|
||||||
// });
|
|
||||||
// };
|
|
||||||
// }
|
|
||||||
|
|
||||||
// // MOVIE DETAILS
|
|
||||||
// export function retrieveMovieDetailsSuccess(res) {
|
|
||||||
// return {
|
|
||||||
// type: types.RETRIEVE_MOVIE_DETAILS_SUCCESS,
|
|
||||||
// details: res.data
|
|
||||||
// };
|
|
||||||
// }
|
|
||||||
|
|
||||||
// export function retrieveMovieDetails(movieId) {
|
|
||||||
// return function (dispatch) {
|
|
||||||
// return axios.get(`${TMDB_URL}/movie/${movieId}?api_key=${TMDB_API_KEY}&append_to_response=casts,images,videos`)
|
|
||||||
// .then(res => {
|
|
||||||
// dispatch(retrieveMovieDetailsSuccess(res));
|
|
||||||
// })
|
|
||||||
// .catch(error => {
|
|
||||||
// console.log('Movie Details', error); //eslint-disable-line
|
|
||||||
// });
|
|
||||||
// };
|
|
||||||
// }
|
|
||||||
|
|
|
@ -7,7 +7,6 @@ export function setServer(server) {
|
||||||
};
|
};
|
||||||
}
|
}
|
||||||
export function serverRequest(server) {
|
export function serverRequest(server) {
|
||||||
console.log(server);
|
|
||||||
return {
|
return {
|
||||||
type: SERVER.REQUEST,
|
type: SERVER.REQUEST,
|
||||||
server
|
server
|
||||||
|
@ -15,7 +14,6 @@ export function serverRequest(server) {
|
||||||
}
|
}
|
||||||
|
|
||||||
export function addServer(server) {
|
export function addServer(server) {
|
||||||
console.log(server);
|
|
||||||
return {
|
return {
|
||||||
type: SERVER.ADD,
|
type: SERVER.ADD,
|
||||||
server
|
server
|
||||||
|
|
|
@ -37,7 +37,6 @@ export default class MessageBox extends React.PureComponent {
|
||||||
}
|
}
|
||||||
|
|
||||||
submit(message) {
|
submit(message) {
|
||||||
// console.log(this.state);
|
|
||||||
const text = message;
|
const text = message;
|
||||||
if (text.trim() === '') {
|
if (text.trim() === '') {
|
||||||
return;
|
return;
|
||||||
|
@ -56,8 +55,6 @@ export default class MessageBox extends React.PureComponent {
|
||||||
};
|
};
|
||||||
|
|
||||||
ImagePicker.showImagePicker(options, (response) => {
|
ImagePicker.showImagePicker(options, (response) => {
|
||||||
// console.log('Response = ', response);
|
|
||||||
|
|
||||||
if (response.didCancel) {
|
if (response.didCancel) {
|
||||||
console.log('User cancelled image picker');
|
console.log('User cancelled image picker');
|
||||||
} else if (response.error) {
|
} else if (response.error) {
|
||||||
|
@ -84,8 +81,6 @@ export default class MessageBox extends React.PureComponent {
|
||||||
<TextInput
|
<TextInput
|
||||||
ref={component => this.component = component}
|
ref={component => this.component = component}
|
||||||
style={styles.textBoxInput}
|
style={styles.textBoxInput}
|
||||||
// value={this.state.text}
|
|
||||||
// onChangeText={text => this.setState({ text })}
|
|
||||||
returnKeyType='send'
|
returnKeyType='send'
|
||||||
onSubmitEditing={event => this.submit(event.nativeEvent.text)}
|
onSubmitEditing={event => this.submit(event.nativeEvent.text)}
|
||||||
blurOnSubmit={false}
|
blurOnSubmit={false}
|
||||||
|
|
|
@ -1,10 +1,2 @@
|
||||||
// export const RETRIEVE_MOVIES_GENRES_SUCCESS = 'RETRIEVE_MOVIES_GENRES_SUCCESS';
|
|
||||||
|
|
||||||
// export const RETRIEVE_POPULAR_MOVIES_SUCCESS = 'RETRIEVE_POPULAR_MOVIES_SUCCESS';
|
|
||||||
// export const RETRIEVE_NOWPLAYING_MOVIES_SUCCESS = 'RETRIEVE_NOWPLAYING_MOVIES_SUCCESS';
|
|
||||||
// export const RETRIEVE_MOVIES_LIST_SUCCESS = 'RETRIEVE_MOVIES_LIST_SUCCESS';
|
|
||||||
// export const RETRIEVE_MOVIE_DETAILS_SUCCESS = 'RETRIEVE_MOVIE_DETAILS_SUCCESS';
|
|
||||||
// export const RETRIEVE_MOVIES_SEARCH_RESULT_SUCCESS = 'RETRIEVE_MOVIES_SEARCH_RESULT_SUCCESS';
|
|
||||||
|
|
||||||
export const SET_CURRENT_SERVER = 'SET_CURRENT_SERVER';
|
export const SET_CURRENT_SERVER = 'SET_CURRENT_SERVER';
|
||||||
export const SET_ALL_SETTINGS = 'SET_ALL_SETTINGS';
|
export const SET_ALL_SETTINGS = 'SET_ALL_SETTINGS';
|
||||||
|
|
23
app/index.js
23
app/index.js
|
@ -13,16 +13,6 @@ import styles from './views/Styles';
|
||||||
|
|
||||||
import store from './lib/createStore';
|
import store from './lib/createStore';
|
||||||
|
|
||||||
//
|
|
||||||
// export const authenticated = (view) => {
|
|
||||||
// if (!store.getState().login.authenticated) {
|
|
||||||
// return store.getState().navigator.resetTo({
|
|
||||||
// screen: 'Login'
|
|
||||||
// });
|
|
||||||
// }
|
|
||||||
// return view;
|
|
||||||
// };
|
|
||||||
|
|
||||||
export const authenticated = WrappedComponent => class _p extends React.PureComponent {
|
export const authenticated = WrappedComponent => class _p extends React.PureComponent {
|
||||||
constructor() {
|
constructor() {
|
||||||
super();
|
super();
|
||||||
|
@ -41,12 +31,6 @@ export const authenticated = WrappedComponent => class _p extends React.PureComp
|
||||||
};
|
};
|
||||||
//
|
//
|
||||||
export class PublicScreen extends React.PureComponent {
|
export class PublicScreen extends React.PureComponent {
|
||||||
// componentWillMount() {
|
|
||||||
// this.props.setNavigator(this.props.navigator);
|
|
||||||
// if (this.props.currentServer) {
|
|
||||||
// return this.props.navigator.navigate('private');
|
|
||||||
// }
|
|
||||||
// }
|
|
||||||
render() {
|
render() {
|
||||||
return ((this.login.isAuthenticated || this.login.user) && <ListServerView {...this.props} />);
|
return ((this.login.isAuthenticated || this.login.user) && <ListServerView {...this.props} />);
|
||||||
}
|
}
|
||||||
|
@ -57,20 +41,13 @@ export class PublicScreen extends React.PureComponent {
|
||||||
setNavigator: navigator => dispatch(setNavigator(navigator))
|
setNavigator: navigator => dispatch(setNavigator(navigator))
|
||||||
}))
|
}))
|
||||||
export class PrivateScreen extends React.PureComponent {
|
export class PrivateScreen extends React.PureComponent {
|
||||||
componentWillMount() {
|
|
||||||
// this.props.setNavigator(this.props.navigator);
|
|
||||||
}
|
|
||||||
render() {
|
render() {
|
||||||
// if (this.props.logged) {
|
|
||||||
// return (<Text>oi</Text>);
|
|
||||||
// }
|
|
||||||
return (<LoginView {...this.props} />);
|
return (<LoginView {...this.props} />);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@connect(() => ({
|
@connect(() => ({
|
||||||
// logged: state.login.isAuthenticated
|
// logged: state.login.isAuthenticated
|
||||||
}), dispatch => ({
|
}), dispatch => ({
|
||||||
// navigate: routeName => dispatch(NavigationActions.navigate({ routeName })),
|
|
||||||
setNavigator: navigator => dispatch(setNavigator(navigator)),
|
setNavigator: navigator => dispatch(setNavigator(navigator)),
|
||||||
appInit: () => dispatch(appInit())
|
appInit: () => dispatch(appInit())
|
||||||
}))
|
}))
|
||||||
|
|
|
@ -33,7 +33,6 @@ const subscriptionSchema = {
|
||||||
name: 'string',
|
name: 'string',
|
||||||
fname: { type: 'string', optional: true },
|
fname: { type: 'string', optional: true },
|
||||||
rid: 'string',
|
rid: 'string',
|
||||||
// u: { _id: 'hKCY2XGzHYk89SAaM', username: 'rodrigo', name: null },
|
|
||||||
open: { type: 'bool', optional: true },
|
open: { type: 'bool', optional: true },
|
||||||
alert: { type: 'bool', optional: true },
|
alert: { type: 'bool', optional: true },
|
||||||
// roles: [ 'owner' ],
|
// roles: [ 'owner' ],
|
||||||
|
|
|
@ -50,7 +50,6 @@ const RocketChat = {
|
||||||
const url = `${ _url }/websocket`;
|
const url = `${ _url }/websocket`;
|
||||||
|
|
||||||
Meteor.connect(url, { autoConnect: true, autoReconnect: true });
|
Meteor.connect(url, { autoConnect: true, autoReconnect: true });
|
||||||
// , { autoConnect: false, autoReconnect: false }
|
|
||||||
Meteor.ddp.on('disconnected', () => {
|
Meteor.ddp.on('disconnected', () => {
|
||||||
reduxStore.dispatch(disconnect());
|
reduxStore.dispatch(disconnect());
|
||||||
});
|
});
|
||||||
|
@ -58,9 +57,6 @@ const RocketChat = {
|
||||||
reduxStore.dispatch(connectSuccess());
|
reduxStore.dispatch(connectSuccess());
|
||||||
resolve();
|
resolve();
|
||||||
});
|
});
|
||||||
// Meteor.ddp.on('loggin', () => {
|
|
||||||
// reduxStore.dispatch(loginSuccess({}));
|
|
||||||
// });
|
|
||||||
Meteor.ddp.on('connected', () => {
|
Meteor.ddp.on('connected', () => {
|
||||||
Meteor.call('public-settings/get', (err, data) => {
|
Meteor.call('public-settings/get', (err, data) => {
|
||||||
if (err) {
|
if (err) {
|
||||||
|
@ -86,19 +82,16 @@ const RocketChat = {
|
||||||
});
|
});
|
||||||
|
|
||||||
Meteor.ddp.on('changed', (ddbMessage) => {
|
Meteor.ddp.on('changed', (ddbMessage) => {
|
||||||
// console.log('changed', ddbMessage);
|
|
||||||
if (ddbMessage.collection === 'stream-room-messages') {
|
if (ddbMessage.collection === 'stream-room-messages') {
|
||||||
realm.write(() => {
|
realm.write(() => {
|
||||||
const message = ddbMessage.fields.args[0];
|
const message = ddbMessage.fields.args[0];
|
||||||
message.temp = false;
|
message.temp = false;
|
||||||
message._server = { id: reduxStore.getState().server.server };
|
message._server = { id: reduxStore.getState().server.server };
|
||||||
// write('messages', message);
|
|
||||||
realm.create('messages', message, true);
|
realm.create('messages', message, true);
|
||||||
});
|
});
|
||||||
}
|
}
|
||||||
|
|
||||||
if (ddbMessage.collection === 'stream-notify-user') {
|
if (ddbMessage.collection === 'stream-notify-user') {
|
||||||
// console.log(ddbMessage);
|
|
||||||
realm.write(() => {
|
realm.write(() => {
|
||||||
const data = ddbMessage.fields.args[1];
|
const data = ddbMessage.fields.args[1];
|
||||||
data._server = { id: reduxStore.getState().server.server };
|
data._server = { id: reduxStore.getState().server.server };
|
||||||
|
|
|
@ -1,8 +1,16 @@
|
||||||
import { put, takeEvery, call } from 'redux-saga/effects';
|
import { put, takeEvery, call, takeLatest, all, race, take } from 'redux-saga/effects';
|
||||||
|
import { delay } from 'redux-saga';
|
||||||
import { AsyncStorage } from 'react-native';
|
import { AsyncStorage } from 'react-native';
|
||||||
|
import { Navigation } from 'react-native-navigation';
|
||||||
import { SERVER } from '../actions/actionsTypes';
|
import { SERVER } from '../actions/actionsTypes';
|
||||||
import { connectRequest, disconnect } from '../actions/connect';
|
import { connectRequest, disconnect } from '../actions/connect';
|
||||||
import { changedServer } from '../actions/server';
|
import { changedServer, serverSuccess, serverFailure, serverRequest } from '../actions/server';
|
||||||
|
import RocketChat from '../lib/rocketchat';
|
||||||
|
import realm from '../lib/realm';
|
||||||
|
|
||||||
|
const validate = function* validate(server) {
|
||||||
|
return yield RocketChat.testServer(server);
|
||||||
|
};
|
||||||
|
|
||||||
const selectServer = function* selectServer({ server }) {
|
const selectServer = function* selectServer({ server }) {
|
||||||
yield put(disconnect());
|
yield put(disconnect());
|
||||||
|
@ -10,7 +18,40 @@ const selectServer = function* selectServer({ server }) {
|
||||||
yield call([AsyncStorage, 'setItem'], 'currentServer', server);
|
yield call([AsyncStorage, 'setItem'], 'currentServer', server);
|
||||||
yield put(connectRequest(server));
|
yield put(connectRequest(server));
|
||||||
};
|
};
|
||||||
|
|
||||||
|
|
||||||
|
const validateServer = function* validateServer({ server }) {
|
||||||
|
try {
|
||||||
|
yield delay(1000);
|
||||||
|
yield call(validate, server);
|
||||||
|
yield put(serverSuccess());
|
||||||
|
} catch (e) {
|
||||||
|
console.log(e);
|
||||||
|
yield put(serverFailure(e));
|
||||||
|
}
|
||||||
|
};
|
||||||
|
|
||||||
|
const addServer = function* addServer({ server }) {
|
||||||
|
yield call(serverRequest, server);
|
||||||
|
|
||||||
|
const { error } = race({
|
||||||
|
error: take(SERVER.FAILURE),
|
||||||
|
success: take(SERVER.SUCCESS)
|
||||||
|
});
|
||||||
|
if (!error) {
|
||||||
|
realm.write(() => {
|
||||||
|
realm.create('servers', { id: server, current: false }, true);
|
||||||
|
});
|
||||||
|
Navigation.dismissModal({
|
||||||
|
animationType: 'slide-down'
|
||||||
|
});
|
||||||
|
}
|
||||||
|
};
|
||||||
|
|
||||||
|
|
||||||
const root = function* root() {
|
const root = function* root() {
|
||||||
|
yield takeLatest(SERVER.REQUEST, validateServer);
|
||||||
yield takeEvery(SERVER.SELECT, selectServer);
|
yield takeEvery(SERVER.SELECT, selectServer);
|
||||||
|
yield takeEvery(SERVER.ADD, addServer);
|
||||||
};
|
};
|
||||||
export default root;
|
export default root;
|
||||||
|
|
|
@ -9631,6 +9631,12 @@
|
||||||
"react-native-drawer-layout": "1.3.2"
|
"react-native-drawer-layout": "1.3.2"
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
|
"react-native-easy-markdown": {
|
||||||
|
"version": "git+https://github.com/lappalj4/react-native-easy-markdown.git#0571414f113346d4a4f4ba32715d87595f8b9a70",
|
||||||
|
"requires": {
|
||||||
|
"simple-markdown": "0.1.2"
|
||||||
|
}
|
||||||
|
},
|
||||||
"react-native-fetch-blob": {
|
"react-native-fetch-blob": {
|
||||||
"version": "0.10.8",
|
"version": "0.10.8",
|
||||||
"resolved": "https://registry.npmjs.org/react-native-fetch-blob/-/react-native-fetch-blob-0.10.8.tgz",
|
"resolved": "https://registry.npmjs.org/react-native-fetch-blob/-/react-native-fetch-blob-0.10.8.tgz",
|
||||||
|
@ -9676,9 +9682,9 @@
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
"react-native-loading-spinner-overlay": {
|
"react-native-loading-spinner-overlay": {
|
||||||
"version": "0.5.1",
|
"version": "0.5.2",
|
||||||
"resolved": "https://registry.npmjs.org/react-native-loading-spinner-overlay/-/react-native-loading-spinner-overlay-0.5.1.tgz",
|
"resolved": "https://registry.npmjs.org/react-native-loading-spinner-overlay/-/react-native-loading-spinner-overlay-0.5.2.tgz",
|
||||||
"integrity": "sha512-LOgWzd1AJ4SYeqoomjYcHA0A/ngtBR49gt23GKzHKtiO4I1MFcccJXek774K/xhlIA4qfcwx9ufj5f2HuyBbEw=="
|
"integrity": "sha512-wIi8PMvD/KnzEgZN865Cm0VhyIba4Zrfwbyi9OPlBYi1+qQDq4MZtDCmKgH8ct7iXE7biTrcBzUxFAAPk9CvCw=="
|
||||||
},
|
},
|
||||||
"react-native-meteor": {
|
"react-native-meteor": {
|
||||||
"version": "1.1.0",
|
"version": "1.1.0",
|
||||||
|
@ -10645,6 +10651,11 @@
|
||||||
"resolved": "https://registry.npmjs.org/signal-exit/-/signal-exit-3.0.2.tgz",
|
"resolved": "https://registry.npmjs.org/signal-exit/-/signal-exit-3.0.2.tgz",
|
||||||
"integrity": "sha1-tf3AjxKH6hF4Yo5BXiUTK3NkbG0="
|
"integrity": "sha1-tf3AjxKH6hF4Yo5BXiUTK3NkbG0="
|
||||||
},
|
},
|
||||||
|
"simple-markdown": {
|
||||||
|
"version": "0.1.2",
|
||||||
|
"resolved": "https://registry.npmjs.org/simple-markdown/-/simple-markdown-0.1.2.tgz",
|
||||||
|
"integrity": "sha1-PBUQ/kC9nqBncXuKUzyc82MltBM="
|
||||||
|
},
|
||||||
"simple-plist": {
|
"simple-plist": {
|
||||||
"version": "0.2.1",
|
"version": "0.2.1",
|
||||||
"resolved": "https://registry.npmjs.org/simple-plist/-/simple-plist-0.2.1.tgz",
|
"resolved": "https://registry.npmjs.org/simple-plist/-/simple-plist-0.2.1.tgz",
|
||||||
|
|
|
@ -5,6 +5,7 @@
|
||||||
"scripts": {
|
"scripts": {
|
||||||
"start": "node node_modules/react-native/local-cli/cli.js start",
|
"start": "node node_modules/react-native/local-cli/cli.js start",
|
||||||
"test": "jest",
|
"test": "jest",
|
||||||
|
"updateSnapshot": "jest --updateSnapshot",
|
||||||
"lint": "eslint .",
|
"lint": "eslint .",
|
||||||
"ci": "eslint . && jest && codecov",
|
"ci": "eslint . && jest && codecov",
|
||||||
"ios": "react-native run-ios",
|
"ios": "react-native run-ios",
|
||||||
|
|
Loading…
Reference in New Issue