import { Role } from '~/constants/auth'; import { ICommentGroup, INode } from '~/types'; import { IUser } from '~/types/auth'; import { path } from 'ramda'; import { NODE_TYPES } from '~/constants/node'; export const canEditNode = (node?: Partial, user?: Partial): boolean => path(['role'], user) === Role.Admin || path(['user', 'id'], node) === path(['id'], user); export const canEditComment = (comment?: Partial, user?: Partial): boolean => path(['role'], user) === Role.Admin || path(['user', 'id'], comment) === path(['id'], user); export const canLikeNode = (node?: Partial, user?: Partial): boolean => path(['role'], user) !== Role.Guest; export const canStarNode = (node?: Partial, user?: Partial): boolean => path(['type'], node) === NODE_TYPES.IMAGE && path(['is_promoted'], node) === true && path(['role'], user) === Role.Admin;