1
+ import Avatar from "@material-ui/core/Avatar"
1
2
import Button from "@material-ui/core/Button"
2
3
import Link from "@material-ui/core/Link"
3
4
import { makeStyles } from "@material-ui/core/styles"
@@ -7,6 +8,7 @@ import frontMatter from "front-matter"
7
8
import { FC } from "react"
8
9
import ReactMarkdown from "react-markdown"
9
10
import { Link as RouterLink } from "react-router-dom"
11
+ import { firstLetter } from "util/firstLetter"
10
12
import { Template , TemplateVersion , WorkspaceResource } from "../../api/typesGenerated"
11
13
import { Margins } from "../../components/Margins/Margins"
12
14
import {
@@ -44,6 +46,7 @@ export const TemplatePageView: FC<TemplatePageViewProps> = ({
44
46
} ) => {
45
47
const styles = useStyles ( )
46
48
const readme = frontMatter ( activeTemplateVersion . readme )
49
+ const hasIcon = template . icon && template . icon !== ""
47
50
48
51
const getStartedResources = ( resources : WorkspaceResource [ ] ) => {
49
52
return resources . filter ( ( resource ) => resource . workspace_transition === "start" )
@@ -73,13 +76,26 @@ export const TemplatePageView: FC<TemplatePageViewProps> = ({
73
76
</ Stack >
74
77
}
75
78
>
76
- < PageHeaderTitle > { template . name } </ PageHeaderTitle >
77
- < PageHeaderSubtitle >
78
- { template . description === "" ? Language . noDescription : template . description }
79
- </ PageHeaderSubtitle >
79
+ < Stack direction = "row" spacing = { 3 } className = { styles . pageTitle } >
80
+ < div >
81
+ { hasIcon ? (
82
+ < div className = { styles . iconWrapper } >
83
+ < img src = { template . icon } alt = "" />
84
+ </ div >
85
+ ) : (
86
+ < Avatar className = { styles . avatar } > { firstLetter ( template . name ) } </ Avatar >
87
+ ) }
88
+ </ div >
89
+ < div >
90
+ < PageHeaderTitle > { template . name } </ PageHeaderTitle >
91
+ < PageHeaderSubtitle >
92
+ { template . description === "" ? Language . noDescription : template . description }
93
+ </ PageHeaderSubtitle >
94
+ </ div >
95
+ </ Stack >
80
96
</ PageHeader >
81
97
82
- < Stack spacing = { 3 } >
98
+ < Stack spacing = { 2.5 } >
83
99
< TemplateStats template = { template } activeVersion = { activeTemplateVersion } />
84
100
< WorkspaceSection
85
101
title = { Language . resourcesTitle }
@@ -137,5 +153,20 @@ export const useStyles = makeStyles((theme) => {
137
153
versionsTableContents : {
138
154
margin : 0 ,
139
155
} ,
156
+ pageTitle : {
157
+ alignItems : "center" ,
158
+ } ,
159
+ avatar : {
160
+ width : theme . spacing ( 6 ) ,
161
+ height : theme . spacing ( 6 ) ,
162
+ fontSize : theme . spacing ( 3 ) ,
163
+ } ,
164
+ iconWrapper : {
165
+ width : theme . spacing ( 6 ) ,
166
+ height : theme . spacing ( 6 ) ,
167
+ "& img" : {
168
+ width : "100%" ,
169
+ } ,
170
+ } ,
140
171
}
141
172
} )
0 commit comments