1 | import fs from 'mz/fs.js'
|
2 |
|
3 | let TRACK_CONTEXT = `import React from 'react'
|
4 |
|
5 | export let TrackContext = React.createContext()
|
6 |
|
7 | export class Track extends React.Component {
|
8 | track = ({ block, action, event }) => {
|
9 | // TODO add your own tracking logic
|
10 | console.log(block, action, event.target.textContent || event.target.parentNode.textContent)
|
11 | }
|
12 |
|
13 | render() {
|
14 | return (
|
15 | <TrackContext.Provider value={this.track}>
|
16 | {this.props.children}
|
17 | </TrackContext.Provider>
|
18 | )
|
19 | }
|
20 | }`
|
21 |
|
22 | export default async function ensureTrackContext({ file }) {
|
23 | if (!(await fs.exists(file))) {
|
24 | await fs.writeFile(file, TRACK_CONTEXT, {
|
25 | encoding: 'utf8',
|
26 | })
|
27 | }
|
28 | }
|