States Based UI Split
Source Code: https://github.com/dyte-io/react-samples/tree/main/samples/create-your-own-ui
Now that the basic states and configs handling is taken care of, we can focus on customisation.
states.meeting represents the meeting state such as setup/ended/waiting/joined that can be utilised to show different screens.
We are storing the states we received from previous step in a store and consuming it with the help of
useStatesStore hook.
function CustomDyteMeeting() {
  const states = useStatesStore((s) => s.states);
  switch (states.meeting) {
    case 'idle':
      return <DyteIdleScreen />;
    case 'setup':
      return <SetupScreen />;
    case 'waiting':
      return <DyteWaitingScreen />;
    case 'ended':
      return <DyteEndedScreen />;
    case 'joined':
    default:
      return <InMeeting />;
  }
}
export default CustomDyteMeeting;