//Lib import { useState } from 'react'; import classes from './Repo.module.css'; import { IconSettings, IconInfoCircle, IconChevronDown, IconChevronUp, IconBellOff, IconLockPlus, } from '@tabler/icons-react'; import timestampConverter from '../../helpers/functions/timestampConverter'; import StorageBar from '../UI/StorageBar/StorageBar'; import QuickCommands from './QuickCommands/QuickCommands'; export default function Repo(props) { //Load displayDetails from LocalStorage const displayDetailsFromLS = () => { try { if (localStorage.getItem('displayDetailsRepo' + props.id) === null) { localStorage.setItem('displayDetailsRepo' + props.id, JSON.stringify(true)); return true; } else { return JSON.parse(localStorage.getItem('displayDetailsRepo' + props.id)); } } catch (error) { console.log( 'LocalStorage error, key', 'displayDetailsRepo' + props.id, 'will be removed. Try again.', 'Error message on this key : ', error ); localStorage.removeItem('displayDetailsRepo' + props.id); } }; //States const [displayDetails, setDisplayDetails] = useState(displayDetailsFromLS); //BUTTON : Display or not repo details for ONE repo const displayDetailsForOneHandler = (boolean) => { //Update localStorage localStorage.setItem('displayDetailsRepo' + props.id, JSON.stringify(boolean)); setDisplayDetails(boolean); }; //Status indicator const statusIndicator = () => { return props.status ? classes.statusIndicatorGreen : classes.statusIndicatorRed; }; //Alert indicator const alertIndicator = () => { if (props.alert === 0) { return (
); } }; const appendOnlyModeIndicator = () => { if (props.appendOnlyMode) { return (
); } }; return ( <> {displayDetails ? ( <>
{props.alias}
{appendOnlyModeIndicator()} {alertIndicator()} {props.comment && (
{props.comment}
)}
Repository Storage Size Storage Used Last change ID Edit
{props.repositoryName} {props.storageSize} GB
{props.lastSave === 0 ? '-' : timestampConverter(props.lastSave)}
#{props.id}
props.repoManageEditHandler()} />
) : ( <>
{props.alias}
{appendOnlyModeIndicator()} {alertIndicator()} {props.comment && (
{props.comment}
)}
{props.lastSave === 0 ? null : timestampConverter(props.lastSave)} #{props.id}
)} {displayDetails ? (
{ displayDetailsForOneHandler(false); }} />
) : (
{ displayDetailsForOneHandler(true); }} />
)} ); }