Skip to content

Dev > Main for v2.7.3 #1894

New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Merged
merged 169 commits into from
Jul 24, 2025
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
169 commits
Select commit Hold shift + click to select a range
035fc26
redesign profile dropdown
iamfaran Jun 16, 2025
a42f83c
testing workspaces endpoint
iamfaran Jun 16, 2025
8b40672
fix profile dropdown
iamfaran Jun 16, 2025
98695fb
setup redux, sagas for the new myorg endpoint
iamfaran Jun 16, 2025
35b7c68
fix profile dropdown create workspace issue
iamfaran Jun 16, 2025
a5d372a
test
iamfaran Jun 17, 2025
1b63471
fix params
iamfaran Jun 17, 2025
049d372
make currentOrg selector
iamfaran Jun 17, 2025
6db11bc
Fixed pagination for myorg endpoint.
dragonpoo Jun 17, 2025
a902532
add page size param
iamfaran Jun 17, 2025
7709d58
replace orgs data with myorg for dropdown
iamfaran Jun 17, 2025
e202fcb
remove dispatch from the profile dropdown
iamfaran Jun 17, 2025
3cefa1f
Fixed pagination for myorg endpoint.
dragonpoo Jun 17, 2025
818fdf8
Merge branch 'dev' of github.com:lowcoder-org/lowcoder into profileDr…
iamfaran Jun 18, 2025
1889d6c
Fixed pagination for myorg endpoint.(sort)
dragonpoo Jun 18, 2025
f851353
fetch 10 workspaces initially
iamfaran Jun 18, 2025
9ea107b
add pagination and filtering for the dropdown
iamfaran Jun 18, 2025
dbdd13f
added branding setting images
raheeliftikhar5 Jun 18, 2025
f9e311b
fetch branding inside EnterpriseContext
raheeliftikhar5 Jun 18, 2025
3b721ad
fixed apps bg not apply when open with navLayout + module settings do…
raheeliftikhar5 Jun 18, 2025
077842b
fixed table button column's events hides on refresh
raheeliftikhar5 Jun 18, 2025
28a2101
refactor profile dropdown
iamfaran Jun 18, 2025
a585d9e
Updates the Card UI on homepage
kamal-qureshi Jun 18, 2025
14a3c91
Adds ellipses if character limits exceed 150 for desc
kamal-qureshi Jun 18, 2025
84ee3e5
Updated message
kamal-qureshi Jun 18, 2025
0d59610
fix debouncing
iamfaran Jun 18, 2025
c7edbd1
fix loading when search
iamfaran Jun 18, 2025
238698d
fix shrinking issues when page 1 to page 2
iamfaran Jun 18, 2025
0611910
add antD loader in UI
iamfaran Jun 18, 2025
3d063e2
Merge pull request #1779 from kamalqureshi/update_app_card_ui
raheeliftikhar5 Jun 18, 2025
5015a71
Filter orgs to return only those with an active state.
dragonpoo Jun 18, 2025
10cf573
Merge branch 'dev' into fix/myorg
dragonpoo Jun 18, 2025
a6b3bda
Merge pull request #1777 from lowcoder-org/fix/myorg
ludomikula Jun 18, 2025
ffa7757
fix delete sync
iamfaran Jun 19, 2025
96acd6a
fix sync after edit
iamfaran Jun 19, 2025
f81eb8a
fix: add all missing default variables to all-in-one entrypoint script
ludomikula Jun 18, 2025
189f374
-Fixed description and title ellipses
kamal-qureshi Jun 19, 2025
d0d3169
added debounce for text inputs to avoid glitch
raheeliftikhar5 Jun 19, 2025
db11f0e
add pagination/filtering for the Workspaces page
iamfaran Jun 19, 2025
2f291f7
add selector for the current org
iamfaran Jun 19, 2025
b3abc61
add active indicator in the workspaces page
iamfaran Jun 19, 2025
23fcbf9
add the ability to switch workspaces from workspaces page
iamfaran Jun 19, 2025
cd92f7c
disable row click on switch
iamfaran Jun 19, 2025
73a64b4
fix switch org button
iamfaran Jun 19, 2025
763bd98
Merge branch 'dev' of github.com:lowcoder-org/lowcoder into feat/myor…
iamfaran Jun 19, 2025
21c469a
Merge branch 'dev' into update_app_card_ui
raheeliftikhar5 Jun 20, 2025
faffd94
Merge pull request #1785 from kamalqureshi/update_app_card_ui
raheeliftikhar5 Jun 20, 2025
24e04c0
Merge branch 'dev' into feat/myorg-endpoint
raheeliftikhar5 Jun 20, 2025
524bc75
Merge pull request #1787 from iamfaran/feat/myorg-endpoint
raheeliftikhar5 Jun 20, 2025
46a1477
remove applications/list endpoint from home
iamfaran Jun 20, 2025
45673a8
[Feat]: #1615 Add component 'type' in show data modal
iamfaran Jun 20, 2025
92200cb
fix antd depreciation errors
iamfaran Jun 20, 2025
2b9de40
Updated navigation app for settings and JS
kamal-qureshi Jun 20, 2025
3da38da
fixed modal comp to avoid app crash in navigation layout
raheeliftikhar5 Jun 20, 2025
24cfa60
Added createdAt and updatedAt fields.
dragonpoo Jun 19, 2025
7051a76
Get users who do not belong to this group among the members of the or…
dragonpoo Jun 20, 2025
f659056
Merge pull request #1790 from iamfaran/feat/1615-component-type
raheeliftikhar5 Jun 23, 2025
fa29568
Merge pull request #1792 from iamfaran/fix/antD-errors-profile-dropdown
raheeliftikhar5 Jun 23, 2025
0060f16
Merge pull request #1791 from iamfaran/folder-elements-endpoint
raheeliftikhar5 Jun 23, 2025
cb5ff45
Removed additional props from multi
kamal-qureshi Jun 23, 2025
876fe31
Merge branch 'dev' into settings_navigation_app
kamal-qureshi Jun 23, 2025
a9ec34f
Merge pull request #1793 from kamalqureshi/settings_navigation_app
raheeliftikhar5 Jun 23, 2025
4a9d292
Adds search bar in "Add Members" for groups
kamal-qureshi Jun 23, 2025
28161b0
Added debounce for searching
kamal-qureshi Jun 23, 2025
d4ac9e3
Merge pull request #1800 from kamalqureshi/search_potential_group_mem…
raheeliftikhar5 Jun 23, 2025
0ae6c23
console log curl to json
iamfaran Jun 23, 2025
850ccda
edits in querycomp
iamfaran Jun 23, 2025
cf94b94
Adds ability to add custom tags for multiselect component
kamalqureshi Jun 23, 2025
1e0295f
fix body issue
iamfaran Jun 23, 2025
d8560aa
add global query library curl
iamfaran Jun 23, 2025
1daf513
Merge pull request #1801 from kamalqureshi/custom_tag_multiselect
raheeliftikhar5 Jun 23, 2025
16da9fd
curl refactor
iamfaran Jun 23, 2025
4278242
Fix: group members filtering and sorting
dragonpoo Jun 23, 2025
12b4b41
[Feat] #1799 add simple examples on curl modal
iamfaran Jun 23, 2025
27ea453
Merge pull request #1803 from iamfaran/feat/1799-curl-import
raheeliftikhar5 Jun 24, 2025
096a7d2
Feat: add API to list groups and users without permissions, with sear…
dragonpoo Jun 24, 2025
c80905c
add time columns in workspaces page
iamfaran Jun 24, 2025
2b996bd
add time cols in the first page
iamfaran Jun 24, 2025
0bcdbf6
fix date format
iamfaran Jun 24, 2025
0224c0b
fix workspaces table layout
iamfaran Jun 24, 2025
b27852e
improve time columns UI
iamfaran Jun 24, 2025
9b8295c
remove console log
iamfaran Jun 24, 2025
18d3e40
Fixed: Renamed `api/applications/{appId}/get_groups_or_members_withou…
dragonpoo Jun 24, 2025
51de3a3
Initialize tags component
kamalqureshi Jun 25, 2025
aae8897
[Fix]: query undefined issue on refresh page / empty modal
iamfaran Jun 25, 2025
b2b282f
[Fix]: #1087 prevent deleting when only 1 Tab
iamfaran Jun 25, 2025
d11a347
[Fix]: #1233 able to click outside even mask is off
iamfaran Jun 25, 2025
1cdaccb
Merge pull request #1808 from iamfaran/fix/query-refresh
raheeliftikhar5 Jun 26, 2025
08ae76a
Merge pull request #1809 from iamfaran/fix/1087-tabbed
raheeliftikhar5 Jun 26, 2025
48d6d7b
Merge pull request #1810 from iamfaran/fix/1233-drawer
raheeliftikhar5 Jun 26, 2025
4cc299e
fix linter errrors
iamfaran Jun 26, 2025
2e0ec40
add button disabled styles
iamfaran Jun 26, 2025
ede27eb
add disabled styles for togglebtn
iamfaran Jun 26, 2025
59452d2
make a seperate section for disabled
iamfaran Jun 26, 2025
864a887
add disabled styles for toggled button
iamfaran Jun 26, 2025
56e71f6
add disabled input styles
iamfaran Jun 26, 2025
9ad28bb
remove border styles from disables
iamfaran Jun 26, 2025
3f516ab
add disable styles slider
iamfaran Jun 26, 2025
c9a8de4
add disabled styles on range slider fix
iamfaran Jun 26, 2025
c9cdee7
add placeholder styling for input
iamfaran Jun 26, 2025
54cc9b9
[Fix]: #1466 add disabled styles for the components / refactor
iamfaran Jun 27, 2025
b366ecb
[Fix]: #1466 add disabled/placeholder style for components
iamfaran Jun 27, 2025
ddd9fe1
Search bar for User group members
kamalqureshi Jun 27, 2025
552bbff
Search in Publish Permission Dialog
kamalqureshi Jun 27, 2025
d571a7f
Merge branch 'dev' into tags_component
kamalqureshi Jun 27, 2025
eb5a0b1
Fix bug: undefined query when add new query after published app/module
dacbaohvktqs Jul 1, 2025
6722132
Change view mode on view_marketplace endpoint
dacbaohvktqs Jul 1, 2025
7f74ce1
Merge pull request #1815 from iamfaran/feat/1466-disabled-placeholders
raheeliftikhar5 Jul 1, 2025
748da98
Merge pull request #1816 from kamalqureshi/user_groups_search
raheeliftikhar5 Jul 1, 2025
fdbac9e
Merge pull request #1817 from kamalqureshi/publish_app_groups_members
raheeliftikhar5 Jul 1, 2025
5467971
Merge pull request #1806 from iamfaran/feat/time-col-org
raheeliftikhar5 Jul 1, 2025
6ee73d2
Add isCurrentOrg field and sort by value (true first).
thomas37-star Jul 2, 2025
9d67db7
Created test case for the ApplicationApiService.
thomas37-star Jul 10, 2025
f9128ea
Created test case for the ApplicationEndpointsTest.
thomas37-star Jul 10, 2025
1a587df
fix workspaces updated myorg endpoint
iamfaran Jul 11, 2025
53fb65d
fix orglist active org icon
iamfaran Jul 11, 2025
56c1c55
Updated CustomSelector UI
kamalqureshi Jul 11, 2025
d2f2a4c
Adding Tooltip to Multiselect custom tags
kamalqureshi Jul 11, 2025
34c6351
Merge pull request #1859 from iamfaran/fix/myorg-endpoint
raheeliftikhar5 Jul 11, 2025
e6a450d
Merge pull request #1858 from kamalqureshi/publish_app_groups_members
raheeliftikhar5 Jul 11, 2025
d6ff092
Merge pull request #1860 from kamalqureshi/custom_tag_multiselect
raheeliftikhar5 Jul 11, 2025
cc2e8d5
Created test case for the ApplicationHistorySnapshotEndpoints.
thomas37-star Jul 11, 2025
ab233a5
Created test case for the ApplicationHistorySnapshotEndpoints.
thomas37-star Jul 11, 2025
6560014
fixed text input glitch
raheeliftikhar5 Jul 12, 2025
bf68435
Adding function Calls to Timer Component
Jul 13, 2025
f60c3e6
Created test case for the AuthenticationEndpoints.
thomas37-star Jul 14, 2025
fc128f4
fix: Form child element not updating
kamalqureshi Jul 15, 2025
d4c148f
Created test case for the ConfigEndpoints.
thomas37-star Jul 15, 2025
67643f6
Merge pull request #1872 from kamalqureshi/form_not_populating
raheeliftikhar5 Jul 16, 2025
8ff5f78
Dropdown in User Groups to filter roles
kamalqureshi Jul 16, 2025
c682cc0
Merge branch 'dev' into tags_component
kamalqureshi Jul 16, 2025
491c8bb
remove myorg call on initial load
iamfaran Jul 17, 2025
c9e00c5
remove api call from DS home page
iamfaran Jul 17, 2025
1c6f8bd
Tags Component Completed
kamalqureshi Jul 17, 2025
3ede19e
Tags icon
kamalqureshi Jul 17, 2025
5fb6c52
fix edit DS page and add loading states
iamfaran Jul 17, 2025
c8f9e3d
#1848 remove duplicate environments call
iamfaran Jul 17, 2025
9e10673
[Fix]: #1848 remove duplicate folderelements request from Home
iamfaran Jul 18, 2025
2df0a8f
[Fix]: #1848 delete/recycled and movetofolder
iamfaran Jul 18, 2025
5909746
remove unrelated changes
raheeliftikhar5 Jul 20, 2025
12f2d45
Merge pull request #1877 from iamfaran/fix/1848-optimization
raheeliftikhar5 Jul 20, 2025
b7f1d33
Merge pull request #1818 from kamalqureshi/tags_component
raheeliftikhar5 Jul 20, 2025
eef90fe
Merge pull request #1876 from kamalqureshi/form_not_populating
raheeliftikhar5 Jul 20, 2025
7869f0b
Merge branch 'dev' into filter_group_members_role
kamalqureshi Jul 21, 2025
111ef6a
Updated useCallack to useMemo for optimization
kamalqureshi Jul 21, 2025
6cf8dc0
Merge pull request #1874 from kamalqureshi/filter_group_members_role
raheeliftikhar5 Jul 21, 2025
9a1295e
added currentExpandedRow, currentExpandedRows and setExpandedRows in …
raheeliftikhar5 Jul 21, 2025
fca7adb
Fixed app publish version.
thomas37-star Jul 18, 2025
c130120
Created test case for the BundleEndpoints.
thomas37-star Jul 18, 2025
0e05cf6
fixed imports in tag component
raheeliftikhar5 Jul 21, 2025
63043e6
small fix
raheeliftikhar5 Jul 21, 2025
7346eec
[Fix]: #1849 your apps menu item inactive
iamfaran Jul 21, 2025
64b7f58
[Fix]: #1849 remove common settings
iamfaran Jul 21, 2025
52fe548
[Fix]: #1849 optimize api calls for advanced setting page
iamfaran Jul 21, 2025
510cb60
text input glitch fix
raheeliftikhar5 Jul 21, 2025
93eb77a
[Fix]: #1466 border color for disabled button
iamfaran Jul 21, 2025
975b967
Merge pull request #1884 from iamfaran/fix/1466-button-border-disabled
raheeliftikhar5 Jul 21, 2025
14fa759
Updated styling of the tags component
kamalqureshi Jul 21, 2025
d1937a8
Merge pull request #1885 from kamalqureshi/tags_component
raheeliftikhar5 Jul 21, 2025
49370f9
[Fix]: #1849 add useDebouncedValue hook, and fix chars length
iamfaran Jul 21, 2025
a6eb2a9
[Fix]: #1849 key error
iamfaran Jul 21, 2025
4d02140
Merge branch 'dev' of github.com:lowcoder-org/lowcoder into fix/1849-…
iamfaran Jul 21, 2025
40a8975
Merge pull request #1886 from iamfaran/fix/1849-errors
raheeliftikhar5 Jul 22, 2025
ec18f90
fix:- Regex on password field
kamalqureshi Jul 22, 2025
2a91c02
fix:- Table column alignment
kamalqureshi Jul 22, 2025
c284fd4
Created test case for the DatasourceEndpoints.
thomas37-star Jul 22, 2025
701d57c
Merge pull request #1892 from kamalqureshi/table_column_alignment
raheeliftikhar5 Jul 23, 2025
8346db5
Merge pull request #1890 from kamalqureshi/password_regex
raheeliftikhar5 Jul 23, 2025
1b7d4b9
Updating Version Numbers to prepare the Release
Jul 24, 2025
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
2 changes: 1 addition & 1 deletion client/VERSION
Original file line number Diff line number Diff line change
@@ -1 +1 @@
2.7.2
2.7.3
2 changes: 1 addition & 1 deletion client/package.json
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
{
"name": "lowcoder-frontend",
"version": "2.7.2",
"version": "2.7.3",
"type": "module",
"private": true,
"workspaces": [
Expand Down
2 changes: 1 addition & 1 deletion client/packages/lowcoder-comps/package.json
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
{
"name": "lowcoder-comps",
"version": "2.7.2",
"version": "2.7.3",
"type": "module",
"license": "MIT",
"dependencies": {
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -20,7 +20,8 @@ const SelectWrapper = styled.div<{ $border?: boolean }>`
padding: ${(props) => (props.$border ? "0px" : "0 0 0 12px")};
height: 100%;
align-items: center;
margin-right: 8px;
margin-right: 10px;
padding-right: 5px;
background-color: #fff;

