You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
39 lines
764 B
39 lines
764 B
![]()
2 years ago
|
import { type } from "../../constants/entity/ccalendarevent"
|
||
|
|
||
|
export function useCalendarEvent() {
|
||
|
return {
|
||
|
findUserLink,
|
||
|
isEditableByUser,
|
||
|
}
|
||
|
}
|
||
|
|
||
|
/**
|
||
|
* @param {Object} event
|
||
|
* @param {number} userId
|
||
|
* @returns {Object|undefined}
|
||
|
*/
|
||
|
function findUserLink(event, userId) {
|
||
|
return event.resourceLinkListFromEntity.find((linkEntity) => linkEntity.user.id === userId)
|
||
|
}
|
||
|
|
||
|
/**
|
||
|
* @param {Object} event
|
||
|
* @param {number} userId
|
||
|
* @returns {boolean}
|
||
|
*/
|
||
|
function isEditableByUser(event, userId) {
|
||
|
if (event.resourceNode.creator.id === userId) {
|
||
|
return true
|
||
|
}
|
||
|
|
||
|
if (type.invitation === event.invitationType && event.collective) {
|
||
|
const userLink = findUserLink(event, userId)
|
||
|
|
||
|
if (userLink) {
|
||
|
return true
|
||
|
}
|
||
|
}
|
||
|
|
||
|
return false
|
||
|
}
|