fix: cpu usage + email improvements (#944)

* fix: cpu usage on server ws manager, 100% to 0% on idle

* fix:  change email icon to white and prefill email in daily room for authenticated users

* fix: improve email sending with full ts transcript
This commit is contained in:
Juan Diego García
2026-03-31 16:34:10 -05:00
committed by GitHub
parent ec8b49738e
commit 8c4f5e9c0f
17 changed files with 459 additions and 58 deletions

View File

@@ -212,8 +212,13 @@ export default function DailyRoom({ meeting, room }: DailyRoomProps) {
const showConsentModalRef = useRef(showConsentModal);
showConsentModalRef.current = showConsentModal;
const userEmail =
auth.status === "authenticated" || auth.status === "refreshing"
? auth.user.email
: null;
const { showEmailModal } = useEmailTranscriptDialog({
meetingId: assertMeetingId(meeting.id),
userEmail,
});
const showEmailModalRef = useRef(showEmailModal);
showEmailModalRef.current = showEmailModal;

View File

@@ -6,13 +6,15 @@ import { Box, Button, Input, Text, VStack, HStack } from "@chakra-ui/react";
interface EmailTranscriptDialogProps {
onSubmit: (email: string) => void;
onDismiss: () => void;
initialEmail?: string;
}
export function EmailTranscriptDialog({
onSubmit,
onDismiss,
initialEmail,
}: EmailTranscriptDialogProps) {
const [email, setEmail] = useState("");
const [email, setEmail] = useState(initialEmail ?? "");
const [inputEl, setInputEl] = useState<HTMLInputElement | null>(null);
useEffect(() => {

View File

@@ -11,10 +11,12 @@ const TOAST_CHECK_INTERVAL_MS = 100;
type UseEmailTranscriptDialogParams = {
meetingId: MeetingId;
userEmail?: string | null;
};
export function useEmailTranscriptDialog({
meetingId,
userEmail,
}: UseEmailTranscriptDialogParams) {
const [modalOpen, setModalOpen] = useState(false);
const addEmailMutation = useMeetingAddEmailRecipient();
@@ -83,6 +85,7 @@ export function useEmailTranscriptDialog({
duration: null,
render: ({ dismiss }) => (
<EmailTranscriptDialog
initialEmail={userEmail ?? undefined}
onSubmit={(email) => {
handleSubmitEmail(email);
dismiss();
@@ -120,7 +123,7 @@ export function useEmailTranscriptDialog({
}
}, TOAST_CHECK_INTERVAL_MS);
});
}, [handleSubmitEmail, modalOpen]);
}, [handleSubmitEmail, modalOpen, userEmail]);
return {
showEmailModal,

View File

@@ -1,4 +1,4 @@
<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round">
<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24" fill="none" stroke="white" stroke-width="2" stroke-linecap="round" stroke-linejoin="round">
<rect x="2" y="4" width="20" height="16" rx="2"/>
<path d="m22 7-8.97 5.7a1.94 1.94 0 0 1-2.06 0L2 7"/>
</svg>

Before

Width:  |  Height:  |  Size: 274 B

After

Width:  |  Height:  |  Size: 267 B