1
- import React , { useState } from "react" ;
1
+ import React , { useState , useEffect } from "react" ;
2
2
import {
3
3
Spin ,
4
4
Typography ,
@@ -9,17 +9,23 @@ import {
9
9
Menu ,
10
10
Button ,
11
11
Tag ,
12
+ Result ,
12
13
} from "antd" ;
13
14
import {
14
15
LinkOutlined ,
15
16
HomeOutlined ,
16
17
AppstoreOutlined ,
17
18
UsergroupAddOutlined ,
18
19
EditOutlined ,
20
+ CheckCircleOutlined ,
21
+ CloseCircleOutlined ,
22
+ ExclamationCircleOutlined ,
23
+ SyncOutlined ,
19
24
} from "@ant-design/icons" ;
20
25
21
26
import { useSingleEnvironmentContext } from "./context/SingleEnvironmentContext" ;
22
27
import EditEnvironmentModal from "./components/EditEnvironmentModal" ;
28
+ import UnlicensedEnvironmentView from "./components/UnlicensedEnvironmentView" ;
23
29
import { Environment } from "./types/environment.types" ;
24
30
import history from "@lowcoder-ee/util/history" ;
25
31
import WorkspacesTab from "./components/WorkspacesTab" ;
@@ -95,6 +101,29 @@ const EnvironmentDetail: React.FC = () => {
95
101
) ;
96
102
}
97
103
104
+ // Check if environment is not licensed and show modern UI
105
+ if ( environment . isLicensed === false ) {
106
+ return (
107
+ < >
108
+ < UnlicensedEnvironmentView
109
+ environment = { environment }
110
+ onEditClick = { handleEditClick }
111
+ />
112
+
113
+ { /* Edit Environment Modal */ }
114
+ { environment && (
115
+ < EditEnvironmentModal
116
+ visible = { isEditModalVisible }
117
+ environment = { environment }
118
+ onClose = { handleCloseModal }
119
+ onSave = { handleSaveEnvironment }
120
+ loading = { isUpdating }
121
+ />
122
+ ) }
123
+ </ >
124
+ ) ;
125
+ }
126
+
98
127
const breadcrumbItems = [
99
128
{
100
129
key : 'environments' ,
@@ -114,7 +143,7 @@ const EnvironmentDetail: React.FC = () => {
114
143
return (
115
144
< div
116
145
className = "environment-detail-container"
117
- style = { { padding : "24px" , flex : 1 } }
146
+ style = { { padding : "24px" , flex : 1 , minWidth : "1000px" } }
118
147
>
119
148
{ /* Environment Header Component */ }
120
149
< EnvironmentHeader
@@ -157,6 +186,22 @@ const EnvironmentDetail: React.FC = () => {
157
186
{ environment . environmentType }
158
187
</ Tag >
159
188
</ Descriptions . Item >
189
+ < Descriptions . Item label = "License Status" >
190
+ { ( ( ) => {
191
+ switch ( environment . licenseStatus ) {
192
+ case 'checking' :
193
+ return < Tag icon = { < SyncOutlined spin /> } color = "blue" style = { { borderRadius : '12px' } } > Checking...</ Tag > ;
194
+ case 'licensed' :
195
+ return < Tag icon = { < CheckCircleOutlined /> } color = "green" style = { { borderRadius : '12px' } } > Licensed</ Tag > ;
196
+ case 'unlicensed' :
197
+ return < Tag icon = { < CloseCircleOutlined /> } color = "red" style = { { borderRadius : '12px' } } > Not Licensed</ Tag > ;
198
+ case 'error' :
199
+ return < Tag icon = { < ExclamationCircleOutlined /> } color = "orange" style = { { borderRadius : '12px' } } > License Error</ Tag > ;
200
+ default :
201
+ return < Tag color = "default" style = { { borderRadius : '12px' } } > Unknown</ Tag > ;
202
+ }
203
+ } ) ( ) }
204
+ </ Descriptions . Item >
160
205
< Descriptions . Item label = "API Key Status" >
161
206
{ environment . environmentApikey ? (
162
207
< Tag color = "green" style = { { borderRadius : '12px' } } > Configured</ Tag >
0 commit comments