Enable send to zulip

This commit is contained in:
2024-06-14 15:27:03 +02:00
parent a00fc3e657
commit 038da4f36c
2 changed files with 26 additions and 19 deletions

View File

@@ -5,7 +5,7 @@ import { ShareMode, toShareMode } from "../../lib/shareMode";
import { GetTranscript, GetTranscriptTopic, UpdateTranscript } from "../../api";
import {
Box,
Heading,
Flex,
IconButton,
Modal,
ModalBody,
@@ -41,8 +41,8 @@ export default function ShareAndPrivacy(props: ShareAndPrivacyProps) {
const [isOwner, setIsOwner] = useState(false);
const [shareMode, setShareMode] = useState<ShareOption>(
shareOptions.find(
(option) => option.value === props.transcriptResponse.share_mode,
) || shareOptions[0],
(option) => option.value === props.transcriptResponse.share_mode
) || shareOptions[0]
);
const [shareLoading, setShareLoading] = useState(false);
const requireLogin = featureEnabled("requireLogin");
@@ -59,12 +59,12 @@ export default function ShareAndPrivacy(props: ShareAndPrivacyProps) {
const updatedTranscript = await api.v1TranscriptUpdate(
props.transcriptResponse.id,
requestBody,
requestBody
);
setShareMode(
shareOptions.find(
(option) => option.value === updatedTranscript.share_mode,
) || shareOptions[0],
(option) => option.value === updatedTranscript.share_mode
) || shareOptions[0]
);
setShareLoading(false);
};
@@ -125,20 +125,21 @@ export default function ShareAndPrivacy(props: ShareAndPrivacyProps) {
<Text size="sm" mb="2" fontWeight={"bold"}>
Share options
</Text>
{!requireLogin ||
(shareMode.value !== "private" && (
<Flex gap={2} mb={2}>
{requireLogin && (
<ShareZulip
transcriptResponse={props.transcriptResponse}
topicsResponse={props.topicsResponse}
disabled={toShareMode(shareMode.value) === "private"}
/>
))}
)}
<ShareCopy
finalSummaryRef={props.finalSummaryRef}
transcriptResponse={props.transcriptResponse}
topicsResponse={props.topicsResponse}
mb={2}
/>
</Flex>
<ShareLink transcriptId={props.transcriptResponse.id} />
</ModalBody>
</ModalContent>

View File

@@ -2,21 +2,27 @@ import { useState } from "react";
import { featureEnabled } from "../domainContext";
import ShareModal from "./[transcriptId]/shareModal";
import { GetTranscript, GetTranscriptTopic } from "../../api";
import { Button } from "@chakra-ui/react";
import { BoxProps, Button } from "@chakra-ui/react";
type ShareZulipProps = {
transcriptResponse: GetTranscript;
topicsResponse: GetTranscriptTopic[];
disabled: boolean;
};
export default function ShareZulip(props: ShareZulipProps) {
export default function ShareZulip(props: ShareZulipProps & BoxProps) {
const [showModal, setShowModal] = useState(false);
if (!featureEnabled("sendToZulip")) return null;
return (
<>
<Button colorScheme="blue" onClick={() => setShowModal(true)}>
Zulip
<Button
colorScheme="blue"
size={"sm"}
isDisabled={props.disabled}
onClick={() => setShowModal(true)}
>
Send to Zulip
</Button>
<ShareModal