@@ -20,7 +20,9 @@ export default function useSource<T extends Source>(
20
20
props : ConstructorParameters < typeof SourceClass > [ 0 ] ,
21
21
eventsToHandle : string [ ] = [ ] ,
22
22
) {
23
- function createSource ( ) {
23
+ const source = updateSource ( ) ;
24
+
25
+ function updateSource ( ) {
24
26
const properties = usePropsAsObjectProperties ( {
25
27
...props ,
26
28
...( props . projection
@@ -31,22 +33,11 @@ export default function useSource<T extends Source>(
31
33
}
32
34
: { } ) ,
33
35
} ) ;
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 ) ;
48
38
layer ?. value ?. setSource ( null ) ;
49
- layer ?. value ?. setSource ( source . value ) ;
39
+ layer ?. value ?. setSource ( s . value ) ;
40
+ return s ;
50
41
}
51
42
52
43
function removeSource ( ) {
@@ -59,7 +50,7 @@ export default function useSource<T extends Source>(
59
50
60
51
watch ( ( ) => layer , updateSource ) ;
61
52
62
- watch ( ( ) => props , updateSource , { deep : true , immediate : true } ) ;
53
+ watch ( ( ) => props , updateSource , { deep : true } ) ;
63
54
64
55
return {
65
56
source,
0 commit comments