diff --git a/packages/frontend-core/src/components/grid/lib/utils.js b/packages/frontend-core/src/components/grid/lib/utils.js new file mode 100644 index 0000000000..ee74a14bf0 --- /dev/null +++ b/packages/frontend-core/src/components/grid/lib/utils.js @@ -0,0 +1,32 @@ +// TODO: remove when all stores are typed + +import { GeneratedIDPrefix, CellIDSeparator } from "./constants" +import { Helpers } from "@budibase/bbui" + +export const parseCellID = cellId => { + if (!cellId) { + return { rowId: undefined, field: undefined } + } + const parts = cellId.split(CellIDSeparator) + const field = parts.pop() + return { rowId: parts.join(CellIDSeparator), field } +} + +export const getCellID = (rowId, fieldName) => { + return `${rowId}${CellIDSeparator}${fieldName}` +} + +export const parseEventLocation = e => { + return { + x: e.clientX ?? e.touches?.[0]?.clientX, + y: e.clientY ?? e.touches?.[0]?.clientY, + } +} + +export const generateRowID = () => { + return `${GeneratedIDPrefix}${Helpers.uuid()}` +} + +export const isGeneratedRowID = id => { + return id?.startsWith(GeneratedIDPrefix) +}