};
const getUserRole = (permissions?: string[]): string => {
if (!permissions) return 'user';
if (permissions.includes('DELETE')) return 'admin';
if (permissions.includes('EDIT')) return 'curator';
return 'user';
};
const sortDatasetsByRole = (datasets: Dataset[]): Dataset[] => {
return [...datasets].sort((a, b) => {
const roleA = getUserRole(a.permissions);
const roleB = getUserRole(b.permissions);
// Define role priority: admin (0), curator (1), user (2)
const rolePriority = { admin: 0, curator: 1, user: 2 };
return rolePriority[roleA as keyof typeof rolePriority] - rolePriority[roleB as keyof typeof rolePriority];
});