@@ -20,7 +20,9 @@ export default function useSource<T extends Source>(
2020 props : ConstructorParameters < typeof SourceClass > [ 0 ] ,
2121 eventsToHandle : string [ ] = [ ] ,
2222) {
23- function createSource ( ) {
23+ const source = updateSource ( ) ;
24+
25+ function updateSource ( ) {
2426 const properties = usePropsAsObjectProperties ( {
2527 ...props ,
2628 ...( props . projection
@@ -31,22 +33,11 @@ export default function useSource<T extends Source>(
3133 }
3234 : { } ) ,
3335 } ) ;
34-
35- return shallowRef ( new SourceClass ( properties ) ) ;
36- }
37-
38- let source = createSource ( ) ;
39-
40- const { updateOpenLayersEventHandlers } = useOpenLayersEvents (
41- source ,
42- eventsToHandle ,
43- ) ;
44-
45- function updateSource ( ) {
46- source = createSource ( ) ;
47- updateOpenLayersEventHandlers ( ) ;
36+ const s = shallowRef ( new SourceClass ( properties ) ) ;
37+ useOpenLayersEvents ( s , eventsToHandle ) ;
4838 layer ?. value ?. setSource ( null ) ;
49- layer ?. value ?. setSource ( source . value ) ;
39+ layer ?. value ?. setSource ( s . value ) ;
40+ return s ;
5041 }
5142
5243 function removeSource ( ) {
@@ -59,7 +50,7 @@ export default function useSource<T extends Source>(
5950
6051 watch ( ( ) => layer , updateSource ) ;
6152
62- watch ( ( ) => props , updateSource , { deep : true , immediate : true } ) ;
53+ watch ( ( ) => props , updateSource , { deep : true } ) ;
6354
6455 return {
6556 source,
0 commit comments