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

Commit66585f0

Browse files
authored
feat: support markdown in update messages (#12273)
1 parent7e6cb66 commit66585f0

File tree

10 files changed

+246
-36
lines changed

10 files changed

+246
-36
lines changed
Lines changed: 44 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,44 @@
1+
import{typeInterpolation,typeTheme}from"@emotion/react";
2+
import{typeFC}from"react";
3+
import{MemoizedMarkdown}from"components/Markdown/Markdown";
4+
5+
interfaceTemplateUpdateMessageProps{
6+
children:string;
7+
}
8+
9+
exportconstTemplateUpdateMessage:FC<TemplateUpdateMessageProps>=({
10+
children,
11+
})=>{
12+
return(
13+
<MemoizedMarkdowncss={styles.versionMessage}>{children}</MemoizedMarkdown>
14+
);
15+
};
16+
17+
conststyles={
18+
versionMessage:{
19+
fontSize:14,
20+
lineHeight:1.2,
21+
22+
"& h1, & h2, & h3, & h4, & h5, & h6":{
23+
margin:"0 0 0.75em",
24+
},
25+
"& h1":{
26+
fontSize:"1.2em",
27+
},
28+
"& h2":{
29+
fontSize:"1.15em",
30+
},
31+
"& h3":{
32+
fontSize:"1.1em",
33+
},
34+
"& h4":{
35+
fontSize:"1.05em",
36+
},
37+
"& h5":{
38+
fontSize:"1em",
39+
},
40+
"& h6":{
41+
fontSize:"0.95em",
42+
},
43+
},
44+
}satisfiesRecord<string,Interpolation<Theme>>;

‎site/src/pages/TemplateVersionPage/TemplateVersionPageView.stories.tsx

Lines changed: 7 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -2,6 +2,7 @@ import {
22
mockApiError,
33
MockTemplate,
44
MockTemplateVersion,
5+
MockTemplateVersionWithMarkdownMessage,
56
}from"testHelpers/entities";
67
import{
78
TemplateVersionPageView,
@@ -45,6 +46,12 @@ type Story = StoryObj<typeof TemplateVersionPageView>;
4546

4647
exportconstDefault:Story={};
4748

49+
exportconstLongVersionMessage:Story={
50+
args:{
51+
currentVersion:MockTemplateVersionWithMarkdownMessage,
52+
},
53+
};
54+
4855
exportconstError:Story={
4956
args:{
5057
...defaultArgs,

‎site/src/pages/TemplateVersionPage/TemplateVersionPageView.tsx

Lines changed: 6 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -8,7 +8,6 @@ import { Margins } from "components/Margins/Margins";
88
import{
99
PageHeader,
1010
PageHeaderCaption,
11-
PageHeaderSubtitle,
1211
PageHeaderTitle,
1312
}from"components/PageHeader/PageHeader";
1413
import{Stack}from"components/Stack/Stack";
@@ -18,6 +17,7 @@ import type { TemplateVersion } from "api/typesGenerated";
1817
import{createDayString}from"utils/createDayString";
1918
import{TemplateVersionFiles}from"utils/templateVersion";
2019
import{ErrorAlert}from"components/Alert/ErrorAlert";
20+
import{TemplateUpdateMessage}from"modules/templates/TemplateUpdateMessage";
2121

2222
exportinterfaceTemplateVersionPageViewProps{
2323
versionName:string;
@@ -65,17 +65,17 @@ export const TemplateVersionPageView: FC<TemplateVersionPageViewProps> = ({
6565
>
6666
<PageHeaderCaption>Version</PageHeaderCaption>
6767
<PageHeaderTitle>{versionName}</PageHeaderTitle>
68-
{currentVersion&&
69-
currentVersion.message&&
70-
currentVersion.message!==""&&(
71-
<PageHeaderSubtitle>{currentVersion.message}</PageHeaderSubtitle>
72-
)}
7368
</PageHeader>
7469

7570
{!currentFiles&&!error&&<Loader/>}
7671

7772
<Stackspacing={4}>
7873
{Boolean(error)&&<ErrorAlerterror={error}/>}
74+
{currentVersion?.message&&(
75+
<TemplateUpdateMessage>
76+
{currentVersion.message}
77+
</TemplateUpdateMessage>
78+
)}
7979
{currentVersion&&currentFiles&&(
8080
<>
8181
<Stats>
Lines changed: 49 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,49 @@
1+
import{
2+
MockTemplate,
3+
MockTemplateVersion,
4+
MockTemplateVersionWithMarkdownMessage,
5+
}from"testHelpers/entities";
6+
importtype{Meta,StoryObj}from"@storybook/react";
7+
import{ChangeVersionDialog}from"./ChangeVersionDialog";
8+
9+
constnoMessage={
10+
...MockTemplateVersion,
11+
message:"",
12+
};
13+
14+
constmeta:Meta<typeofChangeVersionDialog>={
15+
title:"pages/WorkspacePage/ChangeVersionDialog",
16+
component:ChangeVersionDialog,
17+
args:{
18+
open:true,
19+
template:MockTemplate,
20+
templateVersions:[
21+
MockTemplateVersion,
22+
MockTemplateVersionWithMarkdownMessage,
23+
noMessage,
24+
],
25+
},
26+
};
27+
28+
exportdefaultmeta;
29+
typeStory=StoryObj<typeofChangeVersionDialog>;
30+
31+
exportconstNoVersionSelected:Story={};
32+
33+
exportconstNoMessage:Story={
34+
args:{
35+
defaultTemplateVersion:noMessage,
36+
},
37+
};
38+
39+
exportconstShortMessage:Story={
40+
args:{
41+
defaultTemplateVersion:MockTemplateVersion,
42+
},
43+
};
44+
45+
exportconstLongMessage:Story={
46+
args:{
47+
defaultTemplateVersion:MockTemplateVersionWithMarkdownMessage,
48+
},
49+
};

‎site/src/pages/WorkspacePage/ChangeVersionDialog.tsx

Lines changed: 15 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -6,7 +6,7 @@ import AlertTitle from "@mui/material/AlertTitle";
66
importInfoIconfrom"@mui/icons-material/InfoOutlined";
77
import{css}from"@emotion/css";
88
importtype{Template,TemplateVersion}from"api/typesGenerated";
9-
import{Alert,AlertDetail}from"components/Alert/Alert";
9+
import{Alert}from"components/Alert/Alert";
1010
importtype{DialogProps}from"components/Dialogs/Dialog";
1111
import{ConfirmDialog}from"components/Dialogs/ConfirmDialog/ConfirmDialog";
1212
import{FormFields}from"components/Form/Form";
@@ -16,6 +16,7 @@ import { AvatarData } from "components/AvatarData/AvatarData";
1616
import{Pill}from"components/Pill/Pill";
1717
import{Avatar}from"components/Avatar/Avatar";
1818
import{createDayString}from"utils/createDayString";
19+
import{TemplateUpdateMessage}from"modules/templates/TemplateUpdateMessage";
1920

2021
exporttypeChangeVersionDialogProps=DialogProps&{
2122
template:Template|undefined;
@@ -34,7 +35,9 @@ export const ChangeVersionDialog: FC<ChangeVersionDialogProps> = ({
3435
...dialogProps
3536
})=>{
3637
const[isAutocompleteOpen,setIsAutocompleteOpen]=useState(false);
37-
constselectedTemplateVersion=useRef<TemplateVersion|undefined>();
38+
constselectedTemplateVersion=useRef<TemplateVersion|undefined>(
39+
defaultTemplateVersion,
40+
);
3841
constversion=selectedTemplateVersion.current;
3942
constvalidTemplateVersions=templateVersions?.filter((version)=>{
4043
returnversion.job.status==="succeeded";
@@ -138,14 +141,18 @@ export const ChangeVersionDialog: FC<ChangeVersionDialogProps> = ({
138141
/>
139142
</FormFields>
140143
{version&&(
141-
<Alertseverity="info">
142-
<AlertTitle>
143-
Published by{version.created_by.username}
144-
</AlertTitle>
144+
<>
145145
{version.message&&(
146-
<AlertDetail>{version.message}</AlertDetail>
146+
<TemplateUpdateMessage>
147+
{version.message}
148+
</TemplateUpdateMessage>
147149
)}
148-
</Alert>
150+
<Alertseverity="info">
151+
<AlertTitle>
152+
Published by{version.created_by.username}
153+
</AlertTitle>
154+
</Alert>
155+
</>
149156
)}
150157
</>
151158
) :(

‎site/src/pages/WorkspacePage/WorkspaceNotifications/Notifications.tsx

Lines changed: 5 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -22,21 +22,22 @@ type NotificationsProps = {
2222
items:NotificationItem[];
2323
severity:ThemeRole;
2424
icon:ReactNode;
25-
isDefaultOpen?:boolean;
2625
};
2726

2827
exportconstNotifications:FC<NotificationsProps>=({
2928
items,
3029
severity,
3130
icon,
32-
isDefaultOpen,
3331
})=>{
3432
consttheme=useTheme();
3533

3634
return(
37-
<Popovermode="hover"isDefaultOpen={isDefaultOpen}>
35+
<Popovermode="hover">
3836
<PopoverTrigger>
39-
<divcss={styles.pillContainer}>
37+
<div
38+
css={styles.pillContainer}
39+
data-testid={`${severity}-notifications`}
40+
>
4041
<NotificationPillitems={items}severity={severity}icon={icon}/>
4142
</div>
4243
</PopoverTrigger>

0 commit comments

Comments
 (0)

[8]ページ先頭

©2009-2025 Movatter.jp