@@ -4,11 +4,13 @@ import Link from "@material-ui/core/Link"
4
4
import { makeStyles } from "@material-ui/core/styles"
5
5
import AddCircleOutline from "@material-ui/icons/AddCircleOutline"
6
6
import SettingsOutlined from "@material-ui/icons/SettingsOutlined"
7
+ import { useMachine } from "@xstate/react"
7
8
import frontMatter from "front-matter"
8
9
import { FC } from "react"
9
10
import ReactMarkdown from "react-markdown"
10
11
import { Link as RouterLink } from "react-router-dom"
11
12
import { firstLetter } from "util/firstLetter"
13
+ import { templateMetricsMachine } from "xServices/templateMetrics/templateMetricsXService"
12
14
import { Template , TemplateVersion , WorkspaceResource } from "../../api/typesGenerated"
13
15
import { Margins } from "../../components/Margins/Margins"
14
16
import {
@@ -21,6 +23,7 @@ import { TemplateResourcesTable } from "../../components/TemplateResourcesTable/
21
23
import { TemplateStats } from "../../components/TemplateStats/TemplateStats"
22
24
import { VersionsTable } from "../../components/VersionsTable/VersionsTable"
23
25
import { WorkspaceSection } from "../../components/WorkspaceSection/WorkspaceSection"
26
+ import { DAUChart } from "./DAUCharts"
24
27
25
28
const Language = {
26
29
settingsButton : "Settings" ,
@@ -48,6 +51,13 @@ export const TemplatePageView: FC<React.PropsWithChildren<TemplatePageViewProps>
48
51
const readme = frontMatter ( activeTemplateVersion . readme )
49
52
const hasIcon = template . icon && template . icon !== ""
50
53
54
+ const [ metricsState ] = useMachine ( templateMetricsMachine , {
55
+ context : {
56
+ templateId : template . id ,
57
+ } ,
58
+ } )
59
+ const { templateMetricsData } = metricsState . context
60
+
51
61
const getStartedResources = ( resources : WorkspaceResource [ ] ) => {
52
62
return resources . filter ( ( resource ) => resource . workspace_transition === "start" )
53
63
}
@@ -95,6 +105,8 @@ export const TemplatePageView: FC<React.PropsWithChildren<TemplatePageViewProps>
95
105
</ Stack >
96
106
</ PageHeader >
97
107
108
+ { templateMetricsData && < DAUChart templateMetricsData = { templateMetricsData } /> }
109
+
98
110
< Stack spacing = { 2.5 } >
99
111
< TemplateStats template = { template } activeVersion = { activeTemplateVersion } />
100
112
< WorkspaceSection
0 commit comments