Skip to content

Commit 919d7b9

Browse files
author
Connell, Joseph
committed
Merge branch 'dev' into duckdb_libraryUpdate
2 parents baf5862 + d828825 commit 919d7b9

File tree

337 files changed

+36868
-10850
lines changed

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

337 files changed

+36868
-10850
lines changed

.github/workflows/docker-images.yml

Lines changed: 45 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -10,8 +10,8 @@ on:
1010
default: 'latest'
1111
options:
1212
- latest
13+
- stable
1314
- test
14-
- 2.4.6
1515
build_allinone:
1616
type: boolean
1717
description: 'Build the All-In-One image'
@@ -41,24 +41,60 @@ jobs:
4141
build:
4242
runs-on: ubuntu-latest
4343
steps:
44+
- name: 'Setup jq'
45+
uses: dcarbone/install-jq-action@v3
46+
with:
47+
version: '1.7'
48+
4449
- name: Set environment variables
4550
shell: bash
4651
run: |
4752
# Get the short SHA of last commit
4853
echo "SHORT_SHA=$(echo ${{ github.sha }} | cut -c1-7)" >> "${GITHUB_ENV}"
49-
54+
5055
# Get branch name - we don't use github.ref_head_name since we don't build on PRs
5156
echo "BRANCH_NAME=${{ github.ref_name }}" >> "${GITHUB_ENV}"
52-
57+
5358
# Set docker image tag
54-
echo "IMAGE_TAG=${{ inputs.imageTag || github.ref_name }}" >> "${GITHUB_ENV}"
55-
59+
IMAGE_TAG=${{ inputs.imageTag || github.ref_name }}
60+
61+
# Check whether it's a release
62+
LATEST_TAG=$(
63+
curl -s -L \
64+
-H "Accept: application/vnd.github+json" \
65+
-H "Authorization: Bearer ${{ github.token }}" \
66+
https://api.github.com/repos/${{ github.repository }}/releases/latest \
67+
| jq -r '.tag_name'
68+
)
69+
IS_LATEST="false"
70+
if [[ "${LATEST_TAG}" == "${{ github.event.release.tag_name }}" ]]; then
71+
IS_LATEST="true"
72+
fi;
73+
5674
# Control which images to build
5775
echo "BUILD_ALLINONE=${{ inputs.build_allinone || true }}" >> "${GITHUB_ENV}"
5876
echo "BUILD_FRONTEND=${{ inputs.build_frontend || true }}" >> "${GITHUB_ENV}"
5977
echo "BUILD_NODESERVICE=${{ inputs.build_nodeservice || true }}" >> "${GITHUB_ENV}"
6078
echo "BUILD_APISERVICE=${{ inputs.build_apiservice || true }}" >> "${GITHUB_ENV}"
6179
80+
# Image names
81+
ALLINONE_IMAGE_NAMES=lowcoderorg/lowcoder-ce:${IMAGE_TAG}
82+
FRONTEND_IMAGE_NAMES=lowcoderorg/lowcoder-ce-frontend:${IMAGE_TAG}
83+
APISERVICE_IMAGE_NAMES=lowcoderorg/lowcoder-ce-api-service:${IMAGE_TAG}
84+
NODESERVICE_IMAGE_NAMES=lowcoderorg/lowcoder-ce-node-service:${IMAGE_TAG}
85+
86+
if [[ "${IS_LATEST}" == "true" ]]; then
87+
ALLINONE_IMAGE_NAMES="lowcoderorg/lowcoder-ce:latest,${ALLINONE_IMAGE_NAMES}"
88+
FRONTEND_IMAGE_NAMES="lowcoderorg/lowcoder-ce-frontend:latest,${FRONTEND_IMAGE_NAMES}"
89+
APISERVICE_IMAGE_NAMES="lowcoderorg/lowcoder-ce-api-service:latest,${APISERVICE_IMAGE_NAMES}"
90+
NODESERVICE_IMAGE_NAMES="lowcoderorg/lowcoder-ce-node-service:latest,${NODESERVICE_IMAGE_NAMES}"
91+
fi;
92+
93+
echo "ALLINONE_IMAGE_NAMES=${ALLINONE_IMAGE_NAMES}" >> "${GITHUB_ENV}"
94+
echo "FRONTEND_IMAGE_NAMES=${FRONTEND_IMAGE_NAMES}" >> "${GITHUB_ENV}"
95+
echo "APISERVICE_IMAGE_NAMES=${APISERVICE_IMAGE_NAMES}" >> "${GITHUB_ENV}"
96+
echo "NODESERVICE_IMAGE_NAMES=${NODESERVICE_IMAGE_NAMES}" >> "${GITHUB_ENV}"
97+
6298
- name: Checkout lowcoder source
6399
uses: actions/checkout@v4
64100
with:
@@ -91,7 +127,7 @@ jobs:
91127
linux/amd64
92128
linux/arm64
93129
push: true
94-
tags: lowcoderorg/lowcoder-ce:${{ env.IMAGE_TAG }}
130+
tags: ${{ env.ALLINONE_IMAGE_NAMES }}
95131

