From c608243c404998ccaba3467664cc443b74ba413b Mon Sep 17 00:00:00 2001 From: Adria Navarro Date: Mon, 5 May 2025 16:20:41 +0200 Subject: [PATCH] Type screenTemplating inline --- .../builder/src/templates/BaseStructure.ts | 4 ++-- .../src/templates/screenTemplating/form.ts | 7 ++----- .../table/{inline.js => inline.ts} | 18 ++++++++++++++---- packages/types/src/ui/index.ts | 7 ++++--- packages/types/src/ui/permissions.ts | 4 ++++ 5 files changed, 26 insertions(+), 14 deletions(-) rename packages/builder/src/templates/screenTemplating/table/{inline.js => inline.ts} (82%) create mode 100644 packages/types/src/ui/permissions.ts diff --git a/packages/builder/src/templates/BaseStructure.ts b/packages/builder/src/templates/BaseStructure.ts index 99401dde1c..3dac75dd25 100644 --- a/packages/builder/src/templates/BaseStructure.ts +++ b/packages/builder/src/templates/BaseStructure.ts @@ -3,7 +3,7 @@ import { cloneDeep } from "lodash/fp" export class BaseStructure { private _isScreen: boolean - private _children: Component[] + private _children: (Component | BaseStructure)[] _json: T constructor(isScreen: boolean, initialDoc: T) { @@ -12,7 +12,7 @@ export class BaseStructure { this._json = initialDoc } - addChild(child: Component) { + addChild(child: Component | BaseStructure) { this._children.push(child) return this } diff --git a/packages/builder/src/templates/screenTemplating/form.ts b/packages/builder/src/templates/screenTemplating/form.ts index 4053da1c6f..6943145f87 100644 --- a/packages/builder/src/templates/screenTemplating/form.ts +++ b/packages/builder/src/templates/screenTemplating/form.ts @@ -1,7 +1,7 @@ import { componentStore } from "@/stores/builder" import { getRowActionButtonTemplates } from "@/templates/rowActions" import { Helpers } from "@budibase/bbui" -import { Screen as ScreenDoc } from "@budibase/types" +import { Screen as ScreenDoc, UIPermissions } from "@budibase/types" import { Component } from "../Component" import getValidRoute from "./getValidRoute" import { Screen } from "./Screen" @@ -24,10 +24,7 @@ export const getTypeSpecificRoute = ( } } -const getRole = ( - permissions: { read: string; write: string }, - type: FormType -) => { +const getRole = (permissions: UIPermissions, type: FormType) => { if (type === "view") { return permissions.read } diff --git a/packages/builder/src/templates/screenTemplating/table/inline.js b/packages/builder/src/templates/screenTemplating/table/inline.ts similarity index 82% rename from packages/builder/src/templates/screenTemplating/table/inline.js rename to packages/builder/src/templates/screenTemplating/table/inline.ts index abaa704075..8fce9de79a 100644 --- a/packages/builder/src/templates/screenTemplating/table/inline.js +++ b/packages/builder/src/templates/screenTemplating/table/inline.ts @@ -1,10 +1,20 @@ -import { Screen } from "../Screen" -import { Component } from "../../Component" import { capitalise } from "@/helpers" -import getValidRoute from "../getValidRoute" +import { SourceOption } from "@/pages/builder/app/[application]/design/_components/NewScreen/utils" import { getRowActionButtonTemplates } from "@/templates/rowActions" +import { Screen as ScreenDoc, UIPermissions } from "@budibase/types" +import { Component } from "../../Component" +import getValidRoute from "../getValidRoute" +import { Screen } from "../Screen" -const inline = async ({ tableOrView, permissions, screens }) => { +const inline = async ({ + tableOrView, + permissions, + screens, +}: { + tableOrView: SourceOption + permissions: UIPermissions + screens: ScreenDoc[] +}) => { const heading = new Component("@budibase/standard-components/textv2") .instanceName("Table heading") .customProps({ diff --git a/packages/types/src/ui/index.ts b/packages/types/src/ui/index.ts index b40baa61f5..9ae3af992c 100644 --- a/packages/types/src/ui/index.ts +++ b/packages/types/src/ui/index.ts @@ -1,8 +1,9 @@ -export * from "./stores" export * from "./bindings" +export * from "./BudibaseApp" +export * from "./common" export * from "./components" export * from "./dataFetch" export * from "./datasource" -export * from "./common" -export * from "./BudibaseApp" export * from "./fields" +export * from "./permissions" +export * from "./stores" diff --git a/packages/types/src/ui/permissions.ts b/packages/types/src/ui/permissions.ts new file mode 100644 index 0000000000..3ee49ec9e3 --- /dev/null +++ b/packages/types/src/ui/permissions.ts @@ -0,0 +1,4 @@ +export interface UIPermissions { + read: string + write: string +}