mirror of
https://github.com/OneUptime/oneuptime.git
synced 2026-04-06 00:32:12 +02:00
36 lines
1.3 KiB
TypeScript
36 lines
1.3 KiB
TypeScript
import AlignItem from "../../Types/AlignItem";
|
|
import SelectEntityField from "../../Types/SelectEntityField";
|
|
import FieldType from "../Types/FieldType";
|
|
import AnalyticsBaseModel from "../../../Models/AnalyticsModels/AnalyticsBaseModel/AnalyticsBaseModel";
|
|
import BaseModel from "../../../Models/DatabaseModels/DatabaseBaseModel/DatabaseBaseModel";
|
|
import IconProp from "../../../Types/Icon/IconProp";
|
|
import ObjectID from "../../../Types/ObjectID";
|
|
import { ReactElement } from "react";
|
|
|
|
export interface ActionButton {
|
|
buttonText: string;
|
|
icon: IconProp;
|
|
onClick: (id: ObjectID) => void;
|
|
}
|
|
|
|
export default interface Columns<
|
|
TEntity extends BaseModel | AnalyticsBaseModel,
|
|
> {
|
|
field: SelectEntityField<TEntity>;
|
|
selectedProperty?: string | undefined;
|
|
title: string;
|
|
contentClassName?: string | undefined;
|
|
colSpan?: number | undefined;
|
|
disableSort?: boolean;
|
|
description?: string | undefined;
|
|
type: FieldType;
|
|
tooltipText?: ((item: TEntity) => string) | undefined;
|
|
actionButtons?: Array<ActionButton>;
|
|
alignItem?: AlignItem | undefined;
|
|
noValueMessage?: string | undefined;
|
|
hideOnMobile?: boolean | undefined; // Hide column on mobile devices
|
|
getElement?:
|
|
| ((item: TEntity, onBeforeFetchData?: TEntity | undefined) => ReactElement)
|
|
| undefined;
|
|
}
|