UNPKG

680 BJavaScriptView Raw
1import fs from 'mz/fs.js'
2
3let TRACK_CONTEXT = `import React from 'react'
4
5export let TrackContext = React.createContext()
6
7export 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
22export default async function ensureTrackContext({ file }) {
23 if (!(await fs.exists(file))) {
24 await fs.writeFile(file, TRACK_CONTEXT, {
25 encoding: 'utf8',
26 })
27 }
28}