rqbit/crates/librqbit/webui/src/components/LogStreamModal.tsx

38 lines
1,000 B
TypeScript
Raw Normal View History

import { useContext } from "react";
import { Button, Modal } from "react-bootstrap";
import { APIContext } from "../context";
import { ErrorComponent } from "./ErrorComponent";
import { LogStream } from "./LogStream";
interface Props {
show: boolean;
onClose: () => void;
}
export const LogStreamModal: React.FC<Props> = ({ show, onClose }) => {
const api = useContext(APIContext);
2023-12-09 13:50:56 +00:00
let logsUrl = api.getStreamLogsUrl();
return (
<Modal size="xl" show={show} onHide={onClose}>
<Modal.Header closeButton>
<Modal.Title>rqbit server logs</Modal.Title>
</Modal.Header>
<Modal.Body>
2023-12-09 13:50:56 +00:00
{logsUrl ? (
<LogStream url={logsUrl} />
) : (
<ErrorComponent
error={{ text: "HTTP API not available to stream logs" }}
></ErrorComponent>
)}
</Modal.Body>
<Modal.Footer>
<Button variant="primary" onClick={onClose}>
Close
</Button>
</Modal.Footer>
</Modal>
);
};