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

Commit8e91456

Browse files
author
FalkWolsky
committed
Adding Stoplight APIDocs Display
1 parent1a3883c commit8e91456

File tree

10 files changed

+192
-7
lines changed

10 files changed

+192
-7
lines changed

‎client/packages/lowcoder-design/src/icons/index.ts

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -125,6 +125,7 @@ export { ReactComponent as InviteUserIcon } from "./icon-application-invite-user
125125
export{ReactComponentasHomeEmptyIcon}from"./icon-application-empty.svg";
126126
export{ReactComponentasHomeListIcon}from"./icon-application-list.svg";
127127
export{ReactComponentasHomeCardIcon}from"./icon-application-card.svg";
128+
export{ReactComponentasAPIDocsIcon}from"./remix/instance-line.svg";
128129
// export { ReactComponent as AllAppIcon } from "./icon-all-app.svg";
129130

130131

‎client/packages/lowcoder/src/app.tsx

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -27,6 +27,7 @@ import {
2727
ADMIN_APP_URL,
2828
ORG_AUTH_FORGOT_PASSWORD_URL,
2929
ORG_AUTH_RESET_PASSWORD_URL,
30+
API_DOCS_URL,
3031
}from"constants/routesURL";
3132
importReactfrom"react";
3233
import{createRoot}from"react-dom/client";
@@ -208,6 +209,7 @@ class AppIndex extends React.Component<AppIndexProps, any> {
208209
SETTING,
209210
MARKETPLACE_URL,
210211
ADMIN_APP_URL,
212+
API_DOCS_URL,
211213
]}
212214
// component={ApplicationListPage}
213215
component={LazyApplicationHome}

‎client/packages/lowcoder/src/constants/routesURL.ts

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -31,6 +31,7 @@ export const DATASOURCE_URL = `/datasource`;
3131
exportconstDATASOURCE_CREATE_URL=`${DATASOURCE_URL}/new/:datasourceType`;
3232
exportconstDATASOURCE_EDIT_URL=`${DATASOURCE_URL}/:datasourceId`;
3333
exportconstQUERY_LIBRARY_URL=`/query-library`;
34+
exportconstAPI_DOCS_URL=`/lowcoder-api`;
3435
exportconstFOLDER_URL_PREFIX=`/folder`;
3536
exportconstFOLDER_URL=`${FOLDER_URL_PREFIX}/:folderId`;
3637
exportconstFOLDERS_URL=`/folders`;

