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

Commit477723f

Browse files
committed
chore: cleanup
1 parent9673441 commit477723f

File tree

3 files changed

+57
-45
lines changed

3 files changed

+57
-45
lines changed

‎site/src/api/api.ts

Lines changed: 20 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1009,10 +1009,29 @@ class ApiMethods {
10091009
returnresponse.data;
10101010
};
10111011

1012-
templateVersionDynamicParameters=(versionId:string):WebSocket=>{
1012+
templateVersionDynamicParameters=(
1013+
versionId:string,
1014+
{
1015+
onMessage,
1016+
onError,
1017+
}:{
1018+
onMessage:(response:TypesGen.DynamicParametersResponse)=>void;
1019+
onError:(error:Error)=>void;
1020+
},
1021+
):WebSocket=>{
10131022
constsocket=createWebSocket(
10141023
`/api/v2/templateversions/${versionId}/dynamic-parameters`,
10151024
);
1025+
1026+
socket.addEventListener("message",(event)=>
1027+
onMessage(JSON.parse(event.data)asTypesGen.DynamicParametersResponse),
1028+
);
1029+
1030+
socket.addEventListener("error",()=>{
1031+
onError?.(newError("Connection for dynamic parameters failed."));
1032+
socket.close();
1033+
});
1034+
10161035
returnsocket;
10171036
};
10181037

‎site/src/pages/CreateWorkspacePage/CreateWorkspacePageExperimental.tsx

Lines changed: 36 additions & 40 deletions
Original file line numberDiff line numberDiff line change
@@ -49,7 +49,7 @@ const CreateWorkspacePageExperimental: FC = () => {
4949
const[currentResponse,setCurrentResponse]=
5050
useState<DynamicParametersResponse|null>(null);
5151
const[wsResponseId,setWSResponseId]=useState<number>(-1);
52-
constwebSocket=useRef<WebSocket|null>(null);
52+
constws=useRef<WebSocket|null>(null);
5353

5454
constcustomVersionId=searchParams.get("version")??undefined;
5555
constdefaultName=searchParams.get("name");
@@ -81,58 +81,54 @@ const CreateWorkspacePageExperimental: FC = () => {
8181
constrealizedVersionId=
8282
customVersionId??templateQuery.data?.active_version_id;
8383

84+
constonMessage=useCallback((response:DynamicParametersResponse)=>{
85+
setCurrentResponse((prev)=>{
86+
if(prev?.id===response.id){
87+
returnprev;
88+
}
89+
returnresponse;
90+
});
91+
},[]);
92+
8493
// Initialize the WebSocket connection when there is a valid template version ID
8594
useEffect(()=>{
8695
if(!realizedVersionId){
8796
return;
8897
}
8998

90-
if(webSocket.current){
91-
webSocket.current.close();
99+
if(ws.current){
100+
ws.current.close();
92101
}
93102

94-
constsocket=API.templateVersionDynamicParameters(realizedVersionId);
95-
96-
socket.addEventListener("message",(event)=>{
97-
try{
98-
constresponse=JSON.parse(event.data)asDynamicParametersResponse;
99-
100-
if(response&&response.id>=wsResponseId){
101-
setCurrentResponse((prev)=>{
102-
if(prev?.id===response.id){
103-
returnprev;
104-
}
105-
returnresponse;
106-
});
107-
}
108-
}catch(error){
109-
console.error("Failed to parse WebSocket message:",error);
110-
}
103+
constsocket=API.templateVersionDynamicParameters(realizedVersionId,{
104+
onMessage,
105+
onError:(error)=>{
106+
console.error("Failed to parse dynamic parameters webSocket message:",error);
107+
},
111108
});
112109

113-
webSocket.current=socket;
110+
ws.current=socket;
114111

115112
return()=>{
116-
if(webSocket.current){
117-
webSocket.current.close();
113+
if(ws.current){
114+
ws.current.close();
118115
}
119116
};
120-
},[realizedVersionId]);
121-
122-
constsendMessage=
123-
(formValues:Record<string,string>)=>{
124-
setWSResponseId(prevId=>{
125-
constrequest:DynamicParametersRequest={
126-
id:prevId+1,
127-
inputs:formValues,
128-
};
129-
if(webSocket.current&&webSocket.current.readyState===WebSocket.OPEN){
130-
webSocket.current.send(JSON.stringify(request));
131-
returnprevId+1;
132-
}
133-
returnprevId;
134-
})
135-
};
117+
},[realizedVersionId,onMessage]);
118+
119+
constsendMessage=(formValues:Record<string,string>)=>{
120+
setWSResponseId((prevId)=>{
121+
constrequest:DynamicParametersRequest={
122+
id:prevId+1,
123+
inputs:formValues,
124+
};
125+
if(ws.current&&ws.current.readyState===WebSocket.OPEN){
126+
ws.current.send(JSON.stringify(request));
127+
returnprevId+1;
128+
}
129+
returnprevId;
130+
});
131+
};
136132

137133
constorganizationId=templateQuery.data?.organization_id;
138134

@@ -143,7 +139,7 @@ const CreateWorkspacePageExperimental: FC = () => {
143139
isLoadingExternalAuth,
144140
}=useExternalAuth(realizedVersionId);
145141

146-
constisLoadingFormData=
142+
constisLoadingFormData=ws.current?.readyState!==WebSocket.OPEN||
147143
templateQuery.isLoading||permissionsQuery.isLoading;
148144
constloadFormDataError=templateQuery.error??permissionsQuery.error;
149145

‎site/src/pages/CreateWorkspacePage/CreateWorkspacePageViewExperimental.tsx

Lines changed: 1 addition & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -1,8 +1,5 @@
11
importtype*asTypesGenfrom"api/typesGenerated";
2-
importtype{
3-
PreviewDiagnostics,
4-
PreviewParameter,
5-
}from"api/typesGenerated";
2+
importtype{PreviewDiagnostics,PreviewParameter}from"api/typesGenerated";
63
import{Alert}from"components/Alert/Alert";
74
import{ErrorAlert}from"components/Alert/ErrorAlert";
85
import{Avatar}from"components/Avatar/Avatar";

0 commit comments

Comments
 (0)

[8]ページ先頭

©2009-2025 Movatter.jp