//Lib import { useState } from 'react'; import classes from './Repo.module.css'; import { IconSettings, IconInfoCircle, IconChevronDown, IconChevronUp, IconBellOff, } 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 (
Repository | Storage Size | Storage Used | Last change | ID | Edit |
---|---|---|---|---|---|
{props.repositoryName} | {props.storageSize}Go |
|
{props.lastSave === 0
? '-'
: timestampConverter(
props.lastSave
)}
|
#{props.id} |
|