@@ -85,7 +113,8 @@ export default function ColorPicker(props: ColorConfigProps) {
{desc}
- {colorKey !== "borderRadius" ? (
+ {colorKey !== "borderRadius" &&
+ colorKey !== "gridColumns" && (
e.nativeEvent.key === "Enter" && colorInputBlur()}
/>
- ) : (
+ )}
+ {colorKey === "borderRadius" && (
@@ -117,6 +147,24 @@ export default function ColorPicker(props: ColorConfigProps) {
/>
)}
+ {colorKey === "gridColumns" && (
+
+
+
+
+
+
+
setGridColumns(e.target.value)}
+ onBlur={(e) => gridColumnsInputBlur(e.target.value)}
+ onKeyUp={(e) =>
+ e.nativeEvent.key === "Enter" &&
+ gridColumnsInputBlur(e.currentTarget.value)
+ }
+ />
+
+ )}
);
}
diff --git a/client/packages/lowcoder/src/comps/comps/containerComp/containerView.tsx b/client/packages/lowcoder/src/comps/comps/containerComp/containerView.tsx
index 7788862e2..990eb4782 100644
--- a/client/packages/lowcoder/src/comps/comps/containerComp/containerView.tsx
+++ b/client/packages/lowcoder/src/comps/comps/containerComp/containerView.tsx
@@ -58,6 +58,8 @@ import { checkIsMobile } from "util/commonUtils";
import { ExternalEditorContext } from "util/context/ExternalEditorContext";
import { selectCompModifierKeyPressed } from "util/keyUtils";
import { defaultLayout, GridItemComp, GridItemDataType } from "../gridItemComp";
+import { ThemeContext } from "comps/utils/themeContext";
+import { defaultTheme } from "comps/controls/styleControlConstants";
const childrenMap = {
layout: valueComp({}),
@@ -312,6 +314,12 @@ export function InnerGrid(props: ViewPropsWithSelect) {
const editorState = useContext(EditorContext);
const { readOnly } = useContext(ExternalEditorContext);
+ //Added By Aqib Mirza
+ const defaultGrid =
+ useContext(ThemeContext)?.theme?.gridColumns ||
+ defaultTheme?.gridColumns ||
+ "24";
+ /////////////////////
const isDroppable =
useContext(IsDroppable) && (_.isNil(props.isDroppable) || props.isDroppable) && !readOnly;
const isDraggable = !readOnly && (_.isNil(props.isDraggable) || props.isDraggable);
@@ -354,7 +362,7 @@ export function InnerGrid(props: ViewPropsWithSelect) {
margin: [0, 0],
containerPadding: [0, 0],
containerWidth: width,
- cols: DEFAULT_GRID_COLUMNS,
+ cols: parseInt(defaultGrid),
rowHeight: currentRowHeight,
maxRows: currentRowCount,
};
@@ -493,7 +501,7 @@ export function InnerGrid(props: ViewPropsWithSelect) {
rowHeight={currentRowHeight}
overflow={props.overflow}
extraHeight={props.extraHeight}
- cols={DEFAULT_GRID_COLUMNS}
+ cols={parseInt(defaultGrid)}
autoHeight={props.autoHeight}
minHeight={props.minHeight}
bgColor={props.bgColor}
diff --git a/client/packages/lowcoder/src/comps/comps/gridLayoutComp/canvasView.tsx b/client/packages/lowcoder/src/comps/comps/gridLayoutComp/canvasView.tsx
index 767730870..e8d0cee74 100644
--- a/client/packages/lowcoder/src/comps/comps/gridLayoutComp/canvasView.tsx
+++ b/client/packages/lowcoder/src/comps/comps/gridLayoutComp/canvasView.tsx
@@ -91,6 +91,18 @@ export function CanvasView(props: ContainerBaseProps) {
const isModule = appType === AppTypeEnum.Module;
const bgColor = (useContext(ThemeContext)?.theme || defaultTheme).canvas;
+ // Added By Aqib Mirza
+ const defaultGrid =
+ useContext(ThemeContext)?.theme?.gridColumns ||
+ defaultTheme?.gridColumns ||
+ "24";
+
+ const positionParams = {
+ ...props.positionParams,
+ cols: parseInt(defaultGrid),
+ };
+ //////////////////////
+
if (readOnly) {
return (
;
-export const DEFAULT_GRID_COLUMNS = 24;
+// Added By Aqib Mirza
+let gridColumns: number;
+
+const getDefaultGridColumns = () => {
+ return gridColumns;
+};
+
+export { getDefaultGridColumns };
+export const DEFAULT_GRID_COLUMNS = getDefaultGridColumns() || 24;
+//////////////////////
+
export const DEFAULT_ROW_HEIGHT = 8;
export const DEFAULT_POSITION_PARAMS: PositionParams = {
diff --git a/client/packages/lowcoder/src/layout/gridLayout.tsx b/client/packages/lowcoder/src/layout/gridLayout.tsx
index e30300e4e..6eae5a248 100644
--- a/client/packages/lowcoder/src/layout/gridLayout.tsx
+++ b/client/packages/lowcoder/src/layout/gridLayout.tsx
@@ -147,7 +147,7 @@ class GridLayout extends React.Component {
);
// log.debug("layout: getDrivedState. nextProps: ", nextProps.layout, " prevState: ", prevState.layout, " newLayoutBase: ", newLayoutBase, " newLayout: ", newLayout);
return {
- layout: newLayout,
+ layout: draggingUtils.isDragging() ? newLayout : nextProps.layout,
// We need to save these props to state for using
// getDerivedStateFromProps instead of componentDidMount (in which we would get extra rerender)
children: nextProps.children,
diff --git a/client/packages/lowcoder/src/pages/setting/theme/detail/index.tsx b/client/packages/lowcoder/src/pages/setting/theme/detail/index.tsx
index 386f72e79..1fdd24283 100644
--- a/client/packages/lowcoder/src/pages/setting/theme/detail/index.tsx
+++ b/client/packages/lowcoder/src/pages/setting/theme/detail/index.tsx
@@ -127,7 +127,7 @@ class ThemeDetailPage extends React.Component
+
+
+ {trans("themeDetail.gridColumns")}
+ {
+ this.configChange(params);
+ }}
+ />
+
+
{trans("themeDetail.chart")}
{trans("themeDetail.chartDesc")}
-
+
{" "}
{trans("themeDetail.echartsJson")}
diff --git a/client/packages/lowcoder/src/pages/setting/theme/styledComponents.tsx b/client/packages/lowcoder/src/pages/setting/theme/styledComponents.tsx
index b4fabe71e..a3bbe4caf 100644
--- a/client/packages/lowcoder/src/pages/setting/theme/styledComponents.tsx
+++ b/client/packages/lowcoder/src/pages/setting/theme/styledComponents.tsx
@@ -653,3 +653,15 @@ export const CustomModalStyled = styled(CustomModal)`
margin-top: 20px;
}
`;
+
+// Added By Aqib Mirza
+export const GridColumns = styled.div<{ gridColumns: string }>`
+ > div {
+ margin: 3px;
+ overflow: hidden;
+ > svg {
+ fill: currentColor;
+ }
+ }
+ }
+`;
diff --git a/client/packages/lowcoder/src/pages/setting/theme/themeConstant.tsx b/client/packages/lowcoder/src/pages/setting/theme/themeConstant.tsx
index 798569059..a346be9da 100644
--- a/client/packages/lowcoder/src/pages/setting/theme/themeConstant.tsx
+++ b/client/packages/lowcoder/src/pages/setting/theme/themeConstant.tsx
@@ -29,6 +29,7 @@ export const themeTemplateList = [
primarySurface: "#FFFFFF",
borderRadius: "4px",
chart: JSON.stringify(ChartTheme, null, 2),
+ gridColumns: "24", //Added By Aqib Mirza
},
},
{
@@ -43,6 +44,7 @@ export const themeTemplateList = [
primarySurface: "#495780",
borderRadius: "4px",
chart: JSON.stringify(ChartYellowTheme, null, 2),
+ gridColumns: "24", //Added By Aqib Mirza
},
},
{
@@ -57,6 +59,7 @@ export const themeTemplateList = [
primarySurface: "#FFFFFF",
borderRadius: "4px",
chart: JSON.stringify(ChartGreenTheme, null, 2),
+ gridColumns: "24", //Added By Aqib Mirza
},
},
];