import React, { memo, useEffect, useState, useContext } from "react";
import {getTheme} from "../theme.jsx";
import { makeStyles } from "@mui/styles";
import { toast } from 'react-toastify';
import { Context } from "../context/ContextApi.jsx";
import {
  Tooltip,
  TextField,
  FormControl,
  InputLabel,
  OutlinedInput,
  Checkbox,
  Select,
  MenuItem,
  Button,
  ListItemText,
  Dialog,
  DialogActions,
  DialogContent,
  Divider,
  DialogTitle,
  Skeleton,
} from "@mui/material";

import AvatarEditor from "react-avatar-editor";


import {
  AddAPhotoOutlined as AddAPhotoOutlinedIcon,
  ZoomInOutlined as ZoomInOutlinedIcon,
  ZoomOutOutlined as ZoomOutOutlinedIcon,
  Loop as LoopIcon,
  AddPhotoAlternate as AddPhotoAlternateIcon,
} from "@mui/icons-material";

import {
  ExpandLess as ExpandLessIcon,
  ExpandMore as ExpandMoreIcon,
  Save as SaveIcon,
} from "@mui/icons-material";

const useStyles = makeStyles({
  notchedOutline: {
    borderColor: "#f85a3e !important",
  },
});

const defaultImage =
  "data:image/png;base64,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"

  const defaultLandscapeImage = 
  "data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAV4AAAB4CAIAAAA1yw3SAAAACXBIWXMAAA7EAAAOxAGVKw4bAAAEvmlUWHRYTUw6Y29tLmFkb2JlLnhtcAAAAAAAPD94cGFja2V0IGJlZ2luPSfvu78nIGlkPSdXNU0wTXBDZWhpSHpyZVN6TlRjemtjOWQnPz4KPHg6eG1wbWV0YSB4bWxuczp4PSdhZG9iZTpuczptZXRhLyc+CjxyZGY6UkRGIHhtbG5zOnJkZj0naHR0cDovL3d3dy53My5vcmcvMTk5OS8wMi8yMi1yZGYtc3ludGF4LW5zIyc+CgogPHJkZjpEZXNjcmlwdGlvbiByZGY6YWJvdXQ9JycKICB4bWxuczpBdHRyaWI9J2h0dHA6Ly9ucy5hdHRyaWJ1dGlvbi5jb20vYWRzLzEuMC8nPgogIDxBdHRyaWI6QWRzPgogICA8cmRmOlNlcT4KICAgIDxyZGY6bGkgcmRmOnBhcnNlVHlwZT0nUmVzb3VyY2UnPgogICAgIDxBdHRyaWI6Q3JlYXRlZD4yMDI1LTExLTE4PC9BdHRyaWI6Q3JlYXRlZD4KICAgICA8QXR0cmliOkV4dElkPmRhNGQ3YjEyLWI5M2ItNGY0NS1iNTA3LTAzODliZmQ4N2EyZDwvQXR0cmliOkV4dElkPgogICAgIDxBdHRyaWI6RmJJZD41MjUyNjU5MTQxNzk1ODA8L0F0dHJpYjpGYklkPgogICAgIDxBdHRyaWI6VG91Y2hUeXBlPjI8L0F0dHJpYjpUb3VjaFR5cGU+CiAgICA8L3JkZjpsaT4KICAgPC9yZGY6U2VxPgogIDwvQXR0cmliOkFkcz4KIDwvcmRmOkRlc2NyaXB0aW9uPgoKIDxyZGY6RGVzY3JpcHRpb24gcmRmOmFib3V0PScnCiAgeG1sbnM6ZGM9J2h0dHA6Ly9wdXJsLm9yZy9kYy9lbGVtZW50cy8xLjEvJz4KICA8ZGM6dGl0bGU+CiAgIDxyZGY6QWx0PgogICAgPHJkZjpsaSB4bWw6bGFuZz0neC1kZWZhdWx0Jz5VbnRpdGxlZCBkZXNpZ24gLSAxPC9yZGY6bGk+CiAgIDwvcmRmOkFsdD4KICA8L2RjOnRpdGxlPgogPC9yZGY6RGVzY3JpcHRpb24+CgogPHJkZjpEZXNjcmlwdGlv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";

