Skip to content

Commit

Permalink
#2 use props from main dashboard
Browse files Browse the repository at this point in the history
  • Loading branch information
MirTalpur committed Jul 22, 2020
1 parent 861785f commit 9af498f
Show file tree
Hide file tree
Showing 4 changed files with 55 additions and 13 deletions.
1 change: 1 addition & 0 deletions components/nav.js
Original file line number Diff line number Diff line change
Expand Up @@ -156,6 +156,7 @@ export default class Nav extends React.Component {
console.log(this.props.teacherStudentComponent);
console.log(this.props.teacherStudentComponent.currentUserDoc);
return <TeacherStudentComponent
teacherStudentRef={this.props.teacherStudentRef}
teacherStudentComponent={this.props.teacherStudentComponent}
teacherStudentComponentHandleTeacherStudentClick={this.props.teacherStudentComponentHandleTeacherStudentClick}
handleIndividualStudentTeacherEditNameChange={this.props.handleIndividualStudentTeacherEditNameChange}
Expand Down
32 changes: 26 additions & 6 deletions components/teacherDashboard.js
Original file line number Diff line number Diff line change
Expand Up @@ -14,7 +14,6 @@ export class TeacherDashboard extends React.Component {
authUser: this.props.authUser,
currentUserDoc: this.props.currentUserDoc,
currentUserClicked: this.props.currentUserDoc,
teacherStudentRef: this.props.teacherStudentRef,
studentClicked: false,
attendanceOptionClicked: false,
studentsOptionClicked: false,
Expand All @@ -33,7 +32,6 @@ export class TeacherDashboard extends React.Component {
},
teacherStudentComponent: {
currentUserDoc: this.props.currentUserDoc,
teacherStudentRef: this.props.teacherStudentRef,
// TODO: change this back to false testing really fast
// thnk about changing the email and password if they don't match
// the currently using one when editing student profiles
Expand Down Expand Up @@ -80,7 +78,7 @@ export class TeacherDashboard extends React.Component {
console.log(this.state.currentUserDoc);
console.log(this.state.teacherStudentComponent.currentUserDoc);
console.log("in teacher dashboard class teacherStudentRef....");
console.log(this.state.teacherStudentRef.data);
console.log(this.props.teacherStudentRef.data);

}

Expand Down Expand Up @@ -396,6 +394,17 @@ export class TeacherDashboard extends React.Component {
email: email,
password: this.state.teacherStudentComponent.individualStudentTeacherEditPassword,
}).then(result => {
updateCalls -= 1;
if(updateCalls === 0){
this.handleUpdateOnStudent();
this.setState(prevState => ({
teacherStudentComponent: {
...prevState.teacherStudentComponent,
individualStudentTeacherEditUpdateButtonLoading: false,
individualStudentEditClicked: false,
}
}));
}
console.log('update sucessful for email and password as teacher' + result);
}).catch(err => {
console.log(err)
Expand All @@ -408,7 +417,18 @@ export class TeacherDashboard extends React.Component {
studentUid: this.state.teacherStudentComponent.individualEditStudentInformation.uid,
photoURL: studentProfilePicFile,
}).then(result => {
console.log('update sucessfully updateStudentProfilePicAsTeacher: ' + result);
console.log('update sucessfully updateStudentProfilePicAsTeacher: ' + JSON.stringify(result));
updateCalls -= 1;
if(updateCalls === 0){
this.props.handleUpdateOnStudent();
this.setState(prevState => ({
teacherStudentComponent: {
...prevState.teacherStudentComponent,
individualStudentTeacherEditUpdateButtonLoading: false,
individualStudentEditClicked: false,
}
}));
}
}).catch(err => {
console.log(err)
});
Expand Down Expand Up @@ -451,7 +471,7 @@ export class TeacherDashboard extends React.Component {
individualStudentEditLoading: true
}
}));
this.state.teacherStudentComponent.teacherStudentRef.data.forEach((student) => {
this.props.teacherStudentRef.data.forEach((student) => {
if(student.uid === e.uid) {
this.setState(prevState => ({
teacherStudentComponent: {
Expand Down Expand Up @@ -712,7 +732,7 @@ export class TeacherDashboard extends React.Component {
attendanceComponent={this.state.attendanceComponent}
studentsOptionClicked={this.state.studentsOptionClicked}
teacherStudentComponent={this.state.teacherStudentComponent}
teacherStudentRef={this.state.teacherStudentRef}
teacherStudentRef={this.props.teacherStudentRef}
teacherStudentComponentHandleTeacherStudentClick={this.teacherStudentComponentHandleTeacherStudentClick}
handleMenuClick={this.handleMenuClick}
studentAttendanceSubmitClicked={this.studentAttendanceSubmitClicked}
Expand Down
13 changes: 7 additions & 6 deletions components/teacherStudentComponent.js
Original file line number Diff line number Diff line change
Expand Up @@ -25,19 +25,19 @@ export default class TeacherStudentComponent extends React.Component {
componentDidMount() {
console.log("in teacherStudent component....");
console.log(this.props.teacherStudentComponent.currentUserDoc);
console.log(this.props.teacherStudentComponent.teacherStudentRef.data);
console.log(this.props.teacherStudentRef.data);
}

titleComponent = () => {
if(this.props.teacherStudentComponent.currentUserDoc && this.props.teacherStudentComponent.teacherStudentRef.data && !this.props.teacherStudentComponent.individualStudentEditClicked){
if(this.props.teacherStudentComponent.currentUserDoc && this.props.teacherStudentRef.data && !this.props.teacherStudentComponent.individualStudentEditClicked){
return(
<Title level={2} style={{float: "left"}}>All Students</Title>
)
}
}

addStudentsButtonComponent = () => {
if(this.props.teacherStudentComponent.currentUserDoc && this.props.teacherStudentComponent.teacherStudentRef.data && !this.props.teacherStudentComponent.individualStudentEditClicked){
if(this.props.teacherStudentComponent.currentUserDoc && this.props.teacherStudentRef.data && !this.props.teacherStudentComponent.individualStudentEditClicked){
return(
<Button type="primary" icon={<FolderAddTwoTone />} size="default" style={{marginLeft: 40}}>
Add Students
Expand All @@ -48,14 +48,14 @@ export default class TeacherStudentComponent extends React.Component {

showStudentsComponent = (context) => {
console.log("in teacherStudentComponent");
console.log(this.props.teacherStudentComponent.teacherStudentRef.data);
console.log(this.props.teacherStudentRef.data);
// check if the individualStudentEditClicked is clicked
if(this.props.teacherStudentComponent.currentUserDoc && this.props.teacherStudentComponent.teacherStudentRef.data && !this.props.teacherStudentComponent.individualStudentEditClicked){
if(this.props.teacherStudentComponent.currentUserDoc && this.props.teacherStudentRef.data && !this.props.teacherStudentComponent.individualStudentEditClicked){
const antIcon = <LoadingOutlined style={{ fontSize: 20 }} spin />;
return(
<List style={{position: "absolute"}}>
{
this.props.teacherStudentComponent.teacherStudentRef.data.map(function(d, idx){
this.props.teacherStudentRef.data.map(function(d, idx){
return(
<List.Item key={d.uid} style={{float: "left", position: "absolute"}}
actions={[
Expand All @@ -81,6 +81,7 @@ export default class TeacherStudentComponent extends React.Component {
)
} else if (this.props.teacherStudentComponent.individualStudentEditClicked == true) {
return <TeacherEditStudentComponent
teacherStudentRef={this.props.teacherStudentRef}
individualEditStudentInformation={this.props.teacherStudentComponent.individualEditStudentInformation}
teacherStudentComponent={this.props.teacherStudentComponent}
handleIndividualStudentTeacherEditNameChange={this.props.handleIndividualStudentTeacherEditNameChange}
Expand Down
22 changes: 21 additions & 1 deletion pages/dashboard.js
Original file line number Diff line number Diff line change
Expand Up @@ -19,6 +19,7 @@ class Dashboard extends React.Component {
studentDashboard: false,
teacherDashboard: false,
};
this.handleUpdateOnStudent = this.handleUpdateOnStudent.bind(this);
}

componentDidMount() {
Expand Down Expand Up @@ -67,6 +68,21 @@ class Dashboard extends React.Component {
}
}

handleUpdateOnStudent = () => {
// get the latest update on the students
const getStudentCollectionDocumentsAsTeacher = functions.httpsCallable('getStudentCollectionDocumentsAsTeacher');
getStudentCollectionDocumentsAsTeacher({
uid: this.state.authUser.uid,
}).then(result => {
console.log('update sucessful for email and password as teacher' + JSON.stringify(result));
this.setState({
teacherStudentRef: result
});
}).catch(err => {
console.log(err)
});
}

render() {
const renderConditionalDashboard = () => {
console.log("be here now")
Expand All @@ -75,7 +91,11 @@ class Dashboard extends React.Component {
Router.push('/teacher_setup');
} else if(this.state.teacherDashboard == true) {
console.log("made it to teacher dashboard conditional");
return <TeacherDashboard authUser={this.state.authUser} currentUserDoc={this.state.currentUserDoc} teacherStudentRef={this.state.teacherStudentRef}/>
return <TeacherDashboard
authUser={this.state.authUser} currentUserDoc={this.state.currentUserDoc}
teacherStudentRef={this.state.teacherStudentRef}
handleUpdateOnStudent={this.handleUpdateOnStudent}
/>
} else {
return <p>Nothing implemented for these conditions yet...</p>
}
Expand Down

0 comments on commit 9af498f

Please sign in to comment.