11import React from 'react'
22import ReactDOM from 'react-dom/client' ;
3- import { Provider } from "react-redux" ;
4- import { IntlProvider , injectIntl } from "react-intl" ;
5- import { AppContext } from "../providers/Context"
3+ import { Provider } from "react-redux" ;
4+ import { IntlProvider , injectIntl } from "react-intl" ;
5+ import { AppContext } from "../providers/Context"
66import AppContextProvider from '../providers/AppContextProvider' ;
77
88class EmbeddedGateway extends React . Component {
@@ -13,14 +13,19 @@ class EmbeddedGateway extends React.Component {
1313 }
1414
1515 renderEmbeddedComponents ( ) {
16- const { locale, store, getComponent } = this . props
16+ const { locale, store, getComponent} = this . props
1717
1818
1919 // @ts -ignore
2020 // const node = findDOMNode(this);
2121 //const elements = node.getElementsByClassName("viz-component")
2222
23- const elements = window . document . querySelectorAll ( ".viz-component:not(.self-render-component > .viz-component)" )
23+ //const elements = window.document.querySelectorAll(".viz-component:not(.self-render-component > .viz-component)")
24+
25+ const allVizComponents = document . querySelectorAll ( ".viz-component" ) ;
26+ const elements = Array . from ( allVizComponents ) . filter ( el => {
27+ return ! el . closest ( "self-render-component" ) ;
28+ } ) ;
2429
2530 if ( elements ) {
2631 Array . from ( elements ) . forEach ( ( element , index ) => {
@@ -41,7 +46,7 @@ class EmbeddedGateway extends React.Component {
4146 }
4247
4348 if ( component ) {
44- const props = { ...this . props }
49+ const props = { ...this . props }
4550 const attrs = element . attributes
4651 for ( let i = attrs . length - 1 ; i >= 0 ; i -- ) {
4752 props [ attrs [ i ] . name ] = attrs [ i ] . value ;
@@ -54,14 +59,14 @@ class EmbeddedGateway extends React.Component {
5459 < IntlProvider locale = { locale } >
5560 < AppContextProvider getComponent = { getComponent } store = { store } locale = { locale } >
5661 < C unique = { ( this . props . parentUnique ? this . props . parentUnique : '' ) + "_embeddable_" + index + "" + ( Math . random ( ) + 1 ) . toString ( 36 ) . substring ( 7 ) } { ...props }
57- childContent = { element . innerHTML } />
62+ childContent = { element . innerHTML } />
5863 </ AppContextProvider >
5964 </ IntlProvider >
6065 </ Provider >
6166 ) ;
6267 } else {
6368 ReactDOM . createRoot ( container ) . render (
64- < span style = { { "color" : "red" } } > { component } not found </ span > ,
69+ < span style = { { "color" : "red" } } > { component } not found </ span > ,
6570 ) ;
6671 }
6772
@@ -77,7 +82,7 @@ class EmbeddedGateway extends React.Component {
7782 }
7883
7984 componentDidUpdate ( prevProps , prevState , snapshot ) {
80- const { parent } = this . props
85+ const { parent} = this . props
8186 if ( parent != prevProps . parent ) {
8287 this . renderEmbeddedComponents ( )
8388 }
@@ -102,7 +107,7 @@ const WithContext = (props) => {
102107 { ...props }
103108 locale = { data . locale }
104109 store = { data . store }
105- getComponent = { data . getComponent } >
110+ getComponent = { data . getComponent } >
106111 { props . children }
107112 </ EmbeddedGateway >
108113
0 commit comments