const PartnerHeader = (props) => {
  const {
    userdata,
    globalUrl,
    isPublishing,
    isCloud,
    partnerData,
    setPartnerData,
    loadingPartnerData
  } = props;

  const classes = useStyles();

  var upload = "";
  var landScapeUpload = "";

  const { themeMode } = useContext(Context)
  const {theme} = getTheme(themeMode)
  const [isDisabled, setIsDisabled] = useState(isCloud ? userdata?.active_org?.is_partner ? false : true : true);
  const [file, setFile] = React.useState("");
  const [landscapeFile, setLandscapeFile] = React.useState("");
  const [fileBase64, setFileBase64] = React.useState(
    partnerData.image_url
  );
  const [landscapeFileBase64, setLandscapeFileBase64] = React.useState(
    partnerData.landscape_image_url
  );

  useEffect(() => {
    setIsDisabled(isCloud ? userdata?.active_org?.is_partner ? false : true : true);
    if(userdata?.support){
      setIsDisabled(false);
    }
  }, [isCloud, userdata]);
  useEffect(() => {
    if (partnerData.image_url !== undefined && partnerData.image_url !== null && partnerData.image_url.length > 0) {
      setFileBase64(partnerData.image_url);
      setFile(partnerData.image_url);
    }
    if (partnerData.landscape_image_url !== undefined && partnerData.landscape_image_url !== null && partnerData.landscape_image_url.length > 0) {
      setLandscapeFileBase64(partnerData.landscape_image_url);
      setLandscapeFile(partnerData.landscape_image_url);
    }
  }, [partnerData]);

  useEffect(() => {
    if(partnerData?.image_url === undefined) {
      setPartnerData({
        ...partnerData,
        image_url: defaultImage,
      })
    } 
    if(partnerData?.landscape_image_url === undefined) {
      setPartnerData({
        ...partnerData,
        landscape_image_url: defaultLandscapeImage,
      })
    }
  }, []);

  const removeImage = () => {
    setFile("");
    setFileBase64("");
    setCroppedData(defaultImage);
    setPartnerData({
      ...partnerData,
      image_url: defaultImage,
    })
  };

  const removeLandscapeImage = () => {
    setLandscapeFile("");
    setLandscapeFileBase64("");
    setLandscapeCroppedData(defaultLandscapeImage);
    setPartnerData({
      ...partnerData,
      landscape_image_url: defaultLandscapeImage,
    })
  }

  const surfaceColor = "#27292D";
  const inputColor = "#383B40";

  const bodyDivStyle = {
    margin: "auto",
    width: "900px",
  };

  const appIconStyle = {
    marginLeft: "5px",
  };

  const dividerStyle = {
    marginBottom: "10px",
    marginTop: "10px",
    height: "1px",
    width: "100%",
    backgroundColor: "grey",
  };

  useEffect(() => {
    if (file !== "") {
      const img = document.getElementById("logo");
      if (img) {  // Add check to ensure img exists
        var canvas = document.createElement("canvas");
        canvas.width = 174;
        canvas.height = 174;
        var ctx = canvas.getContext("2d");

        img.onload = function () {
          ctx.drawImage(
            img,
            0,
            0,
            img.width,
            img.height,
            0,
            0,
            canvas.width,
            canvas.height
          );

          const canvasUrl = canvas.toDataURL();
          if (canvasUrl !== fileBase64) {
            setFileBase64(canvasUrl);
            setPartnerData(prevData => ({
              ...prevData,
              image_url: canvasUrl
            }));
          }
        };
      }
    }
  }, [file]); // Add file as dependency

  useEffect(() => {
    if (landscapeFile !== "") {
      const landscapeImg = document.getElementById("landscape_logo");
      if (landscapeImg) {  // Add check to ensure landscapeImg exists
        var landscapeCanvas = document.createElement("canvas");
        landscapeCanvas.width = 350;
        landscapeCanvas.height = 120;
        var landscapeCtx = landscapeCanvas.getContext("2d");
        
        landscapeImg.onload = function () {
          landscapeCtx.drawImage(
            landscapeImg,
            0,
            0,
            landscapeImg.width,
            landscapeImg.height,
            0,
            0,
            landscapeCanvas.width,
            landscapeCanvas.height
          );

          const landscapeCanvasUrl = landscapeCanvas.toDataURL();
          if (landscapeCanvasUrl !== landscapeFileBase64) {
            setLandscapeFileBase64(landscapeCanvasUrl);
            setPartnerData(prevData => ({
              ...prevData,
              landscape_image_url: landscapeCanvasUrl
            }));
          }
        };
      }
    }
  }, [landscapeFile]); // Add landscapeFile as dependency

  var image = "";
  const editHeaderImage = (event) => {
    const file = event.target.value;
    const actualFile = event.target.files[0];
    const fileObject = URL.createObjectURL(actualFile);
    setFile(fileObject);
  };

  //console.log("USER: ", userdata)
  const orgSaveButton = (
    <Tooltip title="Save any unsaved data" placement="bottom">
      <Button
        style={{ width: 150, height: 55, flex: 1 }}
        variant="outlined"
        color="primary"
        disabled={
          userdata === undefined || userdata === null || userdata.admin !== "true"
        }
        onClick={() =>
            console.log("save")
        }
      >
        <SaveIcon />
      </Button>
    </Tooltip>
  );

  const [imageUploadError, setImageUploadError] = React.useState("");
  const [openImageModal, setOpenImageModal] = React.useState(false);
  const [openLandscapeImageModal, setOpenLandscapeImageModal] = React.useState(false);
  const [scale, setScale] = React.useState(1);
  const [rotate, setRotation] = React.useState(0);
  const [disableImageUpload, setDisableImageUpload] = React.useState(true);
  const [croppedData, setCroppedData] = React.useState(
    partnerData?.image_url || defaultImage
  );
  const [landscapeCroppedData, setLandscapeCroppedData ] = React.useState(
    partnerData?.landscape_image_url || defaultLandscapeImage
  )


  React.useEffect(() => {
    if (file.length > 0) {
      setCroppedData(file);
    } else if (fileBase64 !== undefined && fileBase64 !== null && fileBase64.length > 0) {
      setCroppedData(fileBase64);
    } else {
      setCroppedData(partnerData?.image_url || defaultImage);
    }

    if (landscapeFile.length > 0) {
      setLandscapeCroppedData(landscapeFile);
    } else if (landscapeFileBase64 !== undefined && landscapeFileBase64 !== null && landscapeFileBase64.length > 0) {
      setLandscapeCroppedData(landscapeFileBase64);
    } else {
      setLandscapeCroppedData(partnerData?.landscape_image_url || defaultLandscapeImage);
    }

  }, [partnerData, file, landscapeFile]);


  const alternateImg = (
    <AddPhotoAlternateIcon
      style={{
        maxWidth: 174,
        maxHeight: 174,
        minWidth: 174,
        minHeight: 174,
        flex: "1",
        display: "flex",
        flexDirection: "row",
        margin: "auto",
        marginTop: 30,
        marginLeft: 40,
      }}
      onClick={() => {
        upload.click();
      }}
    />
  );

  const zoomIn = () => {
    setScale(scale + 0.1);
  };

  const zoomOut = () => {
    setScale(scale - 0.1);
  };

  const rotation = () => {
    setRotation(rotate + 10);
  };

  const onPositionChange = () => {
    setDisableImageUpload(false);
  };

  const onCancelSaveAppIcon = () => {
    setOpenImageModal(false);
    setOpenLandscapeImageModal(false);
    setImageUploadError("");
  };

  let editor;
  let landscapeEditor;
  const setEditorRef = (imgEditor) => {
    editor = imgEditor;
  };
  const setLandscapeEditorRef = (imgEditor) => {
    landscapeEditor = imgEditor;
  };


  const onSaveAppIcon = () => {
        const canvas = editor.getImageScaledToCanvas();
        const newImageData = canvas.toDataURL();
        setCroppedData(newImageData);  // Update croppedData with the new image data
        setOpenImageModal(false);
        setDisableImageUpload(true);
        setPartnerData({
          ...partnerData,
          image_url: newImageData,
        })
  };

  const onSaveLandscapeImage = () => {
    const canvas = landscapeEditor.getImageScaledToCanvas();
    const newImageData = canvas.toDataURL();
    setLandscapeCroppedData(newImageData);
    setOpenLandscapeImageModal(false);
    setDisableImageUpload(true);
    setPartnerData({
      ...partnerData,
      landscape_image_url: newImageData,
    })
  }

  const imageInfo = (
    <img
      src={partnerData?.image_url || defaultImage}
      alt="Click to upload an image (174x174)"
      id="logo"
      disabled={isDisabled}
      style={{
        maxWidth: 174,
        maxHeight: 174,
        minWidth: 174,
        minHeight: 174,
        objectFit: "contain",
        borderRadius: 16,
        cursor: isDisabled ? "not-allowed" : "pointer",
      }}
    />
  );

    const landScapeImageInfo = (
    <img
      src={partnerData?.landscape_image_url || defaultLandscapeImage}
      alt="Click to upload an image (350x120)"
      id="landscape_logo"
      disabled={isDisabled}
      style={{
        maxWidth: 350,
        maxHeight: 120,
        minWidth: 350,
        minHeight: 120,
        objectFit: "contain",
        borderRadius: 16,
        cursor: isDisabled ? "not-allowed" : "pointer",
      }}
    />
  );

  const errorText = imageUploadError.length > 0 ? (
    <div style={{ marginTop: 10 }}>Error: {imageUploadError}</div>
  ) : null;


  const imageUploadModalView = openImageModal && !isDisabled ? (
    <Dialog
      open={openImageModal}
      onClose={onCancelSaveAppIcon}
      PaperProps={{
        sx: {
            borderRadius: theme?.palette?.DialogStyle?.borderRadius,
            border: theme?.palette?.DialogStyle?.border,
            minWidth: "300px",
            minHeight: "300px",
            fontFamily: theme?.typography?.fontFamily,
            backgroundColor: theme?.palette?.DialogStyle?.backgroundColor,
            zIndex: 1000,
            '& .MuiDialogContent-root': {
              backgroundColor: theme?.palette?.DialogStyle?.backgroundColor,
            },
            '& .MuiDialogTitle-root': {
              backgroundColor: theme?.palette?.DialogStyle?.backgroundColor,
            },
            '& .MuiDialogActions-root': {
              backgroundColor: theme?.palette?.DialogStyle?.backgroundColor,
            },
        },
    }}
    >
      <FormControl>
        <DialogTitle>
          <div style={{ color: theme?.palette?.textColor}}>Upload Partner Image</div>
        </DialogTitle>
        {errorText}
        <DialogContent style={{ color: theme?.palette?.textColor }}>
          <AvatarEditor
            ref={setEditorRef}
            image={croppedData}
            width={174}
            height={174}
            border={50}
            color={[0, 0, 0, 0.6]} // RGBA
            scale={scale}
            rotate={rotate}
            onImageChange={onPositionChange}
            onLoadSuccess={() => setRotation(0)}
          />
          <Divider style={dividerStyle} />
          <div style={{ display: "flex", justifyContent: "space-between", margin: "10px 0" }}>
            <Tooltip title="New Icon">
              <Button
                variant="outlined"
                component="label"
                style={appIconStyle}
                onClick={() => { 
                  upload.click(); 
                }}
              >
                <AddAPhotoOutlinedIcon style={{ color: theme?.palette?.textColor }} />
              </Button>
            </Tooltip>
            <Tooltip title="Zoom In">
              <Button
                variant="outlined"
                component="label"
                style={appIconStyle}
                onClick={zoomIn}
              >
                <ZoomInOutlinedIcon style={{ color: theme?.palette?.textColor }} />
              </Button>
            </Tooltip>
            <Tooltip title="Zoom Out">
              <Button
                variant="outlined"
                component="label"
                style={appIconStyle}
                onClick={zoomOut}
              >
                <ZoomOutOutlinedIcon style={{ color: theme?.palette?.textColor }} />
              </Button>
            </Tooltip>
            <Tooltip title="Rotate">
              <Button
                variant="outlined"
                component="label"
                style={appIconStyle}
                onClick={rotation}
              >
                <LoopIcon style={{ color: theme?.palette?.textColor }} />
              </Button>
            </Tooltip>
          </div>
          <Divider style={dividerStyle} />
        </DialogContent>
        <DialogActions>
          <Button
            style={{ borderRadius: "2px", fontSize: 16, textTransform: "none", color: theme?.palette?.textColor }}
            onClick={onCancelSaveAppIcon}
          >
            Cancel
          </Button>
          <Button
            variant="contained"
            style={{ borderRadius: "2px", fontSize: 16, color: "#1a1a1a", backgroundColor: disableImageUpload ? "" : "#ff8544", textTransform: 'none' }}
            disabled={disableImageUpload}
            onClick={onSaveAppIcon}
            color="primary"
          >
            Upload
          </Button>
        </DialogActions>
      </FormControl>
    </Dialog>
  ) : null;

  const imageUploadModalViewLandscape = openLandscapeImageModal && !isDisabled ? (
    <Dialog
      open={openLandscapeImageModal}
      onClose={onCancelSaveAppIcon}
      PaperProps={{
        sx: {
            borderRadius: theme?.palette?.DialogStyle?.borderRadius,
            border: theme?.palette?.DialogStyle?.border,
            minWidth: "300px",
            minHeight: "300px",
            fontFamily: theme?.typography?.fontFamily,
            backgroundColor: theme?.palette?.DialogStyle?.backgroundColor,
            zIndex: 1000,
            '& .MuiDialogContent-root': {
              backgroundColor: theme?.palette?.DialogStyle?.backgroundColor,
            },
            '& .MuiDialogTitle-root': {
              backgroundColor: theme?.palette?.DialogStyle?.backgroundColor,
            },
            '& .MuiDialogActions-root': {
              backgroundColor: theme?.palette?.DialogStyle?.backgroundColor,
            },
        },
    }}
    >
      <FormControl>
        <DialogTitle>
          <div style={{ color: theme?.palette?.textColor}}>Upload Partner Landscape Image</div>
        </DialogTitle>
        {errorText}
        <DialogContent style={{ color: theme?.palette?.textColor }}>
          <AvatarEditor
            ref={setLandscapeEditorRef}
            image={landscapeCroppedData}
            width={350}
            height={120}
            border={50}
            color={[0, 0, 0, 0.6]} // RGBA
            scale={scale}
            rotate={rotate}
            onImageChange={onPositionChange}
            onLoadSuccess={() => setRotation(0)}
          />
          <Divider style={dividerStyle} />
          <div style={{ display: "flex", justifyContent: "space-between", margin: "10px 0" }}>
            <Tooltip title="New Icon">
              <Button
                variant="outlined"
                component="label"
                style={appIconStyle}
                onClick={() => { 
                  landScapeUpload.click(); 
                }}
              >
                <AddAPhotoOutlinedIcon style={{ color: theme?.palette?.textColor }} />
              </Button>
            </Tooltip>
            <Tooltip title="Zoom In">
              <Button
                variant="outlined"
                component="label"
                style={appIconStyle}
                onClick={zoomIn}
              >
                <ZoomInOutlinedIcon style={{ color: theme?.palette?.textColor }} />
              </Button>
            </Tooltip>
            <Tooltip title="Zoom Out">
              <Button
                variant="outlined"
                component="label"
                style={appIconStyle}
                onClick={zoomOut}
              >
                <ZoomOutOutlinedIcon style={{ color: theme?.palette?.textColor }} />
              </Button>
            </Tooltip>
            <Tooltip title="Rotate">
              <Button
                variant="outlined"
                component="label"
                style={appIconStyle}
                onClick={rotation}
              >
                <LoopIcon style={{ color: theme?.palette?.textColor }} />
              </Button>
            </Tooltip>
          </div>
          <Divider style={dividerStyle} />
        </DialogContent>
        <DialogActions>
          <Button
            style={{ borderRadius: "2px", fontSize: 16, textTransform: "none", color: theme?.palette?.textColor }}
            onClick={onCancelSaveAppIcon}
          >
            Cancel
          </Button>
          <Button
            variant="contained"
            style={{ borderRadius: "2px", fontSize: 16, color: "#1a1a1a", backgroundColor: disableImageUpload ? "" : "#ff8544", textTransform: 'none' }}
            disabled={disableImageUpload}
            onClick={onSaveLandscapeImage}
            color="primary"
          >
            Upload
          </Button>
        </DialogActions>
      </FormControl>
    </Dialog>
  ) : null;



  if (loadingPartnerData) {
    return (
      <div style={{
        display: "flex",
        flexDirection: "row",
        alignItems: "center",
        justifyContent: "space-between",
        width: "100%",
      }}>
        <div style={{
          backgroundColor: theme?.palette?.loaderColor,
          flex: "1",
          display: "flex",
          flexDirection: "row",
          borderRadius: 16
        }}>
          <div style={{ margin: 10 }}>
            <Skeleton 
              variant="rectangular" 
              width={174} 
              height={174} 
              style={{ borderRadius: 16 }}
              animation="wave"
            />
          </div>
          <div style={{ marginLeft: 16, alignContent: "center" }}>
            <div>
              <Skeleton variant="rectangular" width={128} height={40} style={{ borderRadius: 4 }} animation="wave" />
            </div>
            <div style={{ marginTop: 20 }}>
              <Skeleton variant="rectangular" width={128} height={40} style={{ borderRadius: 4 }} animation="wave" />
            </div>
          </div>
        </div>
        <div style={{
          backgroundColor: theme?.palette?.loaderColor,
          flex: "1",
          display: "flex",
          flexDirection: "row",
          borderRadius: 16
        }}>
          <div style={{ margin: 10 }}>
            <Skeleton 
              variant="rectangular" 
              width={350} 
              height={120} 
              style={{ borderRadius: 16 }}
              animation="wave"
            />
          </div>
          <div style={{ marginLeft: 16, alignContent: "center" }}>
            <div>
              <Skeleton variant="rectangular" width={128} height={40} style={{ borderRadius: 4 }} animation="wave" />
            </div>
            <div style={{ marginTop: 20 }}>
              <Skeleton variant="rectangular" width={128} height={40} style={{ borderRadius: 4 }} animation="wave" />
            </div>
          </div>
        </div>
      </div>
    );
  }

  return (
    <div
    style={{
      display: "flex",
      flexDirection: "row",
      alignItems: "center",
      justifyContent: "space-between",
      width: "90%",
    }}
    >
      <div
        style={{
          color: "white",
          display: "flex",
          flexDirection: "row",
          borderRadius: 16
        }}
        disabled={isDisabled}
      >
        <Tooltip title="Click to edit the partner's image (174x174)" placement="bottom">
          <div
            style={{
              margin: 10,
              cursor: "pointer",
              // backgroundColor: inputColor,
              maxWidth: 174,
              maxHeight: 174,
              borderRadius: 16,
            }}
            disabled={isDisabled}
            onClick={() => {
              setOpenImageModal(true);
            }}
          >
            <input
              hidden
              type="file"
              disabled={isDisabled}
              ref={(ref) => (upload = ref)}
              onChange={(e) => {
                const reader = new FileReader();
                reader.onload = (event) => {
                  setCroppedData(event.target.result);
                };
                reader.readAsDataURL(e.target.files[0]);
              }}
            />
            {imageInfo}
          </div>
          {imageUploadModalView}
        </Tooltip>
        <div style={{ marginLeft: 16, alignContent: "center" }}>
          <div >
            <Button
              style={{ fontSize: 16, textTransform: 'capitalize',  boxShadow: "none", borderRadius: 4, width: 128, height: 40 }}
              variant="outlined"
              color="primary"
              disabled={isDisabled || isPublishing}
              onClick={() => {
                setOpenImageModal(true);
              }}
            >
              {partnerData?.image_url === null ? "Upload" : "Update"}
            </Button>
          </div>
          <div>
            <Button
              variant="contained"
              color="secondary"
              style={{ fontSize: 16, textTransform: 'capitalize', boxShadow: "none", marginTop: 20, borderRadius: 4, width: 128, height: 40 }}
              disabled={isDisabled || isPublishing}
              onClick={() => {
                removeImage();
                setOpenImageModal(false);
              }}
            >
              Remove
            </Button>
          </div>
        </div>
      </div>
      <div
        style={{
          color: "white",
          display: "flex",
          flexDirection: "row",
          borderRadius: 16
        }}
      >
        <Tooltip title="Click to edit the partner's landscape image (350x120)" placement="bottom">
          <div
            style={{
              margin: 10,
              cursor: "pointer",
              backgroundColor: inputColor,
              maxWidth: 350,
              maxHeight: 120,
              borderRadius: 16,
              display: "flex",
            }}
            disabled={isDisabled}
            onClick={() => {
              setOpenLandscapeImageModal(true);
            }}
          >
            <input
              hidden
              type="file"
              disabled={isDisabled}
              ref={(ref) => (landScapeUpload = ref)}
              onChange={(e) => {
                const reader = new FileReader();
                reader.onload = (event) => {
                  setLandscapeCroppedData(event.target.result);
                };
                reader.readAsDataURL(e.target.files[0]);
              }}
            />
            {landScapeImageInfo}
          </div>
          {imageUploadModalViewLandscape}
        </Tooltip>
        <div style={{ marginLeft: 16, alignContent: "center" }}>
          <div >
            <Button
              style={{ fontSize: 16, textTransform: 'capitalize',  boxShadow: "none", borderRadius: 4, width: 128, height: 40 }}
              variant="outlined"
              color="primary"
              disabled={isDisabled || isPublishing}
              onClick={() => {
                setOpenLandscapeImageModal(true);
              }}
            >
              {partnerData?.landscape_image_url === null ? "Upload" : "Update"}
            </Button>
          </div>
          <div>
            <Button
              variant="contained"
              color="secondary"
              style={{ fontSize: 16, textTransform: 'capitalize', boxShadow: "none", marginTop: 20, borderRadius: 4, width: 128, height: 40 }}
              disabled={isDisabled || isPublishing}
              onClick={() => {
                removeLandscapeImage();
                setOpenLandscapeImageModal(false);
              }}
            >
              Remove
            </Button>
          </div>
        </div>
      </div>
    </div>
  );
};

export default PartnerHeader;
