Commit be777c18 authored by santhosh's avatar santhosh
Browse files

chat upload

parent 348b83dd
Showing with 608 additions and 215 deletions
+608 -215
......@@ -13280,6 +13280,14 @@
"resolved": "https://registry.npmjs.org/react-native-device-info/-/react-native-device-info-8.1.3.tgz",
"integrity": "sha512-73e3wiGFL8DvIXEd8x4Aq+mO8mZvHARwfYorIEu+X0trLHY92bP5Ict8DJHDjCQ0+HtAvpA4Wda2VoUVN1zh6Q=="
},
"react-native-document-picker": {
"version": "8.0.0",
"resolved": "https://registry.npmjs.org/react-native-document-picker/-/react-native-document-picker-8.0.0.tgz",
"integrity": "sha512-4O1FNOJHzfZ7BBFOJhNoeCKHSjthFtZyMEWJsAxX1ORdShGSa6miLvTHtQjpCDMNWSoPU1C7fXLNNPrv8GAarQ==",
"requires": {
"invariant": "^2.2.4"
}
},
"react-native-drawer": {
"version": "2.5.1",
"resolved": "https://registry.npmjs.org/react-native-drawer/-/react-native-drawer-2.5.1.tgz",
......@@ -13388,6 +13396,11 @@
"resolved": "https://registry.npmjs.org/react-native-image-crop-picker/-/react-native-image-crop-picker-0.37.2.tgz",
"integrity": "sha512-YwZXW21Km8+3tSt0smTaLVgY4398c0/OJcpcH6EP0JDOt1BNNxl/R8m6qdvnwdXdIoa0CCnMVW6TL9IN5ia9OA=="
},
"react-native-image-picker": {
"version": "4.7.3",
"resolved": "https://registry.npmjs.org/react-native-image-picker/-/react-native-image-picker-4.7.3.tgz",
"integrity": "sha512-eRKm4wlsmZHmsWFyv77kYc2F+ZyEVqe0m7mqhsMzWk6TQT4FBDtEDxmRDDFq+ivCu/1QD+EPhmYcAIpeGr7Ekg=="
},
"react-native-indicators": {
"version": "0.17.0",
"resolved": "https://registry.npmjs.org/react-native-indicators/-/react-native-indicators-0.17.0.tgz",
......
......@@ -5,7 +5,7 @@ Purpose:Getting the List of all the employees list and Chat
Developers:Mahesh Reddy
*/
import React, { Component } from 'react';
import { Platform, Linking,ScrollView,Image, StyleSheet, Text, FlatList, TouchableOpacity, Picker, View, StatusBar, Dimensions, Alert } from 'react-native';
import { Platform, Linking, ScrollView, Image, StyleSheet, Text, FlatList, TouchableOpacity, Picker, View, StatusBar, Dimensions, Alert } from 'react-native';
import { Title, Button, Container, Content, Header, Right, Left, Body, Tab, Tabs, TabHeading, Footer, Subtitle, Item, Input, FooterTab } from 'native-base';
import { widthPercentageToDP as wp, heightPercentageToDP as hp } from 'react-native-responsive-screen';
import AsyncStorage from '@react-native-community/async-storage';
......@@ -177,7 +177,7 @@ class ListItem extends Component {
// var msg=this.state.dataSource1;
// console.warn("Datasource and id send by"+JSON.stringify(data1.sendBy))
let msgCount = data1.filter(message => message.sendBy === id).map((messages, i) => {
return i,messages
return i, messages
})
......@@ -186,39 +186,40 @@ class ListItem extends Component {
return (
// console.warn("iiiiiiii" + msgCount),
<View>
<Text style={{ color: 'red', }}> {msgCount.length > 0 ? msgCount.length : null} </Text>
{/* {msgCount.length > 0 ? msgCount.length : null} */}
{
msgCount.length > 0 ?
<TouchableOpacity>
<Text style={{ color: 'red', }}> {msgCount.length > 0 ? msgCount.length : null} </Text>
{/* {msgCount.length > 0 ? msgCount.length : null} */}
{
msgCount.length > 0 ?
<Icon name="comments" style={{ color: '#808080', paddingRight: 5, }} size={25} onPress={() => this.props.navigation.navigate("AdminChatUser", {
empId: item.id,
name: item.name,
device_id: item.device_id,
sno: msgCount,
<Icon name="comments" style={{ color: '#808080', paddingRight: 5, }} size={25} onPress={() => this.props.navigation.navigate("AdminChatUser", {
empId: item.id,
name: item.name,
device_id: item.device_id,
sno: msgCount,
})} />
// <TouchableOpacity style={{ marginTop: -20, marginLeft: 18 }} onPress={() => { this.AdminChatUser(id, "maintask", msgCount) }}>
// <Image style={{ width: 25, height: 25 }} source={require('../Images/chat.png')} />
// </TouchableOpacity>
})} />
// <TouchableOpacity style={{ marginTop: -20, marginLeft: 18 }} onPress={() => { this.AdminChatUser(id, "maintask", msgCount) }}>
// <Image style={{ width: 25, height: 25 }} source={require('../Images/chat.png')} />
// </TouchableOpacity>
:
<Icon name="comments" style={{ color: '#808080', paddingRight: 5 }} size={25} onPress={() => this.props.navigation.navigate("AdminChatUser", {
empId: item.id,
name: item.name,
device_id: item.device_id,
sno: msgCount,
:
<Icon name="comments" style={{ color: '#808080', paddingRight: 5 }} size={25} onPress={() => this.props.navigation.navigate("AdminChatUser", {
empId: item.id,
name: item.name,
device_id: item.device_id,
sno: msgCount,
})} />
// <TouchableOpacity style={{ marginTop: -20, marginLeft: 18 }} onPress={() => { this.AdminChatUser(id, "maintask", msgCount) }}>
// <Image style={{ width: 25, height: 25 }} source={require('../Images/chat.png')} />
// </TouchableOpacity>
})} />
// <TouchableOpacity style={{ marginTop: -20, marginLeft: 18 }} onPress={() => { this.AdminChatUser(id, "maintask", msgCount) }}>
// <Image style={{ width: 25, height: 25 }} source={require('../Images/chat.png')} />
// </TouchableOpacity>
}
}
</TouchableOpacity>
</View>
)
......@@ -227,19 +228,19 @@ class ListItem extends Component {
// const getMessagesCount = ( msg, empId) => {
// // console.warn("ids"+JSON.stringify(data1) +id)
// // var msg=this.state.dataSource1;
// // console.warn("Datasource and id send by"+JSON.stringify(data1.sendBy))
// const msgCount = msg.filter(message => message.sendBy === empId).map((messages, i)=> {
// return i, messages
// })
// // console.warn("iiiiiiii" + id)
// console.warn("msgcount" + msgCount)
// // alert("msgcount" + msgCount)
// return (
// // console.warn("iiiiiiii" + msgCount),
// <View>
......@@ -247,24 +248,24 @@ class ListItem extends Component {
// {/* {msgCount.length > 0 ? msgCount.length : null} */}
// {
// msgCount.length > 0 ?
// <TouchableOpacity style={{ marginTop: -20, marginLeft: 10 }} onPress={() => { this.AdminChatUser( "UserChat", msgCount) }}>
// <Image style={{ width: 25, height: 25 }} source={require('../Images/chat.png')} />
// </TouchableOpacity>
// :
// <TouchableOpacity style={{ marginTop: -20, marginLeft: 10 }} onPress={() => { this.AdminChatUser( "UserChat", msgCount) }}>
// <Image style={{ width: 25, height: 25, }} source={require('../Images/chat.png')} />
// </TouchableOpacity>
// }
// </View>
// )
// }
return (
......@@ -272,13 +273,16 @@ class ListItem extends Component {
<View style={styles.signup}>
<View style={[styles.buttonContainer, styles.signupButton]} >
<View style={styles.box}>
<View style={{ flexDirection: 'row',marginTop:20 }}>
<View style={{ flexDirection: 'row', marginTop: 20 }}>
<View style={styles.btnSend} >
<Text style={styles.iconSend} >{(item.name).substring(0, 2).toUpperCase()}</Text>
</View>
<Text style={styles.signUpText1} >{item.name}</Text>
</View>
<View style={{ flexDirection: 'row', justifyContent: 'flex-end', alignItems: 'center' }}>
{/* {getMessagesCount(this.state.dataSource2, item.id)} */}
{ getMessagesCount( this.state.dataSource2,item.id)}
</View>
{/* <View style={{ flexDirection: 'row', justifyContent: 'flex-end', alignItems: 'center' }}> */}
{getMessagesCount(this.state.dataSource2, item.id)}
{/* </View> */}
</View>
</View>
......@@ -323,7 +327,7 @@ export default class AdminChat extends Component {
result: '',
emp_role: '',
squadName: '',
dataSource2:[]
dataSource2: []
}
......@@ -417,10 +421,10 @@ export default class AdminChat extends Component {
//get messages
getMessages() {
log("Info", " getMessages(role, userToken, cropcode) is used getting task related messages");
AsyncStorage.multiGet(["cropcode", "userToken"], (err, response) => {
const cropcode = response[0][1];
const userToken = response[1][1];
......@@ -460,7 +464,7 @@ export default class AdminChat extends Component {
.then((response) => response.json())
.then((responseJson) => {
console.warn("Messages For chat application" + JSON.stringify(responseJson.data));
if (responseJson.status === 'True') {
console.warn("Setted Data")
......@@ -689,7 +693,7 @@ export default class AdminChat extends Component {
//to get the lsit of list of employees
UserManageEmployees() {
log("Info", "UserManageEmployees:getEmployeeList() method is used to get employee list");
AsyncStorage.getItem("cropcode", (err, res) => {
const cropcode = res;
......@@ -706,7 +710,7 @@ export default class AdminChat extends Component {
const domain = userName.split('@')[1]
//Checking the Internet Connection
NetInfo.fetch().then(state => {
if (state.type == "none" || state.type == 'unknown' || state.type == 'undefined') {
......@@ -716,10 +720,10 @@ export default class AdminChat extends Component {
backgroundColor: 'red',
duration: Snackbar.LENGTH_LONG,
});
}
else if(domain === 'gmail.com' || domain === 'yahoo.com' || domain === 'outlook.com'){
}
else if (domain === 'gmail.com' || domain === 'yahoo.com' || domain === 'outlook.com') {
fetch(API + 'squad_chat.php',
{
......@@ -779,7 +783,7 @@ export default class AdminChat extends Component {
log("Error", "error in getting employee list at user side");
});
}
else {
......@@ -930,7 +934,7 @@ export default class AdminChat extends Component {
workingStatus: item.workingStatus,
role: item.role
})}>
<Icon name="chevron-right" style={{ color: '#808080', paddingRight: 5}} size={15} />
<Icon name="chevron-right" style={{ color: '#808080', paddingRight: 5 }} size={15} />
</TouchableOpacity>
}
......@@ -947,20 +951,20 @@ export default class AdminChat extends Component {
.sort()
.map(m => m.sendBy)
.filter(m => m.sendBy !== null)
const sortedUsers = [...new Set(sortedUserIds)].map(id => emp.find(u => u.id === id))
const namesToDeleteSet = new Set(sortedUsers);
const newArr = emp.filter((employee) => {
return !namesToDeleteSet.has(employee);
});
const sortedEmployees = sortedUsers.concat(newArr)
return sortedEmployees;
}
const empSorted = sortedOne(this.state.dataSource2, this.state.dataSource);
return (
<Container style={{ height: Dimensions.get('window').height }}>
......@@ -977,12 +981,12 @@ export default class AdminChat extends Component {
borderBottomColor: '#ffffff',
justifyContent: 'space-between',
}}>
<Left>
<Left>
<Icon name="arrow-left" size={20} style={{ color: '#fff', }} onPress={() =>
this.props.navigation.push("UserDashboard")} />
</Left>
<Body style={styles.hstyles}>
<Title style={{ color: '#fff', paddingTop: 20 }}>CHAT</Title>
<Title style={{ color: '#fff', paddingTop: 20 }}>CHAT</Title>
<Subtitle></Subtitle>
</Body>
......@@ -1102,7 +1106,7 @@ const styles = StyleSheet.create({
},
signUpText1: {
fontSize: 16,
paddingTop: 5,
paddingLeft: 10,
fontWeight: 'bold'
},
......@@ -1308,7 +1312,6 @@ const styles = StyleSheet.create({
flexDirection: 'row',
position: 'relative',
},
bottomView: {
flexDirection: 'row',
......@@ -1321,16 +1324,33 @@ const styles = StyleSheet.create({
backgroundColor: 'black',
alignItems: 'center'
},
btnSend: {
backgroundColor: "#00BFFF",
width: 40,
margin: 6,
height: 40,
borderRadius: 360,
alignItems: 'center',
justifyContent: 'center',
// top: -5
},
iconSend: {
// width: 40,
// height: 40,
color: "white",
alignSelf: 'center',
fontSize: 14
},
hstyles: {
...Platform.select({
ios: {
marginRight:230
},
android: {
paddingLeft: 30,
},
ios: {
marginRight: 230
},
android: {
paddingLeft: 30,
},
}),
},
},
textStyle: {
color: '#fff',
......@@ -1390,5 +1410,5 @@ const pickerSelectStyles = StyleSheet.create({
// backgroundColor:'pink'
},
});
\ No newline at end of file
......@@ -30,8 +30,19 @@ import moment from "moment";
import NetInfo from '@react-native-community/netinfo';
import { API } from "../WebServices/RestClient";
import log from '../LogFile/Log';
import { launchCamera, launchImageLibrary } from 'react-native-image-picker';
const options = {
title: 'Select Image',
type: 'library',
options: {
maxHeight: 200,
maxWidth: 200,
selectionLimit: 1,
mediaType: 'photo',
includeBase64: false
},
}
export default class AdminChatUser extends Component {
constructor(props) {
......@@ -321,6 +332,51 @@ export default class AdminChatUser extends Component {
// });
}
openGallery = async () => {
// alert("clicked")
const images = await launchImageLibrary(options);
console.log(images.assets[0])
const message = this.state.message;
AsyncStorage.multiGet(["cropcode", "userToken"], async (err, response) => {
const cropcode = response[0][1];
const userToken = response[1][1];
AsyncStorage.getItem("projectId", async (err, res) => {
const projectId = res;
const data = new FormData()
data.append('file', {
uri: images.assets[0].uri,
type: images.assets[0].type,
name: images.assets[0].fileName,
})
data.append('message', this.state.message)
data.append('action', 'media')
data.append('projectId', projectId)
data.append('corp_code', cropcode)
data.append('sendBy', userToken)
data.append('receivedBy', this.props.navigation.state.params.empId)
data.append('messagedBy', userToken)
data.append('api', 'https://api-single.agile24x7.com/release')
data.append('reply_id', this.state.commentDetails.id ? this.state.commentDetails.id : "")
let res1 = await fetch(
'https://api-single.agile24x7.com/release/squad_send_file.php',
{
method: 'post',
body: data,
headers: {
'Content-Type': 'multipart/form-data; ',
},
}
);
let responseJson = await res1.json();
this.getMessages();
alert("Image Uploaded successfully")
});
});
}
renderDate = (date) => {
return (
<Text style={styles.time}>
......@@ -368,7 +424,16 @@ export default class AdminChatUser extends Component {
onPress={() =>
this.props.navigation.goBack()} />
<Body style={styles.hstyles}>
<Title style={{ color: '#fff', fontSize: 14, paddingTop: 10, paddingLeft: 10 }}>{this.props.navigation.state.params.name}</Title>
<Title style={{ color: '#fff', fontSize: 14, paddingLeft: 10, flexDirection: 'row' }}>
<View style={styles.btnSend} >
<Text style={styles.iconSendtop} >{(this.props.navigation.state.params.name).substring(0, 2).toUpperCase()}</Text>
</View>
<View style={{top:-10}}>
<Text style={{color:'white',fontWeight:'bold', paddingLeft:10,top:-10}}>
{this.props.navigation.state.params.name}
</Text>
</View>
</Title>
<Subtitle></Subtitle>
</Body>
......@@ -402,17 +467,17 @@ export default class AdminChatUser extends Component {
<View style={[styles.itemReply, itemStyleReply]}>
<View style={{ padding: 5, }}>
{itemStyle === styles.itemOut ? <View style={{ flexDirection: 'row' }}><Text style={{ fontSize: 12, color: 'orange' }}>{item.reply_username}</Text></View> : <View style={{ flexDirection: 'row' }}><Text style={{ fontSize: 12, color: 'blue' }}>{item.username}</Text></View>}
{item.reply_path !== null ? <Image source={{ uri: item.reply_path }} style={{ width: 210, height: 50 }} /> : null}
{item.reply_path !== "" ? <Image source={{ uri: item.reply_path }} style={{ width: 210, height: 50 }} /> : null}
<Text style={{ width: 210 }} selectable={true} key={Math.random()}>{item.reply_message}</Text>
{!inMessage && this.renderDate(moment(item.messagedTime).format('MM.DD.YYYY hh:mm:ss'))}
{inMessage && this.renderDate(moment(item.messagedTime).format('MM.DD.YYYY hh:mm:ss'))}
</View>
</View>
<View style={[styles.item, itemStyle]}>
<View style={[styles.itemown, itemStyle]}>
<View style={{ padding: 5, }}>
{itemStyle === styles.itemOut ? <View style={{ flexDirection: 'row' }}><Text style={{ fontSize: 12, color: 'orange' }}>{item.username}</Text><TouchableOpacity onPress={() => this.handlecom(item)} ><Icon color={'#C0C0C0'} size={25} style={{ marginLeft: 10 }} name="reply" /></TouchableOpacity></View> : <View style={{ flexDirection: 'row' }}><Text style={{ fontSize: 12, color: 'blue' }}>{item.username}</Text><TouchableOpacity onPress={() => this.handlecom(item)} ><Icon color={'#C0C0C0'} size={25} style={{ marginLeft: 10 }} name="reply" /></TouchableOpacity></View>}
{item.path !== null ? <Image source={{ uri: item.path }} style={styles.imageview } /> : null}
{item.path !== "" ? <Image source={{ uri: item.path }} style={styles.imageview} /> : null}
<Text style={{ width: 210 }} selectable={true} key={Math.random()}>{item.message}</Text>
{!inMessage && this.renderDate(moment(item.messagedTime).format('MM.DD.YYYY hh:mm:ss'))}
{inMessage && this.renderDate(moment(item.messagedTime).format('MM.DD.YYYY hh:mm:ss'))}
......@@ -423,7 +488,7 @@ export default class AdminChatUser extends Component {
<View style={[styles.itemSingle, itemStyleSingle]}>
<View style={{ padding: 5, }}>
{itemStyle === styles.itemOut ? <View style={{ flexDirection: 'row' }}><Text style={{ fontSize: 12, color: 'orange' }}>{item.username}</Text><TouchableOpacity onPress={() => this.handlecom(item)} ><Icon color={'#C0C0C0'} size={25} style={{ marginLeft: 10 }} name="reply" /></TouchableOpacity></View> : <View style={{ flexDirection: 'row' }}><Text style={{ fontSize: 12, color: 'blue' }}>{item.username}</Text><TouchableOpacity onPress={() => this.handlecom(item)} ><Icon color={'#C0C0C0'} size={25} style={{ marginLeft: 10 }} name="reply" /></TouchableOpacity></View>}
{item.path !== null ? <Image source={{ uri: item.path }} style={styles.imageview} /> : null}
{item.path !== "" ? <Image source={{ uri: item.path }} style={styles.imageview} /> : null}
<Text style={{ width: 210 }} selectable={true} key={Math.random()}>{item.message}</Text>
{!inMessage && this.renderDate(moment(item.messagedTime).format('MM.DD.YYYY hh:mm:ss'))}
{inMessage && this.renderDate(moment(item.messagedTime).format('MM.DD.YYYY hh:mm:ss'))}
......@@ -450,19 +515,27 @@ export default class AdminChatUser extends Component {
</View>
}
<View style={styles.inputContainer}>
<TextInput style={styles.inputs}
placeholder="Write a message..."
underlineColorAndroid='transparent'
multiline={true}
onChangeText={(value) => this.setState({ message: value })}
value={this.state.message} />
<View style={{ flexDirection: 'row' }}>
<View style={styles.inputContainer}>
<TextInput style={styles.inputs}
placeholder="Message"
underlineColorAndroid='transparent'
multiline={true}
onChangeText={(value) => this.setState({ message: value })}
value={this.state.message} />
<TouchableOpacity style={{ top: -5, right: 15 }} disabled={this.state.itemPressedDisabled} onPress={this.openGallery}>
<Image source={require('../Images/paperclip.png')} style={styles.iconSendfile} />
</TouchableOpacity>
</View>
<TouchableOpacity style={styles.btnSend} disabled={this.state.itemPressedDisabled} onPress={() => { this.sendMessageText() }}>
{/* <Image source={{uri:"https://png.icons8.com/small/75/ffffff/filled-sent.png"}} style={styles.iconSend} /> */}
<Image source={require('../Images/sent.png')} style={styles.iconSend} />
</TouchableOpacity>
</View>
</View>
</View>
......@@ -478,14 +551,15 @@ export default class AdminChatUser extends Component {
//Styles fro UI
const styles = StyleSheet.create({
container: {
flex: 1
flex: 1,
backgroundColor: '#efe6dd'
},
list: {
paddingHorizontal: 17,
},
footer1: {
flexDirection: 'column',
height: 130,
height: 140,
backgroundColor: '#eeeeee',
paddingHorizontal: 10,
padding: 5,
......@@ -494,41 +568,54 @@ const styles = StyleSheet.create({
footer: {
flexDirection: 'row',
height: 60,
backgroundColor: '#eeeeee',
backgroundColor: '#efe6dd',
paddingHorizontal: 10,
padding: 5,
},
btnSend: {
backgroundColor: "#00BFFF",
width: 40,
margin: 6,
height: 40,
borderRadius: 360,
alignItems: 'center',
justifyContent: 'center',
top: -5
},
iconSend: {
width: 30,
height: 30,
width: 25,
height: 25,
alignSelf: 'center',
},
iconSendtop: {
width: 25,
height: 25,
alignSelf: 'center',
color: 'white',
padding:1
},
iconSendfile: {
width: 25,
height: 25,
},
inputContainer: {
borderBottomColor: '#F5FCFF',
backgroundColor: '#FFFFFF',
borderRadius: 30,
borderBottomWidth: 1,
height: 40,
height: 45,
flexDirection: 'row',
alignItems: 'center',
flex: 1,
marginRight: 0,
// alignItems: 'center',
// flex: 1,
width: '85%',
marginTop: 5,
alignItems: 'baseline',
},
imageview: {
width: 350,
width: 300,
resizeMode: 'contain', height: 200,
},
msgview: {
......@@ -541,7 +628,8 @@ const styles = StyleSheet.create({
flex: 1,
// position:'absolute',
alignItems: 'baseline',
paddingTop: 10
paddingTop: 10,
width: 90,
},
balloon: {
maxWidth: 200,
......@@ -591,12 +679,13 @@ const styles = StyleSheet.create({
color: "#808080",
paddingRight: 10
},
itemSingle: {
marginVertical: 14,
flex: 1,
flexDirection: 'row',
// paddingLeft:50,
backgroundColor: "#eeeeee",
backgroundColor: "#fff",
borderRadius: 10,
padding: 5,
},
......@@ -605,15 +694,25 @@ const styles = StyleSheet.create({
flex: 1,
flexDirection: 'row',
// paddingLeft:50,
backgroundColor: "#eeeeee",
backgroundColor: "#fff",
borderRadius: 10,
padding: 5,
},
itemBottom: {
itemown: {
marginVertical: 14,
flex: 1,
flexDirection: 'row',
// paddingLeft:50,
backgroundColor: "#fff",
borderRadius: 10,
padding: 5,
},
itemBottom: {
marginVertical: 14,
// flex: 1,
width: '88%',
flexDirection: 'row',
// paddingLeft:50,
backgroundColor: "#D2ECDF",
borderRadius: 10,
padding: 5,
......@@ -623,7 +722,7 @@ const styles = StyleSheet.create({
flex: 1,
flexDirection: 'row',
// paddingLeft:50,
backgroundColor: "#D2ECDF",
backgroundColor: "#e7ffdb",
borderRadius: 10,
padding: 5,
},
......
......@@ -34,8 +34,19 @@ import { EMPLOYEEID } from './Header';
import moment from "moment";
import { DataTable } from 'react-native-paper';
import { launchCamera, launchImageLibrary } from 'react-native-image-picker';
const options = {
title: 'Select Image',
type: 'library',
options: {
maxHeight: 200,
maxWidth: 200,
selectionLimit: 1,
mediaType: 'photo',
includeBase64: false
},
}
export default class GroupChat extends Component {
constructor(props) {
......@@ -673,6 +684,52 @@ export default class GroupChat extends Component {
});
}
attach = async () => {
// alert("clicked")
const images1 = await launchImageLibrary(options);
console.log(images1.assets[0])
const message = this.state.message;
const groupId = this.state.subtaskId;
AsyncStorage.multiGet(["cropcode", "userToken"], async (err, response) => {
const cropcode = response[0][1];
const userToken = response[1][1];
AsyncStorage.getItem("projectId", async (err, res) => {
const projectId = res;
const data = new FormData()
data.append('file', {
uri: images1.assets[0].uri,
type: images1.assets[0].type,
name: images1.assets[0].fileName,
})
data.append('message',this.state.message)
data.append('action', 'media')
data.append('corp_code', cropcode)
data.append('groupId', groupId)
data.append('messagedBy', userToken)
data.append('api', 'https://api-single.agile24x7.com/release')
data.append('groupName',this.state.groupName);
data.append('groupEmail',this.state.members_email);
data.append('reply_id', this.state.commentDetails.id ? this.state.commentDetails.id : "")
let res1 = await fetch(
'https://api-single.agile24x7.com/release/group_chat1.php',
{
method: 'post',
body: data,
headers: {
'Content-Type': 'multipart/form-data; ',
},
}
);
let responseJson = await res1.json();
this.getMessages();
alert("Image Uploaded successfully")
});
});
}
renderDate = (date) => {
return (
<Text style={styles.time}>
......@@ -756,8 +813,8 @@ export default class GroupChat extends Component {
<View style={[styles.itemReply, itemStyleReply]}>
<View style={{ padding: 5, }}>
{itemStyle === styles.itemOut ? <View style={{ flexDirection: 'row' }}><Text style={{ fontSize: 12, color: 'orange' }}>{item.reply_username}</Text></View> : <View style={{ flexDirection: 'row' }}><Text style={{ fontSize: 12, color: 'blue' }}>{item.username}</Text></View>}
{item.reply_path !== "" ? <Image source={{ uri: item.reply_path }} style={{ width: 210,height:50 }} /> : null}
<Text style={{width:210}} selectable={true} key={Math.random()}>{item.reply_message}</Text>
{item.reply_path !== "" ? <Image source={{ uri: item.reply_path }} style={{ width: 210, height: 50 }} /> : null}
<Text style={{ width: 210 }} selectable={true} key={Math.random()}>{item.reply_message}</Text>
{!inMessage && this.renderDate(moment(item.messagedTime).format('MM.DD.YYYY hh:mm:ss'))}
{inMessage && this.renderDate(moment(item.messagedTime).format('MM.DD.YYYY hh:mm:ss'))}
</View>
......@@ -766,8 +823,8 @@ export default class GroupChat extends Component {
<View style={[styles.item, itemStyle]}>
<View style={{ padding: 5, }}>
{itemStyle === styles.itemOut ? <View style={{ flexDirection: 'row' }}><Text style={{ fontSize: 12, color: 'orange' }}>{item.username}</Text><TouchableOpacity onPress={() => this.handlecom(item)} ><Icon color={'#C0C0C0'} size={25} style={{ marginLeft: 10 }} name="reply" /></TouchableOpacity></View> : <View style={{ flexDirection: 'row' }}><Text style={{ fontSize: 12, color: 'blue' }}>{item.username}</Text><TouchableOpacity onPress={() => this.handlecom(item)} ><Icon color={'#C0C0C0'} size={25} style={{ marginLeft: 10 }} name="reply" /></TouchableOpacity></View>}
{item.path !== "" ? <Image source={{ uri: item.path }} style={styles.imageview } /> : null}
<Text style={{width:210}} selectable={true} key={Math.random()}>{item.message}</Text>
{item.path !== "" ? <Image source={{ uri: item.path }} style={styles.imageview} /> : null}
<Text style={{ width: 210 }} selectable={true} key={Math.random()}>{item.message}</Text>
{!inMessage && this.renderDate(moment(item.messagedTime).format('MM.DD.YYYY hh:mm:ss'))}
{inMessage && this.renderDate(moment(item.messagedTime).format('MM.DD.YYYY hh:mm:ss'))}
</View>
......@@ -797,27 +854,35 @@ export default class GroupChat extends Component {
{this.state.handleHover &&
// alert(JSON.stringify(this.state.commentDetails))
<View style={styles.itemBottom}>
<View style={{width:"90%"}}>
<Text style={{ fontSize: 12, color: 'green' }}>{this.state.commentDetails.username}</Text>
<Text style={{ fontSize: 12, color: 'black' }}>{this.state.commentDetails.message}</Text>
</View>
<TouchableOpacity onPress={() => this.handlecomClose()} ><Icon color={'#000'} size={25} style={{ marginLeft: 10,marginTop:5 }} name="times-circle-o" /></TouchableOpacity>
<View style={{ width: "90%" }}>
<Text style={{ fontSize: 12, color: 'green' }}>{this.state.commentDetails.username}</Text>
<Text style={{ fontSize: 12, color: 'black' }}>{this.state.commentDetails.message}</Text>
</View>
<TouchableOpacity onPress={() => this.handlecomClose()} ><Icon color={'#000'} size={25} style={{ marginLeft: 10, marginTop: 5 }} name="times-circle-o" /></TouchableOpacity>
</View>
}
{/* <View style={styles.footer}> */}
<View style={styles.inputContainer}>
<TextInput style={styles.inputs}
placeholder="Write a message..."
underlineColorAndroid='transparent'
multiline={true}
onChangeText={(value) => this.setState({ message: value })}
value={this.state.message} />
<View style={{ flexDirection: 'row' }}>
<View style={styles.inputContainer}>
<TextInput style={styles.inputs}
placeholder="Message"
underlineColorAndroid='transparent'
multiline={true}
onChangeText={(value) => this.setState({ message: value })}
value={this.state.message} />
<TouchableOpacity style={{ top: -5, right: 15 }} onPress={this.attach}>
<Image source={require('../Images/paperclip.png')} style={styles.iconSendfile} />
</TouchableOpacity>
</View>
<TouchableOpacity style={styles.btnSend} disabled={this.state.itemPressedDisabled} onPress={() => { this.sendMessageText() }}>
{/* <Image source={{uri:"https://png.icons8.com/small/75/ffffff/filled-sent.png"}} style={styles.iconSend} /> */}
<Image source={require('../Images/sent.png')} style={styles.iconSend} />
</TouchableOpacity>
</View>
</View>
</View>
{/* </View> */}
......@@ -833,40 +898,53 @@ export default class GroupChat extends Component {
//Styles fro UI
const styles = StyleSheet.create({
container: {
flex: 1
flex: 1,
backgroundColor: '#efe6dd'
},
list: {
paddingHorizontal: 17,
},
footer1: {
flexDirection: 'column',
height: 130,
height: 140,
backgroundColor: '#eeeeee',
paddingHorizontal: 10,
padding: 5,
paddingBottom:15
paddingBottom: 15
},
footer: {
flexDirection: 'row',
height: 60,
backgroundColor: '#eeeeee',
backgroundColor: '#efe6dd',
paddingHorizontal: 10,
padding: 5,
},
btnSend: {
backgroundColor: "#00BFFF",
width: 40,
margin: 6,
height: 40,
borderRadius: 360,
alignItems: 'center',
justifyContent: 'center',
top:-5
},
iconSend: {
width: 30,
height: 30,
width: 25,
height: 25,
alignSelf: 'center',
},
iconSendtop: {
width: 25,
height: 25,
alignSelf: 'center',
color: 'white',
padding: 1
},
iconSendfile: {
width: 25,
height: 25,
},
inputContainer: {
......@@ -874,24 +952,19 @@ const styles = StyleSheet.create({
backgroundColor: '#FFFFFF',
borderRadius: 30,
borderBottomWidth: 1,
height: 40,
height: 45,
flexDirection: 'row',
alignItems: 'center',
flex: 1,
marginRight: 0,
// alignItems: 'center',
// flex: 1,
width: '85%',
marginTop: 5,
alignItems: 'baseline',
},
imageview: {
width: 350,
width: 300,
resizeMode: 'contain', height: 200,
},
textwidth:{
width:210
},
textwidthImage:{
width:210
},
msgview: {
width: 0, height: 0
},
......@@ -902,7 +975,8 @@ const styles = StyleSheet.create({
flex: 1,
// position:'absolute',
alignItems: 'baseline',
paddingTop: 10
paddingTop: 10,
width: 90,
},
balloon: {
maxWidth: 200,
......@@ -952,12 +1026,13 @@ const styles = StyleSheet.create({
color: "#808080",
paddingRight: 10
},
itemSingle: {
marginVertical: 14,
flex: 1,
flexDirection: 'row',
// paddingLeft:50,
backgroundColor: "#eeeeee",
backgroundColor: "#fff",
borderRadius: 10,
padding: 5,
},
......@@ -966,15 +1041,25 @@ const styles = StyleSheet.create({
flex: 1,
flexDirection: 'row',
// paddingLeft:50,
backgroundColor: "#eeeeee",
backgroundColor: "#fff",
borderRadius: 10,
padding: 5,
},
itemBottom: {
itemown: {
marginVertical: 14,
flex: 1,
flexDirection: 'row',
// paddingLeft:50,
backgroundColor: "#fff",
borderRadius: 10,
padding: 5,
},
itemBottom: {
marginVertical: 14,
// flex: 1,
width: '88%',
flexDirection: 'row',
// paddingLeft:50,
backgroundColor: "#D2ECDF",
borderRadius: 10,
padding: 5,
......@@ -984,7 +1069,7 @@ const styles = StyleSheet.create({
flex: 1,
flexDirection: 'row',
// paddingLeft:50,
backgroundColor: "#D2ECDF",
backgroundColor: "#e7ffdb",
borderRadius: 10,
padding: 5,
},
......
......@@ -32,8 +32,19 @@ import { API } from "../WebServices/RestClient";
import log from '../LogFile/Log';
import { EMPLOYEEID } from './Header';
import moment from "moment";
import { launchCamera, launchImageLibrary } from 'react-native-image-picker';
const options = {
title: 'Select Image',
type: 'library',
options: {
maxHeight: 200,
maxWidth: 200,
selectionLimit: 1,
mediaType: 'photo',
includeBase64: false
},
}
export default class TaskChat extends Component {
constructor(props) {
......@@ -665,7 +676,51 @@ export default class TaskChat extends Component {
});
});
}
attach = async () => {
// alert("clicked")
const images1 = await launchImageLibrary(options);
console.log(images1.assets[0])
const message = this.state.message;
const groupId = this.state.subtaskId;
AsyncStorage.multiGet(["cropcode", "userToken"], async (err, response) => {
const cropcode = response[0][1];
const userToken = response[1][1];
AsyncStorage.getItem("projectId", async (err, res) => {
const projectId = res;
const data = new FormData()
data.append('file', {
uri: images1.assets[0].uri,
type: images1.assets[0].type,
name: images1.assets[0].fileName,
})
data.append('message',this.state.message)
data.append('action', 'media')
data.append('corp_code', cropcode)
data.append('groupId', groupId)
data.append('messagedBy', userToken)
data.append('api', 'https://api-single.agile24x7.com/release')
data.append('groupName',this.state.groupName);
data.append('groupEmail',this.state.members_email);
data.append('reply_id', this.state.commentDetails.id ? this.state.commentDetails.id : "")
let res1 = await fetch(
'https://api-single.agile24x7.com/release/user_story_chat1.php',
{
method: 'post',
body: data,
headers: {
'Content-Type': 'multipart/form-data; ',
},
}
);
let responseJson = await res1.json();
this.getMessages();
alert("Image Uploaded successfully")
});
});
}
......@@ -786,29 +841,32 @@ export default class TaskChat extends Component {
</ScrollView>
<View style={this.state.handleHover === true ? styles.footer1 : styles.footer}>
{this.state.handleHover &&
// alert(JSON.stringify(this.state.commentDetails))
<View style={styles.itemBottom}>
<View style={{width:"90%"}}>
<Text style={{ fontSize: 12, color: 'green' }}>{this.state.commentDetails.username}</Text>
<Text style={{ fontSize: 12, color: 'black' }}>{this.state.commentDetails.message}</Text>
</View>
<TouchableOpacity onPress={() => this.handlecomClose()} ><Icon color={'#000'} size={25} style={{ marginLeft: 10,marginTop:5 }} name="times-circle-o" /></TouchableOpacity>
<View style={{ width: "90%" }}>
<Text style={{ fontSize: 12, color: 'green' }}>{this.state.commentDetails.username}</Text>
<Text style={{ fontSize: 12, color: 'black' }}>{this.state.commentDetails.message}</Text>
</View>
<TouchableOpacity onPress={() => this.handlecomClose()} ><Icon color={'#000'} size={25} style={{ marginLeft: 10, marginTop: 5 }} name="times-circle-o" /></TouchableOpacity>
</View>
}
{/* <View style={styles.footer}> */}
<View style={styles.inputContainer}>
<TextInput style={styles.inputs}
placeholder="Write a message..."
underlineColorAndroid='transparent'
multiline={true}
onChangeText={(value) => this.setState({ message: value })}
value={this.state.message} />
<View style={{ flexDirection: 'row' }}>
<View style={styles.inputContainer}>
<TextInput style={styles.inputs}
placeholder="Message"
underlineColorAndroid='transparent'
multiline={true}
onChangeText={(value) => this.setState({ message: value })}
value={this.state.message} />
<TouchableOpacity style={{ top: -5, right: 15 }} onPress={this.attach}>
<Image source={require('../Images/paperclip.png')} style={styles.iconSendfile} />
</TouchableOpacity>
</View>
<TouchableOpacity style={styles.btnSend} disabled={this.state.itemPressedDisabled} onPress={() => { this.sendMessageText() }}>
{/* <Image source={{uri:"https://png.icons8.com/small/75/ffffff/filled-sent.png"}} style={styles.iconSend} /> */}
<Image source={require('../Images/sent.png')} style={styles.iconSend} />
</TouchableOpacity>
</View>
......@@ -827,57 +885,71 @@ export default class TaskChat extends Component {
//Styles fro UI
const styles = StyleSheet.create({
container: {
flex: 1
flex: 1,
backgroundColor: '#efe6dd'
},
list: {
paddingHorizontal: 17,
},
footer1: {
flexDirection: 'column',
height: 130,
height: 140,
backgroundColor: '#eeeeee',
paddingHorizontal: 10,
padding: 5,
paddingBottom:15
paddingBottom: 15
},
footer: {
flexDirection: 'row',
height: 60,
backgroundColor: '#eeeeee',
backgroundColor: '#efe6dd',
paddingHorizontal: 10,
padding: 5,
},
btnSend: {
backgroundColor: "#00BFFF",
width: 40,
margin: 6,
height: 40,
borderRadius: 360,
alignItems: 'center',
justifyContent: 'center',
top:-5
},
iconSend: {
width: 30,
height: 30,
width: 25,
height: 25,
alignSelf: 'center',
},
iconSendtop: {
width: 25,
height: 25,
alignSelf: 'center',
color: 'white',
padding: 1
},
iconSendfile: {
width: 25,
height: 25,
},
inputContainer: {
borderBottomColor: '#F5FCFF',
backgroundColor: '#FFFFFF',
borderRadius: 30,
borderBottomWidth: 1,
height: 40,
height: 45,
flexDirection: 'row',
alignItems: 'center',
flex: 1,
marginRight: 0,
// alignItems: 'center',
// flex: 1,
width: '85%',
marginTop: 5,
alignItems: 'baseline',
},
imageview: {
width: 350,
width: 300,
resizeMode: 'contain', height: 200,
},
msgview: {
......@@ -890,7 +962,8 @@ const styles = StyleSheet.create({
flex: 1,
// position:'absolute',
alignItems: 'baseline',
paddingTop: 10
paddingTop: 10,
width: 90,
},
balloon: {
maxWidth: 200,
......@@ -940,12 +1013,13 @@ const styles = StyleSheet.create({
color: "#808080",
paddingRight: 10
},
itemSingle: {
marginVertical: 14,
flex: 1,
flexDirection: 'row',
// paddingLeft:50,
backgroundColor: "#eeeeee",
backgroundColor: "#fff",
borderRadius: 10,
padding: 5,
},
......@@ -954,15 +1028,25 @@ const styles = StyleSheet.create({
flex: 1,
flexDirection: 'row',
// paddingLeft:50,
backgroundColor: "#eeeeee",
backgroundColor: "#fff",
borderRadius: 10,
padding: 5,
},
itemBottom: {
itemown: {
marginVertical: 14,
flex: 1,
flexDirection: 'row',
// paddingLeft:50,
backgroundColor: "#fff",
borderRadius: 10,
padding: 5,
},
itemBottom: {
marginVertical: 14,
// flex: 1,
width: '88%',
flexDirection: 'row',
// paddingLeft:50,
backgroundColor: "#D2ECDF",
borderRadius: 10,
padding: 5,
......@@ -972,7 +1056,7 @@ const styles = StyleSheet.create({
flex: 1,
flexDirection: 'row',
// paddingLeft:50,
backgroundColor: "#D2ECDF",
backgroundColor: "#e7ffdb",
borderRadius: 10,
padding: 5,
},
......
......@@ -30,7 +30,19 @@ import moment from "moment";
import NetInfo from '@react-native-community/netinfo';
import { API } from "../WebServices/RestClient";
import log from '../LogFile/Log';
import { launchCamera, launchImageLibrary } from 'react-native-image-picker';
const options = {
title: 'Select Image',
type: 'library',
options: {
maxHeight: 200,
maxWidth: 200,
selectionLimit: 1,
mediaType: 'photo',
includeBase64: false
},
}
export default class UserChat extends Component {
......@@ -261,7 +273,51 @@ export default class UserChat extends Component {
});
});
}
attach = async () => {
// alert("clicked")
const images1 = await launchImageLibrary(options);
console.log(images1.assets[0])
const message = this.state.message;
const groupId = this.state.subtaskId;
AsyncStorage.multiGet(["cropcode", "userToken"], async (err, response) => {
const cropcode = response[0][1];
const userToken = response[1][1];
AsyncStorage.getItem("projectId", async (err, res) => {
const projectId = res;
const data = new FormData()
data.append('file', {
uri: images1.assets[0].uri,
type: images1.assets[0].type,
name: images1.assets[0].fileName,
})
data.append('message',this.state.message)
data.append('action', 'media')
data.append('corp_code', cropcode)
data.append('projectId', projectId)
data.append('messagedBy', userToken)
data.append('api', 'https://api-single.agile24x7.com/release')
data.append('sendBy',userToken);
data.append('receivedBy',this.props.navigation.state.params.empId);
data.append('reply_id', this.state.commentDetails.id ? this.state.commentDetails.id : "")
let res1 = await fetch(
'https://api-single.agile24x7.com/release/userChat1.php',
{
method: 'post',
body: data,
headers: {
'Content-Type': 'multipart/form-data; ',
},
}
);
let responseJson = await res1.json();
this.getMessages();
alert("Image Uploaded successfully")
});
});
}
renderDate = (date) => {
return (
<Text style={styles.time}>
......@@ -343,7 +399,7 @@ export default class UserChat extends Component {
<View style={[styles.itemReply, itemStyleReply]}>
<View style={{ padding: 5, }}>
{itemStyle === styles.itemOut ? <View style={{ flexDirection: 'row' }}><Text style={{ fontSize: 12, color: 'orange' }}>{item.reply_username}</Text></View> : <View style={{ flexDirection: 'row' }}><Text style={{ fontSize: 12, color: 'blue' }}>{item.username}</Text></View>}
{item.reply_path !== "" ? <Image source={{ uri: item.reply_path }} style={{ width: 210,height:50 }} /> : null}
{item.reply_path !== "" ? <Image source={{ uri: item.reply_path }} style={{ width: 210, height: 50 }} /> : null}
<Text style={{ width: 210 }} selectable={true} key={Math.random()}>{item.reply_message}</Text>
{!inMessage && this.renderDate(moment(item.messagedTime).format('MM.DD.YYYY hh:mm:ss'))}
{inMessage && this.renderDate(moment(item.messagedTime).format('MM.DD.YYYY hh:mm:ss'))}
......@@ -352,7 +408,7 @@ export default class UserChat extends Component {
<View style={[styles.item, itemStyle]}>
<View style={{ padding: 5, }}>
{itemStyle === styles.itemOut ? <View style={{ flexDirection: 'row' }}><Text style={{ fontSize: 12, color: 'orange' }}>{item.username}</Text><TouchableOpacity onPress={() => this.handlecom(item)} ><Icon color={'#C0C0C0'} size={25} style={{ marginLeft: 10 }} name="reply" /></TouchableOpacity></View> : <View style={{ flexDirection: 'row' }}><Text style={{ fontSize: 12, color: 'blue' }}>{item.username}</Text><TouchableOpacity onPress={() => this.handlecom(item)} ><Icon color={'#C0C0C0'} size={25} style={{ marginLeft: 10 }} name="reply" /></TouchableOpacity></View>}
{item.path !== "" ? <Image source={{ uri: item.path }} style={styles.imageview } /> : null}
{item.path !== "" ? <Image source={{ uri: item.path }} style={styles.imageview} /> : null}
<Text style={{ width: 210 }} selectable={true} key={Math.random()}>{item.message}</Text>
{!inMessage && this.renderDate(moment(item.messagedTime).format('MM.DD.YYYY hh:mm:ss'))}
{inMessage && this.renderDate(moment(item.messagedTime).format('MM.DD.YYYY hh:mm:ss'))}
......@@ -391,19 +447,27 @@ export default class UserChat extends Component {
</View>
}
<View style={styles.inputContainer}>
<TextInput style={styles.inputs}
placeholder="Write a message..."
underlineColorAndroid='transparent'
multiline={true}
onChangeText={(value) => this.setState({ message: value })}
value={this.state.message} />
<View style={{ flexDirection: 'row' }}>
<View style={styles.inputContainer}>
<TextInput style={styles.inputs}
placeholder="Message"
underlineColorAndroid='transparent'
multiline={true}
onChangeText={(value) => this.setState({ message: value })}
value={this.state.message} />
<TouchableOpacity style={{ top: -5, right: 15 }} onPress={this.attach}>
<Image source={require('../Images/paperclip.png')} style={styles.iconSendfile} />
</TouchableOpacity>
</View>
<TouchableOpacity style={styles.btnSend} disabled={this.state.itemPressedDisabled} onPress={() => { this.sendMessageText() }}>
{/* <Image source={{uri:"https://png.icons8.com/small/75/ffffff/filled-sent.png"}} style={styles.iconSend} /> */}
<Image source={require('../Images/sent.png')} style={styles.iconSend} />
</TouchableOpacity>
</View>
</View>
</View>
......@@ -419,14 +483,15 @@ export default class UserChat extends Component {
//Styles fro UI
const styles = StyleSheet.create({
container: {
flex: 1
flex: 1,
backgroundColor: '#efe6dd'
},
list: {
paddingHorizontal: 17,
},
footer1: {
flexDirection: 'column',
height: 130,
height: 140,
backgroundColor: '#eeeeee',
paddingHorizontal: 10,
padding: 5,
......@@ -435,41 +500,54 @@ const styles = StyleSheet.create({
footer: {
flexDirection: 'row',
height: 60,
backgroundColor: '#eeeeee',
backgroundColor: '#efe6dd',
paddingHorizontal: 10,
padding: 5,
},
btnSend: {
backgroundColor: "#00BFFF",
width: 40,
margin: 6,
height: 40,
borderRadius: 360,
alignItems: 'center',
justifyContent: 'center',
top: -5
},
iconSend: {
width: 30,
height: 30,
width: 25,
height: 25,
alignSelf: 'center',
},
iconSendtop: {
width: 25,
height: 25,
alignSelf: 'center',
color: 'white',
padding: 1
},
iconSendfile: {
width: 25,
height: 25,
},
inputContainer: {
borderBottomColor: '#F5FCFF',
backgroundColor: '#FFFFFF',
borderRadius: 30,
borderBottomWidth: 1,
height: 40,
height: 45,
flexDirection: 'row',
alignItems: 'center',
flex: 1,
marginRight: 0,
// alignItems: 'center',
// flex: 1,
width: '85%',
marginTop: 5,
alignItems: 'baseline',
},
imageview: {
width: 350,
width: 300,
resizeMode: 'contain', height: 200,
},
msgview: {
......@@ -482,7 +560,8 @@ const styles = StyleSheet.create({
flex: 1,
// position:'absolute',
alignItems: 'baseline',
paddingTop: 10
paddingTop: 10,
width: 90,
},
balloon: {
maxWidth: 200,
......@@ -532,12 +611,13 @@ const styles = StyleSheet.create({
color: "#808080",
paddingRight: 10
},
itemSingle: {
marginVertical: 14,
flex: 1,
flexDirection: 'row',
// paddingLeft:50,
backgroundColor: "#eeeeee",
backgroundColor: "#fff",
borderRadius: 10,
padding: 5,
},
......@@ -546,15 +626,25 @@ const styles = StyleSheet.create({
flex: 1,
flexDirection: 'row',
// paddingLeft:50,
backgroundColor: "#eeeeee",
backgroundColor: "#fff",
borderRadius: 10,
padding: 5,
},
itemBottom: {
itemown: {
marginVertical: 14,
flex: 1,
flexDirection: 'row',
// paddingLeft:50,
backgroundColor: "#fff",
borderRadius: 10,
padding: 5,
},
itemBottom: {
marginVertical: 14,
// flex: 1,
width: '88%',
flexDirection: 'row',
// paddingLeft:50,
backgroundColor: "#D2ECDF",
borderRadius: 10,
padding: 5,
......@@ -564,7 +654,7 @@ const styles = StyleSheet.create({
flex: 1,
flexDirection: 'row',
// paddingLeft:50,
backgroundColor: "#D2ECDF",
backgroundColor: "#e7ffdb",
borderRadius: 10,
padding: 5,
},
......
src/Images/paperclip.png

13.3 KB

/*****MySql********/
//pre production environment (development)
// export const API = "https://api-single.agile24x7.com/release/";
// export const ReportsAPI = "https://testapiv2reporting.agile24x7.com/";
// export const Client_URL = "https://sdtest.agile24x7.com/#/";
export const API = "https://api-single.agile24x7.com/release/";
export const ReportsAPI = "https://testapiv2reporting.agile24x7.com/";
export const Client_URL = "https://sdtest.agile24x7.com/#/";
//production environment
// export const API = "https://api-single.agile24x7.com/Migration/";
// export const ReportsAPI = "https://apiv2reporting.agile24x7.com/";
// export const Client_URL = "https://novisync.agile24x7.com/#/";
/*****Postgress********/
......@@ -21,6 +21,6 @@
//production environment
export const API = "https://api-single.agile24x7.com/pg_prod/";
export const ReportsAPI = "https://pgreporting.agile24x7.com/";
export const Client_URL = "https://www.agile24x7.com/#/";
\ No newline at end of file
// export const API = "https://api-single.agile24x7.com/pg_prod/";
// export const ReportsAPI = "https://pgreporting.agile24x7.com/";
// export const Client_URL = "https://www.agile24x7.com/#/";
\ No newline at end of file
Markdown is supported
0% or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment