@@ -20,10 +20,8 @@ export default function useSource<T extends Source>(
2020 props : ConstructorParameters < typeof SourceClass > [ 0 ] ,
2121 eventsToHandle : string [ ] = [ ] ,
2222) {
23- const source = updateSource ( ) ;
24-
25- function updateSource ( ) {
26- const properties = usePropsAsObjectProperties ( {
23+ function getProperties ( ) {
24+ return usePropsAsObjectProperties ( {
2725 ...props ,
2826 ...( props . projection
2927 ? {
@@ -33,11 +31,24 @@ export default function useSource<T extends Source>(
3331 }
3432 : { } ) ,
3533 } ) ;
36- const s = shallowRef ( new SourceClass ( properties ) ) ;
37- useOpenLayersEvents ( s , eventsToHandle ) ;
34+ }
35+
36+ const source = shallowRef ( new SourceClass ( getProperties ( ) ) ) ;
37+ updateSource ( ) ;
38+
39+ function updateSource ( ) {
3840 layer ?. value ?. setSource ( null ) ;
39- layer ?. value ?. setSource ( s . value ) ;
40- return s ;
41+ const properties = getProperties ( ) ;
42+ source . value . setProperties ( properties ) ;
43+ for ( const key in properties ) {
44+ const keyInObj = key as keyof typeof properties ;
45+ if ( properties [ keyInObj ] !== undefined ) {
46+ source . value . set ( key , properties [ keyInObj ] ) ;
47+ }
48+ }
49+ layer ?. value ?. setSource ( source . value ) ;
50+ useOpenLayersEvents ( source , eventsToHandle ) ;
51+ return source ;
4152 }
4253
4354 function removeSource ( ) {
0 commit comments