Files
HiveGrid-Wireframes/hivegrid-cloud/apps/web/app/utils/helpers/EntityViewHelper.ts
T

63 lines
1.7 KiB
TypeScript

import { EntityView } from "@toolctrl/db/prisma-browser";
import { ViewFilterCondition } from "~/application/enums/entities/ViewFilterCondition";
import { GridLayoutDto } from "~/application/dtos/layout/GridLayoutDto";
function getCondition(condition: string) {
switch (condition) {
case "equals":
return ViewFilterCondition.equals;
case "contains":
return ViewFilterCondition.contains;
case "lt":
return ViewFilterCondition.lt;
case "lte":
return ViewFilterCondition.lte;
case "gt":
return ViewFilterCondition.gt;
case "gte":
return ViewFilterCondition.gte;
case "startsWith":
return ViewFilterCondition.startsWith;
case "endsWith":
return ViewFilterCondition.endsWith;
case "in":
return ViewFilterCondition.in;
case "notIn":
return ViewFilterCondition.notIn;
default:
return ViewFilterCondition.equals;
}
}
function getGridLayout(view: EntityView | null): GridLayoutDto {
const layout: GridLayoutDto = {
columns: view?.gridColumns ?? 5,
sm: view?.gridColumnsSm ?? 2,
md: view?.gridColumnsMd ?? 3,
lg: view?.gridColumnsLg ?? 4,
xl: view?.gridColumnsXl ?? 5,
xl2: view?.gridColumns2xl ?? 6,
gap: (view?.gridGap ?? "sm") as "xs" | "sm" | "md" | "lg" | "xl",
};
return layout;
}
function getType(view: EntityView): "default" | "tenant" | "user" | "system" {
if (view.isSystem) {
return "system";
} else if (view.tenantId && !view.userId) {
return "tenant";
} else if (view.tenantId && view.userId) {
return "user";
} else if (!view.tenantId && !view.userId) {
return "default";
}
return "default";
}
export default {
getCondition,
getGridLayout,
getType,
};