96132
- name: Build and push the frontend image
97133
if: ${{ env.BUILD_FRONTEND == 'true' }}
@@ -108,7 +144,7 @@ jobs:
108144
linux/amd64
109145
linux/arm64
110146
push: true
111-
tags: lowcoderorg/lowcoder-ce-frontend:${{ env.IMAGE_TAG }}
147+
tags: ${{ env.FRONTEND_IMAGE_NAMES }}
112148

113149
- name: Build and push the node service image
114150
if: ${{ env.BUILD_NODESERVICE == 'true' }}
@@ -120,7 +156,7 @@ jobs:
120156
linux/amd64
121157
linux/arm64
122158
push: true
123-
tags: lowcoderorg/lowcoder-ce-node-service:${{ env.IMAGE_TAG }}
159+
tags: ${{ env.NODESERVICE_IMAGE_NAMES }}
124160

125161
- name: Build and push the API service image
126162
if: ${{ env.BUILD_APISERVICE == 'true' }}
@@ -132,5 +168,5 @@ jobs:
132168
linux/amd64
133169
linux/arm64
134170
push: true
135-
tags: lowcoderorg/lowcoder-ce-api-service:${{ env.IMAGE_TAG }}
171+
tags: ${{ env.APISERVICE_IMAGE_NAMES }}
136172

.github/workflows/sonarcloud.yml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -30,4 +30,4 @@ jobs:
3030
env:
3131
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} # Needed to get PR information, if any
3232
SONAR_TOKEN: ${{ secrets.SONAR_TOKEN }}
33-
SONAR_SCANNER_OPTS: "-Dsonar.javascript.node.maxspace=8192 -Xmx512m"
33+
SONAR_SCANNER_OPTS: "-Dsonar.javascript.node.maxspace=8192 -Xmx8192m"

client/packages/lowcoder-comps/package.json

