Skip to content

Commit 1383bc5

Browse files
committed
Merge branch 'dev' of github.com:lowcoder-org/lowcoder into charts
2 parents d071fc9 + 8f5368b commit 1383bc5

File tree

2 files changed

+30
-25
lines changed

2 files changed

+30
-25
lines changed

client/packages/lowcoder/src/comps/hooks/localStorageComp.ts

+29-14
Original file line numberDiff line numberDiff line change
@@ -13,21 +13,28 @@ const APP_STORE_NAMESPACE = "lowcoder_app_local_storage";
1313
const LocalStorageCompBase = withViewFn(
1414
simpleMultiComp({ values: stateComp<JSONObject>({}) }),
1515
(comp) => {
16-
const originStore = localStorage.getItem(APP_STORE_NAMESPACE) || "{}";
17-
let parseStore = {};
18-
try {
19-
parseStore = JSON.parse(originStore);
20-
} catch (e) {
21-
log.error("application local storage invalid");
22-
}
23-
16+
// add custom event listener to update values reactively
2417
useEffect(() => {
25-
const value = comp.children.values.value;
26-
if (!isEqual(value, parseStore)) {
27-
log.info(value, parseStore);
28-
comp.children.values.dispatchChangeValueAction(parseStore);
29-
}
30-
}, [parseStore]);
18+
const handler = () => {
19+
try {
20+
const raw = localStorage.getItem(APP_STORE_NAMESPACE) || "{}";
21+
const parsed = JSON.parse(raw);
22+
comp.children.values.dispatchChangeValueAction(parsed);
23+
} catch (e) {
24+
log.error("Failed to parse localStorage:", e);
25+
}
26+
};
27+
28+
// Add listener on mount
29+
window.addEventListener("lowcoder-localstorage-updated", handler);
30+
31+
// Run once on mount to initialize
32+
handler();
33+
34+
return () => {
35+
window.removeEventListener("lowcoder-localstorage-updated", handler);
36+
};
37+
}, []);
3138

3239
return null;
3340
}
@@ -62,6 +69,8 @@ LocalStorageComp = withMethodExposing(LocalStorageComp, [
6269
parseStore[key] = value;
6370
localStorage.setItem(APP_STORE_NAMESPACE, JSON.stringify(parseStore));
6471
comp.children.values.dispatchChangeValueAction(parseStore);
72+
73+
window.dispatchEvent(new CustomEvent("lowcoder-localstorage-updated"));
6574
} catch (e) {
6675
localStorage.setItem(APP_STORE_NAMESPACE, "{}");
6776
}
@@ -83,6 +92,9 @@ LocalStorageComp = withMethodExposing(LocalStorageComp, [
8392
delete parseStore[key];
8493
localStorage.setItem(APP_STORE_NAMESPACE, JSON.stringify(parseStore));
8594
comp.children.values.dispatchChangeValueAction(parseStore);
95+
96+
// Trigger update
97+
window.dispatchEvent(new CustomEvent("lowcoder-localstorage-updated"));
8698
} catch (e) {
8799
localStorage.setItem(APP_STORE_NAMESPACE, "{}");
88100
}
@@ -98,6 +110,9 @@ LocalStorageComp = withMethodExposing(LocalStorageComp, [
98110
execute: (comp) => {
99111
localStorage.removeItem(APP_STORE_NAMESPACE);
100112
comp.children.values.dispatchChangeValueAction({});
113+
114+
// Trigger update
115+
window.dispatchEvent(new CustomEvent("lowcoder-localstorage-updated"));
101116
},
102117
},
103118
]);

server/api-service/lowcoder-server/src/main/java/org/lowcoder/api/usermanagement/OrganizationController.java

+1-11
Original file line numberDiff line numberDiff line change
@@ -68,17 +68,7 @@ public Mono<PageResponseView<?>> getOrganizationByUser(@PathVariable String emai
6868
.map(OrgView::new)
6969
.cache();
7070
} else {
71-
// Not SAAS: check if user exists and is a member of the org
72-
flux = userService.findByEmailDeep(email)
73-
.flatMapMany(user ->
74-
organizationService.getOrganizationInEnterpriseMode().flux()
75-
.flatMap(org ->
76-
orgMemberService.getOrgMember(org.getId(), user.getId())
77-
.filter(orgMember -> !orgMember.isInvalid())
78-
.map(__ -> new OrgView(org))
79-
)
80-
)
81-
.cache();
71+
flux = organizationService.getOrganizationInEnterpriseMode().flux().map(OrgView::new).cache();
8272
}
8373
var newflux = flux.sort((OrgView o1, OrgView o2) -> {
8474
if (o1.getOrgName() == null || o2.getOrgName() == null) {

0 commit comments

Comments
 (0)