I am trying to understand how lib-jitsi-meet constructs the initial HTML page that is delivered to the user. I am running the “default” react app that comes bundled with the jitsi-meet repo, and when I run “make dev” from the command line, I am able to connect to it using https://localhost:8080 to see the “default” Jitsi Meet web page. Naturally, I try to see if there is an “index.html” that bootstraps the React application, but there is not. I can see that “index.web.js” is the main starting point for the React app, but even there, it references some HTML document when it says:
ReactDOM.render(<App />, document.getElementById('react'));
And I am unable to understand which base html document this is referring to. Going through the code, I have followed the index.web.js, down to the App (and the AbstractApp), to the BaseApp, to the “WelcomePage.web.js”, app.js, but all that seems to be executed on the browser client-side, so not really relevant to the initial payload delivered to the user.
The lib-jitsi-meet/native/polyfills-browser files that seem to define how the initial HTML is constructed and delivered. There is no “index.html” that I can see - so I’m guessing that it is constructed “on the fly”. But (because of my unfamiliarity with how React works), I am unable to follow the flow.
How the config is inlined into the initial page delivered to the user. There does not
I can see from lib-jitsi-meet/native/polyfills-browser.js that a basic HTML object is being constructed and delivered (if that is what is going on), but any attempt to customize (e.g.) the header with a meta tag, does not show up on the front end.
All the stuff from Welcome.web.asp seem to be all completely React-based, so I’m guessing that it is all executed client-side, when the payload is delivered to the client on their browser.
What is the modules/UI package that I see ? Is it actually being used as a part of crafting the UI for the user ? Because when I put in some debug there, it never hits those breakpoints while executing on the browser.
Any pointers and hints on how it works would be really useful, to try to understand how one can use the lib.
Thanks in advance.