-
- {title || "Untitled"}
-
- {displayTime && (
-
- {displayTime}
+
+
+
+ {showSpinner && (
+
+
)}
+
+
+ {title || "Untitled"}
+
+ {displayTime && (
+
+ {displayTime}
+
+ )}
+
+ {calendarId &&
}
- {calendarId && }
-
-
+
+ {showLiveStop ? (
+
+ ) : null}
+
);
}
@@ -343,12 +400,17 @@ const SessionItem = memo(
) as string | undefined;
const title = useSessionTitle(sessionId, storeTitle);
- const sessionMode = useListener((state) => state.getSessionMode(sessionId));
+ const { sessionMode, stop, amplitude } = useListener((state) => ({
+ sessionMode: state.getSessionMode(sessionId),
+ stop: state.stop,
+ amplitude: state.live.amplitude,
+ }));
const isEnhancing = useIsSessionEnhancing(sessionId);
+ const isLive = sessionMode === "active";
const isFinalizing = sessionMode === "finalizing";
const isBatching = sessionMode === "running_batch";
const showSpinner =
- !selected && (isFinalizing || isEnhancing || isBatching);
+ !selected && !isLive && (isFinalizing || isEnhancing || isBatching);
const sessionEvent = useMemo(
() => getSessionEvent(item.data),
@@ -457,6 +519,11 @@ const SessionItem = memo(
title={title}
displayTime={displayTime}
calendarId={calendarId}
+ isLive={isLive}
+ amplitude={Math.max(
+ 0.25,
+ Math.min(Math.hypot(amplitude.mic, amplitude.speaker), 1),
+ )}
showSpinner={showSpinner}
selected={selected}
muted={muted}
@@ -464,6 +531,7 @@ const SessionItem = memo(
onClick={handleClick}
onCmdClick={handleCmdClick}
onShiftClick={handleShiftClick}
+ onStop={stop}
contextMenu={contextMenu}
/>