import { Meta } from '@storybook/blocks'; # SDK Components SDK Components provide you the capability to build out a realtime meeting experience easily. They have a dependency on providers being rendered in your application tree, which subsequently have a dependency on the `amazon-chime-sdk-js`. SDK components are aimed at accelerating your Amazon Chime SDK application development. ## Getting Started 1. Add amazon-chime-sdk-component-library-react and the necessary peer dependencies to your project ```sh npm install --save amazon-chime-sdk-component-library-react amazon-chime-sdk-js styled-components styled-system ``` 2. Render a `ThemeProvider`, `GlobalStyles` a `MeetingProvider` in the root of your application. Place the `GlobalStyles` under `ThemeProvider` to reset default global CSS styles. - You can pass a default theme that we provide, or a customized theme that adheres to our theme's structure. ```jsx import { ThemeProvider } from 'styled-components'; import { lightTheme, MeetingProvider, GlobalStyles, } from 'amazon-chime-sdk-component-library-react'; const Root = () => ( ); ``` 3. Use the SDK components to build your app _Note_ - Some components won't render anything unless there is an active meeting. To join a meeting, you need to use the `join` and `start` APIs that are provided through the [useMeetingManager](/docs/sdk-hooks-usemeetingmanager--page) hook. ```jsx import { VideoTileGrid, useMeetingManager } from 'amazon-chime-sdk-component-library-react'; import { MeetingSessionConfiguration } from 'amazon-chime-sdk-js'; const MyApp = () => { const meetingManager = useMeetingManager(); const joinMeeting = async () => { // Fetch the meeting and attendee data from your server application const response = await fetch('/my-server'); const data = await response.json(); // Initialize the `MeetingSessionConfiguration` const meetingSessionConfiguration = new MeetingSessionConfiguration(data.Meeting, data.Attendee); // Use the join API to create a meeting session using the MeetingSessionConfiguration await meetingManager.join( meetingSessionConfiguration ); // At this point you could let users setup their devices, or by default // the SDK will select the first device in the list for the s indicated // by `deviceLabels` (the default value is DeviceLabels.AudioAndVideo) ... // Start the session to join the meeting await meetingManager.start(); }; return ( <> ); }; ```