veza/apps/web/src/features/playlists/hooks/usePlaylistPermissions.ts
2025-12-17 08:07:35 -05:00

34 lines
929 B
TypeScript

import { useMemo } from 'react';
import { useAuth } from '@/features/auth/hooks/useAuth';
import type { Playlist } from '../types';
export function usePlaylistPermissions(playlist?: Playlist) {
const { user } = useAuth();
return useMemo(() => {
if (!playlist || !user) {
return {
canEdit: false,
canDelete: false,
canAddTracks: false,
canRemoveTracks: false,
canManageCollaborators: false,
canRead: false,
isOwner: false,
};
}
const isOwner = String(playlist.user_id) === String(user.id);
// Add logic for collaborators if/when implemented
return {
canEdit: isOwner,
canDelete: isOwner,
canAddTracks: isOwner,
canRemoveTracks: isOwner,
canManageCollaborators: isOwner,
canRead: true, // Anyone can read public playlists, owner can read private ones
isOwner,
};
}, [playlist, user]);
}