import React from "react"; import { useLocation, Link } from "react-router-dom"; import { ListItemButton, Button, Box, Card, CardContent, Typography, CardActions, Grid, List, ListItemText, Snackbar, Alert, Tooltip, Collapse, FormGroup, FormControlLabel, Checkbox } from "@mui/material"; import AccessTimeIcon from '@mui/icons-material/AccessTime'; import ExpandMoreIcon from '@mui/icons-material/ExpandMore'; import ExpandLessIcon from '@mui/icons-material/ExpandLess'; import useRepositories from "../../hooks/useRepositories"; import Tag from "../../interfaces/Tag"; import Repository from "../../interfaces/Repositoriy"; import { getHostNameFromURL, printSize, printTimePassed, PrintOSIcon, toUpperFirst, printMonth } from "../../utils"; import RepoNotFound from "./RepoNotFound" import Loading from "../Loading"; import { digestDisplay } from "../../interfaces/Utils"; const RepositoryInfo: React.FC = () => { const location = useLocation(); const path = location.pathname; const { isFetched, repositories } = useRepositories(); const [hideTags, setHideTags] = React.useState(true); const [snackbarOpen, setSnackbarOpen] = React.useState(false); const [showDetails, setShowDetails] = React.useState(false); const repository = repositories.find((element) => (element.name === path.slice(12,path.length))); const generatePushCommand = (hostName: string, tagName: string) => { return "docker push " + hostName + "/" + (repository?.name ? repository?.name : "") + ":" + tagName; } const generatePullCommand = (hostName: string, tagName: string) => { return "docker pull " + hostName + "/" + (repository?.name ? repository?.name : "") + ":" + tagName; } const handlePushClick = () => { const hostName = getHostNameFromURL(process.env.REGISTRY_URL ? process.env.REGISTRY_URL : ""); navigator.clipboard.writeText(generatePushCommand(hostName,"tagname")); setSnackbarOpen(true); }; const handlePullClick = (tagName: string) => { const hostName = getHostNameFromURL(process.env.REGISTRY_URL ? process.env.REGISTRY_URL : ""); navigator.clipboard.writeText(generatePullCommand(hostName,tagName)); setSnackbarOpen(true); }; const handleClose = () => { setSnackbarOpen(false); }; const toggleHide = () => { setHideTags(!hideTags); } const toggleCollapse = () => { setShowDetails((prev) => !prev); }; return (isFetched ? ( repository ? (