import React from "react";
import PropTypes from "prop-types";
import {
Grid,
Paper,
ButtonBase,
TextField,
FormControlLabel,
Checkbox,
Button
} from "@material-ui/core";
import Autocomplete from "@material-ui/lab/Autocomplete";
import { Save as SaveIcon, Delete as DeleteIcon } from "@material-ui/icons";
import { makeStyles } from "@material-ui/core/styles";
import style from "../styles";
import ResourcePreviewComponent from "./ResourcePreviewComponent";
import MimeTypeComponent from "./MimeTypeComponent";
import useResourceDeleteDialog from "../../hooks/useResourceDeleteDialog";
import { onTextFieldChange } from "../../../../utils/adapters";
import { useHistory } from "react-router-dom";
import { useTranslation } from "react-i18next";
import LinksComponent from "./LinksComponent";
const useStyles = makeStyles(style);
const ResourceComponent = ({
resource,
mimeTypes,
resourceCategories,
onPropertyChange,
processing,
setProcessing
}) => {
const classes = useStyles();
const history = useHistory();
const { t } = useTranslation();
const {
component: ResourceDeleteDialog,
handleOpen: handleOpenDeleteDialog
} = useResourceDeleteDialog(resource, setProcessing, () =>
history.push("/resources")
);
return (
<>
onPropertyChange("categoryId")(value.categoryId)
}
getOptionLabel={(option) => {
const optionIsObject =
typeof option === "object" && option !== null;
if (optionIsObject) return option.categoryName;
const category = resourceCategories.find(
(z) => z.categoryId === option
);
return category.categoryName;
}}
getOptionSelected={(option, value) =>
option.categoryId === value
}
renderInput={(params) => (
)}
/>
onPropertyChange("secured")(event.target.checked)
}
name="resources-is-secured"
color="primary"
/>
}
label={t("Resource.Secured")}
/>
}
onClick={handleOpenDeleteDialog}
disabled={!!processing}
>
{processing === "delete"
? t("Generic.Deleting")
: t("Generic.Delete")}
}
disabled={!!processing}
>
{processing === "delete"
? t("Generic.Saving")
: t("Generic.Save")}
{ResourceDeleteDialog}
>
);
};
ResourceComponent.propTypes = {
resource: PropTypes.object.isRequired,
mimeTypes: PropTypes.array.isRequired,
resourceCategories: PropTypes.array.isRequired,
onPropertyChange: PropTypes.func.isRequired,
processing: PropTypes.string,
setProcessing: PropTypes.func.isRequired
};
export default ResourceComponent;