ldc-groupe/resources/ts/lib/utils.ts
2025-10-29 10:14:29 +01:00

76 lines
1.5 KiB
TypeScript

// * Packages
import { clsx, type ClassValue } from "clsx";
import {
ArchiveIcon,
ArchiveRestoreIcon,
CopyIcon,
EyeIcon,
PencilIcon,
PlusIcon,
Trash2Icon,
} from "lucide-react";
import { twMerge } from "tailwind-merge";
/**
* Merge classes.
* @param inputs ClassValue[]
* @returns string
*/
export function cn(...inputs: ClassValue[]): string {
return twMerge(clsx(inputs));
}
/**
* List all actions on back-end models.
* @return object
*/
export const Views = {
CREATION: {
label: "create",
value: "create",
policy: "create",
icon: PlusIcon,
},
VISUALIZATION: {
label: "visualize",
value: "show",
policy: "view",
icon: EyeIcon,
},
EDITION: {
label: "edit",
value: "edit",
policy: "update",
icon: PencilIcon,
},
DUPLICATION: {
label: "duplicate",
value: "duplicate",
policy: "duplicate",
icon: CopyIcon,
},
ARCHIVATION: {
label: "archive",
value: "destroy",
policy: "delete",
icon: ArchiveIcon,
},
RESTORATION: {
label: "restore",
value: "restore",
policy: "restore",
icon: ArchiveRestoreIcon,
},
DELETION: {
label: "delete",
value: "destroy",
policy: "delete",
icon: Trash2Icon,
},
FORCEDELETION: {
label: "delete",
value: "forceDestroy",
policy: "forceDelete",
icon: Trash2Icon,
},
};