All files / js/composables usePermissionError.ts

100% Statements 15/15
100% Branches 4/4
100% Functions 5/5
100% Lines 15/15

Press n or j to go to the next uncovered block, b, p or k for the previous block.

1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53                1x 1x     4x 1x 1x     4x 3x 3x     4x 2x           2x     4x 2x             2x     4x                  
import { ref } from 'vue';
 
interface PermissionError {
    module: string;
    ability: string;
    message: string;
}
 
const permissionError = ref<PermissionError | null>(null);
const showPermissionModal = ref(false);
 
export function usePermissionError() {
    const showError = (error: PermissionError) => {
        permissionError.value = error;
        showPermissionModal.value = true;
    };
 
    const hideError = () => {
        showPermissionModal.value = false;
        permissionError.value = null;
    };
 
    const getModuleDisplayName = (module: string) => {
        const moduleNames: Record<string, string> = {
            'customers': 'Customers',
            'users': 'Users',
            'groups': 'Groups',
            'contacts': 'Contacts',
        };
        return moduleNames[module] || module.charAt(0).toUpperCase() + module.slice(1);
    };
 
    const getAbilityDisplayName = (ability: string) => {
        const abilityNames: Record<string, string> = {
            'list': 'view the list of',
            'view': 'view',
            'create': 'create',
            'edit': 'edit',
            'delete': 'delete',
        };
        return abilityNames[ability] || ability;
    };
 
    return {
        permissionError,
        showPermissionModal,
        showError,
        hideError,
        getModuleDisplayName,
        getAbilityDisplayName,
    };
}