‎client/packages/lowcoder/src/i18n/locales/en.ts

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -2937,6 +2937,7 @@ export const en = {
29372937
"yourFolders" :"Your Folders",
29382938
"modules":"Modules",
29392939
"module":"Module",
2940+
"api" :"Lowcoder API",
29402941
"trash":"Trash",
29412942
"marketplace":"Marketplace",
29422943
"allCategories":"All Categories",
Lines changed: 156 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,156 @@
1+
importstyled,{createGlobalStyle}from"styled-components";
2+
import{trans}from"../../i18n";
3+
import{API}from'@stoplight/elements';
4+
importReactfrom'react';
5+
import{useLocation}from"react-router-dom";
6+
importhistoryfrom"util/history";
7+
import{Card}from"antd";
8+
import{defaultasAntdBreadcrumb}from"antd/es/breadcrumb";
9+
import{ALL_APPLICATIONS_URL,API_DOCS_URL}from"constants/routesURL";
10+
import{ArrowIcon}from"lowcoder-design";
11+
12+
import'./components/stoplight.styles.css';
13+
14+
constWrapper=styled.div`
15+
display: flex;
16+
flex-direction: column;
17+
width: 100%;
18+
height: 100%;
19+
`;
20+
21+
constHeaderWrapper=styled.div`
22+
height: 84px;
23+
width: 100%;
24+
display: flex;
25+
padding: 0 36px;
26+
align-items: center;
27+
flex-shrink: 0;
28+
@media screen and (max-width: 500px) {
29+
padding: 0 24px;
30+
}
31+
`;
32+
33+
constContentWrapper=styled.div`
34+
position: relative;
35+
`;
36+
37+
constBreadcrumb=styled(AntdBreadcrumb)`
38+
font-size: 20px;
39+
40+
li:not(:last-child) {
41+
color: #8b8fa3;
42+
}
43+
44+
li:last-child {
45+
font-weight: 500;
46+
color: #222222;
47+
}
48+
49+
li.ant-breadcrumb-separator {
50+
display: flex;
51+
flex-direction: column;
52+
justify-content: center;
53+
}
54+
`;
55+
56+
constBreadcrumbItem=styled.div`
57+
cursor: pointer;
58+
`;
59+
60+
constApiDocView=styled.div`
61+
font-size: 14px;
62+
color: #8b8fa3;
63+
flex-grow: 1;
64+
padding-top: 0px;
65+
padding-left: 40px;
66+
max-width: 95%;
67+
`;
68+
69+
constStyleApiDocCover=styled.div`
70+
background: rgb(9,52,121);
71+
background: -moz-linear-gradient(139deg, rgba(9,52,121,1) 19%, rgba(5,98,180,1) 67%, rgba(0,76,255,1) 100%);
72+
background: -webkit-linear-gradient(139deg, rgba(9,52,121,1) 19%, rgba(5,98,180,1) 67%, rgba(0,76,255,1) 100%);
73+
background: linear-gradient(139deg, rgba(9,52,121,1) 19%, rgba(5,98,180,1) 67%, rgba(0,76,255,1) 100%);
74+
filter: progid:DXImageTransform.Microsoft.gradient(startColorstr="#093479",endColorstr="#004cff",GradientType=1);
75+
padding: 25px;
76+
height: 120px;
77+
border-radius:10px 10px 0 0;
78+
`;
79+
80+
81+
constisSelfHost=window.location.host!=='app.lowcoder.cloud';
82+
83+
exporttypeApiDocBreadcrumbType={text:string;path:string};
84+
85+
exportinterfaceApiDocLayoutProps{
86+
breadcrumb?:ApiDocBreadcrumbType[];
87+
}
88+
89+
exportfunctionApiDoc(props:ApiDocLayoutProps){
90+
91+
const{ breadcrumb=[]}=props;
92+
constcurrentPath=useLocation().pathname;
93+
94+
constbreadcrumbItems=[
95+
{
96+
key:0,
97+
title:trans("home.home"),
98+
onClick:()=>
99+
currentPath!==ALL_APPLICATIONS_URL&&history.push(ALL_APPLICATIONS_URL),
100+
},
101+
{
102+
key:0,
103+
title:trans("home.api"),
104+
onClick:()=>
105+
currentPath!==API_DOCS_URL&&history.push(API_DOCS_URL),
106+
},
107+
...breadcrumb.map((b,i)=>({
108+
key:i+1,
109+
title:b.text,
110+
onClick:()=>currentPath!==b.path&&history.push(b.path)
111+
}))
112+
]
113+
114+
return(
115+
<Wrapper>
116+
<HeaderWrapper>
117+
<Breadcrumb
118+
separator={<ArrowIcon/>}
119+
items={breadcrumbItems}
120+
itemRender={(item)=>(
121+
<BreadcrumbItem
122+
key={item.key}
123+
onClick={item.onClick}
124+
>
125+
{item.title}
126+
</BreadcrumbItem>
127+
)}
128+
>
129+
</Breadcrumb>
130+
</HeaderWrapper>
131+
132+
<ContentWrapper>
133+
<ApiDocView>
134+
<StyleApiDocCover>
135+
<h1style={{color:"#ffffff",marginTop :"12px"}}>{trans("home.api")}</h1>
136+
</StyleApiDocCover>
137+
<Cardstyle={{marginBottom:"20px",minHeight :"800px",width:"100%"}}>
138+
<divstyle={{width :"100%"}}>{/* className={styles.stoplightApidoc} */}
139+
<API
140+
layout="sidebar"
141+
hideSchemas={true}
142+
hideInternal={true}
143+
hideExport={true}
144+
tryItCredentialsPolicy="omit"
145+
tryItCorsProxy={isSelfHost ?undefined :'https://api-service.lowcoder.cloud'}
146+
basePath="lowcoder-api"
147+
apiDescriptionUrl="https://api-service.lowcoder.cloud/api/docs/api-docs"
148+
/>
149+
</div>
150+
</Card>
151+
152+
</ApiDocView>
153+
</ContentWrapper>
154+
</Wrapper>
155+
);
156+
}
Lines changed: 13 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,13 @@
1+
import{Helmet}from"react-helmet";
2+
import{ApiDoc}from"./ApiDocLayout";
3+
import{trans}from"i18n";
4+
5+
exportfunctionApiDocView(){
6+
7+
return(
8+
<><Helmet>
9+
{<title>{trans("productName")}{trans("home.api")}</title>}
10+
</Helmet><ApiDoc/></>
11+
);
12+
13+
};

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

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -107,7 +107,7 @@ export const MoveToFolderModal = (props: { source?: HomeRes; onClose: () => void
107107
{
108108
label:(
109109
<FolderSelectLabel>
110-
<FolderIconstyle={{marginRight:"8px",flexShrink:0}}/>
110+
<FolderIconstyle={{marginRight:"8px",width:"24px",flexShrink:0}}/>
111111
{trans("home.rootFolder")}
112112
</FolderSelectLabel>
113113
),
@@ -120,7 +120,7 @@ export const MoveToFolderModal = (props: { source?: HomeRes; onClose: () => void
120120
.map((f)=>({
121121
label:(
122122
<FolderSelectLabel>
123-
<FolderIconstyle={{marginRight:"8px",width:"20px",flexShrink:0}}/>
123+
<FolderIconstyle={{marginRight:"8px",width:"24px",flexShrink:0}}/>
124124
{f.name}
125125
</FolderSelectLabel>
126126
),

‎client/packages/lowcoder/src/pages/ApplicationV2/components/stoplight.styles.css

Lines changed: 1 addition & 0 deletions
Some generated files are not rendered by default. Learn more aboutcustomizing how changed files appear on GitHub.

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

Lines changed: 10 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -10,6 +10,7 @@ import {
1010
QUERY_LIBRARY_URL,
1111
SETTING,
1212
TRASH_URL,
13+
API_DOCS_URL,
1314
// ADMIN_APP_URL,
1415
NEWS_URL,
1516
ORG_HOME_URL,
@@ -35,6 +36,7 @@ import {
3536
AppsIcon,
3637
EnterpriseIcon,
3738
UserIcon,
39+
APIDocsIcon,
3840
}from"lowcoder-design";
3941
importReact,{useEffect,useState}from"react";
4042
import{fetchAllApplications,fetchHomeData}from"redux/reduxActions/applicationActions";
@@ -47,6 +49,7 @@ import { Layout } from "../../components/layout/Layout";
4749
import{HomeView}from"./HomeView";
4850
import{UserProfileView}from"./UserProfileView";
4951
import{NewsView}from"./NewsView";
52+
import{ApiDocView}from"./ApiDocView";
5053
import{OrgView}from"./OrgView";
5154
importstyled,{css}from"styled-components";
5255
importhistoryfrom"../../util/history";
@@ -441,6 +444,13 @@ export default function ApplicationHome() {
441444
visible:({ user})=>user.orgDev,
442445
onSelected:(_,currentPath)=>currentPath.split("/")[1]==="datasource",
443446
},
447+
{
448+
text:<TabLabel>{trans("home.api")}</TabLabel>,
449+
routePath:API_DOCS_URL,
450+
routeComp:ApiDocView,
451+
icon:({ selected, ...otherProps})=>selected ?<APIDocsIcon{...otherProps}width={"24px"}/> :<APIDocsIcon{...otherProps}width={"24px"}/>,
452+
visible:({ user})=>user.orgDev,
453+
}
444454
],
445455
},
446456
isEE() ?{

‎client/packages/lowcoder/src/pages/setting/settingHome.tsx

Lines changed: 5 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -26,7 +26,7 @@ import { selectSystemConfig } from "redux/selectors/configSelectors";
2626
import{enableCustomBrand}from"util/featureFlagUtils";
2727
importFreeLimitTagfrom"pages/common/freeLimitTag";
2828
import{Helmet}from"react-helmet";
29-
importApiDocsfrom"./apiDocs";
29+
//import ApiDocs from "./apiDocs";
3030

3131
enumSettingPageEnum{
3232
UserGroups="permission",
@@ -35,7 +35,7 @@ enum SettingPageEnum {
3535
Theme="theme",
3636
Branding="branding",
3737
Advanced="advanced",
38-
ApiDocs="apiDocs",
38+
//ApiDocs = "apiDocs",
3939
OAuthProvider="oauth-provider",
4040
AppUsage="app-usage",
4141
Environments="environments",
@@ -73,11 +73,11 @@ export function SettingHome() {
7373
label:trans("settings.advanced"),
7474
icon:<LeftSettingIconwidth={"20px"}/>,
7575
},
76-
{
76+
/*{
7777
key: SettingPageEnum.ApiDocs,
7878
label: trans("settings.apiDocs"),
7979
icon: <LeftSettingIcon width={"20px"}/>,
80-
},
80+
}, */
8181

8282
// Premium features
8383

@@ -155,7 +155,7 @@ export function SettingHome() {
155155
{selectKey===SettingPageEnum.Audit&&<AuditSetting/>}
156156
{selectKey===SettingPageEnum.Branding&&<BrandingSetting/>}
157157
{selectKey===SettingPageEnum.Advanced&&<AdvancedSetting/>}
158-
{selectKey===SettingPageEnum.ApiDocs&&<ApiDocs/>}
158+
{/* {selectKey === SettingPageEnum.ApiDocs && <ApiDocs />} */}
159159
</TwoColumnSettingPageContent>
160160
</>
161161
);

0 commit comments

Comments
 (0)

[8]ページ先頭

©2009-2025 Movatter.jp