mirror of
https://github.com/kevin-DL/build-gmail-clone-with-vue-3.git
synced 2026-01-24 07:55:34 +00:00
Further composition api update: return hash to separate functions, rather than pre-hashing into emailSelection and returning
This commit is contained in:
@@ -13,29 +13,33 @@ export const useEmailSelection = function(){
|
|||||||
const clear = () => {
|
const clear = () => {
|
||||||
emails.clear();
|
emails.clear();
|
||||||
}
|
}
|
||||||
|
const toggle = (id) => {
|
||||||
const emailSelection = {
|
|
||||||
emails,
|
|
||||||
clear,
|
|
||||||
toggle(id) {
|
|
||||||
if(emails.has(id)) {
|
if(emails.has(id)) {
|
||||||
emails.delete(id)
|
emails.delete(id)
|
||||||
} else {
|
} else {
|
||||||
emails.add(id);
|
emails.add(id);
|
||||||
}
|
}
|
||||||
},
|
}
|
||||||
addMultiple(emails) {
|
const addMultiple = (emails) => {
|
||||||
emails.forEach(email => {
|
emails.forEach(email => {
|
||||||
emails.add(email)
|
emails.add(email)
|
||||||
})
|
})
|
||||||
},
|
|
||||||
markRead(){ forSelected(e => e.read = true )},
|
|
||||||
markUnread(){ forSelected(e => e.read = false )},
|
|
||||||
archive(){ forSelected(e => e.archived = true); clear();},
|
|
||||||
moveToInbox(){ forSelected(e => e.archived = false); clear();}
|
|
||||||
}
|
}
|
||||||
|
const markRead = () => { forSelected(e => e.read = true )}
|
||||||
|
const markUnread = () => { forSelected(e => e.read = false )}
|
||||||
|
const archive = () => { forSelected(e => e.archived = true); clear();}
|
||||||
|
const moveToInbox = () => { forSelected(e => e.archived = false); clear();}
|
||||||
|
|
||||||
return emailSelection
|
return {
|
||||||
|
emails,
|
||||||
|
clear,
|
||||||
|
toggle,
|
||||||
|
addMultiple,
|
||||||
|
markRead,
|
||||||
|
markUnread,
|
||||||
|
archive,
|
||||||
|
moveToInbox
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
export default useEmailSelection;
|
export default useEmailSelection;
|
||||||
Reference in New Issue
Block a user