I am trying to add a splash screen before React loads.
since i am using react scripts / react-app my index.tsx only has this part:
ReactDOM.render(<App />, document.getElementById("root"));
i tried adding my own div on the same page but it doesn't show.
i would like to display a simple blank screen with my splash image on a 1 second timer before react loads to avoid/hide the shifting of the rendering elements.
** if i do add the screen in app.tsx, the shifting happens before the screen loads
update
as Rishabh pointed out below, index.html is in /public folder. So I ended up combining 2 approaches.
- add a screen before react starts: - <div id="root"> <div id="dimScreen"> <img src="/img/logo.png" /> </div> </div>2.
loading a proper loader non top for .5 - 1 sec
class App extends Component {
    state = {
        loading: true
    }
    componentDidMount() {
        setTimeout(() => {
            this.setState({ loading: false });
        }, 1000);
    }
    render() {
        return (
            <React.Fragment>
                {
                    this.state.loading ?
                        <Loader />
                        : (
                            <div className="app">
                                <Header />
                                <MyComponent />
                            </div>
                        )
                }
            </React.Fragment>
        );
    }
}
so far this approach is working best but will update if i find issues or something better
 
     
     
    