Your React.js web application looks great, what's left is to connect the smart contract to the functions in your application so they talk to each other while preserving that decentralization, since anybody is free to use the React application where they want without relying on a centralized server.
The first step in connecting a smart contract with a web application is to install web3.js since it's the bridge between Ethereum and web browsers, although you may not need it as we already have MetaMask. In any case, it's important to have it to select a stable version that won't change for our dApp. Go ahead and run npm i -S web3 on your project folder.