Make some more code not change immutable objects
This commit is contained in:
parent
67f7ed0c20
commit
e0c95ad9ce
|
|
@ -40,8 +40,16 @@
|
||||||
},
|
},
|
||||||
update(store, {data: {updateSchoolClass: {schoolClass: {name}}}}) {
|
update(store, {data: {updateSchoolClass: {schoolClass: {name}}}}) {
|
||||||
const query = MY_SCHOOL_CLASS_QUERY;
|
const query = MY_SCHOOL_CLASS_QUERY;
|
||||||
const data = store.readQuery({query});
|
const {me} = store.readQuery({query});
|
||||||
data.me.selectedClass.name = name;
|
const data = {
|
||||||
|
me: {
|
||||||
|
...me,
|
||||||
|
selectedClass: {
|
||||||
|
...me.selectedClass,
|
||||||
|
name
|
||||||
|
}
|
||||||
|
}
|
||||||
|
};
|
||||||
store.writeQuery({query, data});
|
store.writeQuery({query, data});
|
||||||
}
|
}
|
||||||
});
|
});
|
||||||
|
|
|
||||||
|
|
@ -56,17 +56,26 @@
|
||||||
update(store, {data: {addRemoveMember: {success}}}) {
|
update(store, {data: {addRemoveMember: {success}}}) {
|
||||||
if (success) {
|
if (success) {
|
||||||
const query = MY_SCHOOL_CLASS_QUERY;
|
const query = MY_SCHOOL_CLASS_QUERY;
|
||||||
const data = store.readQuery({query});
|
const {me} = store.readQuery({query});
|
||||||
let memberIndex = data.me.selectedClass.members.findIndex(m => m.id === member.id);
|
let memberIndex = me.selectedClass.members.findIndex(m => m.id === member.id);
|
||||||
data.me.selectedClass.members = [
|
const members = [
|
||||||
...data.me.selectedClass.members.slice(0, memberIndex),
|
...me.selectedClass.members.slice(0, memberIndex),
|
||||||
{...member, active},
|
{...member, active},
|
||||||
...data.me.selectedClass.members.slice(memberIndex + 1),
|
...me.selectedClass.members.slice(memberIndex + 1),
|
||||||
];
|
];
|
||||||
if (member.isMe) {
|
|
||||||
// if we changed the currently selected class of the logged in user, we need to change this property too
|
// if we changed the currently selected class of the logged in user, we need to change this property too
|
||||||
data.me.selectedClass.readOnly = !active;
|
const readOnly = member.isMe ? !active : me.selectedClass.readOnly;
|
||||||
}
|
const data = {
|
||||||
|
me: {
|
||||||
|
...me,
|
||||||
|
selectedClass: {
|
||||||
|
...me.selectedClass,
|
||||||
|
readOnly,
|
||||||
|
members
|
||||||
|
}
|
||||||
|
}
|
||||||
|
};
|
||||||
store.writeQuery({query, data});
|
store.writeQuery({query, data});
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
|
|
|
||||||
Loading…
Reference in New Issue