diff --git a/package.json b/package.json index 438c31a..578e892 100644 --- a/package.json +++ b/package.json @@ -22,6 +22,7 @@ "expo-status-bar": "~1.0.2", "expo-updates": "~0.3.2", "moment": "^2.29.1", + "prop-types": "^15.7.2", "react": "16.13.1", "react-dom": "16.13.1", "react-native": "~0.63.3", diff --git a/src/components/GroupsList/GroupsList.js b/src/components/GroupsList/GroupsList.js index 202ef82..fd54e70 100644 --- a/src/components/GroupsList/GroupsList.js +++ b/src/components/GroupsList/GroupsList.js @@ -47,10 +47,13 @@ const data = [ ]; export default class GroupsList extends Component { - renderItem = ({ item }) => { - return ; + + + renderItem = ({ item}) => { + return ; }; + render() { return ( { + Animated.timing(this.imageHeight, { + duration: 240, + toValue: e.endCoordinates.height + }).start(); + }; + + keyboardWillHide = () => { + Animated.timing(this.imageHeight, { + duration: 240, + toValue: 0 + }).start(); + }; + + render() { + return ( + + ); + } +} + +KeyboardSpacer.propTypes = { + variance: PropTypes.number +}; + +KeyboardSpacer.defaultProps = { + variance: 0 +}; diff --git a/src/components/react-native-messenger/KeyboardSpacer/index.js b/src/components/react-native-messenger/KeyboardSpacer/index.js new file mode 100755 index 0000000..da9ded2 --- /dev/null +++ b/src/components/react-native-messenger/KeyboardSpacer/index.js @@ -0,0 +1,2 @@ +import KeyboardSpacer from './KeyboardSpacer'; +export default KeyboardSpacer; diff --git a/src/components/react-native-messenger/KeyboardSpacer/styles.js b/src/components/react-native-messenger/KeyboardSpacer/styles.js new file mode 100755 index 0000000..4436f03 --- /dev/null +++ b/src/components/react-native-messenger/KeyboardSpacer/styles.js @@ -0,0 +1,7 @@ +import { StyleSheet } from 'react-native'; + +const styles = StyleSheet.create({ + wrapper: {} +}); + +export default styles; diff --git a/src/components/react-native-messenger/Toolbar/Toolbar.js b/src/components/react-native-messenger/Toolbar/Toolbar.js index da9b8f3..efa2cbd 100644 --- a/src/components/react-native-messenger/Toolbar/Toolbar.js +++ b/src/components/react-native-messenger/Toolbar/Toolbar.js @@ -45,9 +45,9 @@ class Toolbar extends Component { subtitle={'Active 32 minutes ago'} /> - {}} /> + {/* {}} /> {}} /> - {}} /> + {}} /> */} ); } diff --git a/src/components/react-native-messenger/index.js b/src/components/react-native-messenger/index.js index e249b03..1832539 100644 --- a/src/components/react-native-messenger/index.js +++ b/src/components/react-native-messenger/index.js @@ -5,9 +5,9 @@ import { TouchableWithoutFeedback, Keyboard } from 'react-native'; -import Toolbar from './Toolbar'; +// import Toolbar from './Toolbar'; import InputModule from './InputModule'; -import KeyboardSpacer from '../KeyboardSpacer'; +import KeyboardSpacer from './KeyboardSpacer'; export default class Messenger extends Component { onBackPress = () => { @@ -21,7 +21,7 @@ export default class Messenger extends Component { render() { return ( - + {/* */} diff --git a/src/lib/createReducer.js b/src/lib/createReducer.js new file mode 100644 index 0000000..28f5110 --- /dev/null +++ b/src/lib/createReducer.js @@ -0,0 +1,13 @@ +/* + * Will dynamically create reducers + * enforcing a unique way to describe reducers + */ +export default function createReducer(initialState, handlers) { + return function reducer(state = initialState, action) { + if (handlers.hasOwnProperty(action.type)) { + return handlers[action.type](state, action); + } else { + return state; + } + }; +} diff --git a/src/lib/isIphoneX.js b/src/lib/isIphoneX.js new file mode 100644 index 0000000..fa95679 --- /dev/null +++ b/src/lib/isIphoneX.js @@ -0,0 +1,19 @@ +import { Dimensions, Platform } from 'react-native'; + +export function isIphoneX() { + let dimen = Dimensions.get('window'); + return ( + Platform.OS === 'ios' && + !Platform.isPad && + !Platform.isTVOS && + (dimen.height === 812 || dimen.width === 812) + ); +} + +export function ifIphoneX(iphoneXStyle, regularStyle) { + if (isIphoneX()) { + return iphoneXStyle; + } else { + return regularStyle; + } +} diff --git a/src/screens/ChatScreen/ChatScreen.js b/src/screens/ChatScreen/ChatScreen.js index 4ab8407..06ed4a2 100644 --- a/src/screens/ChatScreen/ChatScreen.js +++ b/src/screens/ChatScreen/ChatScreen.js @@ -1,11 +1,12 @@ import React, { Component } from 'react'; import { View } from 'react-native'; -import Messenger from 'src/components/react-native-messenger'; +import Messenger from '../../components/react-native-messenger'; export default class ChatScreen extends Component { onBackPress = () => { this.props.navigation.goBack(); }; + render() { return ( diff --git a/src/screens/GroupScreen/GroupScreen.js b/src/screens/GroupScreen/GroupScreen.js index 491aad1..c2e7f24 100644 --- a/src/screens/GroupScreen/GroupScreen.js +++ b/src/screens/GroupScreen/GroupScreen.js @@ -3,13 +3,21 @@ import { View } from 'react-native'; import GroupsList from '../../components/GroupsList'; import styles from './styles'; +import FormButton from '../../components/FormButton'; + +export default function GroupScreen({ navigation }) { + + -export default class GroupsScreen extends Component { - render() { return ( + navigation.navigate('Chat')} + /> + ); - } + } \ No newline at end of file