.ant-select-selection-item {
Expand All @@ -46,9 +47,9 @@ const SelectWrapper = styled.div<{ $border?: boolean }>`
}

.ant-select-arrow {
width: 20px;
height: 20px;
right: 8px;
width: 17px;
height: 17px;
right: 10px;
top: 0;
bottom: 0;
margin: auto;
Expand Down
2 changes: 2 additions & 0 deletions client/packages/lowcoder-design/src/icons/index.tsx
Original file line number Diff line number Diff line change
Expand Up @@ -355,6 +355,7 @@ export { ReactComponent as VideoCameraStreamCompIconSmall } from "./v2/camera-st
export { ReactComponent as VideoScreenshareCompIconSmall } from "./v2/screen-share-stream-s.svg"; // new
export { ReactComponent as SignatureCompIconSmall } from "./v2/signature-s.svg";
export { ReactComponent as StepCompIconSmall } from "./v2/steps-s.svg";
export { ReactComponent as TagsCompIconSmall } from "./v2/tags-s.svg"


export { ReactComponent as CandlestickChartCompIconSmall } from "./v2/candlestick-chart-s.svg"; // new
Expand Down Expand Up @@ -468,6 +469,7 @@ export { ReactComponent as SignatureCompIcon } from "./v2/signature-m.svg";
export { ReactComponent as GanttCompIcon } from "./v2/gantt-chart-m.svg";
export { ReactComponent as KanbanCompIconSmall } from "./v2/kanban-s.svg";
export { ReactComponent as KanbanCompIcon } from "./v2/kanban-m.svg";
export { ReactComponent as TagsCompIcon } from "./v2/tags-l.svg";

export { ReactComponent as CandlestickChartCompIcon } from "./v2/candlestick-chart-m.svg";
export { ReactComponent as FunnelChartCompIcon } from "./v2/funnel-chart-m.svg";
Expand Down
10 changes: 10 additions & 0 deletions client/packages/lowcoder-design/src/icons/v2/tags-l.svg
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
10 changes: 10 additions & 0 deletions client/packages/lowcoder-design/src/icons/v2/tags-s.svg
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
2 changes: 1 addition & 1 deletion client/packages/lowcoder-sdk-webpack-bundle/package.json
Original file line number Diff line number Diff line change
@@ -1,7 +1,7 @@
{
"name": "lowcoder-sdk-webpack-bundle",
"description": "",
"version": "2.7.2",
"version": "2.7.3",
"main": "index.jsx",
"scripts": {
"test": "echo \"Error: no test specified\" && exit 1",
Expand Down
2 changes: 1 addition & 1 deletion client/packages/lowcoder-sdk/package.json
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
{
"name": "lowcoder-sdk",
"version": "2.7.2",
"version": "2.7.3",
"type": "module",
"files": [
"src",
Expand Down
3 changes: 2 additions & 1 deletion client/packages/lowcoder/package.json
Original file line number Diff line number Diff line change
@@ -1,12 +1,13 @@
{
"name": "lowcoder",
"version": "2.7.2",
"version": "2.7.3",
"private": true,
"type": "module",
"main": "src/index.sdk.ts",
"types": "src/index.sdk.ts",
"dependencies": {
"@ant-design/icons": "^5.3.0",
"@bany/curl-to-json": "^1.2.8",
"@codemirror/autocomplete": "^6.11.1",
"@codemirror/commands": "^6.3.2",
"@codemirror/lang-css": "^6.2.1",
Expand Down
5 changes: 5 additions & 0 deletions client/packages/lowcoder/src/api/applicationApi.ts
Original file line number Diff line number Diff line change
Expand Up @@ -99,6 +99,7 @@ class ApplicationApi extends Api {
static publicToMarketplaceURL = (applicationId: string) => `/applications/${applicationId}/public-to-marketplace`;
static getMarketplaceAppURL = (applicationId: string) => `/applications/${applicationId}/view_marketplace`;
static setAppEditingStateURL = (applicationId: string) => `/applications/editState/${applicationId}`;
static getAvailableGroupsMembersURL = (applicationId: string) => `/applications/${applicationId}/groups-members/available`;
static serverSettingsURL = () => `/serverSettings`;

static fetchHomeData(request: HomeDataPayload): AxiosPromise<HomeDataResponse> {
Expand Down Expand Up @@ -217,6 +218,10 @@ class ApplicationApi extends Api {
});
}

static getAvailableGroupsMembers(applicationId: string, search: string): AxiosPromise<any> {
return Api.get(ApplicationApi.getAvailableGroupsMembersURL(applicationId), {search})
}

/**
* set app as public
*/
Expand Down
4 changes: 4 additions & 0 deletions client/packages/lowcoder/src/api/datasourceApi.ts
Original file line number Diff line number Diff line change
Expand Up @@ -187,6 +187,10 @@ export class DatasourceApi extends Api {
return Api.get(DatasourceApi.url + `/listByOrg?orgId=${orgId}`, {...res});
}

static getDatasourceById(id: string): AxiosPromise<GenericApiResponse<Datasource>> {
return Api.get(`${DatasourceApi.url}/${id}`);
}

static createDatasource(
datasourceConfig: Partial<Datasource>
): AxiosPromise<GenericApiResponse<Datasource>> {
Expand Down
5 changes: 5 additions & 0 deletions client/packages/lowcoder/src/api/orgApi.ts
Original file line number Diff line number Diff line change
Expand Up @@ -62,6 +62,7 @@ export class OrgApi extends Api {
static updateOrgURL = (orgId: string) => `/organizations/${orgId}/update`;
static fetchUsage = (orgId: string) => `/organizations/${orgId}/api-usage`;
static fetchOrgsByEmailURL = (email: string) => `organizations/byuser/${email}`;
static fetchGroupPotentialMembersURL = (groupId: string) => `/groups/${groupId}/potential-members`;

static createGroup(request: { name: string }): AxiosPromise<GenericApiResponse<OrgGroup>> {
return Api.post(OrgApi.createGroupURL, request);
Expand Down Expand Up @@ -110,6 +111,10 @@ export class OrgApi extends Api {
return Api.get(OrgApi.fetchGroupUsersURL(groupId));
}

static fetchGroupPotentialMembers(searchName: string, groupId: string): AxiosPromise<OrgUsersResponse> {
return Api.get(OrgApi.fetchGroupPotentialMembersURL(groupId), {searchName})
}

static fetchGroupUsersPagination(request: fetchGroupUserRequestType): AxiosPromise<GroupUsersPaginationResponse> {
const {groupId, ...res} = request;
return Api.get(OrgApi.fetchGroupUsersURL(groupId), {...res});
Expand Down
33 changes: 32 additions & 1 deletion client/packages/lowcoder/src/api/userApi.ts
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
import Api from "api/api";
import { AxiosPromise } from "axios";
import { OrgAndRole } from "constants/orgConstants";
import { Org, OrgAndRole } from "constants/orgConstants";
import { BaseUserInfo, CurrentUser } from "constants/userConstants";
import { MarkUserStatusPayload, UpdateUserPayload } from "redux/reduxActions/userActions";
import { ApiResponse, GenericApiResponse } from "./apiResponses";
Expand Down Expand Up @@ -60,10 +60,28 @@ export interface FetchApiKeysResponse extends ApiResponse {

export type GetCurrentUserResponse = GenericApiResponse<CurrentUser>;

export interface GetMyOrgsResponse extends ApiResponse {
data: {
data: Array<{
isCurrentOrg: boolean;
orgView: {
orgId: string;
orgName: string;
createdAt?: number;
updatedAt?: number;
};
}>;
pageNum: number;
pageSize: number;
total: number;
};
}

class UserApi extends Api {
static thirdPartyLoginURL = "/auth/tp/login";
static thirdPartyBindURL = "/auth/tp/bind";
static usersURL = "/users";
static myOrgsURL = "/users/myorg";
static sendVerifyCodeURL = "/auth/otp/send";
static logoutURL = "/auth/logout";
static userURL = "/users/me";
Expand Down Expand Up @@ -127,6 +145,19 @@ class UserApi extends Api {
static getCurrentUser(): AxiosPromise<GetCurrentUserResponse> {
return Api.get(UserApi.currentUserURL);
}
static getMyOrgs(
pageNum: number = 1,
pageSize: number = 20,
orgName?: string
): AxiosPromise<GetMyOrgsResponse> {
const params = new URLSearchParams({
pageNum: pageNum.toString(),
pageSize: pageSize.toString(),
...(orgName && { orgName })
});

return Api.get(`${UserApi.myOrgsURL}?${params}`);
}

static getRawCurrentUser(): AxiosPromise<GetCurrentUserResponse> {
return Api.get(UserApi.rawCurrentUserURL);
Expand Down
4 changes: 0 additions & 4 deletions client/packages/lowcoder/src/app.tsx
Original file line number Diff line number Diff line change
Expand Up @@ -60,7 +60,6 @@ import GlobalInstances from 'components/GlobalInstances';
import { fetchHomeData, fetchServerSettingsAction } from "./redux/reduxActions/applicationActions";
import { getNpmPackageMeta } from "./comps/utils/remote";
import { packageMetaReadyAction, setLowcoderCompsLoading } from "./redux/reduxActions/npmPluginActions";
import { fetchBrandingSetting } from "./redux/reduxActions/enterpriseActions";
import { EnterpriseProvider } from "./util/context/EnterpriseContext";
import { SimpleSubscriptionContextProvider } from "./util/context/SimpleSubscriptionContext";
import { getBrandingSetting } from "./redux/selectors/enterpriseSelectors";
Expand Down Expand Up @@ -137,7 +136,6 @@ type AppIndexProps = {
defaultHomePage: string | null | undefined;
fetchHomeDataFinished: boolean;
fetchConfig: (orgId?: string) => void;
fetchBrandingSetting: (orgId?: string) => void;
fetchHomeData: (currentUserAnonymous?: boolean | undefined) => void;
fetchLowcoderCompVersions: () => void;
getCurrentUser: () => void;
Expand Down Expand Up @@ -167,7 +165,6 @@ class AppIndex extends React.Component<AppIndexProps, any> {
if (!this.props.currentUserAnonymous) {
this.props.fetchHomeData(this.props.currentUserAnonymous);
this.props.fetchLowcoderCompVersions();
this.props.fetchBrandingSetting(this.props.currentOrgId);
}
}
}
Expand Down Expand Up @@ -521,7 +518,6 @@ const mapDispatchToProps = (dispatch: any) => ({
fetchHomeData: (currentUserAnonymous: boolean | undefined) => {
dispatch(fetchHomeData({}));
},
fetchBrandingSetting: (orgId?: string) => dispatch(fetchBrandingSetting({ orgId, fallbackToGlobal: true })),
fetchLowcoderCompVersions: async () => {
try {
dispatch(setLowcoderCompsLoading(true));
Expand Down
97 changes: 97 additions & 0 deletions client/packages/lowcoder/src/components/CurlImport.tsx
Original file line number Diff line number Diff line change
@@ -0,0 +1,97 @@
import React, { useState } from "react";
import { Modal, Input, Button, message } from "antd";
import { trans } from "i18n";
import parseCurl from "@bany/curl-to-json";
const { TextArea } = Input;
interface CurlImportModalProps {
open: boolean;
onCancel: () => void;
onSuccess: (parsedData: any) => void;
}

export function CurlImportModal(props: CurlImportModalProps) {
const { open, onCancel, onSuccess } = props;
const [curlCommand, setCurlCommand] = useState("");
const [loading, setLoading] = useState(false);

const handleImport = async () => {
if (!curlCommand.trim()) {
message.error("Please enter a cURL command");
return;
}

setLoading(true);
try {
// Parse the cURL command using the correct import
const parsedData = parseCurl(curlCommand);



// Log the result for now as requested
// console.log("Parsed cURL data:", parsedData);

// Call success callback with parsed data
onSuccess(parsedData);

// Reset form and close modal
setCurlCommand("");
onCancel();

message.success("cURL command imported successfully!");
} catch (error: any) {
console.error("Error parsing cURL command:", error);
message.error(`Failed to parse cURL command: ${error.message}`);
} finally {
setLoading(false);
}
};

const handleCancel = () => {
setCurlCommand("");
onCancel();
};

return (
<Modal
title="Import from cURL"
open={open}
onCancel={handleCancel}
footer={[
<Button key="cancel" onClick={handleCancel}>
Cancel
</Button>,
<Button key="import" type="primary" loading={loading} onClick={handleImport}>
Import
</Button>,
]}
width={600}
>
<div style={{ marginBottom: 16 }}>
<div style={{ marginBottom: 8, fontWeight: 500 }}>
Paste cURL Command Here
</div>
<div style={{ marginBottom: 12, color: "#666", fontSize: "12px" }}>
<div style={{ marginBottom: 4 }}>
<strong>Examples:</strong>
</div>
<div style={{ marginBottom: 2 }}>
GET: <code>curl -X GET https://jsonplaceholder.typicode.com/posts/1</code>
</div>
<div style={{ marginBottom: 2 }}>
POST: <code>curl -X POST https://jsonplaceholder.typicode.com/posts -H "Content-Type: application/json" -d '&#123;"title":"foo","body":"bar","userId":1&#125;'</code>
</div>
<div>
Users: <code>curl -X GET https://jsonplaceholder.typicode.com/users</code>
</div>
</div>
<TextArea
value={curlCommand}
onChange={(e) => setCurlCommand(e.target.value)}
placeholder="curl -X GET https://jsonplaceholder.typicode.com/posts/1"
rows={8}
style={{ fontFamily: "monospace" }}
/>
</div>
</Modal>
);
}
Loading
Loading