import type { GridColDef, GridValidRowModel } from "@mui/x-data-grid";

export const CDC_GPSF_MEETING_REQUESTS_PAGE_SIZE = 10;
export const CDC_GPSF_MEETING_REQUESTS_GRID_PAGE_SIZE = 3;
export const CDC_GPSF_MEETING_REQUEST_COLUMN_WIDTH = 161;
export const CDC_GPSF_MEETING_REQUESTS_TABLE_MIN_WIDTH = 1847;

export const CDC_GPSF_MEETING_REQUESTS_TABLE_COLORS = {
  border: "#f5f5f5",
  headerBackground: "#ddedfb",
  headerText: "#717680",
  bodyText: "#181d27",
};

/** Lock each column to its configured width so DataGrid does not compress columns. */
export function withFixedColumnWidths<Row extends GridValidRowModel>(
  columns: GridColDef<Row>[],
): GridColDef<Row>[] {
  return columns.map((column) => {
    const width = typeof column.width === "number" ? column.width : 120;

    return {
      ...column,
      width,
      minWidth: width,
      maxWidth: width,
      flex: 0,
      resizable: false,
    };
  });
}
