Skip to content

Commit

Permalink
feat(UiSchema): Shortahnd column definition
Browse files Browse the repository at this point in the history
  • Loading branch information
codeliner committed Jul 14, 2023
1 parent ddf078c commit 05805aa
Show file tree
Hide file tree
Showing 3 changed files with 17 additions and 6 deletions.
4 changes: 3 additions & 1 deletion .eslintrc.json
Original file line number Diff line number Diff line change
Expand Up @@ -6,7 +6,9 @@
{
"files": ["*.ts", "*.tsx"],
"extends": ["plugin:@nx/typescript"],
"rules": {}
"rules": {
"no-case-declarations": "off"
}
},
{
"files": ["*.js", "*.jsx"],
Expand Down
14 changes: 10 additions & 4 deletions packages/cody/src/lib/hooks/utils/ui/upsert-list-view-component.ts
Original file line number Diff line number Diff line change
Expand Up @@ -7,7 +7,7 @@ import {names} from "@event-engine/messaging/helpers";
import {
getVoMetadata,
PageLinkTableColumn,
RefTableColumn,
RefTableColumn, StringOrTableColumnUiSchema,
TableColumnUiSchema,
ValueObjectMetadata
} from "../value-object/get-vo-metadata";
Expand Down Expand Up @@ -86,17 +86,23 @@ export const upsertListViewComponent = async (vo: Node, voMeta: ValueObjectMetad
const compileTableColumns = (vo: Node, voMeta: ValueObjectMetadata, itemVO: Node, itemVOMeta: ValueObjectMetadata, ctx: Context): [string[], string[], string[]] | CodyResponse => {
const columns = getColumns(vo, voMeta, itemVO, itemVOMeta, ctx);
let imports: string[] = [];
let hooks: string[] = [];
const hooks: string[] = [];

if(isCodyError(columns)) {
return columns;
}

const strColumns: string[] = [];

for (const column of columns) {
for (let column of columns) {
// @TODO: Validate column

if(typeof column === "string") {
column = {
field: column
}
}

if(!column['headerName']) {
column['headerName'] = camelCaseToTitle(column['field']);
}
Expand Down Expand Up @@ -184,7 +190,7 @@ const compileTableColumns = (vo: Node, voMeta: ValueObjectMetadata, itemVO: Node
return [strColumns, imports, hooks];
}

const getColumns = (vo: Node, voMeta: ValueObjectMetadata, itemVO: Node, itemVOMeta: ValueObjectMetadata, ctx: Context): TableColumnUiSchema[] | CodyResponse => {
const getColumns = (vo: Node, voMeta: ValueObjectMetadata, itemVO: Node, itemVOMeta: ValueObjectMetadata, ctx: Context): StringOrTableColumnUiSchema[] | CodyResponse => {
return voMeta.uiSchema?.table?.columns || deriveColumnsFromSchema(vo, voMeta, itemVO, itemVOMeta, ctx);
}

Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -51,9 +51,12 @@ export interface TableColumnUiSchema {
link?: string | Rule[];
}

export type StringOrTableColumnUiSchema = string | TableColumnUiSchema;


export interface TableUiSchema {
table?: {
columns?: TableColumnUiSchema[],
columns?: StringOrTableColumnUiSchema[],
pageSize?: number,
pageSizeOptions?: number[],
density?: GridDensity,
Expand Down

0 comments on commit 05805aa

Please sign in to comment.