Lines changed: 5 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
{
22
"name": "lowcoder-comps",
3-
"version": "2.6.6",
3+
"version": "2.7.1",
44
"type": "module",
55
"license": "MIT",
66
"dependencies": {
@@ -17,8 +17,6 @@
1717
"@fullcalendar/resource-timeline": "^6.1.11",
1818
"@fullcalendar/timegrid": "^6.1.6",
1919
"@fullcalendar/timeline": "^6.1.6",
20-
"@types/react": "^18.2.45",
21-
"@types/react-dom": "^18.2.18",
2220
"agora-rtc-sdk-ng": "^4.20.2",
2321
"agora-rtm-sdk": "^1.5.1",
2422
"big.js": "^6.2.1",
@@ -28,8 +26,8 @@
2826
"lowcoder-cli": "workspace:^",
2927
"lowcoder-sdk": "workspace:^",
3028
"mermaid": "^10.6.1",
31-
"react": "^18.2.0",
32-
"react-dom": "^18.2.0",
29+
"react": "18.3.0",
30+
"react-dom": "18.3.0",
3331
"typescript": "4.8.4"
3432
},
3533
"lowcoder": {
@@ -261,6 +259,8 @@
261259
"test": "jest"
262260
},
263261
"devDependencies": {
262+
"@types/react": "18",
263+
"@types/react-dom": "18",
264264
"jest": "29.3.0",
265265
"vite": "^4.5.5",
266266
"vite-tsconfig-paths": "^3.6.0"

client/packages/lowcoder-comps/src/comps/agoraMeetingComp/videoMeetingStreamComp.tsx

Lines changed: 46 additions & 45 deletions
Original file line numberDiff line numberDiff line change
@@ -22,7 +22,7 @@ import { trans } from "../../i18n/comps";
2222
import { client } from "./meetingControllerComp";
2323
import type { IAgoraRTCRemoteUser } from "agora-rtc-sdk-ng";
2424
import { useEffect, useRef, useState } from "react";
25-
import ReactResizeDetector from "react-resize-detector";
25+
import { useResizeDetector } from "react-resize-detector";
2626

2727
const VideoContainer = styled.video`
2828
height: 100%;
@@ -132,62 +132,63 @@ let VideoCompBuilder = (function () {
132132
}, [props.userId.value]);
133133
// console.log("userId", userId);
134134

135+
useResizeDetector({
136+
targetRef: conRef,
137+
});
135138

136139
return (
137140
<EditorContext.Consumer>
138141
{(editorState: any) => (
139-
<ReactResizeDetector>
142+
<div
143+
ref={conRef}
144+
style={{
145+
display: "flex",
146+
alignItems: "center",
147+
height: "100%",
148+
overflow: "hidden",
149+
borderRadius: props.style.radius,
150+
aspectRatio: props.videoAspectRatio,
151+
backgroundColor: props.style.background,
152+
padding: props.style.padding,
153+
margin: props.style.margin,
154+
}}
155+
>
156+
{userId ? (
157+
<VideoContainer
158+
onClick={() => props.onEvent("videoClicked")}
159+
ref={videoRef}
160+
style={{
161+
display: `${showVideo ? "flex" : "none"}`,
162+
aspectRatio: props.videoAspectRatio,
163+
borderRadius: props.style.radius,
164+
width: "auto",
165+
}}
166+
id={userId}
167+
></VideoContainer>
168+
) : (
169+
<></>
170+
)}
140171
<div
141-
ref={conRef}
142172
style={{
143-
display: "flex",
173+
flexDirection: "column",
144174
alignItems: "center",
145-
height: "100%",
146-
overflow: "hidden",
147-
borderRadius: props.style.radius,
148-
aspectRatio: props.videoAspectRatio,
149-
backgroundColor: props.style.background,
150-
padding: props.style.padding,
151-
margin: props.style.margin,
175+
display: `${!showVideo || userId ? "flex" : "none"}`,
176+
margin: "0 auto",
177+
padding: props.profilePadding,
152178
}}
153179
>
154-
{userId ? (
155-
<VideoContainer
156-
onClick={() => props.onEvent("videoClicked")}
157-
ref={videoRef}
158-
style={{
159-
display: `${showVideo ? "flex" : "none"}`,
160-
aspectRatio: props.videoAspectRatio,
161-
borderRadius: props.style.radius,
162-
width: "auto",
163-
}}
164-
id={userId}
165-
></VideoContainer>
166-
) : (
167-
<></>
168-
)}
169-
<div
180+
<img
181+
alt=""
170182
style={{
171-
flexDirection: "column",
172-
alignItems: "center",
173-
display: `${!showVideo || userId ? "flex" : "none"}`,
174-
margin: "0 auto",
175-
padding: props.profilePadding,
183+
borderRadius: props.profileBorderRadius,
184+
width: "100%",
185+
overflow: "hidden",
176186
}}
177-
>
178-
<img
179-
alt=""
180-
style={{
181-
borderRadius: props.profileBorderRadius,
182-
width: "100%",
183-
overflow: "hidden",
184-
}}
185-
src={props.profileImageUrl.value}
186-
/>
187-
<p style={{ margin: "0" }}>{userName ?? ""}</p>
188-
</div>
187+
src={props.profileImageUrl.value}
188+
/>
189+
<p style={{ margin: "0" }}>{userName ?? ""}</p>
189190
</div>
190-
</ReactResizeDetector>
191+
</div>
191192
)}
192193
</EditorContext.Consumer>
193194
);

client/packages/lowcoder-comps/src/comps/agoraMeetingComp/videoSharingStreamComp.tsx

Lines changed: 47 additions & 45 deletions
Original file line numberDiff line numberDiff line change
@@ -19,7 +19,7 @@ import { useEffect, useRef, useState } from "react";
1919
import { client } from "./meetingControllerComp";
2020
import type { IAgoraRTCRemoteUser } from "agora-rtc-sdk-ng";
2121
import { trans } from "../../i18n/comps";
22-
import ReactResizeDetector from "react-resize-detector";
22+
import { useResizeDetector } from "react-resize-detector";
2323
import { ButtonStyleControl } from "./videobuttonCompConstants";
2424

2525
const VideoContainer = styled.video`
@@ -123,61 +123,63 @@ let SharingCompBuilder = (function () {
123123
}
124124
}, [props.userId.value]);
125125

126+
useResizeDetector({
127+
targetRef: conRef,
128+
});
129+
126130
return (
127131
<EditorContext.Consumer>
128132
{(editorState: any) => (
129-
<ReactResizeDetector>
133+
<div
134+
ref={conRef}
135+
style={{
136+
display: "flex",
137+
alignItems: "center",
138+
height: "100%",
139+
overflow: "hidden",
140+
borderRadius: props?.style?.radius,
141+
aspectRatio: props?.videoAspectRatio,
142+
backgroundColor: props.style?.background,
143+
padding: props.style?.padding,
144+
margin: props.style?.margin,
145+
}}
146+
>
147+
{userId ? (
148+
<VideoContainer
149+
onClick={() => props.onEvent("videoClicked")}
150+
ref={videoRef}
151+
style={{
152+
display: `${showVideoSharing ? "flex" : "none"}`,
153+
aspectRatio: props.videoAspectRatio,
154+
borderRadius: props.style.radius,
155+
width: "auto",
156+
}}
157+
id="share-screen"
158+
></VideoContainer>
159+
) : (
160+
<></>
161+
)}
130162
<div
131-
ref={conRef}
132163
style={{
133-
display: "flex",
164+
flexDirection: "column",
134165
alignItems: "center",
135-
height: "100%",
136-
overflow: "hidden",
137-
borderRadius: props?.style?.radius,
138-
aspectRatio: props?.videoAspectRatio,
139-
backgroundColor: props.style?.background,
140-
padding: props.style?.padding,
141-
margin: props.style?.margin,
166+
display: `${!showVideoSharing || userId ? "flex" : "none"}`,
167+
margin: "0 auto",
168+
padding: props.profilePadding,
142169
}}
143170
>
144-
{userId ? (
145-
<VideoContainer
146-
onClick={() => props.onEvent("videoClicked")}
147-
ref={videoRef}
148-
style={{
149-
display: `${showVideoSharing ? "flex" : "none"}`,
150-
aspectRatio: props.videoAspectRatio,
151-
borderRadius: props.style.radius,
152-
width: "auto",
153-
}}
154-
id="share-screen"
155-
></VideoContainer>
156-
) : (
157-
<></>
158-
)}
159-
<div
171+
<img
172+
alt=""
160173
style={{
161-
flexDirection: "column",
162-
alignItems: "center",
163-
display: `${!showVideoSharing || userId ? "flex" : "none"}`,
164-
margin: "0 auto",
165-
padding: props.profilePadding,
174+
borderRadius: props.profileBorderRadius,
175+
width: "100%",
176+
overflow: "hidden",
166177
}}
167-
>
168-
<img
169-
alt=""
170-
style={{
171-
borderRadius: props.profileBorderRadius,
172-
width: "100%",
173-
overflow: "hidden",
174-
}}
175-
src={props.profileImageUrl?.value}
176-
/>
177-
<p style={{ margin: "0" }}>{userName ?? ""}</p>
178-
</div>
178+
src={props.profileImageUrl?.value}
179+
/>
180+
<p style={{ margin: "0" }}>{userName ?? ""}</p>
179181
</div>
180-
</ReactResizeDetector>
182+
</div>
181183
)}
182184
</EditorContext.Consumer>
183185
);

0 commit comments

Comments
 (0)