Path: blob/master/docker/dd-extension/ui/src/components/Update.tsx
1091 views
import { useState } from "react";1import { Button, Row } from "react-bootstrap";2import Form from "react-bootstrap/Form";3import { useDockerDesktopClient } from "../hooks/useDockerDesktopClient";45import Loader from "./Loader";67interface UpdateProps {8isEnabled: boolean;9image: string;10}11export default function Update({ isEnabled, image }: UpdateProps) {12const [isLoading, setLoading] = useState(false);13const ddClient = useDockerDesktopClient();1415if (!isEnabled) return null;1617const handleUpdateImage = () => {18setLoading(true);19ddClient.docker.cli20.exec("pull", [image])21.then((result) => {22console.debug(result);23setLoading(false);24})25.catch((err) => {26console.error(err);27ddClient.desktopUI.toast.error(`Update Snapshot: ${err.message}`);28setLoading(false);29});30};3132return (33<Form.Group as={Row} className="mb-3 {'d-none': uninstall }">34<div className="col-2">35<Button36className="btn btn-secondary"37type="button"38onClick={handleUpdateImage}39id="update-image-btn"40disabled={isLoading}41>42<Loader isLoading={isLoading} />43Update44</Button>45</div>46<label47className="col-auto align-self-center form-label"48htmlFor="update-image-btn"49>50Update the Docker image.51</label>52</Form.Group>53);54}555657