11import  *  as  React  from  "react" ; 
22import  {  useState ,  useEffect  }  from  "react" ; 
33import  {  createRender ,  useModelState ,  useModel  }  from  "@anywidget/react" ; 
4- import  type  {  Initialize ,  Render  }  from  "@anywidget/types" ; 
4+ import  type  {  Initialize ,  InitializeProps ,   Render  }  from  "@anywidget/types" ; 
55import  Map  from  "react-map-gl/maplibre" ; 
66import  DeckGL  from  "@deck.gl/react/typed" ; 
77import  {  MapViewState ,  type  Layer  }  from  "@deck.gl/core/typed" ; 
88import  {  BaseLayerModel ,  initializeLayer  }  from  "./model/index.js" ; 
99import  type  {  WidgetModel  }  from  "@jupyter-widgets/base" ; 
10- import  {  useParquetWasm  }  from  "./parquet.js" ; 
10+ import  {  initParquetWasmFromBinary  }  from  "./parquet.js" ; 
1111import  {  getTooltip  }  from  "./tooltip/index.js" ; 
1212import  {  isDefined ,  loadChildModels  }  from  "./util.js" ; 
1313import  {  v4  as  uuidv4  }  from  "uuid" ; 
@@ -63,10 +63,6 @@ async function getChildModelState(
6363function  App ( )  { 
6464  let  model  =  useModel ( ) ; 
6565
66-   let  [ parquetWasmBinary ]  =  useModelState < DataView  |  null > ( 
67-     "_parquet_wasm_content" , 
68-   ) ; 
69-   let  [ parquetWasmReady ]  =  useParquetWasm ( parquetWasmBinary ) ; 
7066  let  [ mapStyle ]  =  useModelState < string > ( "basemap_style" ) ; 
7167  let  [ mapHeight ]  =  useModelState < number > ( "_height" ) ; 
7268  let  [ showTooltip ]  =  useModelState < boolean > ( "show_tooltip" ) ; 
@@ -110,15 +106,7 @@ function App() {
110106  let  [ stateCounter ,  setStateCounter ]  =  useState < Date > ( new  Date ( ) ) ; 
111107
112108  useEffect ( ( )  =>  { 
113-     if  ( ! parquetWasmReady )  { 
114-       return ; 
115-     } 
116- 
117109    const  callback  =  async  ( )  =>  { 
118-       if  ( ! parquetWasmReady )  { 
119-         throw  new  Error ( "inside callback but parquetWasm not ready!" ) ; 
120-       } 
121- 
122110      const  childModels  =  await  loadChildModels ( 
123111        model . widget_manager , 
124112        childLayerIds , 
@@ -132,7 +120,7 @@ function App() {
132120      setSubModelState ( newSubModelState ) ; 
133121    } ; 
134122    callback ( ) . catch ( console . error ) ; 
135-   } ,  [ parquetWasmReady ,   childLayerIds ] ) ; 
123+   } ,  [ childLayerIds ] ) ; 
136124
137125  const  layers : Layer [ ]  =  [ ] ; 
138126  for  ( const  subModel  of  Object . values ( subModelState ) )  { 
@@ -200,7 +188,13 @@ function App() {
200188  ) ; 
201189} 
202190
191+ async  function  initialize ( {  model } : InitializeProps ) : Promise < void >  { 
192+   const  parquetWasmBinary : DataView  =  model . get ( "_parquet_wasm_content" ) ; 
193+   await  initParquetWasmFromBinary ( parquetWasmBinary ) ; 
194+ } 
195+ 
203196const  module : {  render : Render ;  initialize ?: Initialize  }  =  { 
197+   initialize, 
204198  render : createRender ( App ) , 
205199} ; 
206200
0 commit comments