Movatterモバイル変換


[0]ホーム

URL:


Skip to content

Navigation Menu

Sign in
Appearance settings

Search code, repositories, users, issues, pull requests...

Provide feedback

We read every piece of feedback, and take your input very seriously.

Saved searches

Use saved searches to filter your results more quickly

Sign up
Appearance settings

Commite24c16e

Browse files
authored
Merge pull request#714 from raheeliftikhar5/layers-collision
Added disabledCollision flag in app dsl to handle layers in editor
2 parents9c97268 +317455a commite24c16e

File tree

9 files changed

+46
-51
lines changed

9 files changed

+46
-51
lines changed

‎client/packages/lowcoder/src/comps/comps/appSettingsComp.tsx‎

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -138,6 +138,7 @@ const childrenMap = {
138138
maxWidth:dropdownInputSimpleControl(OPTIONS,USER_DEFINE,"1920"),
139139
themeId:valueComp<string>(DEFAULT_THEMEID),
140140
customShortcuts:CustomShortcutsComp,
141+
disableCollision:valueComp<boolean>(false),
141142
};
142143
typeChildrenInstance=RecordConstructorToComp<typeofchildrenMap>&{
143144
themeList:ThemeType[];

‎client/packages/lowcoder/src/comps/comps/containerComp/containerView.tsx‎

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -478,7 +478,6 @@ export function InnerGrid(props: ViewPropsWithSelect) {
478478
layout={props.layout}
479479
extraLayout={extraLayout}
480480
onDropDragOver={(e)=>{
481-
482481
constcompType=draggingUtils.getData<UICompType>("compType");
483482
constcompLayout=draggingUtils.getData<UICompLayoutInfo>("compLayout");
484483
if(compType){

‎client/packages/lowcoder/src/comps/editorState.tsx‎

Lines changed: 8 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -17,7 +17,7 @@ import { NameAndExposingInfo } from "./utils/exposingTypes";
1717
import{checkName}from"./utils/rename";
1818
import{trans}from"i18n";
1919
import{UiLayoutType}from"./comps/uiComp";
20-
import{getCollisionStatus,getEditorModeStatus}from"util/localStorageUtil";
20+
import{getEditorModeStatus,saveCollisionStatus}from"util/localStorageUtil";
2121

2222
typeRootComp=InstanceType<typeofRootCompTmp>;
2323

@@ -47,7 +47,7 @@ export class EditorState {
4747
readonlyshowPropertyPane:boolean=false;
4848
readonlyselectedCompNames:Set<string>=newSet();
4949
readonlyeditorModeStatus:string="";
50-
readonlycollisionStatus:string="";
50+
readonlycollisionStatus:boolean=false;
5151
readonlyisDragging:boolean=false;
5252
readonlydraggingCompType:string="button";
5353
readonlyforceShowGrid:boolean=false;// show grid lines
@@ -65,12 +65,13 @@ export class EditorState {
6565
rootComp:RootComp,
6666
setEditorState:(fn:(editorState:EditorState)=>EditorState)=>void,
6767
initialEditorModeStatus:string=getEditorModeStatus(),
68-
initialCollisionStatus:string=getCollisionStatus()
6968
){
7069
this.rootComp=rootComp;
7170
this.setEditorState=setEditorState;
7271
this.editorModeStatus=initialEditorModeStatus;
73-
this.collisionStatus=initialCollisionStatus;
72+
73+
// save collision status from app dsl to localstorage
74+
saveCollisionStatus(this.getCollisionStatus());
7475
}
7576

7677
/**
@@ -356,10 +357,6 @@ export class EditorState {
356357
this.changeState({editorModeStatus:newEditorModeStatus});
357358
}
358359

359-
setCollisionStatus(newCollisionStatus:string){
360-
this.changeState({collisionStatus:newCollisionStatus});
361-
}
362-
363360
setDragging(dragging:boolean){
364361
if(this.isDragging===dragging){
365362
return;
@@ -513,8 +510,9 @@ export class EditorState {
513510
getAppType():UiLayoutType{
514511
returnthis.getUIComp().children.compType.getView();
515512
}
516-
getCollisionStatus():string{
517-
returnthis.collisionStatus;
513+
getCollisionStatus():boolean{
514+
const{ disableCollision}=this.getAppSettings();
515+
returndisableCollision??false;
518516
}
519517

520518
}

‎client/packages/lowcoder/src/comps/generators/uiCompBuilder.tsx‎

Lines changed: 0 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -161,9 +161,6 @@ export const DisabledContext = React.createContext<boolean>(false);
161161
*/
162162
functionUIView(props:{comp:any;viewFn:any}){
163163
constcomp=props.comp;
164-
console.log(comp);
165-
166-
console.log(comp.children);
167164

168165
constchildrenProps=childrenToProps(comp.children);
169166
constparentDisabled=useContext(DisabledContext);

‎client/packages/lowcoder/src/layout/utils.ts‎

Lines changed: 1 addition & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -5,7 +5,6 @@ import { DraggableEvent } from "react-draggable";
55
import{PositionParams}from"./calculateUtils";
66
import{draggingUtils}from"./draggingUtils";
77
import{GridLayoutProps,ResizeHandleAxis}from"./gridLayoutPropTypes";
8-
98
import{getCollisionStatus}from"util/localStorageUtil";
109

1110
exporttypeLayoutItem={
@@ -172,12 +171,7 @@ export function collides(l1: LayoutItem, l2: LayoutItem): boolean {
172171
if(l1.y+l1.h<=l2.y)returnfalse;// l1 is above l2
173172
if(l1.y>=l2.y+l2.h)returnfalse;// l1 is below l2
174173

175-
if(getCollisionStatus()==="true"){
176-
returnfalse;
177-
}
178-
else{
179-
returntrue;// boxes overlap
180-
}
174+
return!getCollisionStatus();
181175
}
182176

183177
/**

‎client/packages/lowcoder/src/pages/ApplicationV2/HomeLayout.tsx‎

Lines changed: 6 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -25,7 +25,7 @@ import { useLocation } from "react-use";
2525
import{TrashTableView}from"./TrashTableView";
2626
import{HomepageTourV2}from"../tutorials/HomeTutorialsV2";
2727
import{HomeCardView}from"./HomeCardView";
28-
import{getHomeLayout,HomeLayoutType,saveHomeLayout}from"../../util/localStorageUtil";
28+
import{getHomeLayout,HomeLayoutType,removeCollisionStatus,saveHomeLayout}from"../../util/localStorageUtil";
2929
import{HomeTableView}from"./HomeTableView";
3030
import{Layers}from"../../constants/Layers";
3131
import{CreateDropdown}from"./CreateDropdown";
@@ -288,6 +288,11 @@ export function HomeLayout(props: HomeLayoutProps) {
288288

289289
useEffect(()=>saveHomeLayout(layout),[layout]);
290290

291+
useEffect(()=>{
292+
// remove collision status from localstorage
293+
removeCollisionStatus();
294+
},[]);
295+
291296
constcurrentPath=useLocation().pathname;
292297

293298
if(!user.currentOrgId){

‎client/packages/lowcoder/src/pages/editor/LeftLayersContent.tsx‎

Lines changed: 16 additions & 18 deletions
Original file line numberDiff line numberDiff line change
@@ -29,9 +29,7 @@ import { Button, Divider, Dropdown, Flex, Input, Menu, MenuProps, Space } from "
2929
import{Switch}from"antd";
3030
import{
3131
saveCollisionStatus,
32-
getCollisionStatus,
3332
}from"util/localStorageUtil";
34-
import{check,withViewFn}from"@lowcoder-ee/index.sdk";
3533
import{DownOutlined}from"@ant-design/icons";
3634
import{ItemType}from"antd/es/menu/hooks/useItems";
3735
importColorPicker,{configChangeParams}from"components/ColorPicker";
@@ -78,17 +76,18 @@ export const LeftLayersContent = (props: LeftLayersContentProps) => {
7876
constapplicationId=useApplicationId();
7977

8078
// added by Falk Wolsky to support a Layers in Lowcoder
81-
const[collisionStatus,setCollisionStatus]=useState(()=>{
82-
returngetCollisionStatus();
83-
});
84-
85-
consttoggleCollisionStatus:ToggleCollisionStatus=useCallback(
86-
(value)=>{
87-
setCollisionStatus(value ?value :("false"asDisabledCollisionStatus));
88-
saveCollisionStatus(value ?value :("false"asDisabledCollisionStatus));
89-
},
90-
[collisionStatus]
91-
);
79+
const[collisionStatus,setCollisionStatus]=useState(editorState.getCollisionStatus());
80+
81+
useEffect(()=>{
82+
saveCollisionStatus(collisionStatus);
83+
},[collisionStatus])
84+
85+
consthandleToggleLayer=(checked:boolean)=>{
86+
editorState.rootComp.children.settings.children.disableCollision.dispatchChangeValueAction(
87+
checked
88+
)
89+
setCollisionStatus(checked);
90+
}
9291

9392
constgetTree=(tree:CompTree,result:NodeItem[],key?:string)=>{
9493
const{ items, children}=tree;
@@ -429,7 +428,7 @@ export const LeftLayersContent = (props: LeftLayersContentProps) => {
429428
// TODO: sort by category
430429
// TODO: sort by Types etc.
431430
constuiCompInfos=_.sortBy(editorState.uiCompInfoList(),[(x)=>x.name]);
432-
constisDraggable=editorState.collisionStatus==="true" ?true :false;
431+
constisDraggable=editorState.getCollisionStatus();
433432

434433
return(
435434
<>
@@ -439,11 +438,10 @@ export const LeftLayersContent = (props: LeftLayersContentProps) => {
439438
<Switch
440439
style={{margin :"0px 10px"}}
441440
size="small"
442-
checked={editorState.collisionStatus=="true"}
441+
defaultChecked={collisionStatus}
443442
disabled={false}
444-
onChange={(value:any)=>{
445-
toggleCollisionStatus(value==true ?"true" :"false");
446-
editorState.setCollisionStatus(value==true ?"true" :"false");
443+
onChange={(value:boolean)=>{
444+
handleToggleLayer(value);
447445
}}
448446
/>
449447
</div>

‎client/packages/lowcoder/src/pages/editor/editorSkeletonView.tsx‎

Lines changed: 2 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -7,7 +7,7 @@ import {
77
LeftPanel,
88
MiddlePanel,
99
}from"pages/common/styledComponent";
10-
import{getPanelStatus,getEditorModeStatus,getPanelStyle,getCollisionStatus}from"util/localStorageUtil";
10+
import{getPanelStatus,getEditorModeStatus,getPanelStyle}from"util/localStorageUtil";
1111
import{BottomSkeleton}from"pages/editor/bottom/BottomContent";
1212
importRightPanelfrom"pages/editor/right/RightPanel";
1313
import_from"lodash";
@@ -48,7 +48,6 @@ export const EditorLoadingSpin = (props: { height?: string | number }) => {
4848
exportdefaultfunctionEditorSkeletonView(){
4949
constpanelStatus=getPanelStatus();
5050
consteditorModeStatus=getEditorModeStatus();
51-
constcollisionStatus=getCollisionStatus();
5251
constpanelStyle=getPanelStyle();
5352
constisUserViewMode=useUserViewMode();
5453
constisTemplate=useTemplateViewMode();
@@ -70,7 +69,7 @@ export default function EditorSkeletonView() {
7069
<SiderStyled/>
7170
{panelStatus.left&&(
7271
<LeftPanel
73-
collisionStatus={collisionStatus}
72+
collisionStatus={false}
7473
toggleCollisionStatus={_.noop}
7574
>
7675
<StyledSkeletonactiveparagraph={{rows:10}}/>

‎client/packages/lowcoder/src/util/localStorageUtil.ts‎

Lines changed: 12 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -47,18 +47,22 @@ export function saveEditorModeStatus(editorModeStatus: EditorModeStatus) {
4747
}
4848
//ADDED BY FRED TO SAVE enabledCollision
4949
exportfunctionsaveCollisionStatus(
50-
collisionStatus:DisabledCollisionStatus
50+
collisionStatus:boolean
5151
){
52-
localStorage.setItem("disable_collision",collisionStatus);
52+
localStorage.setItem("disableCollision",String(collisionStatus));
5353
}
5454

55-
exportconstDefaultCollisionStatus:DisabledCollisionStatus="true";
56-
exportfunctiongetCollisionStatus():DisabledCollisionStatus{
57-
conststr=localStorage.getItem("disable_collision");
58-
if(!str){
59-
returnDefaultCollisionStatus;
55+
//export const DefaultCollisionStatus: DisabledCollisionStatus = "true";
56+
exportfunctiongetCollisionStatus():boolean{
57+
conststr=localStorage.getItem("disableCollision");
58+
if(str==='true'){
59+
returntrue;
6060
}
61-
returnstrasDisabledCollisionStatus;
61+
returnfalse;
62+
}
63+
64+
exportfunctionremoveCollisionStatus(){
65+
localStorage.removeItem("disableCollision");
6266
}
6367

6468
exportconstDefaultEditorModeStatus:EditorModeStatus="both";

0 commit comments

Comments
 (0)

[8]ページ先頭

©2009-2025 Movatter.jp