{secs}
diff --git a/dailyjs/shared/components/HeaderCapsule/HeaderCapsule.js b/dailyjs/shared/components/HeaderCapsule/HeaderCapsule.js
new file mode 100644
index 0000000..4be0c78
--- /dev/null
+++ b/dailyjs/shared/components/HeaderCapsule/HeaderCapsule.js
@@ -0,0 +1,65 @@
+import React from 'react';
+
+import classNames from 'classnames';
+import PropTypes from 'prop-types';
+
+export const HeaderCapsule = ({ children, variant }) => {
+ const cx = classNames('capsule', variant);
+
+ return (
+
+ {children}
+
+
+ );
+};
+
+HeaderCapsule.propTypes = {
+ children: PropTypes.node,
+ variant: PropTypes.string,
+};
+
+export default HeaderCapsule;
diff --git a/dailyjs/shared/components/HeaderCapsule/index.js b/dailyjs/shared/components/HeaderCapsule/index.js
new file mode 100644
index 0000000..4f6c752
--- /dev/null
+++ b/dailyjs/shared/components/HeaderCapsule/index.js
@@ -0,0 +1 @@
+export { HeaderCapsule as default } from './HeaderCapsule';
diff --git a/dailyjs/shared/contexts/ParticipantsProvider.js b/dailyjs/shared/contexts/ParticipantsProvider.js
index 6fc344c..3e31b45 100644
--- a/dailyjs/shared/contexts/ParticipantsProvider.js
+++ b/dailyjs/shared/contexts/ParticipantsProvider.js
@@ -75,7 +75,10 @@ export const ParticipantsProvider = ({ children }) => {
[allParticipants]
);
- const isOwner = useMemo(() => localParticipant?.isOwner, [localParticipant]);
+ const isOwner = useMemo(
+ () => !!localParticipant?.isOwner,
+ [localParticipant]
+ );
/**
* The participant who should be rendered prominently right now
diff --git a/dailyjs/shared/contexts/UIStateProvider.js b/dailyjs/shared/contexts/UIStateProvider.js
index fe36416..bb6d2a8 100644
--- a/dailyjs/shared/contexts/UIStateProvider.js
+++ b/dailyjs/shared/contexts/UIStateProvider.js
@@ -22,6 +22,10 @@ export const UIStateProvider = ({
}, []);
const closeModal = useCallback((modalName) => {
+ if (!modalName) {
+ setActiveModals({});
+ }
+
setActiveModals((prevState) => ({
...prevState,
[modalName]: false,
@@ -34,6 +38,10 @@ export const UIStateProvider = ({
setShowAside((p) => (p === newAside ? null : newAside));
}, []);
+ const closeAside = useCallback(() => {
+ setShowAside(null);
+ }, []);
+
return (
{
const router = useRouter();
+ const { closeAside, closeModal } = useUIState();
useEffect(() => {
console.log(`%c🔀 App state changed: ${state}`, `color: gray;`);
@@ -36,6 +38,10 @@ export const useCallUI = ({
return ;
}
+ // Make sure we hide any active asides or modals when the state changes
+ closeAside();
+ closeModal();
+
// Update the UI based on the state of our call
switch (state) {
case CALL_STATE_NOT_FOUND:
@@ -80,7 +86,7 @@ export const useCallUI = ({
return callEnded ? (
callEnded()
) : (
- window.location.reload()}>
+
You have left the call. We hope you had fun!
);