File tree Expand file tree Collapse file tree
src/addons/addons/collaboration Expand file tree Collapse file tree Original file line number Diff line number Diff line change @@ -491,7 +491,7 @@ export function pushLocalStateToYjs() {
491491 const extensionManager = vm . extensionManager ;
492492 const extensionURLs = extensionManager . getExtensionURLs ( ) ;
493493 const loadedExtensions = Array . from ( extensionManager . _loadedExtensions . keys ( ) ) . map ( id => {
494- return extensionURLs [ id ] || id ;
494+ return { URL : extensionURLs [ id ] || id , name : id } ;
495495 } ) ;
496496 if ( loadedExtensions . length > 0 ) {
497497 sharedExtensions . insert ( 0 , loadedExtensions ) ;
@@ -725,10 +725,11 @@ export function performInitialSync() {
725725 } ) ;
726726
727727 const remoteExtensions = sharedExtensions . toArray ( ) ;
728- remoteExtensions . forEach ( urlOrId => {
729- if ( ! vm . extensionManager . isExtensionLoaded ( urlOrId ) ) {
728+ remoteExtensions . forEach ( ext => {
729+ const extURL = ext . URL || ext ;
730+ if ( ! vm . extensionManager . isExtensionLoaded ( extURL ) ) {
730731
731- vm . extensionManager . loadExtensionURL ( urlOrId , false ) ;
732+ vm . extensionManager . loadExtensionURL ( extURL , false ) ;
732733 }
733734 } ) ;
734735
Original file line number Diff line number Diff line change @@ -180,9 +180,10 @@ function attachYjsProvider() {
180180 if ( event . transaction . origin === constants . LOCAL_EVENT_SYNC_ORIGIN ) return ;
181181
182182 const remoteExtensions = constants . mutableRefs . sharedExtensions . toArray ( ) ;
183- remoteExtensions . forEach ( urlOrId => {
184- if ( ! constants . mutableRefs . vm . extensionManager . isExtensionLoaded ( urlOrId ) ) {
185- constants . mutableRefs . vm . extensionManager . loadExtensionURL ( urlOrId , false ) ;
183+ remoteExtensions . forEach ( ext => {
184+ const extURL = ext . URL || ext ;
185+ if ( ! constants . mutableRefs . vm . extensionManager . isExtensionLoaded ( extURL ) ) {
186+ constants . mutableRefs . vm . extensionManager . loadExtensionURL ( extURL , false ) ;
186187 }
187188 } ) ;
188189 } ) ;
@@ -702,7 +703,11 @@ function attachYjsProvider() {
702703
703704 constants . mutableRefs . ydoc . transact ( ( ) => {
704705 const currentExts = constants . mutableRefs . sharedExtensions . toArray ( ) ;
705- if ( ! currentExts . includes ( extension ) ) {
706+ const alreadyExists = currentExts . some ( ext => {
707+ if ( typeof ext === 'string' ) return ext === extension . URL || ext === extension . name ;
708+ return ext . URL === extension . URL && ext . name === extension . name ;
709+ } ) ;
710+ if ( ! alreadyExists ) {
706711 constants . mutableRefs . sharedExtensions . push ( [ extension ] ) ;
707712 }
708713 } , constants . LOCAL_EVENT_SYNC_ORIGIN ) ;
You can’t perform that action at this time.
0 commit comments