Skip to content

Conversation

drewhan90
Copy link
Contributor

Bug: the low latency broadcast screen share button stays active even after cancelling through the browser screen share modal/popup.

Fix: updated startScreenShare function, when catches error from captureScreenShareStream, set isScreenSharing redux state to false.

sina-keshmiri and others added 30 commits December 13, 2023 13:44
…thout refreshing the app cause duplicate participant (#662)
AIVS-1635: Only show polls created by the user on their channel page
* feat: update backend readme

* feat(code-review): update

* fix(code-review): update

* fix(code-review): update

* fix: update
* update: existing readme screenshots to remove feed nav button

* update: limitations - low latency known issues link and text

* update: collaborate pngs

* fix(appsync): setup credentials

* fix(pricing): add appsync to list

* fix(credentials): update

* fix(image): add back

* fix(issues): add mozilla firefox bug

* update: more updated feature images

* update: manager real time streaming section with images and description

* fix: chat link

* update: description for real-time diagram

* update: channel page real-time stream and screenshot alt text update

* add: periods to end of paragraphs

* fix(text): update based on suggestions

* update: new paragraphs to be more clear and flow better

* update: quick links limitatios and known issues and add new bullet under deploying the cdk stack will list adding eventbridge scheduled lambda

* update: viewing a real-time stream section to be more clear on how appsync is used

* add: realtime streaming known issues page link

* update: links and sqs service

---------

Co-authored-by: Andrew Han <[email protected]>
* fix(button): update

* fix(button): update

* fix(lint): update

* fix(comment): update

* fix(comment): update

* fix(endpoint): update

* fix(button): update

* fix(type): update

* fix(constant): update

* fix(lint): update

* fix(message): update

* fix: update ivs policy statement (#573)

* fix(comment): update

* fix(comment): update

* fix(comment): update

* fix(comment): update

* feat: update ivs broadcasting sdk (#572)

* feat: init

* fix(modal): update

* fix(golivecontainer): update

* fix(golivecontainer): update

* fix(lint): update

* fix(variables): update naming

* fix(name): update

* fix(container): update

* feat: add useRequestParticipants hook

* fix(fullscreen): update

* fix(lint): update

* fix(permissions): update

* fix(console): remove

* fix(button): update disable logic

* fix(naming): update

* fix(button): update

* fix(buttons): update

* fix(name): update

* fix(video): update

* fix(lint): update

* fix(helpers): update

* fix(lint): update

* fix(state): update

* fix(video): update

* fix(button): reposition button

* feat: Join Modal (#580)

* feat: update invite participant flow

* feat: update invite and request flow

* feat: code refactor, fix host appearing before local participant

* feat: disconnect spectator before allowing them to join

* feat: add disconnectSpectator.test

* fix: fix invite participant flow

* fix(code-review): update

* fix: code refactor, add handleclosejoinmodal

* fix: add error handling, reset participants list befoe creating a new stage

* fix: fix handleCloseJoinModal when user clicks x

* fix: remove console.log

* feat: code refactor

* fix: remove unused component

* fix: remove unused props

* fix: remove participants before navigating away from channel page

* fix: remove resetParticipants

* fix(update): code refactor

* fix(disconnectParticipant): remove stageId from put request

* fix: ivs:GetStream policy added to channels stack ivs policy statement

* update: comment 'remove requetee' format

---------

Co-authored-by: Andrew Han <[email protected]>

* fix(lint): update

* fix(lint): update

* fix(lint): update

* fix: update channels table policy statement

* fix(padding): update

* feat(aivs-1526): remove fullscreen animation when participants is joining throug… (#581)

* feat: update invite participant flow

* feat: update invite and request flow

* feat: code refactor, fix host appearing before local participant

* feat: disconnect spectator before allowing them to join

* feat: add disconnectSpectator.test

* fix: fix invite participant flow

* fix(code-review): update

* fix: code refactor, add handleclosejoinmodal

* fix: add error handling, reset participants list befoe creating a new stage

* fix: fix handleCloseJoinModal when user clicks x

* fix: remove console.log

* feat: code refactor

* faet: remove full screen animation when user is joing via modal

* fix: remove unused component

* fix: remove unused props

* fix: remove participants before navigating away from channel page

* fix: update footer animation logic

* fix: remove resetParticipants

* fix: lint

* fix: update popup animation

* fix: update footer animation logic

* fix(buttons): show 3 dots earlier

* fix(footer): update button px

* fix(lint): update

* fix(aivs-1519): Settings button broken (#584)

* feat: update invite participant flow

* feat: update invite and request flow

* feat: code refactor, fix host appearing before local participant

* feat: disconnect spectator before allowing them to join

* feat: add disconnectSpectator.test

* fix: fix invite participant flow

* fix(code-review): update

* fix: code refactor, add handleclosejoinmodal

* fix: add error handling, reset participants list befoe creating a new stage

* fix: fix handleCloseJoinModal when user clicks x

* fix: remove console.log

* fix: update GoLiveButton styling

* fix: update full screen view z-index

* fix: remove unused props

* fix: reopen join modal when settings modal is closed in mobile view

* feat: update join modal styling

* fix: remove modal opening animation when join modal is open

* fix: update full screen view z index

* feat: code refactor

* fix: remove unused component

* fix: remove unused props

* fix: remove participants before navigating away from channel page

* fix: join modal's settings modal

* fix: remove resetParticipants

* fix(update): lint

* fix: remove duplicate

* fix: remove stageId from disconnectParticipant

* fix: resolve conflict

* fix: code refactor and clean up

* fix(code-review): update

* fix(code-review): update

* fix(update): spacing

* fix(lint): update

* fix: update request indicator color (#586)

* fix(buttons): mobile

* fix(username): update

* fix(button): update for lightmode

* fix(hover): feedback

* fix(classname): update

* fix(stackedview): update

* fix: the video and audio cut out for a split second when resizing ful… (#593)

* fix: the video and audio cut out for a split second when resizing fullscreen

* fix: remove fullscreen component from go live container

* fix(lint): update

---------

Co-authored-by: Brandon Fajardo <[email protected]>

* fix(modal): remove show camera on screenshare toggle

* revert: add ivs:GetStreamSession action to metrics stack (#598)

* fix(modal): click away, open/close join modal

* fix(variable): add variable for better readability

* fix(variable): update

* fix(lint): update

* fix: player overlay visibility (#596)

* fix: isChannelStagePlayerMuted is false when stageId does not exist (stage is not active)

* fix: isChannelStagePlayerMuted variable to not check for stageId and PlayerOverlay isVisible variable to be based only on shouldShowControlsOverlay value

* fix(aivs-1531-32): update fullscreen view expand/collapse animation - add go live header for host (#592)

* fix: move full screen view component to control center

* fix: the video and audio cut out for a split second when resizing fullscreen

* feat: add expand button for host - mobile and tablet view

* fix: code clean up and refactor

* fix(lint): update

* fix(code-review): update

---------

Co-authored-by: Brandon Fajardo <[email protected]>

* fix(popup): update colours and hover

* fix(lint): update

* fix(server): fix broken stage endpoints when using cloudfront

* fix(grid): update

* feat(playwright): update to 1.40.0 (#610)

* update: playwright package v1.40.0

* update: docker image to 1.40.0 jammy

* fix(amazonproduct): update button

* fix(comment): update

* fix(notification): update

* fix(notification): update

* fix(overlay): update

* fix(lint): update

* fix(border): update

* fix(prompt): update

* fix(comment): remove

* fix(lint): update

* fix(helper): create helper

* fix(lint): update

* fix(comment): update

* fix(comment): comments are bad

* fix(modal): reposition code

* fix(lint): update

* fix(messages): update

* fix(rejoin): update conditional

* fix(lint): update

* fix(button): show error if stage is active

* fix(handler): update

* fix(aivs 1588): wrong colors text for stages user pill (#609)

* remove: static text colors for StagProfilePill

* update: smaller stage video view heights should have text always white

* fix(lint): update

* fix(handler): update

* fix(handler): rebuild branch

* fix(reposition): rebuild branch

* fix(fullscreen): update

* fix(chaining): optional chain isCameraHidden prop

* fix(chaining): update

* fix(aivs 1568): missing close button for participants and spectators in stages (#607)

* remove: shouldRenderFullscreenCollapseCloseButton from stageControlsVisibility and header is rendered always

* update: disable close button when stage is active and is not host participant type

* fix: hide fullscreen header when join modal is visible

* fix: fullscreen header close should leave stage when close button

* fix: rest stage state to reset to full reducer states

* fix(spectator): remove client when unmounting channel page

* fix(lint): update

* fix(errorboundary): update

* fix(code): reposition

* fix(status): update

* fix(lint): update

* fix(lint): update

* fix(dep): update

* fix(lint): update

* update: on leaveStage, set shouldGetHostRejoinTokenRef as false to prevent rejoin attempt (#616)

* fix(hook): update to not use isBroadcasting

* fix(aivs-1446): web broadcast full-screen view start stream button is floating on smaller heights (#627)

* fix: web broadcast full-screen view start stream button is floating on smaller heights

* fix: fix animation bug

* fix: ref clientHeight is undefined on load

* fix(notifications): update

* fix(aivs-1602): update host's channel table (#624)

* fix: update channel table if get stage fails

* fix: fix typescript issue, create getIdleStagesChannelArns

* fix: add error type check and try-catch block

* fix: rename var

* fix: rename var

* fix(lint): update

* fix(lint): update

* fix(console): update broadcast and stage

* fix(position): update

* fix(lint): update

* fix(error): update

* fix(npm): update

* fix(button): do not remove modal on escape

* fix(lint): update

* feat(aivs-1577-78): show host in participant list in participant modal, participants modal responsiveness (#602)

* feat: show host in participant list in participant modal

* fix: update participants modal message

* fix: update status bar, update host username on participants modal

* fix: update participants modal responsivness

* fix(lint): update

* fix: remove p from participants modal message

* fix(errors): clean up console error

* fix(lint): update

* fix: function to update video source runs multiple times on page load (#626)

* feat(stage-profile-pill): profile pill username text drop shadow and max width (#634)

* update: username text max-width updates

* update: stageProfilePill text dropShadow - add stage-profile tailwind dropshadow class

* fix(aivs-1569): Stage won't reset when leaving the page without ending the session (#631)

* fix: fix table not being updated if getstage fails

* fix: update error message

* fix: remove Error from deleteStage

* fix: increase deleteStage fifo sqs message retention rate

* update: broadcast settings modal ux to open and close stage join modal

* update: add join modal open and close functions

* update: add isClosingJoinModal ref to prevent modal from opening when closing

* update: handleCloseJoinModal to use previous logic to change window history and location

* fix(eventbridge): update

* fix(lint): update

* fix(lint): update

* fix(lint): update

* fix: Flickering go live view when toggling camera on/off when invited user leaves or get kicked (#636)

* fix(conditional): update

* fix(lint): updatr

* fix(lint): update

* fix(listener): update

* fix(lint): update

* fix: ready to join module missing on tablet/mobile (#640)

* fix: fullscreen view tab order (#641)

* fix: no camera when joining stage turns off mic (#643)

* fix(aivs-1611): allow participants to join even when host is not in session (#639)

* fix: allow participants to join even when host is not in session

* fix: remove unused props

* fix(participant-modal): participant modal alignment (#642)

* update: align all flex columns with max and min width

* update: stage participant and requestee styles and add subEl prop

* fix: requestee column min-width

* fix: timeElapsedSince for mobile truncates

* fix: join button should not be disabled when channel data has stage id defined

* lint: remove unused import useChannel from GoLiveStreamButton

---------

Co-authored-by: Sina Keshmiri <[email protected]>

* fix: click to unmute button is not registering (#644)

* fix: mobile and tablet full screen collapse animation (#646)

* fix: mobile and tablet full screen collapse animation

* fix: rename goLiveCollapsedContainerRef

* fix: rename collapsedContainerRef

* fix: video aspect ratio on tablet and mobile (#645)

* fix: video aspect ratio on tablet and mobile

* fix: remove border

* fix: lint

* fix(notification): update

* fix(lint): update

* fix: remove invite card for requested user type (#649)

* fix: remove invite card for requested user type

* fix: update

* fix(lint): update

* fix: remove all feed related code (#648)

* fix: remove all feed related code

* fix: update/remove comments

* fix(aivs-1622): Tooltip for remove user is missing spacing in between the button (#650)

* fix: Tooltip for remove user is missing spacing in between the button

* fix: update tooltip message

* fix: no camera mutes mic (#653)

* fix(icons): fill svgs black on lightmode

* fix(button): update leave session icon and button text on lightmode

* fix(text): update ban user text to white on lightmode

* fix(classname): update

* fix(lint): update

* fix: set previewRef to null when fullscreen is closed for component BroadcastFullScreenVideoFeed

* Revert "fix: set previewRef to null when fullscreen is closed for component BroadcastFullScreenVideoFeed"

This reverts commit 7430d79.

* fix(modal): remove onCancel callback

* fix(radius): update

* Revert "fix(radius): update"

This reverts commit 7985d46.

* fix(radius): update

* fix(text): update

* fix(lint): update

* fix: set previewRef to null when fullscreen is closed for component BroadcastFullScreenVideoFeed (#655)

* fix(aivs-1633): participants list, truncating text too soon and camera/mic indicator position too far from right (#657)

* fix: set 2nd col for requestee item width auto for small breakpoints

* fix: add clas sm:w-auto to stageParticipant second col

* update: useCalculatedAspectRatio to have a delay prop so that when going to stage fullscreen the calculation is delayed (#656)

* fix(aivs-1629):  close button disable state can't have transparency (#661)

* update: fullscreenview header close button when disabled should not be transparent and have black or white color depending on color mode

* update: add bottom layer to close button

* update: only render bottom close buton layer when is not collapse button

* update: add display block and none to layer when hidden or displayed

* fix: As a requested participant, rejoining a session a second time without refreshing the app cause duplicate participant (#662)

* fix(poll): hide active poll on users channel page if its not theirs

* fix(feedback): update

* fix(lint): update

* fix: update channel fetch spectator logic (#666)

* fix(tabs): only show tab view for active stream actions or if you created a live poll

* fix(lint): update

* feat(stage-v2): Backend README update (#667)

* feat: update backend readme

* feat(code-review): update

* fix(code-review): update

* fix(code-review): update

* fix: update

* feat(stage-v2): readme (#665)

* update: existing readme screenshots to remove feed nav button

* update: limitations - low latency known issues link and text

* update: collaborate pngs

* fix(appsync): setup credentials

* fix(pricing): add appsync to list

* fix(credentials): update

* fix(image): add back

* fix(issues): add mozilla firefox bug

* update: more updated feature images

* update: manager real time streaming section with images and description

* fix: chat link

* update: description for real-time diagram

* update: channel page real-time stream and screenshot alt text update

* add: periods to end of paragraphs

* fix(text): update based on suggestions

* update: new paragraphs to be more clear and flow better

* update: quick links limitatios and known issues and add new bullet under deploying the cdk stack will list adding eventbridge scheduled lambda

* update: viewing a real-time stream section to be more clear on how appsync is used

* add: realtime streaming known issues page link

* update: links and sqs service

---------

Co-authored-by: Andrew Han <[email protected]>

* update: width of status view to always be 68px (#669)

---------

Co-authored-by: Brandon Fajardo <[email protected]>
Co-authored-by: Sina Keshmiri <[email protected]>
Co-authored-by: Sina Keshmiri <[email protected]>
fix(poll): expand and collapse overflow chat and minified poll bug
* chore: cdk dependencies version upgraded

* chore: replace aws-cdk-lib depricated method addDependsOn with addDependency

* chore: web-ui visx packages upgraded to wanted versions

* chore: web-ui upgrade visx packages to latest

* chore: web-ui upgrade react-router-dom to latest and fix useBlocker import

* chore: web-ui upgrade amazon-cognito-identity-js to latest

* chore: web-ui upgrade amazon-ivs-chat-messaging to latest

* chore: web-ui upgrade tailwind packages to latest

* chore: web-ui upgrade framer-motion to latest

* chore: web-ui remove tailwind line-clamp plugin as it is now included with the tailwind package

* chore: web-ui upgrade copy-to-clipboard, html-entities, and lz-string to latest

* chore: web-ui upgrade d3-array to latest

* Revert "chore: web-ui upgrade amazon-ivs-chat-messaging to latest"

This reverts commit 2b37ab1fd9b478ac991f6d27787b19a059fb2208.

* Revert "Revert "chore: web-ui upgrade amazon-ivs-chat-messaging to latest""

This reverts commit 8c00f7cc15602ba27bc695ddccd31b389c87c6c5.

* fix: undo commit 2b37ab1fd9b478ac991f6d27787b19a059fb2208

* Revert "chore: web-ui upgrade amazon-cognito-identity-js to latest"

This reverts commit 5f5a89ca9aa0523f40768b6ce85003dcb8acb276.

* Revert "chore: web-ui upgrade amazon-cognito-identity-js to latest"

This reverts commit 5f5a89ca9aa0523f40768b6ce85003dcb8acb276.

* revert: tailwind upgrades

* chore: web-ui upgrade uui to latest

* chore: web-ui upgrade amazon-cognito-identity-js to latest

* chore: web-ui upgrade amazon-ivs-chat-messaging to latest

* chore: removed serve dep from web-ui package - this package is used for E2E testing which has it's own packages

* fix: enforce @aws-amplify, @mui/base, and amazon-cognito-identity-js to stay at current versions

* chore: web-ui upgrade react-markdown to latest

* chore: web-ui upgrade prettier to latest

* chore: web-ui upgrade react and react-dom, update react/require-default-props eslint rule so functional components use default args due to defaultProps soon to be depricated, update all functional components accordingly

* refactor: format all files

* chore: web-ui upgrade tailwind-merge to latest

* chore: web-ui upgrade tailwindcss to latest, remove @tailwindcss/line-clamp as line-clamp is included already, fix VoteItem height programatically added height class with important flag

* chore: web-ui upgrade postcss to latest

* chore: cdk upgrade @AWS-SDK packages to latest

* chore: e2e upgrade all packages - @playwright/test upgraded to 1.41.0 due to issues on 1.42.0

* chore: updated ivs broadcast script src to version 1.10.1

* chore: update player sdk version to 1.27.0

* chore: e2e upgrade playwright to latest, fix same test function error

* fix: lint
* feat(SS1, 2, 6, 7 and 8): Screen Share (#605)

* feat: add screebshare user type

* feat: useStageScreenshare hook

* feat: update global context with screen share strategy

* fix: fix stream not being set up correctly

* fix: remove attachevent on start screen share client

* feat: stop screen share function

* fix: update screenshare profile pill

* fix: set screenshare token capabilities to pub and sub

* feat: disable screen share button

* feat(code-refactor): update

* feat(lint): update

* feat: screenshare button visibility based on device

* feat: update leaveStage function

* feat: add screen share text to screen share video tile

* fix: remove duplicate state key

* feat(aivs-1541-43): show screenshare icon next to screenshare participant types, session Participants counter should include host as well (#608)

* feat: add screebshare user type

* feat: useStageScreenshare hook

* feat: update global context with screen share strategy

* fix: fix stream not being set up correctly

* fix: remove attachevent on start screen share client

* feat: stop screen share function

* fix: update screenshare profile pill

* fix: set screenshare token capabilities to pub and sub

* feat: disable screen share button

* feat(code-refactor): update

* feat(lint): update

* feat: show screenshare icon next to screenshare participant types

* feat: screenshare button visibility based on device

* feat: update leaveStage function

* fix: remove host from particiapnt count message

* fix: hide x icon for host

* fix: remove x icon for host items

* fix: exclude host from particiapnts count

* fix: include host in participants count

* fix: add drop shadow, fix x showing up for host

* feat: update participants modal header

* fix: update stage participant css

* fix: update participant status tile css

* feat: add drop shadow

* feat: add screen share text to screen share video tile

* feat: merge feat/aivs-1535 into feat/aivs-1541

* fix: remove duplicate state key

* feat(aivs-1542): As the stage host, I want to use the participants modal to end another user’s screenshare. (#612)

* feat: add screebshare user type

* feat: useStageScreenshare hook

* feat: update global context with screen share strategy

* fix: fix stream not being set up correctly

* fix: remove attachevent on start screen share client

* feat: stop screen share function

* fix: update screenshare profile pill

* fix: set screenshare token capabilities to pub and sub

* feat: disable screen share button

* feat(code-refactor): update

* feat(lint): update

* feat: show screenshare icon next to screenshare participant types

* feat: init

* feat: screenshare button visibility based on device

* fix: refactor and lint

* fix: conflict

* feat: update leaveStage function

* fix: remove host from particiapnt count message

* fix: hide x icon for host

* fix: remove x icon for host items

* fix: exclude host from particiapnts count

* fix: remove duplicate channelId

* fix: include host in participants count

* fix: fix typo

* fix: add drop shadow, fix x showing up for host

* feat: update participants modal header

* fix: update stage participant css

* fix: update participant status tile css

* feat: add confirmation modal to remove participant screenshare flow

* feat: add drop shadow

* feat: add screen share text to screen share video tile

* feat: merge feat/aivs-1535 into feat/aivs-1541

* fix: remove duplicate state key

* feat: remove unused props

* fix: add toggleScreenshare to useStreamManagerStage provider

* update: add localScreenshareStream reducer state to be used to stop stream when leaveStage is triggered

* fix(refactor): update

* feat(stage-screenshare): screenshare grid layout (#637)

* add: screenshare videos to StageVideoFeeds

* add: columnCount logic for screenshare and base flex row styles

* update: dynmaically change container width using inline styles

* add: hidden participant avatars card UI without full styles

* update: styles for screenshare participant combined card and fix useEffect loop

* update: proper row width and fix infinite looping

* fix: container name duplicate

* fix: truncate logic for screenshare profile pill

* update: 1 participant screenshare row styles

* update: lightmode for screenshare

* update: render all participant videos however hide the ones that should not be displayed

* update: hiddenAvatar card to hide avatars on smaller card sizes

* fix: no debounce on resize and incorrect column count on mount

* update: create ParticipantOverflowCard component

* add: useScreenshareColumns hook

* update: overflowAvatars to state instead of ref in order to update UI

* update: collapsed ui styles

* update: PARTICIPANT_TYPE_SCREENSHARE and PARTICIPANT_TYPE_HOST constants

* update: refactor StageVideoFeeds inline style width

* merge

* chore: auto format StageProfilePill.jsx

* chore: remove default props from screenshare components and instead use es6 default values

* chore: e2e upgrade playwright to version 1.44.0 and dotenv-cli to latest

* fix: update leaveStageClient to accept a strategyParam to stop and reset a strategy - this func is used when removing a screenshare stream

* fix (stages-screenshare): screenshare profile pill (#675)

* update: screenshare username text to be: username's screenshare

* update: StageProfilePill to manage displayed username based on isHost and pill type while always displaying profile image on the participants modal

* fix (screen-share): stages grid layout updates (#676)

* refactor: StageVideoFeeds and useScreenshareColumns vars to be more readable

* fix: channel page grid cropped on load due to container height not available to dom

* refactor: useScreenshareColumn to useScreenshareRow which returns screenshareParticipants and isScreenshareVisible

* update: useCalculatedAspectRatio with param for isAnimated so that stages can get aspect ratio without animating the container

* refactor: create useStage and useParticipant hook - useParticipant holds all participant related states and logic

* wip: add deviceManager and stageManager context providers

* feat/real-time-overhaul with screenshare, bugfixes, improvements

---------

Co-authored-by: Sina Keshmiri <[email protected]>
Co-authored-by: Sina Keshmiri <[email protected]>
* feat (desktop): redux stream manager low latency fullscreen (#680)

* feat: first interation of redux store with streamManager slice - open, close fullscreen actions and update initial states

* fix: pass store into the redux provider not the App

* feat: on page load (useEffect) set the animationInitialPos values. Logic added in the corresponding components. (the refs will be moved to the components from the fullscreen context in a future commit)

* feat: update initPosAndOpen and initPosAndClose to get state by using getState(); fix: getting left and top offset values using debounceCallback to prevent infinite loop; feat: use the redux state isFullscreenOpen to display the fullscreen when the expand button is clicked on the GoLiveContainer and update the pos values

* refactor: move resetPreview to BroadcastFullScreenVideoFeed useEffect so it resets when it mounts; calculate aspect ratio when redux store streamManager isFullscreenOpen is true

* refactor: allow portals to animate out by adding a setTimeout when removing the container; remove dimensions prop from FullScreenView (not used); update handleCloseFullScreen function in Header.jsx to use the closeFullscreen action

* refactor: add new GoLiveContainer prop onExpandAnimationComplete; convert useEffect to set fullscreen width and height to a function named updateFullscreenWidthHeight and pass to GoLiveContainer so it runs after expand animation ends

* fix: the thunk actions to get the correct state from streamManager; refactor: move dimensionClasses to usecalculatedAspectRatio; fix: update closeFullscreen dispatch in Header.jsx to initPosAndClose; lint: remove ununsed const dimensions (useBroadcastFullscreen) from StreamManagerControlCenter.jsx

* update animationProps in fullScreenView and Footer to switch between variants based on isFullscreenOpen state changes

* refactor: extract the preview canvas into its own component named PreviewVideo - on load the preview will be reset; refactor: memoize the previewVideoElement in GoLiveContainer

* refactor: FullScreenVideo content renamed to videoFeedsContent and memoized; refactor: videoFeedsContent is  spinner when isFullscreenOpen is false (displayed when fullscreen view is closing)

* add: COLLABORATE_BUTTON_ANIM_DEFAULT constant to be used to reset back to default value in initPosAndOpen

* fix: the dimension classes, now named responiveVideoClasses, are set on resize instead of a useEffect in useCalculatedAspectRatio.js - this fixes issue with resizing the fullscreen view

* chore: move the redux provider to the App.jsx file where all the other providers are imported

* chore: typo in responsiveVideoClasses fixed

* doc: update comments in GoLiveContainer.jsx - collaborate session & ina to in a

* feat (desktop): redux stream manager real time fullscreen (#681)

* feat: first interation of redux store with streamManager slice - open, close fullscreen actions and update initial states

* fix: pass store into the redux provider not the App

* feat: on page load (useEffect) set the animationInitialPos values. Logic added in the corresponding components. (the refs will be moved to the components from the fullscreen context in a future commit)

* feat: update initPosAndOpen and initPosAndClose to get state by using getState(); fix: getting left and top offset values using debounceCallback to prevent infinite loop; feat: use the redux state isFullscreenOpen to display the fullscreen when the expand button is clicked on the GoLiveContainer and update the pos values

* refactor: move resetPreview to BroadcastFullScreenVideoFeed useEffect so it resets when it mounts; calculate aspect ratio when redux store streamManager isFullscreenOpen is true

* refactor: allow portals to animate out by adding a setTimeout when removing the container; remove dimensions prop from FullScreenView (not used); update handleCloseFullScreen function in Header.jsx to use the closeFullscreen action

* refactor: add new GoLiveContainer prop onExpandAnimationComplete; convert useEffect to set fullscreen width and height to a function named updateFullscreenWidthHeight and pass to GoLiveContainer so it runs after expand animation ends

* fix: the thunk actions to get the correct state from streamManager; refactor: move dimensionClasses to usecalculatedAspectRatio; fix: update closeFullscreen dispatch in Header.jsx to initPosAndClose; lint: remove ununsed const dimensions (useBroadcastFullscreen) from StreamManagerControlCenter.jsx

* update animationProps in fullScreenView and Footer to switch between variants based on isFullscreenOpen state changes

* refactor: extract the preview canvas into its own component named PreviewVideo - on load the preview will be reset; refactor: memoize the previewVideoElement in GoLiveContainer

* refactor: FullScreenVideo content renamed to videoFeedsContent and memoized; refactor: videoFeedsContent is  spinner when isFullscreenOpen is false (displayed when fullscreen view is closing)

* add: COLLABORATE_BUTTON_ANIM_DEFAULT constant to be used to reset back to default value in initPosAndOpen

* feat: add stream manager state - shouldAnimateFullscreenIn; add: useEffect in StreamManagerControlCenter that will dispatch initPosAndOpen when isStageActive true and fullscreen is closed (when user interacts with collaborate button); fix: don't animate the fullscreen opening when fullscreen is already open and the collaborate button is clicked

* fix: open full screen based on when the stage connectState is connecting instead of isStageActive and isFullscreenOpen - fixes regression where fullscreen collapse button would not close the view; refactor: replace isUserStageConnected to isConnected

* chore: replace close fullscreen logic in handleStartStopBroadcastingAction in GoLiveStreamButton to dispatch initPosAndClose instead

* feat: add new streamManager state fullscreen.isCollaborateButtonVisible; set false when starting collab and true when leaving collab

* refactor: streamManager states organized with new object fullscreen that includes isOpen and isAniamted state

* chore: replace isFullscreenOpen with fullscreen.isOpen in StageVideo in order to display stream

* fix: base the fullscreen animateIn state on isFullscreenOpen when fullscreenView animation completes

* refactor: rename GoLiveContainer to ExpandedGoLiveContainer and rename GoLiveContainerCollapsed to CollapsedGoLiveContainer; add: new streamManager states - streamMode, goLiveContainer.isOpen and actions; replace: isBroadcastCardOpen with goLiveContainer.isOpen

* fix: pass the canvas ref as a prop to resetPreview so that the preview can be switched when resetPreview is called (more control over the previewRef)

* fix: move update fullscreen isCollaborateButtonVisible state based on streamMode low latency and when the collaborate button funishes to animate

* refactor: move initializeDevice logic to resetPreview; rename resetPreview to setupVideoPreview

* fix: update fullscreenView GoLiveStreamButton animation to not animateIn when fullscreenView is already open (also fixed shoudlAnimatedIn typo)

* fix: hide collaborate button when starting a collab session in the fullscreen view

* fix: display spinner for the fullscreen video content when stage is connecting and broadcast is connecting

* refactor: updates fullscreen isCollaborateButtonVisible state based on isStageActive value in a useEffect (Footer.jsx) - remove isCollaborateButtonVisible state update logic in GoLiveStreamButton; refactor buttonTextContent useMemo conditionals

* refactor: remove isBroadcastCardOpen prop from StreamManagerWebBroadcast in favor of using the selector to get goLiveContainer state within the component

* fix: whenever initPosAndClose is called, set GoLiveContainer to open so that the fullscreen animation can smoothly complete

* fix: add black bg to the videoFeedsContent (FullScreenView.jsx) spinner; fix: remove isBroadcastConnecting conditional to set content as <BroadcastFullScreenViewFeed /> as broadcast does not need to be connecting

* refactor: update getMarginRight to be a useCallback in StageControls.jsx

* fix: the dimension classes, now named responiveVideoClasses, are set on resize instead of a useEffect in useCalculatedAspectRatio.js - this fixes issue with resizing the fullscreen view

* feat: add stream manager state - shouldAnimateFullscreenIn; add: useEffect in StreamManagerControlCenter that will dispatch initPosAndOpen when isStageActive true and fullscreen is closed (when user interacts with collaborate button); fix: don't animate the fullscreen opening when fullscreen is already open and the collaborate button is clicked

* fix: open full screen based on when the stage connectState is connecting instead of isStageActive and isFullscreenOpen - fixes regression where fullscreen collapse button would not close the view; refactor: replace isUserStageConnected to isConnected

* chore: replace close fullscreen logic in handleStartStopBroadcastingAction in GoLiveStreamButton to dispatch initPosAndClose instead

* feat: add new streamManager state fullscreen.isCollaborateButtonVisible; set false when starting collab and true when leaving collab

* refactor: streamManager states organized with new object fullscreen that includes isOpen and isAniamted state

* chore: replace isFullscreenOpen with fullscreen.isOpen in StageVideo in order to display stream

* fix: base the fullscreen animateIn state on isFullscreenOpen when fullscreenView animation completes

* refactor: rename GoLiveContainer to ExpandedGoLiveContainer and rename GoLiveContainerCollapsed to CollapsedGoLiveContainer; add: new streamManager states - streamMode, goLiveContainer.isOpen and actions; replace: isBroadcastCardOpen with goLiveContainer.isOpen

* fix: pass the canvas ref as a prop to resetPreview so that the preview can be switched when resetPreview is called (more control over the previewRef)

* fix: move update fullscreen isCollaborateButtonVisible state based on streamMode low latency and when the collaborate button funishes to animate

* refactor: move initializeDevice logic to resetPreview; rename resetPreview to setupVideoPreview

* fix: update fullscreenView GoLiveStreamButton animation to not animateIn when fullscreenView is already open (also fixed shoudlAnimatedIn typo)

* fix: hide collaborate button when starting a collab session in the fullscreen view

* fix: display spinner for the fullscreen video content when stage is connecting and broadcast is connecting

* refactor: updates fullscreen isCollaborateButtonVisible state based on isStageActive value in a useEffect (Footer.jsx) - remove isCollaborateButtonVisible state update logic in GoLiveStreamButton; refactor buttonTextContent useMemo conditionals

* refactor: remove isBroadcastCardOpen prop from StreamManagerWebBroadcast in favor of using the selector to get goLiveContainer state within the component

* fix: whenever initPosAndClose is called, set GoLiveContainer to open so that the fullscreen animation can smoothly complete

* fix: add black bg to the videoFeedsContent (FullScreenView.jsx) spinner; fix: remove isBroadcastConnecting conditional to set content as <BroadcastFullScreenViewFeed /> as broadcast does not need to be connecting

* refactor: update getMarginRight to be a useCallback in StageControls.jsx

* fix: while stage is active, opening the fullscreen view will not set the correct apsect ratio - updated useCalculatedAspectRatio in StsageVideoFeeds to delay for the animation duration of the fullscreen view

* chore: move the redux provider to the App.jsx file where all the other providers are imported

* chore: typo in responsiveVideoClasses fixed

* doc: update comments in GoLiveContainer.jsx - collaborate session & ina to in a

* feat: add stream manager state - shouldAnimateFullscreenIn; add: useEffect in StreamManagerControlCenter that will dispatch initPosAndOpen when isStageActive true and fullscreen is closed (when user interacts with collaborate button); fix: don't animate the fullscreen opening when fullscreen is already open and the collaborate button is clicked

* fix: open full screen based on when the stage connectState is connecting instead of isStageActive and isFullscreenOpen - fixes regression where fullscreen collapse button would not close the view; refactor: replace isUserStageConnected to isConnected

* chore: replace close fullscreen logic in handleStartStopBroadcastingAction in GoLiveStreamButton to dispatch initPosAndClose instead

* feat: add new streamManager state fullscreen.isCollaborateButtonVisible; set false when starting collab and true when leaving collab

* refactor: streamManager states organized with new object fullscreen that includes isOpen and isAniamted state

* chore: replace isFullscreenOpen with fullscreen.isOpen in StageVideo in order to display stream

* fix: base the fullscreen animateIn state on isFullscreenOpen when fullscreenView animation completes

* refactor: rename GoLiveContainer to ExpandedGoLiveContainer and rename GoLiveContainerCollapsed to CollapsedGoLiveContainer; add: new streamManager states - streamMode, goLiveContainer.isOpen and actions; replace: isBroadcastCardOpen with goLiveContainer.isOpen

* fix: pass the canvas ref as a prop to resetPreview so that the preview can be switched when resetPreview is called (more control over the previewRef)

* fix: move update fullscreen isCollaborateButtonVisible state based on streamMode low latency and when the collaborate button funishes to animate

* refactor: move initializeDevice logic to resetPreview; rename resetPreview to setupVideoPreview

* fix: update fullscreenView GoLiveStreamButton animation to not animateIn when fullscreenView is already open (also fixed shoudlAnimatedIn typo)

* fix: hide collaborate button when starting a collab session in the fullscreen view

* fix: display spinner for the fullscreen video content when stage is connecting and broadcast is connecting

* refactor: updates fullscreen isCollaborateButtonVisible state based on isStageActive value in a useEffect (Footer.jsx) - remove isCollaborateButtonVisible state update logic in GoLiveStreamButton; refactor buttonTextContent useMemo conditionals

* refactor: remove isBroadcastCardOpen prop from StreamManagerWebBroadcast in favor of using the selector to get goLiveContainer state within the component

* fix: whenever initPosAndClose is called, set GoLiveContainer to open so that the fullscreen animation can smoothly complete

* fix: add black bg to the videoFeedsContent (FullScreenView.jsx) spinner; fix: remove isBroadcastConnecting conditional to set content as <BroadcastFullScreenViewFeed /> as broadcast does not need to be connecting

* refactor: update getMarginRight to be a useCallback in StageControls.jsx

* feat: add stream manager state - shouldAnimateFullscreenIn; add: useEffect in StreamManagerControlCenter that will dispatch initPosAndOpen when isStageActive true and fullscreen is closed (when user interacts with collaborate button); fix: don't animate the fullscreen opening when fullscreen is already open and the collaborate button is clicked

* refactor: streamManager states organized with new object fullscreen that includes isOpen and isAniamted state

* fix: while stage is active, opening the fullscreen view will not set the correct apsect ratio - updated useCalculatedAspectRatio in StsageVideoFeeds to delay for the animation duration of the fullscreen view

* feat: first interation of redux store with streamManager slice - open, close fullscreen actions and update initial states

* fix: pass store into the redux provider not the App

* feat: on page load (useEffect) set the animationInitialPos values. Logic added in the corresponding components. (the refs will be moved to the components from the fullscreen context in a future commit)

* feat: update initPosAndOpen and initPosAndClose to get state by using getState(); fix: getting left and top offset values using debounceCallback to prevent infinite loop; feat: use the redux state isFullscreenOpen to display the fullscreen when the expand button is clicked on the GoLiveContainer and update the pos values

* chore: move the redux provider to the App.jsx file where all the other providers are imported

* feat: add stream manager state - shouldAnimateFullscreenIn; add: useEffect in StreamManagerControlCenter that will dispatch initPosAndOpen when isStageActive true and fullscreen is closed (when user interacts with collaborate button); fix: don't animate the fullscreen opening when fullscreen is already open and the collaborate button is clicked

* fix: open full screen based on when the stage connectState is connecting instead of isStageActive and isFullscreenOpen - fixes regression where fullscreen collapse button would not close the view; refactor: replace isUserStageConnected to isConnected

* chore: replace close fullscreen logic in handleStartStopBroadcastingAction in GoLiveStreamButton to dispatch initPosAndClose instead

* feat: add new streamManager state fullscreen.isCollaborateButtonVisible; set false when starting collab and true when leaving collab

* refactor: streamManager states organized with new object fullscreen that includes isOpen and isAniamted state

* chore: replace isFullscreenOpen with fullscreen.isOpen in StageVideo in order to display stream

* fix: base the fullscreen animateIn state on isFullscreenOpen when fullscreenView animation completes

* refactor: rename GoLiveContainer to ExpandedGoLiveContainer and rename GoLiveContainerCollapsed to CollapsedGoLiveContainer; add: new streamManager states - streamMode, goLiveContainer.isOpen and actions; replace: isBroadcastCardOpen with goLiveContainer.isOpen

* fix: pass the canvas ref as a prop to resetPreview so that the preview can be switched when resetPreview is called (more control over the previewRef)

* fix: move update fullscreen isCollaborateButtonVisible state based on streamMode low latency and when the collaborate button funishes to animate

* refactor: move initializeDevice logic to resetPreview; rename resetPreview to setupVideoPreview

* fix: update fullscreenView GoLiveStreamButton animation to not animateIn when fullscreenView is already open (also fixed shoudlAnimatedIn typo)

* fix: hide collaborate button when starting a collab session in the fullscreen view

* fix: display spinner for the fullscreen video content when stage is connecting and broadcast is connecting

* refactor: updates fullscreen isCollaborateButtonVisible state based on isStageActive value in a useEffect (Footer.jsx) - remove isCollaborateButtonVisible state update logic in GoLiveStreamButton; refactor buttonTextContent useMemo conditionals

* refactor: remove isBroadcastCardOpen prop from StreamManagerWebBroadcast in favor of using the selector to get goLiveContainer state within the component

* fix: whenever initPosAndClose is called, set GoLiveContainer to open so that the fullscreen animation can smoothly complete

* fix: add black bg to the videoFeedsContent (FullScreenView.jsx) spinner; fix: remove isBroadcastConnecting conditional to set content as <BroadcastFullScreenViewFeed /> as broadcast does not need to be connecting

* refactor: update getMarginRight to be a useCallback in StageControls.jsx

* feat: add stream manager state - shouldAnimateFullscreenIn; add: useEffect in StreamManagerControlCenter that will dispatch initPosAndOpen when isStageActive true and fullscreen is closed (when user interacts with collaborate button); fix: don't animate the fullscreen opening when fullscreen is already open and the collaborate button is clicked

* refactor: streamManager states organized with new object fullscreen that includes isOpen and isAniamted state

* fix: while stage is active, opening the fullscreen view will not set the correct apsect ratio - updated useCalculatedAspectRatio in StsageVideoFeeds to delay for the animation duration of the fullscreen view

* feat: add stream manager state - shouldAnimateFullscreenIn; add: useEffect in StreamManagerControlCenter that will dispatch initPosAndOpen when isStageActive true and fullscreen is closed (when user interacts with collaborate button); fix: don't animate the fullscreen opening when fullscreen is already open and the collaborate button is clicked

* feat (mobile): redux stream manager tabs (#682)

* feat: first interation of redux store with streamManager slice - open, close fullscreen actions and update initial states

* fix: pass store into the redux provider not the App

* feat: on page load (useEffect) set the animationInitialPos values. Logic added in the corresponding components. (the refs will be moved to the components from the fullscreen context in a future commit)

* feat: update initPosAndOpen and initPosAndClose to get state by using getState(); fix: getting left and top offset values using debounceCallback to prevent infinite loop; feat: use the redux state isFullscreenOpen to display the fullscreen when the expand button is clicked on the GoLiveContainer and update the pos values

* refactor: move resetPreview to BroadcastFullScreenVideoFeed useEffect so it resets when it mounts; calculate aspect ratio when redux store streamManager isFullscreenOpen is true

* refactor: allow portals to animate out by adding a setTimeout when removing the container; remove dimensions prop from FullScreenView (not used); update handleCloseFullScreen function in Header.jsx to use the closeFullscreen action

* refactor: add new GoLiveContainer prop onExpandAnimationComplete; convert useEffect to set fullscreen width and height to a function named updateFullscreenWidthHeight and pass to GoLiveContainer so it runs after expand animation ends

* fix: the thunk actions to get the correct state from streamManager; refactor: move dimensionClasses to usecalculatedAspectRatio; fix: update closeFullscreen dispatch in Header.jsx to initPosAndClose; lint: remove ununsed const dimensions (useBroadcastFullscreen) from StreamManagerControlCenter.jsx

* update animationProps in fullScreenView and Footer to switch between variants based on isFullscreenOpen state changes

* refactor: extract the preview canvas into its own component named PreviewVideo - on load the preview will be reset; refactor: memoize the previewVideoElement in GoLiveContainer

* refactor: FullScreenVideo content renamed to videoFeedsContent and memoized; refactor: videoFeedsContent is  spinner when isFullscreenOpen is false (displayed when fullscreen view is closing)

* add: COLLABORATE_BUTTON_ANIM_DEFAULT constant to be used to reset back to default value in initPosAndOpen

* feat: add stream manager state - shouldAnimateFullscreenIn; add: useEffect in StreamManagerControlCenter that will dispatch initPosAndOpen when isStageActive true and fullscreen is closed (when user interacts with collaborate button); fix: don't animate the fullscreen opening when fullscreen is already open and the collaborate button is clicked

* fix: open full screen based on when the stage connectState is connecting instead of isStageActive and isFullscreenOpen - fixes regression where fullscreen collapse button would not close the view; refactor: replace isUserStageConnected to isConnected

* chore: replace close fullscreen logic in handleStartStopBroadcastingAction in GoLiveStreamButton to dispatch initPosAndClose instead

* feat: add new streamManager state fullscreen.isCollaborateButtonVisible; set false when starting collab and true when leaving collab

* refactor: streamManager states organized with new object fullscreen that includes isOpen and isAniamted state

* chore: replace isFullscreenOpen with fullscreen.isOpen in StageVideo in order to display stream

* fix: base the fullscreen animateIn state on isFullscreenOpen when fullscreenView animation completes

* refactor: rename GoLiveContainer to ExpandedGoLiveContainer and rename GoLiveContainerCollapsed to CollapsedGoLiveContainer; add: new streamManager states - streamMode, goLiveContainer.isOpen and actions; replace: isBroadcastCardOpen with goLiveContainer.isOpen

* fix: pass the canvas ref as a prop to resetPreview so that the preview can be switched when resetPreview is called (more control over the previewRef)

* fix: move update fullscreen isCollaborateButtonVisible state based on streamMode low latency and when the collaborate button funishes to animate

* refactor: move initializeDevice logic to resetPreview; rename resetPreview to setupVideoPreview

* fix: update fullscreenView GoLiveStreamButton animation to not animateIn when fullscreenView is already open (also fixed shoudlAnimatedIn typo)

* fix: hide collaborate button when starting a collab session in the fullscreen view

* fix: display spinner for the fullscreen video content when stage is connecting and broadcast is connecting

* refactor: updates fullscreen isCollaborateButtonVisible state based on isStageActive value in a useEffect (Footer.jsx) - remove isCollaborateButtonVisible state update logic in GoLiveStreamButton; refactor buttonTextContent useMemo conditionals

* refactor: remove isBroadcastCardOpen prop from StreamManagerWebBroadcast in favor of using the selector to get goLiveContainer state within the component

* fix: whenever initPosAndClose is called, set GoLiveContainer to open so that the fullscreen animation can smoothly complete

* fix: add black bg to the videoFeedsContent (FullScreenView.jsx) spinner; fix: remove isBroadcastConnecting conditional to set content as <BroadcastFullScreenViewFeed /> as broadcast does not need to be connecting

* refactor: update getMarginRight to be a useCallback in StageControls.jsx

* feat: add tabIndex, fullscreen.animate, goLiveContainer.isExpandButtonVisible to streamManager slice; on resize handle switching between mobile tabs and fullscreen

* fix: instead of using useResize and throttle, call the function to set state between mobile and desktop in a useEffect only when the isDesktopView state does not equal the previous isDesktopView state (usePrevious)

* fix: the dimension classes, now named responiveVideoClasses, are set on resize instead of a useEffect in useCalculatedAspectRatio.js - this fixes issue with resizing the fullscreen view

* feat: add stream manager state - shouldAnimateFullscreenIn; add: useEffect in StreamManagerControlCenter that will dispatch initPosAndOpen when isStageActive true and fullscreen is closed (when user interacts with collaborate button); fix: don't animate the fullscreen opening when fullscreen is already open and the collaborate button is clicked

* fix: open full screen based on when the stage connectState is connecting instead of isStageActive and isFullscreenOpen - fixes regression where fullscreen collapse button would not close the view; refactor: replace isUserStageConnected to isConnected

* chore: replace close fullscreen logic in handleStartStopBroadcastingAction in GoLiveStreamButton to dispatch initPosAndClose instead

* feat: add new streamManager state fullscreen.isCollaborateButtonVisible; set false when starting collab and true when leaving collab

* refactor: streamManager states organized with new object fullscreen that includes isOpen and isAniamted state

* chore: replace isFullscreenOpen with fullscreen.isOpen in StageVideo in order to display stream

* fix: base the fullscreen animateIn state on isFullscreenOpen when fullscreenView animation completes

* refactor: rename GoLiveContainer to ExpandedGoLiveContainer and rename GoLiveContainerCollapsed to CollapsedGoLiveContainer; add: new streamManager states - streamMode, goLiveContainer.isOpen and actions; replace: isBroadcastCardOpen with goLiveContainer.isOpen

* fix: pass the canvas ref as a prop to resetPreview so that the preview can be switched when resetPreview is called (more control over the previewRef)

* fix: move update fullscreen isCollaborateButtonVisible state based on streamMode low latency and when the collaborate button funishes to animate

* refactor: move initializeDevice logic to resetPreview; rename resetPreview to setupVideoPreview

* fix: update fullscreenView GoLiveStreamButton animation to not animateIn when fullscreenView is already open (also fixed shoudlAnimatedIn typo)

* fix: hide collaborate button when starting a collab session in the fullscreen view

* fix: display spinner for the fullscreen video content when stage is connecting and broadcast is connecting

* refactor: updates fullscreen isCollaborateButtonVisible state based on isStageActive value in a useEffect (Footer.jsx) - remove isCollaborateButtonVisible state update logic in GoLiveStreamButton; refactor buttonTextContent useMemo conditionals

* refactor: remove isBroadcastCardOpen prop from StreamManagerWebBroadcast in favor of using the selector to get goLiveContainer state within the component

* fix: whenever initPosAndClose is called, set GoLiveContainer to open so that the fullscreen animation can smoothly complete

* fix: add black bg to the videoFeedsContent (FullScreenView.jsx) spinner; fix: remove isBroadcastConnecting conditional to set content as <BroadcastFullScreenViewFeed /> as broadcast does not need to be connecting

* refactor: update getMarginRight to be a useCallback in StageControls.jsx

* feat: add tabIndex, fullscreen.animate, goLiveContainer.isExpandButtonVisible to streamManager slice; on resize handle switching between mobile tabs and fullscreen

* fix: instead of using useResize and throttle, call the function to set state between mobile and desktop in a useEffect only when the isDesktopView state does not equal the previous isDesktopView state (usePrevious)

* fix: while stage is active, opening the fullscreen view will not set the correct apsect ratio - updated useCalculatedAspectRatio in StsageVideoFeeds to delay for the animation duration of the fullscreen view

* feat: add tabIndex, fullscreen.animate, goLiveContainer.isExpandButtonVisible to streamManager slice; on resize handle switching between mobile tabs and fullscreen

* fix: instead of using useResize and throttle, call the function to set state between mobile and desktop in a useEffect only when the isDesktopView state does not equal the previous isDesktopView state (usePrevious)

* fix: make sure setupResponsiveStoreState (StreamManagerControlCenter.jsx) is only triggered when prevIsDesktopView is defined and does not equal to the current isDesktopView value; refactor: make sure that the goLiveContainer is opened when fullscreen view is opened (initPosAndOpen

* fix: setupResponsiveStoreState GO_LIVE typo setting the tabIndex to undefined when isStreamActive is true

* chore: move the redux provider to the App.jsx file where all the other providers are imported

* chore: typo in responsiveVideoClasses fixed

* doc: update comments in GoLiveContainer.jsx - collaborate session & ina to in a

* feat: add stream manager state - shouldAnimateFullscreenIn; add: useEffect in StreamManagerControlCenter that will dispatch initPosAndOpen when isStageActive true and fullscreen is closed (when user interacts with collaborate button); fix: don't animate the fullscreen opening when fullscreen is already open and the collaborate button is clicked

* fix: open full screen based on when the stage connectState is connecting instead of isStageActive and isFullscreenOpen - fixes regression where fullscreen collapse button would not close the view; refactor: replace isUserStageConnected to isConnected

* chore: replace close fullscreen logic in handleStartStopBroadcastingAction in GoLiveStreamButton to dispatch initPosAndClose instead

* feat: add new streamManager state fullscreen.isCollaborateButtonVisible; set false when starting collab and true when leaving collab

* refactor: streamManager states organized with new object fullscreen that includes isOpen and isAniamted state

* chore: replace isFullscreenOpen with fullscreen.isOpen in StageVideo in order to display stream

* fix: base the fullscreen animateIn state on isFullscreenOpen when fullscreenView animation completes

* refactor: rename GoLiveContainer to ExpandedGoLiveContainer and rename GoLiveContainerCollapsed to CollapsedGoLiveContainer; add: new streamManager states - streamMode, goLiveContainer.isOpen and actions; replace: isBroadcastCardOpen with goLiveContainer.isOpen

* fix: pass the canvas ref as a prop to resetPreview so that the preview can be switched when resetPreview is called (more control over the previewRef)

* fix: move update fullscreen isCollaborateButtonVisible state based on streamMode low latency and when the collaborate button funishes to animate

* refactor: move initializeDevice logic to resetPreview; rename resetPreview to setupVideoPreview

* fix: update fullscreenView GoLiveStreamButton animation to not animateIn when fullscreenView is already open (also fixed shoudlAnimatedIn typo)

* fix: hide collaborate button when starting a collab session in the fullscreen view

* fix: display spinner for the fullscreen video content when stage is connecting and broadcast is connecting

* refactor: updates fullscreen isCollaborateButtonVisible state based on isStageActive value in a useEffect (Footer.jsx) - remove isCollaborateButtonVisible state update logic in GoLiveStreamButton; refactor buttonTextContent useMemo conditionals

* refactor: remove isBroadcastCardOpen prop from StreamManagerWebBroadcast in favor of using the selector to get goLiveContainer state within the component

* fix: whenever initPosAndClose is called, set GoLiveContainer to open so that the fullscreen animation can smoothly complete

* fix: add black bg to the videoFeedsContent (FullScreenView.jsx) spinner; fix: remove isBroadcastConnecting conditional to set content as <BroadcastFullScreenViewFeed /> as broadcast does not need to be connecting

* refactor: update getMarginRight to be a useCallback in StageControls.jsx

* feat: add stream manager state - shouldAnimateFullscreenIn; add: useEffect in StreamManagerControlCenter that will dispatch initPosAndOpen when isStageActive true and fullscreen is closed (when user interacts with collaborate button); fix: don't animate the fullscreen opening when fullscreen is already open and the collaborate button is clicked

* refactor: streamManager states organized with new object fullscreen that includes isOpen and isAniamted state

* fix: while stage is active, opening the fullscreen view will not set the correct apsect ratio - updated useCalculatedAspectRatio in StsageVideoFeeds to delay for the animation duration of the fullscreen view

* feat: add tabIndex, fullscreen.animate, goLiveContainer.isExpandButtonVisible to streamManager slice; on resize handle switching between mobile tabs and fullscreen

* fix: instead of using useResize and throttle, call the function to set state between mobile and desktop in a useEffect only when the isDesktopView state does not equal the previous isDesktopView state (usePrevious)

* feat: add tabIndex, fullscreen.animate, goLiveContainer.isExpandButtonVisible to streamManager slice; on resize handle switching between mobile tabs and fullscreen

* fix: make sure setupResponsiveStoreState (StreamManagerControlCenter.jsx) is only triggered when prevIsDesktopView is defined and does not equal to the current isDesktopView value; refactor: make sure that the goLiveContainer is opened when fullscreen view is opened (initPosAndOpen

* fix: setupResponsiveStoreState GO_LIVE typo setting the tabIndex to undefined when isStreamActive is true

* fix: close fullscreen when not desktop breakpoint; fix: in useCalculateAspectRatio.jsx, set width and height to full when fullscreen is closed

* feat: on page load (useEffect) set the animationInitialPos values. Logic added in the corresponding components. (the refs will be moved to the components from the fullscreen context in a future commit)

* feat: add tabIndex, fullscreen.animate, goLiveContainer.isExpandButtonVisible to streamManager slice; on resize handle switching between mobile tabs and fullscreen

* fix: instead of using useResize and throttle, call the function to set state between mobile and desktop in a useEffect only when the isDesktopView state does not equal the previous isDesktopView state (usePrevious)

* feat: add tabIndex, fullscreen.animate, goLiveContainer.isExpandButtonVisible to streamManager slice; on resize handle switching between mobile tabs and fullscreen

* fix: make sure setupResponsiveStoreState (StreamManagerControlCenter.jsx) is only triggered when prevIsDesktopView is defined and does not equal to the current isDesktopView value; refactor: make sure that the goLiveContainer is opened when fullscreen view is opened (initPosAndOpen

* fix: setupResponsiveStoreState GO_LIVE typo setting the tabIndex to undefined when isStreamActive is true

* fix: close fullscreen when not desktop breakpoint; fix: in useCalculateAspectRatio.jsx, set width and height to full when fullscreen is closed

* feat (redux): real time stage session invite user flow both for requesting and invited users (#683)

* feat: first interation of redux store with streamManager slice - open, close fullscreen actions and update initial states

* fix: pass store into the redux provider not the App

* feat: on page load (useEffect) set the animationInitialPos values. Logic added in the corresponding components. (the refs will be moved to the components from the fullscreen context in a future commit)

* feat: update initPosAndOpen and initPosAndClose to get state by using getState(); fix: getting left and top offset values using debounceCallback to prevent infinite loop; feat: use the redux state isFullscreenOpen to display the fullscreen when the expand button is clicked on the GoLiveContainer and update the pos values

* refactor: move resetPreview to BroadcastFullScreenVideoFeed useEffect so it resets when it mounts; calculate aspect ratio when redux store streamManager isFullscreenOpen is true

* refactor: allow portals to animate out by adding a setTimeout when removing the container; remove dimensions prop from FullScreenView (not used); update handleCloseFullScreen function in Header.jsx to use the closeFullscreen action

* refactor: add new GoLiveContainer prop onExpandAnimationComplete; convert useEffect to set fullscreen width and height to a function named updateFullscreenWidthHeight and pass to GoLiveContainer so it runs after expand animation ends

* fix: the thunk actions to get the correct state from streamManager; refactor: move dimensionClasses to usecalculatedAspectRatio; fix: update closeFullscreen dispatch in Header.jsx to initPosAndClose; lint: remove ununsed const dimensions (useBroadcastFullscreen) from StreamManagerControlCenter.jsx

* update animationProps in fullScreenView and Footer to switch between variants based on isFullscreenOpen state changes

* refactor: extract the preview canvas into its own component named PreviewVideo - on load the preview will be reset; refactor: memoize the previewVideoElement in GoLiveContainer

* refactor: FullScreenVideo content renamed to videoFeedsContent and memoized; refactor: videoFeedsContent is  spinner when isFullscreenOpen is false (displayed when fullscreen view is closing)

* add: COLLABORATE_BUTTON_ANIM_DEFAULT constant to be used to reset back to default value in initPosAndOpen

* feat: add stream manager state - shouldAnimateFullscreenIn; add: useEffect in StreamManagerControlCenter that will dispatch initPosAndOpen when isStageActive true and fullscreen is closed (when user interacts with collaborate button); fix: don't animate the fullscreen opening when fullscreen is already open and the collaborate button is clicked

* fix: open full screen based on when the stage connectState is connecting instead of isStageActive and isFullscreenOpen - fixes regression where fullscreen collapse button would not close the view; refactor: replace isUserStageConnected to isConnected

* chore: replace close fullscreen logic in handleStartStopBroadcastingAction in GoLiveStreamButton to dispatch initPosAndClose instead

* feat: add new streamManager state fullscreen.isCollaborateButtonVisible; set false when starting collab and true when leaving collab

* refactor: streamManager states organized with new object fullscreen that includes isOpen and isAniamted state

* chore: replace isFullscreenOpen with fullscreen.isOpen in StageVideo in order to display stream

* fix: base the fullscreen animateIn state on isFullscreenOpen when fullscreenView animation completes

* refactor: rename GoLiveContainer to ExpandedGoLiveContainer and rename GoLiveContainerCollapsed to CollapsedGoLiveContainer; add: new streamManager states - streamMode, goLiveContainer.isOpen and actions; replace: isBroadcastCardOpen with goLiveContainer.isOpen

* fix: pass the canvas ref as a prop to resetPreview so that the preview can be switched when resetPreview is called (more control over the previewRef)

* fix: move update fullscreen isCollaborateButtonVisible state based on streamMode low latency and when the collaborate button funishes to animate

* refactor: move initializeDevice logic to resetPreview; rename resetPreview to setupVideoPreview

* fix: update fullscreenView GoLiveStreamButton animation to not animateIn when fullscreenView is already open (also fixed shoudlAnimatedIn typo)

* fix: hide collaborate button when starting a collab session in the fullscreen view

* fix: display spinner for the fullscreen video content when stage is connecting and broadcast is connecting

* refactor: updates fullscreen isCollaborateButtonVisible state based on isStageActive value in a useEffect (Footer.jsx) - remove isCollaborateButtonVisible state update logic in GoLiveStreamButton; refactor buttonTextContent useMemo conditionals

* refactor: remove isBroadcastCardOpen prop from StreamManagerWebBroadcast in favor of using the selector to get goLiveContainer state within the component

* fix: whenever initPosAndClose is called, set GoLiveContainer to open so that the fullscreen animation can smoothly complete

* fix: add black bg to the videoFeedsContent (FullScreenView.jsx) spinner; fix: remove isBroadcastConnecting conditional to set content as <BroadcastFullScreenViewFeed /> as broadcast does not need to be connecting

* refactor: update getMarginRight to be a useCallback in StageControls.jsx

* feat: add tabIndex, fullscreen.animate, goLiveContainer.isExpandButtonVisible to streamManager slice; on resize handle switching between mobile tabs and fullscreen

* fix: instead of using useResize and throttle, call the function to set state between mobile and desktop in a useEffect only when the isDesktopView state does not equal the previous isDesktopView state (usePrevious)

* fix: the dimension classes, now named responiveVideoClasses, are set on resize instead of a useEffect in useCalculatedAspectRatio.js - this fixes issue with resizing the fullscreen view

* feat: add stream manager state - shouldAnimateFullscreenIn; add: useEffect in StreamManagerControlCenter that will dispatch initPosAndOpen when isStageActive true and fullscreen is closed (when user interacts with collaborate button); fix: don't animate the fullscreen opening when fullscreen is already open and the collaborate button is clicked

* fix: open full screen based on when the stage connectState is connecting instead of isStageActive and isFullscreenOpen - fixes regression where fullscreen collapse button would not close the view; refactor: replace isUserStageConnected to isConnected

* chore: replace close fullscreen logic in handleStartStopBroadcastingAction in GoLiveStreamButton to dispatch initPosAndClose instead

* feat: add new streamManager state fullscreen.isCollaborateButtonVisible; set false when starting collab and true when leaving collab

* refactor: streamManager states organized with new object fullscreen that includes isOpen and isAniamted state

* chore: replace isFullscreenOpen with fullscreen.isOpen in StageVideo in order to display stream

* fix: base the fullscreen animateIn state on isFullscreenOpen when fullscreenView animation completes

* refactor: rename GoLiveContainer to ExpandedGoLiveContainer and rename GoLiveContainerCollapsed to CollapsedGoLiveContainer; add: new streamManager states - streamMode, goLiveContainer.isOpen and actions; replace: isBroadcastCardOpen with goLiveContainer.isOpen

* fix: pass the canvas ref as a prop to resetPreview so that the preview can be switched when resetPreview is called (more control over the previewRef)

* fix: move update fullscreen isCollaborateButtonVisible state based on streamMode low latency and when the collaborate button funishes to animate

* refactor: move initializeDevice logic to resetPreview; rename resetPreview to setupVideoPreview

* fix: update fullscreenView GoLiveStreamButton animation to not animateIn when fullscreenView is already open (also fixed shoudlAnimatedIn typo)

* fix: hide collaborate button when starting a collab session in the fullscreen view

* fix: display spinner for the fullscreen video content when stage is connecting and broadcast is connecting

* refactor: updates fullscreen isCollaborateButtonVisible state based on isStageActive value in a useEffect (Footer.jsx) - remove isCollaborateButtonVisible state update logic in GoLiveStreamButton; refactor buttonTextContent useMemo conditionals

* refactor: remove isBroadcastCardOpen prop from StreamManagerWebBroadcast in favor of using the selector to get goLiveContainer state within the component

* fix: whenever initPosAndClose is called, set GoLiveContainer to open so that the fullscreen animation can smoothly complete

* fix: add black bg to the videoFeedsContent (FullScreenView.jsx) spinner; fix: remove isBroadcastConnecting conditional to set content as <BroadcastFullScreenViewFeed /> as broadcast does not need to be connecting

* refactor: update getMarginRight to be a useCallback in StageControls.jsx

* feat: add tabIndex, fullscreen.animate, goLiveContainer.isExpandButtonVisible to streamManager slice; on resize handle switching between mobile tabs and fullscreen

* fix: instead of using useResize and throttle, call the function to set state between mobile and desktop in a useEffect only when the isDesktopView state does not equal the previous isDesktopView state (usePrevious)

* feat: add new redux slice named root that sets up initialState that includes collaborate states; update isRequesting and isJoining collaborate states based on AppSync and interactions within the channel page request button

* feat: add stageId and displayStageId to the rootSlice default states and add logic to update these states in the updateCollaborateStates action; refactor: update stageLoader to get the redux store to identify the stageId and participantType instead of the searchParams

* chore: replace isJoiningStageByRequestOrInvite with the redux root slice collaborate.isJoining state; feat: add logic to set the fullscreen state when the join modal is opened; remove the ref prop for ExpandGoLiveContainer in stageJoinModal.jsx as it is unnessessary

* refactor: open and close stage join modal logic based on root slice collaboration states - moved onCancel and onConfirm functions for the join modal to the StageJoineModal.jsx file; fix: FullScreenView parent div has width and height full classes alongside top and left position to 0

* fix: while stage is active, opening the fullscreen view will not set the correct apsect ratio - updated useCalculatedAspectRatio in StsageVideoFeeds to delay for the animation duration of the fullscreen view

* feat: add tabIndex, fullscreen.animate, goLiveContainer.isExpandButtonVisible to streamManager slice; on resize handle switching between mobile tabs and fullscreen

* fix: instead of using useResize and throttle, call the function to set state between mobile and desktop in a useEffect only when the isDesktopView state does not equal the previous isDesktopView state (usePrevious)

* feat: add new redux slice named root that sets up initialState that includes collaborate states; update isRequesting and isJoining collaborate states based on AppSync and interactions within the channel page request button

* feat: add stageId and displayStageId to the rootSlice default states and add logic to update these states in the updateCollaborateStates action; refactor: update stageLoader to get the redux store to identify the stageId and participantType instead of the searchParams

* chore: replace isJoiningStageByRequestOrInvite with the redux root slice collaborate.isJoining state; feat: add logic to set the fullscreen state when the join modal is opened; remove the ref prop for ExpandGoLiveContainer in stageJoinModal.jsx as it is unnessessary

* refactor: open and close stage join modal logic based on root slice collaboration states - moved onCancel and onConfirm functions for the join modal to the StageJoineModal.jsx file; fix: FullScreenView parent div has width and height full classes alongside top and left position to 0

* fix: make sure setupResponsiveStoreState (StreamManagerControlCenter.jsx) is only triggered when prevIsDesktopView is defined and does not equal to the current isDesktopView value; refactor: make sure that the goLiveContainer is opened when fullscreen view is opened (initPosAndOpen

* feat: add new redux slice named root that sets up initialState that includes collaborate states; update isRequesting and isJoining collaborate states based on AppSync and interactions within the channel page request button

* feat: add stageId and displayStageId to the rootSlice default states and add logic to update these states in the updateCollaborateStates action; refactor: update stageLoader to get the redux store to identify the stageId and participantType instead of the searchParams

* chore: replace isJoiningStageByRequestOrInvite with the redux root slice collaborate.isJoining state; feat: add logic to set the fullscreen state when the join modal is opened; remove the ref prop for ExpandGoLiveContainer in stageJoinModal.jsx as it is unnessessary

* refactor: open and close stage join modal logic based on root slice collaboration states - moved onCancel and onConfirm functions for the join modal to the StageJoineModal.jsx file; fix: FullScreenView parent div has width and height full classes alongside top and left position to 0

* chore: remove isJoiningStageByRequestOrInvite and replace it with collaborate.isJoining state from the redux store

* feat: when shouldAnimate is set to false when using animationProps, it should set initial to false so the visible variant is set

* feat: when leaving a stage using the close button (header), close the fullscreen view

* feat: updated stageLoader to dispatch updateCollaborateStates for invited participants

* feat: add redux-persis to persist the root.collaborate state; reset the persisting collaborate state on all pages except manager and channel pages; feat: update the stageLoader to get the persisted collaborate state by waiting for the redux state to be hydrated (promise)

* chore: remove updateCollaborateStates isRequesting to false in the navigate useEffect (Channel.jsx); chore: replace the reset collaborate state with just update isJoining in the onConfirm function in StageJoinModal - the other states should remain

* fix: return displayStageId from the getUser api; fix: set host participant type when creating stage; fix: update collaborate state with stageIds when the participant type is host

* fix: set onGoLiveStreamButtonClick (prop in ExpandedGoLiveContainer) default value to null instead of noop

* refactor: BroadcastSettingsModal - split into different components; fix: add check to StageJoinVideo components useEffect to startUserMedia - don't run when collaborate isJoining

* fix: check if mediaStream active before startUserMedia is called in StageJoinVideo - when active it should not start and initialize active device (as this will replacce the selected device)

* fix: from StageJoinModal, when confirming to join session should not startUserMedia as it is already started and running that method will reset the selected device

* chore: remove comment in updateActiveDevices (useLocalDevices.js); lint: update activeDevice prop type to object and the default value to empty object

* chore: move waitForReduxRehydration from the loaders file to the utils file

* fix: on fullscreen view, the start collaborate button should update the participantType in the root.collaborate redux store

* lint: remove console log in startLocalDevices (useLocalDevices.js)

* fix: add resetStreamManagerStates action to reset to initialState which is dispatched when the stage join modal is cancelled

* fix: setupResponsiveStoreState GO_LIVE typo setting the tabIndex to undefined when isStreamActive is true

* chore: move the redux provider to the App.jsx file where all the other providers are imported

* chore: typo in responsiveVideoClasses fixed

* doc: update comments in GoLiveContainer.jsx - collaborate session & ina to in a

* feat: add stream manager state - shouldAnimateFullscreenIn; add: useEffect in StreamManagerControlCenter that will dispatch initPosAndOpen when isStageActive true and fullscreen is closed (when user interacts with collaborate button); fix: don't animate the fullscreen opening when fullscreen is already open and the collaborate button is clicked

* fix: open full screen based on when the stage connectState is connecting instead of isStageActive and isFullscreenOpen - fixes regression where fullscreen collapse button would not close the view; refactor: replace isUserStageConnected to isConnected

* chore: replace close fullscreen logic in handleStartStopBroadcastingAction in GoLiveStreamButton to dispatch initPosAndClose instead

* feat: add new streamManager state fullscreen.isCollaborateButtonVisible; set false when starting collab and true when leaving collab

* refactor: streamManager states organized with new object fullscreen that includes isOpen and isAniamted state

* chore: replace isFullscreenOpen with fullscreen.isOpen in StageVideo in order to display stream

* fix: base the fullscreen animateIn state on isFullscreenOpen when fullscreenView animation completes

* refactor: rename GoLiveContainer to ExpandedGoLiveContainer and rename GoLiveContainerCollapsed to CollapsedGoLiveContainer; add: new streamManager states - streamMode, goLiveContainer.isOpen and actions; replace: isBroadcastCardOpen with goLiveContainer.isOpen

* fix: pass the canvas ref as a prop to resetPreview so that the preview can be switched when resetPreview is called (more control over the previewRef)

* fix: move update fullscreen isCollaborateButtonVisible state based on streamMode low latency and when the collaborate button funishes to animate

* refactor: move initializeDevice logic to resetPreview; rename resetPreview to setupVideoPreview

* fix: update fullscreenView GoLiveStreamButton animation to not animateIn when fullscreenView is already open (also fixed shoudlAnimatedIn typo)

* fix: hide collaborate button when starting a collab session in the fullscreen view

* fix: display spinner for the fullscreen video content when stage is connecting and broadcast is connecting

* refactor: updates fullscreen isCollaborateButtonVisible state based on isStageActive value in a useEffect (Footer.jsx) - remove isCollaborateButtonVisible state update logic in GoLiveStreamButton; refactor buttonTextContent useMemo conditionals

* refactor: remove isBroadcastCardOpen prop from StreamManagerWebBroadcast in favor of using the selector to get goLiveContainer state within the component

* fix: whenever initPosAndClose is called, set GoLiveContainer to open so that the fullscreen animation can smoothly complete

* fix: add black bg to the videoFeedsContent (FullScreenView.jsx) spinner; fix: remove isBroadcastConnecting conditional to set content as <BroadcastFullScreenViewFeed /> as broadcast does not need to be connecting

* refactor: update getMarginRight to be a useCallback in StageControls.jsx

* feat: add stream manager state - shouldAnimateFullscreenIn; add: useEffect in StreamManagerControlCenter that will dispatch initPosAndOpen when isStageActive true and fullscreen is closed (when user interacts with collaborate button); fix: don't animate the fullscreen opening when fullscreen is already open and the collaborate button is clicked

* refactor: streamManager states organized with new object fullscreen that includes isOpen and isAniamted state

* fix: while stage is active, opening the fullscreen view will not set the correct apsect ratio - updated useCalculatedAspectRatio in StsageVideoFeeds to delay for the animation duration of the fullscreen view

* feat: add tabIndex, fullscreen.animate, goLiveContainer.isExpandButtonVisible to streamManager slice; on resize handle switching between mobile tabs and fullscreen

* fix: instead of using useResize and throttle, call the function to set state between mobile and desktop in a useEffect only when the isDesktopView state does not equal the previous isDesktopView state (usePrevious)

* feat: add tabIndex, fullscreen.animate, goLiveContainer.isExpandButtonVisible to streamManager slice; on resize handle switching between mobile tabs and fullscreen

* fix: make sure setupResponsiveStoreState (StreamManagerControlCenter.jsx) is only triggered when prevIsDesktopView is defined and does not equal to the current isDesktopView value; refactor: make sure that the goLiveContainer is opened when fullscreen view is opened (initPosAndOpen

* fix: setupResponsiveStoreState GO_LIVE typo setting the tabIndex to undefined when isStreamActive is true

* fix: close fullscreen when not desktop breakpoint; fix: in useCalculateAspectRatio.jsx, set width and height to full when fullscreen is closed

* feat: add new redux slice named root that sets up initialState that includes collaborate states; update isRequesting and isJoining collaborate states based on AppSync and interactions within the channel page request button

* feat: add stageId and displayStageId to the rootSlice default states and add logic to update these states in the updateCollaborateStates action; refactor: update stageLoader to get the redux store to identify the stageId and participantType instead of the searchParams

* chore: replace isJoiningStageByRequestOrInvite with the redux root slice collaborate.isJoining state; feat: add logic to set the fullscreen state when the join modal is opened; remove the ref prop for ExpandGoLiveContainer in stageJoinModal.jsx as it is unnessessary

* refactor: open and close stage join modal logic based on root slice collaboration states - moved onCancel and onConfirm functions for the join modal to the StageJoineModal.jsx file; fix: FullScreenView parent div has width and height full classes alongside top and left position to 0

* chore: remove isJoiningStageByRequestOrInvite and replace it with collaborate.isJoining state from the redux store

* feat: when shouldAnimate is set to false when using animationProps, it should set initial to false so the visible variant is set

* feat: when leaving a stage using the close button (header), close the fullscreen view

* feat: updated stageLoader to dispatch updateCollaborateStates for invited participants

* feat: add redux-persis to persist the root.collaborate state; reset the persisting collaborate state on all pages except manager and channel pages; feat: update the stageLoader to get the persisted collaborate state by waiting for the redux state to be hydrated (promise)

* chore: remove updateCollaborateStates isRequesting to false in the navigate useEffect (Channel.jsx); chore: replace the reset collaborate state with just update isJoining in the onConfirm function in StageJoinModal - the other states should remain

* fix: return displayStageId from the getUser api; fix: set host participant type when creating stage; fix: update collaborate state with stageIds when the participant type is host

* fix: set onGoLiveStreamButtonClick (prop in ExpandedGoLiveContainer) default value to null instead of noop

* refactor: BroadcastSettingsModal - split into different components; fix: add check to StageJoinVideo components useEffect to startUserMedia - don't run when collaborate isJoining

* fix: check if mediaStream active before startUserMedia is called in StageJoinVideo - when active it should not start and initialize active device (as this will replacce the selected device)

* fix: from StageJoinModal, when confirming to join session should not startUserMedia as it is already started and running that method will reset the selected device

* chore: remove comment in updateActiveDevices (useLocalDevices.js); lint: update activeDevice prop type to object and the default value to empty object

* chore: move waitForReduxRehydration from the loaders file to the utils file

* fix: on fullscreen view, the start collaborate button should update the participantType in the root.collaborate redux store

* lint: remove console log in startLocalDevices (useLocalDevices.js)

* fix: add resetStreamManagerStates action to reset to initialState which is dispatched when the stage join modal is cancelled

* fix: decrease the waitForReduxRehydration delay to 300 instead of 5000ms

* fix: make sure that the collaborate state is cleared or set properly when the channelLoader is ran before loading the channel page - this fixes issue where the states are incorrect when a user leaves the stream manager page to go to the channel page

* feat: add new redux slice named root that sets up initialState that includes collaborate states; update isRequesting and isJoining collaborate states based on AppSync and interactions within the channel page request button

* feat: add stageId and displayStageId to the rootSlice default states and add logic to update these states in the updateCollaborateStates action; refactor: update stageLoader to get the redux store to identify the stageId and participantType instead of the searchParams

* chore: replace isJoiningStageByRequestOrInvite with the redux root slice collaborate.isJoining state; feat: add logic to set the fullscreen state when the join modal is opened; remove the ref prop for ExpandGoLiveContainer in stageJoinModal.jsx as it is unnessessary

* refactor: open and close stage join modal logic based on root slice collaboration states - moved onCancel and onConfirm functions for the join modal to the StageJoineModal.jsx file; fix: FullScreenView parent div has width and height full classes alongside top and left position to 0

* chore: remove isJoiningStageByRequestOrInvite and replace it with collaborate.isJoining state from the redux store

* feat: when shouldAnimate is set to false when using animationProps, it should set initial to false so the visible variant is set

* feat: when leaving a stage using the close button (header), close the fullscreen view

* feat: updated stageLoader to dispatch updateCollaborateStates for invited participants

* feat: add redux-persis to persist the root.collaborate state; reset the persisting collaborate state on all pages except manager and channel pages; feat: update the stageLoader to get the persisted collaborate state by waiting for the redux state to be hydrated (promise)

* chore: remove updateCollaborateStates isRequesting to false in the navigate useEffect (Channel.jsx); chore: replace the reset collaborate state with just update isJoining in the onConfirm function in StageJoinModal - the other states should remain

* fix: return displayStageId from the getUser api; fix: set host participant type when creating stage; fix: update collaborate state with stageIds when the participant type is host

* fix: set onGoLiveStreamButtonClick (prop in ExpandedGoLiveContainer) default value to null instead of noop

* refactor: BroadcastSettingsModal - split into different components; fix: add check to StageJoinVideo components useEffect to startUserMedia - don't run when collaborate isJoining

* fix: check if mediaStream active before startUserMedia is called in StageJoinVideo - when active it should not start and initialize active device (as this will replacce the selected device)

* fix: from StageJoinModal, when confirming to join session should not startUserMedia as it is already started and running that method will reset the selected device

* chore: remove comment in updateActiveDevices (useLocalDevices.js); lint: update activeDevice prop type to object and the default value to empty object

* chore: move waitForReduxRehydration from the loaders file to the utils file

* fix: on fullscreen view, the start col…
* Initial commit

* added project files

cleanup

cleanup

* updated dependencies. Added support for Advanced channel types

* Update README.md

* Polls stream action. Cleanup lambda. SDK upgrades

* fix: stream events bug

* hotfix: replace stream session ended (aws-samples#21)

* chore: upgrade aws cdk dep to latest

* refactor: moved defaultLamdaParams constant to cdk-channels-stack so the params can be passed into channel resources

* hotfix: replace session ended event with stream end - streams do not always get the session ended event

* chore: upgrade IVS sdk scripts to latest

* doc: update Amazon Associate link url to correct url in README

* hotfix: format

* refactor: defaultLambdaParams remove logRetention and moved const to shared constant file

* fix: update defaultLambdaParams type to Partial of Lambda  NodejsFunctionProps type

* refactor: update all CDK lambdas logRetention to use enum RetentionDays

* feat/real-time-overhaul with screenshare, bugfixes, improvements (aws-samples#23)

* Revert "feat/real-time-overhaul with screenshare, bugfixes, improvements (aws-samples#23)"

This reverts commit 68bb787.

* feat: IVS real-time screen share (aws-samples#29)

* merge: real-time screenshare

* update: cdk package-lock, docker version to 1.45.0

* remove: github folder

* hotfix: preAuthenticationLambda var name

* hotfix: remove readme auto-formatting

* feat: cleanup old live sessions when a session created event is received  (aws-samples#31)

* fix: remove cleanup idle stages lambda and event rule schedule (aws-samples#34)

* feat: cleanup idle stages by project tag  (aws-samples#35)

* refactor: remove cleanupIdleStags lambda and event and rather rely on the sqs deleteStage lambda trigger and identifying the correct stack using project_tag now attached as a prefix to the host userId

* fix: merge conflict HEAD text in README

---------

Co-authored-by: Amazon GitHub Automation <[email protected]>
Co-authored-by: Maxime Boulin <[email protected]>
Co-authored-by: Max Boulin <[email protected]>
Co-authored-by: Andrei Dobre <[email protected]>
… createHostUserIdFromChannelId helper functions (#699)

* Initial commit

* added project files

cleanup

cleanup

* updated dependencies. Added support for Advanced channel types

* Update README.md

* Polls stream action. Cleanup lambda. SDK upgrades

* fix: stream events bug

* hotfix: replace stream session ended (aws-samples#21)

* chore: upgrade aws cdk dep to latest

* refactor: moved defaultLamdaParams constant to cdk-channels-stack so the params can be passed into channel resources

* hotfix: replace session ended event with stream end - streams do not always get the session ended event

* chore: upgrade IVS sdk scripts to latest

* doc: update Amazon Associate link url to correct url in README

* hotfix: format

* refactor: defaultLambdaParams remove logRetention and moved const to shared constant file

* fix: update defaultLambdaParams type to Partial of Lambda  NodejsFunctionProps type

* refactor: update all CDK lambdas logRetention to use enum RetentionDays

* feat/real-time-overhaul with screenshare, bugfixes, improvements (aws-samples#23)

* Revert "feat/real-time-overhaul with screenshare, bugfixes, improvements (aws-samples#23)"

This reverts commit 68bb787.

* feat: IVS real-time screen share (aws-samples#29)

* merge: real-time screenshare

* update: cdk package-lock, docker version to 1.45.0

* remove: github folder

* hotfix: preAuthenticationLambda var name

* hotfix: remove readme auto-formatting

* feat: cleanup old live sessions when a session created event is received  (aws-samples#31)

* fix: remove cleanup idle stages lambda and event rule schedule (aws-samples#34)

* feat: cleanup idle stages by project tag  (aws-samples#35)

* feat: redux - stream manager, channel and shared redux slices (aws-samples#40)

* refactor: remove cleanupIdleStages lambda and rely on sqs delete stage lambda trigger (aws-samples#42)

---------

Co-authored-by: Amazon GitHub Automation <[email protected]>
Co-authored-by: Maxime Boulin <[email protected]>
Co-authored-by: Max Boulin <[email protected]>
Co-authored-by: Andrei Dobre <[email protected]>
* fix: reset active device when isLeaving state is set to true instead of just in the leaveStage function

* fix: stageControls undefined in BroadcastControlWrapper

* fix: set isLeaving state true when cancelling from JoinStageModal
…re cathes error - when screenshare is cancelled or declined permissions
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

3 participants