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

Commit4d63a47

Browse files
fix(site): fix infinity loading when template has no previous version (#12059)
1 parent040ce40 commit4d63a47

File tree

4 files changed

+72
-8
lines changed

4 files changed

+72
-8
lines changed

‎site/src/api/api.ts

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -321,7 +321,7 @@ export const getPreviousTemplateVersionByName = async (
321321
organizationId:string,
322322
templateName:string,
323323
versionName:string,
324-
):Promise<GetPreviousTemplateVersionByNameResponse>=>{
324+
)=>{
325325
try{
326326
constresponse=awaitaxios.get<TypesGen.TemplateVersion>(
327327
`/api/v2/organizations/${organizationId}/templates/${templateName}/versions/${versionName}/previous`,

‎site/src/api/queries/templates.ts

Lines changed: 6 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -266,12 +266,15 @@ export const previousTemplateVersion = (
266266
versionName,
267267
"previous",
268268
],
269-
queryFn:()=>
270-
API.getPreviousTemplateVersionByName(
269+
queryFn:async()=>{
270+
constresult=awaitAPI.getPreviousTemplateVersionByName(
271271
organizationId,
272272
templateName,
273273
versionName,
274-
),
274+
);
275+
276+
returnresult??null;
277+
},
275278
};
276279
};
277280

Lines changed: 56 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,56 @@
1+
import{render,screen}from"@testing-library/react";
2+
import{AppProviders}from"App";
3+
import{RequireAuth}from"contexts/auth/RequireAuth";
4+
import{RouterProvider,createMemoryRouter}from"react-router-dom";
5+
import{TemplateLayout}from"../TemplateLayout";
6+
importTemplateFilesPagefrom"./TemplateFilesPage";
7+
import{MockTemplate}from"testHelpers/entities";
8+
import{server}from"testHelpers/server";
9+
import{rest}from"msw";
10+
11+
// Occasionally, Jest encounters HTML5 canvas errors. As the SyntaxHighlight is
12+
// not required for these tests, we can safely mock it.
13+
jest.mock("components/SyntaxHighlighter/SyntaxHighlighter",()=>({
14+
SyntaxHighlighter:()=><divdata-testid="syntax-highlighter"/>,
15+
}));
16+
17+
test("displays the template files even when there is no previous version",async()=>{
18+
server.use(
19+
rest.get(
20+
"/api/v2/organizations/:orgId/templates/:template/versions/:version/previous",
21+
(req,res,ctx)=>{
22+
returnres(ctx.status(404));
23+
},
24+
),
25+
);
26+
27+
render(
28+
<AppProviders>
29+
<RouterProvider
30+
router={createMemoryRouter(
31+
[
32+
{
33+
element:<RequireAuth/>,
34+
children:[
35+
{
36+
element:<TemplateLayout/>,
37+
children:[
38+
{
39+
path:"/templates/:template/files",
40+
element:<TemplateFilesPage/>,
41+
},
42+
],
43+
},
44+
],
45+
},
46+
],
47+
{
48+
initialEntries:[`/templates/${MockTemplate.name}/files`],
49+
},
50+
)}
51+
/>
52+
</AppProviders>,
53+
);
54+
55+
awaitscreen.findByTestId("syntax-highlighter");
56+
});

‎site/src/pages/TemplatePage/TemplateFilesPage/TemplateFilesPage.tsx

Lines changed: 9 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -14,21 +14,26 @@ const TemplateFilesPage: FC = () => {
1414
const{data:currentFiles}=useQuery(
1515
templateFiles(activeVersion.job.file_id),
1616
);
17-
const{data:previousTemplate}=useQuery(
17+
constpreviousVersionQuery=useQuery(
1818
previousTemplateVersion(orgId,template.name,activeVersion.name),
1919
);
20+
constpreviousVersion=previousVersionQuery.data;
21+
consthasPreviousVersion=
22+
previousVersionQuery.isSuccess&&previousVersion!==null;
2023
const{data:previousFiles}=useQuery({
21-
...templateFiles(previousTemplate?.job.file_id??""),
22-
enabled:Boolean(previousTemplate),
24+
...templateFiles(previousVersion?.job.file_id??""),
25+
enabled:hasPreviousVersion,
2326
});
27+
constshouldDisplayFiles=
28+
currentFiles&&(!hasPreviousVersion||previousFiles);
2429

2530
return(
2631
<>
2732
<Helmet>
2833
<title>{getTemplatePageTitle("Source Code",template)}</title>
2934
</Helmet>
3035

31-
{previousFiles&&currentFiles ?(
36+
{shouldDisplayFiles ?(
3237
<TemplateFiles
3338
currentFiles={currentFiles}
3439
baseFiles={previousFiles}

0 commit comments

Comments
 (0)

[8]ページ先頭

©2009-2025 Movatter.jp