codekingpro/portable-devtools
114k
1/////////////////////////////////////////////////////////////2//3// pgAdmin 4 - PostgreSQL Tools4//5// Copyright (C) 2013 - 2024, The pgAdmin Development Team6// This software is released under the PostgreSQL Licence7//8//////////////////////////////////////////////////////////////9import _ from 'lodash';10import clsx from 'clsx';11 12import React, { useState } from 'react';13 14import { makeStyles } from '@mui/styles';15import Paper from '@mui/material/Paper';16 17import { DebuggerEventsContext } from './DebuggerComponent';18import { DEBUGGER_EVENTS } from '../DebuggerConstants';19import { commonTableStyles } from '../../../../../static/js/Theme';20 21 22const useStyles = makeStyles(() => ({23 table: {24 minWidth: 650,25 },26 summaryContainer: {27 flexGrow: 1,28 minHeight: 0,29 overflow: 'auto',30 }31}));32 33export function Results() {34 const classes = useStyles();35 const tableClasses = commonTableStyles();36 const eventBus = React.useContext(DebuggerEventsContext);37 const [resultData, setResultData] = useState([]);38 const [columns, setColumns] = useState([]);39 React.useEffect(() => {40 eventBus.registerListener(DEBUGGER_EVENTS.SET_RESULTS, (columnsData, values) => {41 setResultData(values);42 setColumns(columnsData);43 });44 }, []);45 return (46 <Paper variant="outlined" elevation={0} className={classes.summaryContainer}>47 <table className={clsx(tableClasses.table)}>48 <thead>49 <tr key={_.uniqueId('c')}>50 {51 columns.map((col) => (52 <th key={col.name}>{col.name}</th>53 ))54 }55 </tr>56 </thead>57 <tbody>58 {resultData.map((row) => (59 <tr key={_.uniqueId('c')}>60 {61 columns.map((col) => (62 <td key={_.uniqueId('c')}>{row[col.name]}</td>63 ))64 }65 </tr>66 ))}67 </tbody>68 </table>69 </Paper>70 );71}72 