1
- import NewFeed from '../elm/app/App/NewFeed.elm' ;
2
-
3
1
import { Socket } from '../../deps/phoenix' ;
4
2
import { LiveSocket } from '../../deps/phoenix_live_view' ;
5
3
6
- const hooks = {
7
- ElmModules : {
8
- mounted ( ) {
9
- mountElmModules ( ) ;
10
- } ,
11
- } ,
12
- } ;
13
-
14
4
const csrfToken = document
15
5
. querySelector ( "meta[name='csrf-token']" )
16
6
. getAttribute ( 'content' ) ;
17
7
const liveSocket = new LiveSocket ( '/live' , Socket , {
18
- hooks,
19
8
longPollFallbackMs : 2500 ,
20
9
params : { _csrf_token : csrfToken } ,
21
10
} ) ;
@@ -28,32 +17,6 @@ liveSocket.connect();
28
17
// >> liveSocket.disableLatencySim()
29
18
window . liveSocket = liveSocket ;
30
19
31
- const Elm = {
32
- App : { NewFeed : NewFeed . Elm . App . NewFeed } ,
33
- } ;
34
-
35
- const mountElmModules = ( ) => {
36
- const nodes = document . querySelectorAll ( '[data-elm-module]' ) ;
37
-
38
- return [ ...nodes ] . reduce ( ( acc , node ) => {
39
- // The module name may be `App` or `App.Feeds`. `modulePath` would be
40
- // ["App"] or ["App", "Feeds"], then.
41
- const moduleName = node . dataset . elmModule ;
42
- const modulePath = moduleName . split ( '.' ) ;
43
- const elmModule = modulePath . reduce ( ( acc , part ) => acc [ part ] , Elm ) ;
44
-
45
- const params = JSON . parse ( node . dataset . elmParams ) || { } ;
46
-
47
- if ( elmModule != undefined ) {
48
- acc [ moduleName ] = elmModule . init ( { node, flags : params } ) ;
49
- } else {
50
- console . error ( `No module named ‘${ moduleName } ’ could be found` ) ;
51
- }
52
-
53
- return acc ;
54
- } , { } ) ;
55
- } ;
56
-
57
20
window . addEventListener ( 'phx:live_reload:attached' , ( { detail : reloader } ) => {
58
21
reloader . enableServerLogs ( ) ;
59
22
window . liveReloader = reloader ;
0 commit comments