@100mslive/react-native-room-kit 0.0.2 → 0.0.4
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/lib/commonjs/HMSInstanceSetup.js +1 -14
- package/lib/commonjs/HMSInstanceSetup.js.map +1 -1
- package/lib/commonjs/HMSPrebuilt.js +13 -4
- package/lib/commonjs/HMSPrebuilt.js.map +1 -1
- package/lib/commonjs/HMSRoomSetup.js +38 -14
- package/lib/commonjs/HMSRoomSetup.js.map +1 -1
- package/lib/commonjs/Icons/AnswerPhone/assets/answer-phone.png +0 -0
- package/lib/commonjs/Icons/AnswerPhone/assets/answer-phone@2x.png +0 -0
- package/lib/commonjs/Icons/AnswerPhone/assets/answer-phone@3x.png +0 -0
- package/lib/commonjs/Icons/AnswerPhone/index.js +30 -0
- package/lib/commonjs/Icons/AnswerPhone/index.js.map +1 -0
- package/lib/commonjs/Icons/Bluetooth/assets/bluetooth-on.png +0 -0
- package/lib/commonjs/Icons/Bluetooth/assets/bluetooth-on@2x.png +0 -0
- package/lib/commonjs/Icons/Bluetooth/assets/bluetooth-on@3x.png +0 -0
- package/lib/commonjs/Icons/Bluetooth/index.js +30 -0
- package/lib/commonjs/Icons/Bluetooth/index.js.map +1 -0
- package/lib/commonjs/Icons/Check/assets/check.png +0 -0
- package/lib/commonjs/Icons/Check/assets/check@2x.png +0 -0
- package/lib/commonjs/Icons/Check/assets/check@3x.png +0 -0
- package/lib/commonjs/Icons/Check/index.js +30 -0
- package/lib/commonjs/Icons/Check/index.js.map +1 -0
- package/lib/commonjs/Icons/GenericLogo/assets/generic-logo.png +0 -0
- package/lib/commonjs/Icons/GenericLogo/assets/generic-logo@2x.png +0 -0
- package/lib/commonjs/Icons/GenericLogo/assets/generic-logo@3x.png +0 -0
- package/lib/commonjs/Icons/GenericLogo/index.js +30 -0
- package/lib/commonjs/Icons/GenericLogo/index.js.map +1 -0
- package/lib/commonjs/Icons/Headphones/assets/headphones.png +0 -0
- package/lib/commonjs/Icons/Headphones/assets/headphones@2x.png +0 -0
- package/lib/commonjs/Icons/Headphones/assets/headphones@3x.png +0 -0
- package/lib/commonjs/Icons/Headphones/index.js +30 -0
- package/lib/commonjs/Icons/Headphones/index.js.map +1 -0
- package/lib/commonjs/Icons/Person/assets/person.png +0 -0
- package/lib/commonjs/Icons/Person/assets/person@2x.png +0 -0
- package/lib/commonjs/Icons/Person/assets/person@3x.png +0 -0
- package/lib/commonjs/Icons/Person/index.js +30 -0
- package/lib/commonjs/Icons/Person/index.js.map +1 -0
- package/lib/commonjs/Icons/Radio/assets/radio.png +0 -0
- package/lib/commonjs/Icons/Radio/assets/radio@2x.png +0 -0
- package/lib/commonjs/Icons/Radio/assets/radio@3x.png +0 -0
- package/lib/commonjs/Icons/Radio/index.js +30 -0
- package/lib/commonjs/Icons/Radio/index.js.map +1 -0
- package/lib/commonjs/Icons/Speaker/assets/speaker-large.png +0 -0
- package/lib/commonjs/Icons/Speaker/assets/speaker-large@2x.png +0 -0
- package/lib/commonjs/Icons/Speaker/assets/speaker-large@3x.png +0 -0
- package/lib/commonjs/Icons/Speaker/index.js +7 -2
- package/lib/commonjs/Icons/Speaker/index.js.map +1 -1
- package/lib/commonjs/Icons/Wave/assets/wave.png +0 -0
- package/lib/commonjs/Icons/Wave/assets/wave@2x.png +0 -0
- package/lib/commonjs/Icons/Wave/assets/wave@3x.png +0 -0
- package/lib/commonjs/Icons/Wave/index.js +30 -0
- package/lib/commonjs/Icons/Wave/index.js.map +1 -0
- package/lib/commonjs/Icons/index.js +88 -0
- package/lib/commonjs/Icons/index.js.map +1 -1
- package/lib/commonjs/components/BackButton.js +3 -3
- package/lib/commonjs/components/BackButton.js.map +1 -1
- package/lib/commonjs/components/DisplayView.js +0 -6
- package/lib/commonjs/components/DisplayView.js.map +1 -1
- package/lib/commonjs/components/HMSHLSStreamLoading.js +56 -0
- package/lib/commonjs/components/HMSHLSStreamLoading.js.map +1 -0
- package/lib/commonjs/components/HMSLocalVideoView.js +41 -0
- package/lib/commonjs/components/HMSLocalVideoView.js.map +1 -0
- package/lib/commonjs/components/{HMSPreviewDeviceSettings.js → HMSManageAudioOutput.js} +97 -161
- package/lib/commonjs/components/HMSManageAudioOutput.js.map +1 -0
- package/lib/commonjs/components/HMSManageLeave.js +7 -60
- package/lib/commonjs/components/HMSManageLeave.js.map +1 -1
- package/lib/commonjs/components/HMSMeetingEnded.js +36 -0
- package/lib/commonjs/components/HMSMeetingEnded.js.map +1 -0
- package/lib/commonjs/components/HMSPreviewEditName.js +7 -4
- package/lib/commonjs/components/HMSPreviewEditName.js.map +1 -1
- package/lib/commonjs/components/HMSPreviewHLSLiveIndicator.js +64 -0
- package/lib/commonjs/components/HMSPreviewHLSLiveIndicator.js.map +1 -0
- package/lib/commonjs/components/HMSPreviewJoinButton.js +25 -6
- package/lib/commonjs/components/HMSPreviewJoinButton.js.map +1 -1
- package/lib/commonjs/components/HMSPreviewNetworkQuality.js +43 -0
- package/lib/commonjs/components/HMSPreviewNetworkQuality.js.map +1 -0
- package/lib/commonjs/components/HMSPreviewPeersList.js +4 -50
- package/lib/commonjs/components/HMSPreviewPeersList.js.map +1 -1
- package/lib/commonjs/components/HMSPreviewSubtitle.js +26 -3
- package/lib/commonjs/components/HMSPreviewSubtitle.js.map +1 -1
- package/lib/commonjs/components/HMSPreviewTile.js +11 -77
- package/lib/commonjs/components/HMSPreviewTile.js.map +1 -1
- package/lib/commonjs/components/HMSPreviewTitle.js +0 -1
- package/lib/commonjs/components/HMSPreviewTitle.js.map +1 -1
- package/lib/commonjs/components/HMSRoomOptions.js +2 -3
- package/lib/commonjs/components/HMSRoomOptions.js.map +1 -1
- package/lib/commonjs/components/HMSShowNetworkQuality.js +0 -2
- package/lib/commonjs/components/HMSShowNetworkQuality.js.map +1 -1
- package/lib/commonjs/components/Meeting.js +7 -0
- package/lib/commonjs/components/Meeting.js.map +1 -1
- package/lib/commonjs/components/MenuModal/Menu.js +1 -2
- package/lib/commonjs/components/MenuModal/Menu.js.map +1 -1
- package/lib/commonjs/components/Modals.js +39 -299
- package/lib/commonjs/components/Modals.js.map +1 -1
- package/lib/commonjs/components/Participants/ParticipantsList.js +1 -20
- package/lib/commonjs/components/Participants/ParticipantsList.js.map +1 -1
- package/lib/commonjs/components/PeerSettingsModalContent.js +2 -13
- package/lib/commonjs/components/PeerSettingsModalContent.js.map +1 -1
- package/lib/commonjs/components/Preview.js +87 -28
- package/lib/commonjs/components/Preview.js.map +1 -1
- package/lib/commonjs/components/RoomSettingsModalContent.js +2 -101
- package/lib/commonjs/components/RoomSettingsModalContent.js.map +1 -1
- package/lib/commonjs/components/index.js +0 -11
- package/lib/commonjs/components/index.js.map +1 -1
- package/lib/commonjs/hooks/useHmsInstance.js +0 -1
- package/lib/commonjs/hooks/useHmsInstance.js.map +1 -1
- package/lib/commonjs/hooks-util-selectors.js +8 -1
- package/lib/commonjs/hooks-util-selectors.js.map +1 -1
- package/lib/commonjs/hooks-util.js +140 -82
- package/lib/commonjs/hooks-util.js.map +1 -1
- package/lib/commonjs/redux/actionTypes.js +7 -1
- package/lib/commonjs/redux/actionTypes.js.map +1 -1
- package/lib/commonjs/redux/actions/index.js +25 -1
- package/lib/commonjs/redux/actions/index.js.map +1 -1
- package/lib/commonjs/redux/reducers/appState.js +14 -1
- package/lib/commonjs/redux/reducers/appState.js.map +1 -1
- package/lib/commonjs/redux/reducers/hmsStates.js +12 -1
- package/lib/commonjs/redux/reducers/hmsStates.js.map +1 -1
- package/lib/commonjs/utils/theme.js +6 -1
- package/lib/commonjs/utils/theme.js.map +1 -1
- package/lib/commonjs/utils/types.js +0 -1
- package/lib/commonjs/utils/types.js.map +1 -1
- package/lib/commonjs/utils.js +2 -2
- package/lib/commonjs/utils.js.map +1 -1
- package/lib/module/HMSInstanceSetup.js +1 -14
- package/lib/module/HMSInstanceSetup.js.map +1 -1
- package/lib/module/HMSPrebuilt.js +13 -3
- package/lib/module/HMSPrebuilt.js.map +1 -1
- package/lib/module/HMSRoomSetup.js +43 -19
- package/lib/module/HMSRoomSetup.js.map +1 -1
- package/lib/module/Icons/AnswerPhone/assets/answer-phone.png +0 -0
- package/lib/module/Icons/AnswerPhone/assets/answer-phone@2x.png +0 -0
- package/lib/module/Icons/AnswerPhone/assets/answer-phone@3x.png +0 -0
- package/lib/module/Icons/AnswerPhone/index.js +22 -0
- package/lib/module/Icons/AnswerPhone/index.js.map +1 -0
- package/lib/module/Icons/Bluetooth/assets/bluetooth-on.png +0 -0
- package/lib/module/Icons/Bluetooth/assets/bluetooth-on@2x.png +0 -0
- package/lib/module/Icons/Bluetooth/assets/bluetooth-on@3x.png +0 -0
- package/lib/module/Icons/Bluetooth/index.js +22 -0
- package/lib/module/Icons/Bluetooth/index.js.map +1 -0
- package/lib/module/Icons/Check/assets/check.png +0 -0
- package/lib/module/Icons/Check/assets/check@2x.png +0 -0
- package/lib/module/Icons/Check/assets/check@3x.png +0 -0
- package/lib/module/Icons/Check/index.js +22 -0
- package/lib/module/Icons/Check/index.js.map +1 -0
- package/lib/module/Icons/GenericLogo/assets/generic-logo.png +0 -0
- package/lib/module/Icons/GenericLogo/assets/generic-logo@2x.png +0 -0
- package/lib/module/Icons/GenericLogo/assets/generic-logo@3x.png +0 -0
- package/lib/module/Icons/GenericLogo/index.js +22 -0
- package/lib/module/Icons/GenericLogo/index.js.map +1 -0
- package/lib/module/Icons/Headphones/assets/headphones.png +0 -0
- package/lib/module/Icons/Headphones/assets/headphones@2x.png +0 -0
- package/lib/module/Icons/Headphones/assets/headphones@3x.png +0 -0
- package/lib/module/Icons/Headphones/index.js +22 -0
- package/lib/module/Icons/Headphones/index.js.map +1 -0
- package/lib/module/Icons/Person/assets/person.png +0 -0
- package/lib/module/Icons/Person/assets/person@2x.png +0 -0
- package/lib/module/Icons/Person/assets/person@3x.png +0 -0
- package/lib/module/Icons/Person/index.js +22 -0
- package/lib/module/Icons/Person/index.js.map +1 -0
- package/lib/module/Icons/Radio/assets/radio.png +0 -0
- package/lib/module/Icons/Radio/assets/radio@2x.png +0 -0
- package/lib/module/Icons/Radio/assets/radio@3x.png +0 -0
- package/lib/module/Icons/Radio/index.js +22 -0
- package/lib/module/Icons/Radio/index.js.map +1 -0
- package/lib/module/Icons/Speaker/assets/speaker-large.png +0 -0
- package/lib/module/Icons/Speaker/assets/speaker-large@2x.png +0 -0
- package/lib/module/Icons/Speaker/assets/speaker-large@3x.png +0 -0
- package/lib/module/Icons/Speaker/index.js +7 -2
- package/lib/module/Icons/Speaker/index.js.map +1 -1
- package/lib/module/Icons/Wave/assets/wave.png +0 -0
- package/lib/module/Icons/Wave/assets/wave@2x.png +0 -0
- package/lib/module/Icons/Wave/assets/wave@3x.png +0 -0
- package/lib/module/Icons/Wave/index.js +22 -0
- package/lib/module/Icons/Wave/index.js.map +1 -0
- package/lib/module/Icons/index.js +8 -0
- package/lib/module/Icons/index.js.map +1 -1
- package/lib/module/components/BackButton.js +4 -4
- package/lib/module/components/BackButton.js.map +1 -1
- package/lib/module/components/DisplayView.js +1 -7
- package/lib/module/components/DisplayView.js.map +1 -1
- package/lib/module/components/HMSHLSStreamLoading.js +47 -0
- package/lib/module/components/HMSHLSStreamLoading.js.map +1 -0
- package/lib/module/components/HMSLocalVideoView.js +32 -0
- package/lib/module/components/HMSLocalVideoView.js.map +1 -0
- package/lib/module/components/HMSManageAudioOutput.js +232 -0
- package/lib/module/components/HMSManageAudioOutput.js.map +1 -0
- package/lib/module/components/HMSManageLeave.js +9 -62
- package/lib/module/components/HMSManageLeave.js.map +1 -1
- package/lib/module/components/HMSMeetingEnded.js +27 -0
- package/lib/module/components/HMSMeetingEnded.js.map +1 -0
- package/lib/module/components/HMSPreviewEditName.js +8 -5
- package/lib/module/components/HMSPreviewEditName.js.map +1 -1
- package/lib/module/components/HMSPreviewHLSLiveIndicator.js +55 -0
- package/lib/module/components/HMSPreviewHLSLiveIndicator.js.map +1 -0
- package/lib/module/components/HMSPreviewJoinButton.js +25 -6
- package/lib/module/components/HMSPreviewJoinButton.js.map +1 -1
- package/lib/module/components/HMSPreviewNetworkQuality.js +34 -0
- package/lib/module/components/HMSPreviewNetworkQuality.js.map +1 -0
- package/lib/module/components/HMSPreviewPeersList.js +4 -50
- package/lib/module/components/HMSPreviewPeersList.js.map +1 -1
- package/lib/module/components/HMSPreviewSubtitle.js +26 -3
- package/lib/module/components/HMSPreviewSubtitle.js.map +1 -1
- package/lib/module/components/HMSPreviewTile.js +12 -78
- package/lib/module/components/HMSPreviewTile.js.map +1 -1
- package/lib/module/components/HMSPreviewTitle.js +0 -1
- package/lib/module/components/HMSPreviewTitle.js.map +1 -1
- package/lib/module/components/HMSRoomOptions.js +2 -3
- package/lib/module/components/HMSRoomOptions.js.map +1 -1
- package/lib/module/components/HMSShowNetworkQuality.js +0 -2
- package/lib/module/components/HMSShowNetworkQuality.js.map +1 -1
- package/lib/module/components/Meeting.js +7 -0
- package/lib/module/components/Meeting.js.map +1 -1
- package/lib/module/components/MenuModal/Menu.js +1 -2
- package/lib/module/components/MenuModal/Menu.js.map +1 -1
- package/lib/module/components/Modals.js +40 -298
- package/lib/module/components/Modals.js.map +1 -1
- package/lib/module/components/Participants/ParticipantsList.js +1 -20
- package/lib/module/components/Participants/ParticipantsList.js.map +1 -1
- package/lib/module/components/PeerSettingsModalContent.js +2 -13
- package/lib/module/components/PeerSettingsModalContent.js.map +1 -1
- package/lib/module/components/Preview.js +88 -30
- package/lib/module/components/Preview.js.map +1 -1
- package/lib/module/components/RoomSettingsModalContent.js +3 -100
- package/lib/module/components/RoomSettingsModalContent.js.map +1 -1
- package/lib/module/components/index.js +0 -1
- package/lib/module/components/index.js.map +1 -1
- package/lib/module/hooks/useHmsInstance.js +0 -1
- package/lib/module/hooks/useHmsInstance.js.map +1 -1
- package/lib/module/hooks-util-selectors.js +6 -0
- package/lib/module/hooks-util-selectors.js.map +1 -1
- package/lib/module/hooks-util.js +142 -86
- package/lib/module/hooks-util.js.map +1 -1
- package/lib/module/redux/actionTypes.js +7 -1
- package/lib/module/redux/actionTypes.js.map +1 -1
- package/lib/module/redux/actions/index.js +20 -0
- package/lib/module/redux/actions/index.js.map +1 -1
- package/lib/module/redux/reducers/appState.js +14 -1
- package/lib/module/redux/reducers/appState.js.map +1 -1
- package/lib/module/redux/reducers/hmsStates.js +12 -1
- package/lib/module/redux/reducers/hmsStates.js.map +1 -1
- package/lib/module/utils/theme.js +6 -1
- package/lib/module/utils/theme.js.map +1 -1
- package/lib/module/utils/types.js +0 -1
- package/lib/module/utils/types.js.map +1 -1
- package/lib/module/utils.js +2 -2
- package/lib/module/utils.js.map +1 -1
- package/lib/typescript/HMSInstanceSetup.d.ts.map +1 -1
- package/lib/typescript/HMSPrebuilt.d.ts +2 -3
- package/lib/typescript/HMSPrebuilt.d.ts.map +1 -1
- package/lib/typescript/HMSRoomSetup.d.ts.map +1 -1
- package/lib/typescript/Icons/AnswerPhone/index.d.ts +7 -0
- package/lib/typescript/Icons/AnswerPhone/index.d.ts.map +1 -0
- package/lib/typescript/Icons/Bluetooth/index.d.ts +7 -0
- package/lib/typescript/Icons/Bluetooth/index.d.ts.map +1 -0
- package/lib/typescript/Icons/Check/index.d.ts +7 -0
- package/lib/typescript/Icons/Check/index.d.ts.map +1 -0
- package/lib/typescript/Icons/GenericLogo/index.d.ts +7 -0
- package/lib/typescript/Icons/GenericLogo/index.d.ts.map +1 -0
- package/lib/typescript/Icons/Headphones/index.d.ts +7 -0
- package/lib/typescript/Icons/Headphones/index.d.ts.map +1 -0
- package/lib/typescript/Icons/Person/index.d.ts +7 -0
- package/lib/typescript/Icons/Person/index.d.ts.map +1 -0
- package/lib/typescript/Icons/Radio/index.d.ts +7 -0
- package/lib/typescript/Icons/Radio/index.d.ts.map +1 -0
- package/lib/typescript/Icons/Speaker/index.d.ts +1 -0
- package/lib/typescript/Icons/Speaker/index.d.ts.map +1 -1
- package/lib/typescript/Icons/Wave/index.d.ts +7 -0
- package/lib/typescript/Icons/Wave/index.d.ts.map +1 -0
- package/lib/typescript/Icons/index.d.ts +8 -0
- package/lib/typescript/Icons/index.d.ts.map +1 -1
- package/lib/typescript/components/CustomInput.d.ts +1 -1
- package/lib/typescript/components/DisplayView.d.ts.map +1 -1
- package/lib/typescript/components/HMSHLSStreamLoading.d.ts +3 -0
- package/lib/typescript/components/HMSHLSStreamLoading.d.ts.map +1 -0
- package/lib/typescript/components/HMSLocalVideoView.d.ts +3 -0
- package/lib/typescript/components/HMSLocalVideoView.d.ts.map +1 -0
- package/lib/typescript/components/HMSManageAudioOutput.d.ts +3 -0
- package/lib/typescript/components/HMSManageAudioOutput.d.ts.map +1 -0
- package/lib/typescript/components/HMSManageLeave.d.ts.map +1 -1
- package/lib/typescript/components/HMSMeetingEnded.d.ts +3 -0
- package/lib/typescript/components/HMSMeetingEnded.d.ts.map +1 -0
- package/lib/typescript/components/HMSPreviewHLSLiveIndicator.d.ts +3 -0
- package/lib/typescript/components/HMSPreviewHLSLiveIndicator.d.ts.map +1 -0
- package/lib/typescript/components/HMSPreviewJoinButton.d.ts.map +1 -1
- package/lib/typescript/components/HMSPreviewNetworkQuality.d.ts +3 -0
- package/lib/typescript/components/HMSPreviewNetworkQuality.d.ts.map +1 -0
- package/lib/typescript/components/HMSPreviewPeersList.d.ts.map +1 -1
- package/lib/typescript/components/HMSPreviewSubtitle.d.ts.map +1 -1
- package/lib/typescript/components/HMSPreviewTile.d.ts.map +1 -1
- package/lib/typescript/components/HMSRoomOptions.d.ts.map +1 -1
- package/lib/typescript/components/HMSShowNetworkQuality.d.ts.map +1 -1
- package/lib/typescript/components/Meeting.d.ts.map +1 -1
- package/lib/typescript/components/MenuModal/Menu.d.ts.map +1 -1
- package/lib/typescript/components/Modals.d.ts +1 -9
- package/lib/typescript/components/Modals.d.ts.map +1 -1
- package/lib/typescript/components/Participants/ParticipantsList.d.ts.map +1 -1
- package/lib/typescript/components/PeerSettingsModalContent.d.ts.map +1 -1
- package/lib/typescript/components/Preview.d.ts.map +1 -1
- package/lib/typescript/components/RoomSettingsModalContent.d.ts.map +1 -1
- package/lib/typescript/components/index.d.ts +0 -1
- package/lib/typescript/components/index.d.ts.map +1 -1
- package/lib/typescript/hooks-util-selectors.d.ts +2 -0
- package/lib/typescript/hooks-util-selectors.d.ts.map +1 -1
- package/lib/typescript/hooks-util.d.ts +9 -2
- package/lib/typescript/hooks-util.d.ts.map +1 -1
- package/lib/typescript/redux/actionTypes.d.ts +5 -1
- package/lib/typescript/redux/actionTypes.d.ts.map +1 -1
- package/lib/typescript/redux/actions/index.d.ts +24 -3
- package/lib/typescript/redux/actions/index.d.ts.map +1 -1
- package/lib/typescript/redux/index.d.ts +4 -1
- package/lib/typescript/redux/index.d.ts.map +1 -1
- package/lib/typescript/redux/reducers/appState.d.ts +3 -0
- package/lib/typescript/redux/reducers/appState.d.ts.map +1 -1
- package/lib/typescript/redux/reducers/hmsStates.d.ts +11 -2
- package/lib/typescript/redux/reducers/hmsStates.d.ts.map +1 -1
- package/lib/typescript/redux/reducers/index.d.ts +4 -1
- package/lib/typescript/redux/reducers/index.d.ts.map +1 -1
- package/lib/typescript/redux/reducers/userState.d.ts +2 -2
- package/lib/typescript/redux/reducers/userState.d.ts.map +1 -1
- package/lib/typescript/utils/theme.d.ts +5 -0
- package/lib/typescript/utils/theme.d.ts.map +1 -1
- package/lib/typescript/utils/types.d.ts +3 -4
- package/lib/typescript/utils/types.d.ts.map +1 -1
- package/package.json +11 -17
- package/src/HMSInstanceSetup.tsx +4 -31
- package/src/HMSPrebuilt.tsx +24 -6
- package/src/HMSRoomSetup.tsx +55 -17
- package/src/Icons/AnswerPhone/assets/answer-phone.png +0 -0
- package/src/Icons/AnswerPhone/assets/answer-phone@2x.png +0 -0
- package/src/Icons/AnswerPhone/assets/answer-phone@3x.png +0 -0
- package/src/Icons/AnswerPhone/index.tsx +27 -0
- package/src/Icons/Bluetooth/assets/bluetooth-on.png +0 -0
- package/src/Icons/Bluetooth/assets/bluetooth-on@2x.png +0 -0
- package/src/Icons/Bluetooth/assets/bluetooth-on@3x.png +0 -0
- package/src/Icons/Bluetooth/index.tsx +27 -0
- package/src/Icons/Check/assets/check.png +0 -0
- package/src/Icons/Check/assets/check@2x.png +0 -0
- package/src/Icons/Check/assets/check@3x.png +0 -0
- package/src/Icons/Check/index.tsx +27 -0
- package/src/Icons/GenericLogo/assets/generic-logo.png +0 -0
- package/src/Icons/GenericLogo/assets/generic-logo@2x.png +0 -0
- package/src/Icons/GenericLogo/assets/generic-logo@3x.png +0 -0
- package/src/Icons/GenericLogo/index.tsx +27 -0
- package/src/Icons/Headphones/assets/headphones.png +0 -0
- package/src/Icons/Headphones/assets/headphones@2x.png +0 -0
- package/src/Icons/Headphones/assets/headphones@3x.png +0 -0
- package/src/Icons/Headphones/index.tsx +27 -0
- package/src/Icons/Person/assets/person.png +0 -0
- package/src/Icons/Person/assets/person@2x.png +0 -0
- package/src/Icons/Person/assets/person@3x.png +0 -0
- package/src/Icons/Person/index.tsx +27 -0
- package/src/Icons/Radio/assets/radio.png +0 -0
- package/src/Icons/Radio/assets/radio@2x.png +0 -0
- package/src/Icons/Radio/assets/radio@3x.png +0 -0
- package/src/Icons/Radio/index.tsx +27 -0
- package/src/Icons/Speaker/assets/speaker-large.png +0 -0
- package/src/Icons/Speaker/assets/speaker-large@2x.png +0 -0
- package/src/Icons/Speaker/assets/speaker-large@3x.png +0 -0
- package/src/Icons/Speaker/index.tsx +10 -2
- package/src/Icons/Wave/assets/wave.png +0 -0
- package/src/Icons/Wave/assets/wave@2x.png +0 -0
- package/src/Icons/Wave/assets/wave@3x.png +0 -0
- package/src/Icons/Wave/index.tsx +24 -0
- package/src/Icons/index.ts +8 -0
- package/src/components/BackButton.tsx +4 -4
- package/src/components/DisplayView.tsx +0 -10
- package/src/components/HMSHLSStreamLoading.tsx +57 -0
- package/src/components/HMSLocalVideoView.tsx +42 -0
- package/src/components/HMSManageAudioOutput.tsx +311 -0
- package/src/components/HMSManageLeave.tsx +6 -77
- package/src/components/HMSMeetingEnded.tsx +29 -0
- package/src/components/HMSPreviewEditName.tsx +6 -5
- package/src/components/HMSPreviewHLSLiveIndicator.tsx +58 -0
- package/src/components/HMSPreviewJoinButton.tsx +44 -4
- package/src/components/HMSPreviewNetworkQuality.tsx +40 -0
- package/src/components/HMSPreviewPeersList.tsx +12 -72
- package/src/components/HMSPreviewSubtitle.tsx +27 -3
- package/src/components/HMSPreviewTile.tsx +13 -91
- package/src/components/HMSPreviewTitle.tsx +0 -1
- package/src/components/HMSRoomOptions.tsx +2 -8
- package/src/components/HMSShowNetworkQuality.tsx +0 -1
- package/src/components/Meeting.tsx +11 -0
- package/src/components/MenuModal/Menu.tsx +1 -1
- package/src/components/Modals.tsx +4 -299
- package/src/components/Participants/ParticipantsList.tsx +0 -24
- package/src/components/PeerSettingsModalContent.tsx +9 -23
- package/src/components/Preview.tsx +131 -48
- package/src/components/RoomSettingsModalContent.tsx +1 -138
- package/src/components/index.ts +0 -1
- package/src/hooks/useHmsInstance.ts +0 -1
- package/src/hooks-util-selectors.tsx +10 -0
- package/src/hooks-util.ts +168 -89
- package/src/redux/actionTypes.ts +8 -0
- package/src/redux/actions/index.ts +23 -2
- package/src/redux/reducers/appState.ts +9 -0
- package/src/redux/reducers/hmsStates.ts +28 -1
- package/src/redux/reducers/userState.ts +2 -2
- package/src/utils/theme.ts +6 -1
- package/src/utils/types.ts +3 -4
- package/src/utils.ts +2 -2
- package/lib/commonjs/components/HMSPreviewDeviceSettings.js.map +0 -1
- package/lib/commonjs/components/ZoomableView.js +0 -84
- package/lib/commonjs/components/ZoomableView.js.map +0 -1
- package/lib/module/components/HMSPreviewDeviceSettings.js +0 -296
- package/lib/module/components/HMSPreviewDeviceSettings.js.map +0 -1
- package/lib/module/components/ZoomableView.js +0 -76
- package/lib/module/components/ZoomableView.js.map +0 -1
- package/lib/typescript/components/HMSPreviewDeviceSettings.d.ts +0 -3
- package/lib/typescript/components/HMSPreviewDeviceSettings.d.ts.map +0 -1
- package/lib/typescript/components/ZoomableView.d.ts +0 -6
- package/lib/typescript/components/ZoomableView.d.ts.map +0 -1
- package/src/components/HMSPreviewDeviceSettings.tsx +0 -387
- package/src/components/ZoomableView.tsx +0 -91
|
@@ -1,88 +1,34 @@
|
|
|
1
1
|
import * as React from 'react';
|
|
2
2
|
import { StyleSheet, Text, View } from 'react-native';
|
|
3
|
-
import {
|
|
4
|
-
HMSPeer,
|
|
5
|
-
// HMSPeerUpdate,
|
|
6
|
-
// useHMSPeerUpdates,
|
|
7
|
-
} from '@100mslive/react-native-hms';
|
|
3
|
+
import { useSelector } from 'react-redux';
|
|
8
4
|
|
|
9
5
|
import { COLORS } from '../utils/theme';
|
|
10
|
-
import {
|
|
6
|
+
import type { RootState } from '../redux';
|
|
11
7
|
|
|
12
8
|
export interface HMSPreviewPeersListProps {}
|
|
13
9
|
|
|
14
10
|
export const HMSPreviewPeersList: React.FC<HMSPreviewPeersListProps> = () => {
|
|
15
|
-
const
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
// It leads to some already joined peer missing in list
|
|
19
|
-
// useHMSPeerUpdates(
|
|
20
|
-
// ({ peer, type }: { peer: HMSPeer; type: HMSPeerUpdate }) => {
|
|
21
|
-
// switch (type) {
|
|
22
|
-
// case HMSPeerUpdate.PEER_JOINED:
|
|
23
|
-
// setPeerList((prevPeerList) => [...prevPeerList, peer]);
|
|
24
|
-
// break;
|
|
25
|
-
// case HMSPeerUpdate.PEER_LEFT:
|
|
26
|
-
// setPeerList((prevPeerList) =>
|
|
27
|
-
// prevPeerList.filter(
|
|
28
|
-
// (peerFromList) => peerFromList.peerID !== peer.peerID
|
|
29
|
-
// )
|
|
30
|
-
// );
|
|
31
|
-
// break;
|
|
32
|
-
|
|
33
|
-
// default:
|
|
34
|
-
// break;
|
|
35
|
-
// }
|
|
36
|
-
// },
|
|
37
|
-
// []
|
|
38
|
-
// );
|
|
11
|
+
const previewPeersList = useSelector(
|
|
12
|
+
(state: RootState) => state.hmsStates.previewPeersList
|
|
13
|
+
);
|
|
39
14
|
|
|
40
15
|
return (
|
|
41
16
|
<View style={styles.container}>
|
|
42
|
-
{
|
|
43
|
-
|
|
44
|
-
|
|
45
|
-
|
|
46
|
-
|
|
47
|
-
|
|
48
|
-
|
|
49
|
-
<Text style={[styles.text, styles.textSpacer]}>
|
|
50
|
-
{peerList[0]!.name} has joined
|
|
51
|
-
</Text>
|
|
52
|
-
) : (
|
|
53
|
-
<View style={styles.multiTextContainer}>
|
|
54
|
-
<Text
|
|
55
|
-
style={[styles.text, styles.flexView]}
|
|
56
|
-
ellipsizeMode="tail"
|
|
57
|
-
numberOfLines={1}
|
|
58
|
-
>
|
|
59
|
-
{peerList
|
|
60
|
-
.slice(0, 2)
|
|
61
|
-
.map((peer) => peer.name)
|
|
62
|
-
.join(', ')}
|
|
63
|
-
</Text>
|
|
64
|
-
|
|
65
|
-
{peerList.length - 2 > 0 ? (
|
|
66
|
-
<Text style={styles.text}>
|
|
67
|
-
{' '}
|
|
68
|
-
+{peerList.length - 2}{' '}
|
|
69
|
-
{peerList.length - 2 > 1 ? 'others' : 'other'}
|
|
70
|
-
</Text>
|
|
71
|
-
) : null}
|
|
72
|
-
</View>
|
|
73
|
-
)}
|
|
17
|
+
<Text style={[styles.text, styles.textSpacer]}>
|
|
18
|
+
{previewPeersList.length === 0
|
|
19
|
+
? 'You are the first to join'
|
|
20
|
+
: `${previewPeersList.length} ${
|
|
21
|
+
previewPeersList.length > 1 ? 'others' : 'other'
|
|
22
|
+
} in session`}
|
|
23
|
+
</Text>
|
|
74
24
|
</View>
|
|
75
25
|
);
|
|
76
26
|
};
|
|
77
27
|
|
|
78
28
|
const styles = StyleSheet.create({
|
|
79
29
|
container: {
|
|
80
|
-
flexDirection: 'row',
|
|
81
30
|
alignItems: 'center',
|
|
82
31
|
backgroundColor: COLORS.SURFACE.DEFAULT,
|
|
83
|
-
marginTop: 16,
|
|
84
|
-
marginBottom: 24,
|
|
85
|
-
alignSelf: 'center',
|
|
86
32
|
paddingVertical: 8,
|
|
87
33
|
paddingHorizontal: 12,
|
|
88
34
|
borderRadius: 20,
|
|
@@ -99,10 +45,4 @@ const styles = StyleSheet.create({
|
|
|
99
45
|
textSpacer: {
|
|
100
46
|
marginHorizontal: 8,
|
|
101
47
|
},
|
|
102
|
-
flexView: { flex: 1 },
|
|
103
|
-
multiTextContainer: {
|
|
104
|
-
flexDirection: 'row',
|
|
105
|
-
marginHorizontal: 8,
|
|
106
|
-
maxWidth: '70%',
|
|
107
|
-
},
|
|
108
48
|
});
|
|
@@ -2,20 +2,44 @@ import * as React from 'react';
|
|
|
2
2
|
import { StyleSheet, Text } from 'react-native';
|
|
3
3
|
|
|
4
4
|
import { COLORS } from '../utils/theme';
|
|
5
|
+
import { useCanPublishAudio, useCanPublishVideo } from '../hooks-sdk';
|
|
5
6
|
|
|
6
7
|
export interface HMSPreviewSubtitleProps {
|
|
7
8
|
subtitle?: string;
|
|
8
9
|
}
|
|
9
10
|
|
|
10
11
|
export const HMSPreviewSubtitle: React.FC<HMSPreviewSubtitleProps> = ({
|
|
11
|
-
subtitle
|
|
12
|
+
subtitle,
|
|
12
13
|
}) => {
|
|
13
|
-
|
|
14
|
+
const canPublishAudio = useCanPublishAudio();
|
|
15
|
+
const canPublishVideo = useCanPublishVideo();
|
|
16
|
+
|
|
17
|
+
if (subtitle) {
|
|
18
|
+
return <Text style={styles.title}>{subtitle}</Text>;
|
|
19
|
+
}
|
|
20
|
+
|
|
21
|
+
if (canPublishAudio && canPublishVideo) {
|
|
22
|
+
return (
|
|
23
|
+
<Text style={styles.title}>
|
|
24
|
+
Setup your audio and video before joining
|
|
25
|
+
</Text>
|
|
26
|
+
);
|
|
27
|
+
}
|
|
28
|
+
|
|
29
|
+
if (canPublishAudio) {
|
|
30
|
+
return <Text style={styles.title}>Setup your audio before joining</Text>;
|
|
31
|
+
}
|
|
32
|
+
|
|
33
|
+
if (canPublishVideo) {
|
|
34
|
+
return <Text style={styles.title}>Setup your video before joining</Text>;
|
|
35
|
+
}
|
|
36
|
+
|
|
37
|
+
return <Text style={styles.title}>Enter your name before joining</Text>;
|
|
14
38
|
};
|
|
15
39
|
|
|
16
40
|
const styles = StyleSheet.create({
|
|
17
41
|
title: {
|
|
18
|
-
color: COLORS.SURFACE.ON_SURFACE.
|
|
42
|
+
color: COLORS.SURFACE.ON_SURFACE.MEDIUM,
|
|
19
43
|
fontSize: 14,
|
|
20
44
|
fontFamily: 'Inter',
|
|
21
45
|
fontWeight: '400',
|
|
@@ -1,81 +1,37 @@
|
|
|
1
1
|
import * as React from 'react';
|
|
2
2
|
import { useSelector } from 'react-redux';
|
|
3
|
-
import { HMSVideoViewMode } from '@100mslive/react-native-hms';
|
|
4
3
|
import { StyleSheet, Text, View } from 'react-native';
|
|
5
4
|
|
|
6
|
-
import {
|
|
7
|
-
import { useHMSInstance } from '../hooks-util';
|
|
5
|
+
import { PersonIcon } from '../Icons';
|
|
8
6
|
import type { RootState } from '../redux';
|
|
9
7
|
import { getInitials } from '../utils/functions';
|
|
10
8
|
import { COLORS } from '../utils/theme';
|
|
9
|
+
import { HMSLocalVideoView } from './HMSLocalVideoView';
|
|
11
10
|
|
|
12
11
|
export const HMSPreviewTile: React.FC = () => {
|
|
13
|
-
const hmsInstance = useHMSInstance();
|
|
14
|
-
const HmsView = hmsInstance.HmsView;
|
|
15
|
-
const mirrorCamera = useSelector(
|
|
16
|
-
(state: RootState) => state.app.joinConfig.mirrorCamera
|
|
17
|
-
);
|
|
18
|
-
const autoSimulcast = useSelector(
|
|
19
|
-
(state: RootState) => state.app.joinConfig.autoSimulcast
|
|
20
|
-
);
|
|
21
12
|
const isLocalVideoMuted = useSelector(
|
|
22
13
|
(state: RootState) => state.hmsStates.isLocalVideoMuted
|
|
23
14
|
);
|
|
24
|
-
const isLocalAudioMuted = useSelector(
|
|
25
|
-
(state: RootState) => state.hmsStates.isLocalAudioMuted
|
|
26
|
-
);
|
|
27
15
|
const localVideoTrackId = useSelector(
|
|
28
16
|
(state: RootState) => state.hmsStates.localPeer?.videoTrack?.trackId
|
|
29
17
|
);
|
|
30
|
-
const localPeerNetworkQuality = useSelector(
|
|
31
|
-
(state: RootState) =>
|
|
32
|
-
state.hmsStates.localPeer?.networkQuality?.downlinkQuality
|
|
33
|
-
);
|
|
34
18
|
const userName = useSelector((state: RootState) => state.user.userName);
|
|
35
19
|
|
|
36
|
-
React.useEffect(() => {
|
|
37
|
-
hmsInstance.enableNetworkQualityUpdates();
|
|
38
|
-
|
|
39
|
-
return () => hmsInstance.disableNetworkQualityUpdates();
|
|
40
|
-
}, []);
|
|
41
|
-
|
|
42
20
|
return (
|
|
43
21
|
<View style={styles.modalContainer}>
|
|
44
22
|
{isLocalVideoMuted || !localVideoTrackId ? (
|
|
45
23
|
<View style={styles.avatarContainer}>
|
|
46
|
-
<View
|
|
47
|
-
|
|
48
|
-
styles.
|
|
49
|
-
|
|
50
|
-
|
|
51
|
-
|
|
52
|
-
<Text style={styles.avatarText}>
|
|
53
|
-
{userName.length === 0 ? '👤' : getInitials(userName)}
|
|
54
|
-
</Text>
|
|
24
|
+
<View style={styles.avatar}>
|
|
25
|
+
{userName.length === 0 ? (
|
|
26
|
+
<PersonIcon style={styles.avatarIcon} />
|
|
27
|
+
) : (
|
|
28
|
+
<Text style={styles.avatarText}>{getInitials(userName)}</Text>
|
|
29
|
+
)}
|
|
55
30
|
</View>
|
|
56
31
|
</View>
|
|
57
32
|
) : (
|
|
58
|
-
<
|
|
59
|
-
trackId={localVideoTrackId}
|
|
60
|
-
key={localVideoTrackId}
|
|
61
|
-
mirror={mirrorCamera}
|
|
62
|
-
autoSimulcast={autoSimulcast}
|
|
63
|
-
scaleType={HMSVideoViewMode.ASPECT_FILL}
|
|
64
|
-
style={styles.hmsView}
|
|
65
|
-
/>
|
|
33
|
+
<HMSLocalVideoView />
|
|
66
34
|
)}
|
|
67
|
-
|
|
68
|
-
{isLocalAudioMuted ? (
|
|
69
|
-
<View style={styles.micMuted}>
|
|
70
|
-
<MicIcon muted={true} style={styles.micMutedIcon} />
|
|
71
|
-
</View>
|
|
72
|
-
) : null}
|
|
73
|
-
|
|
74
|
-
<View style={styles.nameInTileContainer}>
|
|
75
|
-
{userName ? <Text style={styles.nameInTile}>{userName}</Text> : null}
|
|
76
|
-
|
|
77
|
-
<NetworkQualityIcon quality={localPeerNetworkQuality} />
|
|
78
|
-
</View>
|
|
79
35
|
</View>
|
|
80
36
|
);
|
|
81
37
|
};
|
|
@@ -84,29 +40,12 @@ const styles = StyleSheet.create({
|
|
|
84
40
|
modalContainer: {
|
|
85
41
|
flex: 1,
|
|
86
42
|
position: 'relative',
|
|
87
|
-
backgroundColor: COLORS.BACKGROUND.
|
|
88
|
-
marginHorizontal: 8,
|
|
89
|
-
borderRadius: 16,
|
|
90
|
-
alignSelf: 'center',
|
|
43
|
+
backgroundColor: COLORS.BACKGROUND.DIM,
|
|
91
44
|
overflow: 'hidden',
|
|
92
|
-
minWidth: '50%',
|
|
93
|
-
// minHeight: '50%',
|
|
94
|
-
aspectRatio: 377 / 482, // TODO: DO WE NEED THIS?
|
|
95
45
|
},
|
|
96
46
|
hmsView: {
|
|
97
47
|
flex: 1,
|
|
98
48
|
},
|
|
99
|
-
micMuted: {
|
|
100
|
-
position: 'absolute',
|
|
101
|
-
top: 8,
|
|
102
|
-
right: 8,
|
|
103
|
-
backgroundColor: COLORS.ALERT.ERROR.DEFAULT,
|
|
104
|
-
padding: 8,
|
|
105
|
-
borderRadius: 12,
|
|
106
|
-
},
|
|
107
|
-
micMutedIcon: {
|
|
108
|
-
tintColor: COLORS.ALERT.ERROR.BRIGHTER,
|
|
109
|
-
},
|
|
110
49
|
avatarContainer: {
|
|
111
50
|
flex: 1,
|
|
112
51
|
alignItems: 'center',
|
|
@@ -120,8 +59,9 @@ const styles = StyleSheet.create({
|
|
|
120
59
|
justifyContent: 'center',
|
|
121
60
|
alignItems: 'center',
|
|
122
61
|
},
|
|
123
|
-
|
|
124
|
-
|
|
62
|
+
avatarIcon: {
|
|
63
|
+
width: 40,
|
|
64
|
+
height: 40,
|
|
125
65
|
},
|
|
126
66
|
avatarText: {
|
|
127
67
|
color: COLORS.SURFACE.ON_SURFACE.HIGH,
|
|
@@ -131,22 +71,4 @@ const styles = StyleSheet.create({
|
|
|
131
71
|
lineHeight: 40,
|
|
132
72
|
letterSpacing: 0.25,
|
|
133
73
|
},
|
|
134
|
-
nameInTileContainer: {
|
|
135
|
-
position: 'absolute',
|
|
136
|
-
bottom: 8,
|
|
137
|
-
left: 8,
|
|
138
|
-
backgroundColor: COLORS.BACKGROUND.DIM_80,
|
|
139
|
-
padding: 8,
|
|
140
|
-
borderRadius: 12,
|
|
141
|
-
flexDirection: 'row',
|
|
142
|
-
},
|
|
143
|
-
nameInTile: {
|
|
144
|
-
color: COLORS.SURFACE.ON_SURFACE.HIGH,
|
|
145
|
-
fontSize: 14,
|
|
146
|
-
fontFamily: 'Inter',
|
|
147
|
-
fontWeight: '400',
|
|
148
|
-
lineHeight: 20,
|
|
149
|
-
letterSpacing: 0.25,
|
|
150
|
-
marginRight: 8,
|
|
151
|
-
},
|
|
152
74
|
});
|
|
@@ -75,16 +75,10 @@ export const HMSRoomOptions: React.FC<HMSRoomOptionsProps> = () => {
|
|
|
75
75
|
</DefaultModal>
|
|
76
76
|
<DefaultModal
|
|
77
77
|
modalPosiion="center"
|
|
78
|
-
modalVisible={
|
|
79
|
-
modalVisible === ModalTypes.RECORDING ||
|
|
80
|
-
modalVisible === ModalTypes.RESOLUTION
|
|
81
|
-
}
|
|
78
|
+
modalVisible={modalVisible === ModalTypes.RECORDING}
|
|
82
79
|
setModalVisible={dismissModal}
|
|
83
80
|
>
|
|
84
|
-
<RecordingModal
|
|
85
|
-
setModalVisible={setModalVisible}
|
|
86
|
-
recordingModal={modalVisible === ModalTypes.RECORDING}
|
|
87
|
-
/>
|
|
81
|
+
<RecordingModal setModalVisible={setModalVisible} />
|
|
88
82
|
</DefaultModal>
|
|
89
83
|
<DefaultModal
|
|
90
84
|
modalPosiion="center"
|
|
@@ -1,5 +1,6 @@
|
|
|
1
1
|
import * as React from 'react';
|
|
2
2
|
import { StyleSheet } from 'react-native';
|
|
3
|
+
import { useSelector } from 'react-redux';
|
|
3
4
|
import { SafeAreaView } from 'react-native-safe-area-context';
|
|
4
5
|
|
|
5
6
|
import type { PeerTrackNode } from '../utils/types';
|
|
@@ -16,12 +17,18 @@ import {
|
|
|
16
17
|
} from '../hooks-util';
|
|
17
18
|
import { ChatView } from './ChatWindow';
|
|
18
19
|
import { MeetingScreenContent } from './MeetingScreenContent';
|
|
20
|
+
import { HMSHLSStreamLoading } from './HMSHLSStreamLoading';
|
|
21
|
+
import type { RootState } from '../redux';
|
|
19
22
|
|
|
20
23
|
interface MeetingProps {
|
|
21
24
|
peerTrackNodes: Array<PeerTrackNode>;
|
|
22
25
|
}
|
|
23
26
|
|
|
24
27
|
export const Meeting: React.FC<MeetingProps> = ({ peerTrackNodes }) => {
|
|
28
|
+
const startingHLSStream = useSelector(
|
|
29
|
+
(state: RootState) => state.app.startingHLSStream
|
|
30
|
+
);
|
|
31
|
+
|
|
25
32
|
// TODO: Fetch latest Room and localPeer on mount of this component?
|
|
26
33
|
|
|
27
34
|
useFetchHMSRoles();
|
|
@@ -48,6 +55,10 @@ export const Meeting: React.FC<MeetingProps> = ({ peerTrackNodes }) => {
|
|
|
48
55
|
};
|
|
49
56
|
}, []);
|
|
50
57
|
|
|
58
|
+
if (startingHLSStream) {
|
|
59
|
+
return <HMSHLSStreamLoading />;
|
|
60
|
+
}
|
|
61
|
+
|
|
51
62
|
/**
|
|
52
63
|
* TODO: disbaled Expended View animation in Webrtc flow
|
|
53
64
|
*
|
|
@@ -11,9 +11,9 @@ import {
|
|
|
11
11
|
StyleSheet,
|
|
12
12
|
TouchableWithoutFeedback,
|
|
13
13
|
View,
|
|
14
|
+
ScrollView,
|
|
14
15
|
} from 'react-native';
|
|
15
16
|
import type { LayoutChangeEvent, ViewStyle } from 'react-native';
|
|
16
|
-
import { ScrollView } from 'react-native-gesture-handler';
|
|
17
17
|
|
|
18
18
|
import { COLORS } from '../../utils/theme';
|
|
19
19
|
|