|
1 | 1 | import{Action}from'typings'
|
2 |
| -import{sendasstateMachineSend}from'xstate' |
3 | 2 |
|
4 | 3 | declarevaracquireVsCodeApi:any
|
5 | 4 |
|
6 |
| -//@ts-ignore |
7 |
| -if(!window.acquireVsCodeApi){ |
8 |
| -//@ts-ignore |
9 |
| -require('./mock') |
| 5 | +interfaceReceivedEvent{ |
| 6 | +data:Action |
10 | 7 | }
|
11 | 8 |
|
12 |
| -constchannel=acquireVsCodeApi() |
| 9 | +classChannel{ |
| 10 | +constructor(){ |
| 11 | +// setup mock if browser only |
| 12 | +//@ts-ignore |
| 13 | +if(!window.acquireVsCodeApi){ |
| 14 | +//@ts-ignore |
| 15 | +require('./mock') |
| 16 | +} |
13 | 17 |
|
| 18 | +consteditor=acquireVsCodeApi() |
| 19 | +this.editorSend=editor.postMessage |
| 20 | +} |
| 21 | +publicmachineSend=(action:Action|string)=>console.log('machine send') |
| 22 | +publiceditorSend=(action:Action)=>console.log('editor send') |
14 | 23 |
|
15 |
| -// Send to Editor |
16 |
| -exportconstsend=(action:Action)=>{ |
17 |
| -returnchannel.postMessage(action) |
18 |
| -} |
| 24 | +publicsetMachineSend(send:any){ |
| 25 | +this.machineSend=send |
| 26 | +} |
| 27 | +publicreceive(event:ReceivedEvent){ |
| 28 | +constaction=event.data |
19 | 29 |
|
20 |
| -interfaceReceivedEvent{ |
21 |
| -data:Action |
22 |
| -} |
| 30 | +//@ts-ignore // ignore browser events from plugins |
| 31 | +if(action.source){return} |
23 | 32 |
|
24 |
| -// Receive from Editor |
25 |
| -exportconstreceive=(event:ReceivedEvent):void=>{ |
26 |
| - |
27 |
| -constaction=event.data |
28 |
| - |
29 |
| -//@ts-ignore // ignore browser events from plugins |
30 |
| -if(action.source){return} |
31 |
| - |
32 |
| -console.log('receive action',action) |
33 |
| -// messages from core |
34 |
| -switch(action.type){ |
35 |
| -case'TUTORIAL_LOADED': |
36 |
| -// send action to state machine |
37 |
| -stateMachineSend('TUTORIAL_LOADED') |
38 |
| -console.log(stateMachineSend) |
39 |
| -console.log('send action to state machine') |
40 |
| -return |
41 |
| -default: |
42 |
| -console.warn(`Unknown received action${action.type}`,action) |
| 33 | +console.log('receive action',action) |
| 34 | +// messages from core |
| 35 | +switch(action.type){ |
| 36 | +case'TUTORIAL_LOADED': |
| 37 | +// send action to state machine |
| 38 | +this.machineSend('TUTORIAL_LOADED') |
| 39 | +console.log('send action to state machine') |
| 40 | +return |
| 41 | +default: |
| 42 | +console.warn(`Unknown received action${action.type}`,action) |
| 43 | +} |
43 | 44 | }
|
44 |
| - |
45 |
| -// if (message.type === 'SET_DATA') { |
46 |
| -// // SET_DATA - set state machine context |
47 |
| -// console.log('SET_DATA updated') |
48 |
| -// const {progress, position} = message.payload |
49 |
| -// if (process.env.REACT_APP_DEBUG) { |
50 |
| -// console.log(`Position: ${position.levelId}/${position.stageId}/${position.stepId}`) |
51 |
| -// // setDebuggerInfo({ progress, position }) |
52 |
| -// } |
53 |
| -// console.log('set currentTutorial') |
54 |
| -// // currentTutorial.set({position, progress}) |
55 |
| - |
56 |
| -// } |
57 | 45 | }
|
58 | 46 |
|
| 47 | +exportdefaultnewChannel() |
| 48 | + |
| 49 | +// Send to Editor |
| 50 | +// export const send = (action: Action) => { |
| 51 | +// return |
| 52 | +// } |
| 53 | + |
| 54 | + |
| 55 | + |
| 56 | +// // Receive from Editor |
| 57 | +// export const receive = (event: ReceivedEvent): void => { |
| 58 | + |
| 59 | + |
| 60 | +// // if (message.type === 'SET_DATA') { |
| 61 | +// // // SET_DATA - set state machine context |
| 62 | +// // console.log('SET_DATA updated') |
| 63 | +// // const {progress, position} = message.payload |
| 64 | +// // if (process.env.REACT_APP_DEBUG) { |
| 65 | +// // console.log(`Position: ${position.levelId}/${position.stageId}/${position.stepId}`) |
| 66 | +// // // setDebuggerInfo({ progress, position }) |
| 67 | +// //} |
| 68 | +// // console.log('set currentTutorial') |
| 69 | +// // // currentTutorial.set({position, progress}) |
| 70 | + |
| 71 | +// //} |
| 72 | +// } |
| 73 | + |