Skip to content

Commit

Permalink
Please work
Browse files Browse the repository at this point in the history
  • Loading branch information
fgall002 committed Dec 5, 2019
1 parent a6a6f04 commit ae92569
Show file tree
Hide file tree
Showing 6 changed files with 177 additions and 9 deletions.
4 changes: 3 additions & 1 deletion src/Navigation/navigation.js
Original file line number Diff line number Diff line change
Expand Up @@ -22,6 +22,7 @@ import UserInfo from '../components/UserInfo'

import AuthWorkspacesScreen from '../Screens/WorkSpace/user/AuthWorkspacesScreen2v'
import AuthEditWorkspaceScreen from '../Screens/WorkSpace/user/AuthEdithWorkspaceScreen'
import AuthListWorkspaceMemberScreen from '../Screens/WorkSpace/user/AuthListWorkspaceMembersScreen'
import AuthMap from '../components/AuthMap'

import UserWorkspacesScreen from '../Screens/WorkSpace/Member/UserWorkspacesScreen'
Expand All @@ -35,7 +36,8 @@ const AuthWorkSpacesNavigator = createStackNavigator(
AuthWorkspacesScreen: AuthWorkspacesScreen,
AuthEditWorkspaceScreen :AuthEditWorkspaceScreen,
AuthMap:AuthMap,
UserWorkspaceMap:UserWorkspaceMap
UserWorkspaceMap:UserWorkspaceMap,
AuthListWorkspaceMemberScreen: AuthListWorkspaceMemberScreen
}, {
defaultNavigationOptions: {
headerStyle: {
Expand Down
116 changes: 116 additions & 0 deletions src/Screens/WorkSpace/user/AuthListWorkspaceMembersScreen.js
Original file line number Diff line number Diff line change
@@ -0,0 +1,116 @@
import React , { useEffect, useState } from 'react'
import * as firebase from 'firebase'
import * as workspaceActions from '../../../authentication/store/Action/workspace'
import { useSelector, useDispatch } from 'react-redux';
import {
TouchableOpacity,
View,
Text,
FlatList,
Image,
StyleSheet,
Platform,
Alert,
TouchableNativeFeedback
} from 'react-native';

const listWorkspaceMember = (props) => {
const editedWorkspace = props.navigation.getParam('workspaceId').id
console.log("Edith WOrkspace ", editedWorkspace)
const [memberList, setMemberList] = useState()
const dispatch = useDispatch();

let TouchableCmp = TouchableOpacity

if (Platform.OS === 'android' && Platform.Version >= 21) {
TouchableCmp = TouchableNativeFeedback;
}

const listWorkspace = async(workspaceId) => {
await firebase.database().ref(`/workspaces/${workspaceId}/members`).once('value').then(async function(snapshot){
workspaceMembers = snapshot.val()
let membersInfo = []
if(workspaceMembers){
for(member in workspaceMembers){
await firebase.database().ref(`/Users/${member}`).once('value').then(async function(snapshot){
let userList = snapshot.val()
console.log("userList: ", userList)
console.log("before key")
for( key in userList){
if(userList[key].profile){
console.log("inside key")
membersInfo.push({key:key,profile:userList[key].profile})
}
}
})
}
}
console.log("member info: ", membersInfo)
setMemberList(membersInfo)

})


// await firebase.database().ref(`/Users/`).once('value').then(async function(snapshot){
// let userList = snapshot.val()
// let memberInfo = []

// for( key in userList){
// if(userList[key].profile){
// memberInfo.push({key:key,profile:userList[key].profile})
// }
// }

// const workspaceMembers = await firebase.database().ref(`/workspaces/${workspaceId}/`).once('value')

// setMemberList(memberInfo)
// })
}

const deleteMemberHandler = async (memberId) =>{
Alert.alert('Are you sure?', 'Do you really want to delete this member?',
[{text: 'No', style: 'default'},
{text:"Yes", style: 'destructive',
onPress: () => {
dispatch(workspaceActions.deleteMember(editedWorkspace,memberId))
}}])
}


const renderMembers = itemData => {
return(
<View style={styles.centered}>
<TouchableCmp onPress={deleteMemberHandler.bind(this,itemData.item.key)}>
<Text style={styles.textSize}> {itemData.item.profile.firstname + ' ' + itemData.item.profile.lastname}</Text>
</TouchableCmp>
</View>
)
}

useEffect(() => {
listWorkspace(editedWorkspace)
}, []);

return(

<FlatList
data={memberList}
keyExtractor={(item) => item.id}
renderItem = {renderMembers}
numColumns = {1}/>
)
}


const styles = StyleSheet.create({
centered: {
flex:1,
justifyContent: 'center',
alignItems: 'center'
},
textSize:{
fontSize: '20'
}
})

export default listWorkspaceMember
1 change: 0 additions & 1 deletion src/Screens/WorkSpace/user/AuthWorkspacesScreen2v.js
Original file line number Diff line number Diff line change
Expand Up @@ -107,7 +107,6 @@ const UserWorkspacesScreen = props => {
</View>
)
}

return (
<FlatList
onRefresh={loadWorkspaces}
Expand Down
1 change: 0 additions & 1 deletion src/authentication/component/WorkSpaceGridTile.js
Original file line number Diff line number Diff line change
Expand Up @@ -16,7 +16,6 @@ import {
const [imageUrl, setImageUrl] = useState('')

const imageSource = async(image) => {
console.log("hello: ", image)
const imageRetrieved = await firebase.storage().ref().child(`images/workspaces/${image}`).getDownloadURL()
.then(url => setImageUrl(url))

Expand Down
63 changes: 58 additions & 5 deletions src/authentication/store/Action/workspace.js
Original file line number Diff line number Diff line change
Expand Up @@ -7,6 +7,7 @@ export const DELETE_WORKSPACE = 'DELETE_WORKSPACE';
export const UPDATE_WORKSPACE = 'UPDATE_WORKSPACE';
export const SET_WORKSPACE = 'SET_WORKSPACE'
export const ADD_MEMBERS = 'ADD_MEMBERS'
export const REMOVE_MEMBERS = 'REMOVE_MEMBERS'

const makeId = (length) => {
let result = '';
Expand Down Expand Up @@ -94,10 +95,28 @@ export const createWorkSpace = (workspaceTitle, color, imageUri) => {
accessCode,
members: [authID]
})


});

const resData = await response.json();

await firebase.database().ref(`/Users/${authID}/workspaces/`).once('value').then(async function(snapshot){
let userWorkspaces = snapshot.val()
let updatedWorkspace = []

if(userWorkspaces){
updatedWorkspace = userWorkspaces
updatedWorkspace.push(resData.name)
}
else{
updatedWorkspace.push(resData.name)
}

await firebase.database().ref(`/Users/${authID}/workspaces/`).update(updatedWorkspace)
})


dispatch({
type:CREATE_WORKSPACE,
workspaceData:{
Expand Down Expand Up @@ -187,11 +206,6 @@ export const joinWorkspace = (id,members) => {
await firebase.database().ref(`/Users/${authID}/workspaces/`).update(updatedWorkspace)
})






if(!response.ok){
throw new Error('Something went wrong!')
}
Expand All @@ -205,3 +219,42 @@ export const joinWorkspace = (id,members) => {
});
};
};


export const deleteMember = (workspaceId, memberId) => {
console.log("Member")
return async dispatch => {
let membersData = []
await firebase.database().ref(`/workspaces/${workspaceId}/members`).once('value').then(async function(snapshot){
let retrieveData = snapshot.val()
console.log("retrieve data: ", retrieveData)
console.log("workspace ID: ", workspaceId)
console.log("member ID: ", memberId)
membersData = retrieveData.filter( member => member !== memberId)

})

console.log("member Data: ", membersData)

const response = await fetch(`https://lokos-studybuddy.firebaseio.com/workspaces/${id}.json`,
{
method: 'PATCH',
headers: {
'Content-Type': 'application/json'
},
body: JSON.stringify({
workspaceTitle: workspaceTitle,
color: color,
imageUri: imageUri
})
}
);

if(!response.ok){
throw new Error('Something went wrong!')
}

dispatch({
});
};
};
1 change: 0 additions & 1 deletion src/authentication/store/Reducer/workspace.js
Original file line number Diff line number Diff line change
Expand Up @@ -37,7 +37,6 @@ export default(state = initialState, action) => {
action.workspaceData.members

);
console.log("new workspace ", newWorkSpace)
return{
...state,
availableWorkspaces: state.availableWorkspaces.concat(newWorkSpace),
Expand Down

0 comments on commit ae92569

Please sign in to comment.