///////////////////////////////////////////////////////////// // // pgAdmin 4 - PostgreSQL Tools // // Copyright (C) 2013 - 2022, The pgAdmin Development Team // This software is released under the PostgreSQL Licence // ////////////////////////////////////////////////////////////// import gettext from 'sources/gettext'; import url_for from 'sources/url_for'; import React, { useEffect, useState, useRef } from 'react'; import { Box, Grid, InputLabel } from '@material-ui/core'; import PropTypes from 'prop-types'; import { DefaultButton } from '../../../static/js/components/Buttons'; import { makeStyles } from '@material-ui/styles'; import { InputText } from '../../../static/js/components/FormComponents'; import getApiInstance from '../../../static/js/api_instance'; import { copyToClipboard } from '../../../static/js/clipboard'; import Notify from '../../../static/js/helpers/Notifier'; import { useDelayedCaller } from '../../../static/js/custom_hooks'; const useStyles = makeStyles((theme)=>({ container: { padding: '16px', height: '100%', display: 'flex', flexDirection: 'column', }, copyBtn: { marginRight: '1px', float: 'right', borderColor: theme.otherVars.borderColor, fontSize: '13px', }, })); export default function AboutComponent() { const classes = useStyles(); const containerRef = useRef(); const [aboutData, setAboutData] = useState([]); const [copyText, setCopyText] = useState(gettext('Copy')); const revertCopiedText = useDelayedCaller(()=>{ setCopyText(gettext('Copy')); }); useEffect(() => { const about_url = url_for('about.index'); const api = getApiInstance(); api.get(about_url).then((res)=>{ setAboutData(res.data.data); }).catch((err)=>{ Notify.error(err); }); }, []); return ( {gettext('Version')} {aboutData.version} {gettext('Application Mode')} {aboutData.app_mode} {gettext('Current User')} {aboutData.current_user} { aboutData.nwjs && {gettext('NW.js Version')} {aboutData.nwjs} } {gettext('Browser')} {aboutData.browser_details} {gettext('Operating System')} {aboutData.os_details} {gettext('pgAdmin Database File')} {aboutData.config_db} {gettext('Log File')} {aboutData.log_file} { (aboutData.app_mode == 'Desktop' || (aboutData.app_mode == 'Server' && aboutData.admin)) && <> {gettext('Server Configuration')} { copyToClipboard(aboutData.settings); setCopyText(gettext('Copied!')); revertCopiedText(1500); }}>{copyText} } ); } AboutComponent.propTypes = { closeModal: PropTypes.func };