summaryrefslogtreecommitdiff
path: root/app/assets/javascripts/notes/stores
diff options
context:
space:
mode:
authorFilipa Lacerda <filipa@gitlab.com>2017-07-28 18:43:19 +0100
committerFilipa Lacerda <filipa@gitlab.com>2017-07-28 18:43:19 +0100
commit2845dad2afcfd1f6e4d48d96d957ac7b33051524 (patch)
treeee4b7d6ca1605e72d207ebfd7376ee7dac7e547d /app/assets/javascripts/notes/stores
parent7a251207e1b6f2b4c709d319d870694ace620e0c (diff)
downloadgitlab-ce-2845dad2afcfd1f6e4d48d96d957ac7b33051524.tar.gz
Find last note created by current user through vue instead of querying the DOM
Diffstat (limited to 'app/assets/javascripts/notes/stores')
-rw-r--r--app/assets/javascripts/notes/stores/getters.js13
1 files changed, 13 insertions, 0 deletions
diff --git a/app/assets/javascripts/notes/stores/getters.js b/app/assets/javascripts/notes/stores/getters.js
index 83f18886b24..c454b834649 100644
--- a/app/assets/javascripts/notes/stores/getters.js
+++ b/app/assets/javascripts/notes/stores/getters.js
@@ -21,3 +21,16 @@ export const notesById = (state) => {
return notesByIdObject;
};
+
+const reverseNotes = array => array.slice(0).reverse();
+const isLastNote = (note, userId) => !note.system && note.author.id === userId;
+
+export const getCurrentUserLastNote = state => userId => reverseNotes(state.notes)
+ .reduce((acc, note) => {
+ acc.push(reverseNotes(note.notes).find(el => isLastNote(el, userId)));
+ return acc;
+ }, []).filter(el => el !== undefined)[0];
+
+export const getDiscussionLastNote = state => (discussion, userId) => reverseNotes(discussion[0].notes)
+ .find(el => isLastNote(el, userId));
+