import React, {useContext, useState} from 'react'; import ErrorOccurrenceContext from '../../../contexts/ErrorOccurrenceContext'; import {unixToDate} from '../../../util'; import CodeSnippet from '../../ui/CodeSnippet'; import DebugItem from '../DebugItem'; import {QueryDebug} from "types"; import DefinitionList from "components/ui/DefinitionList"; import {FontAwesomeIcon} from "@fortawesome/react-fontawesome"; import {faAngleRight} from '@fortawesome/free-solid-svg-icons'; function Bindings({bindings, hidden = false}: { bindings: String[], hidden: boolean }) { const [isHidden, setHidden] = useState(hidden); return (
{!isHidden && ( {bindings.map((binding, index) => ( {index+1}}/> ))} )}
) } export default function Queries() { const errorOccurrence = useContext(ErrorOccurrenceContext); let queries = Object.values(errorOccurrence.context_items.queries!); function canReplaceBindings(query: QueryDebug) { return query.bindings !== null && query.sql.split('?').length - 1 === query.bindings.length; } function replaceBindings(query: QueryDebug) { let sql = query.sql; query.bindings?.forEach((binding) => { sql = sql.replace('?', binding); }); return sql; } return ( <> {queries.map((query, index) => ( {query.bindings && query.bindings.length > 0 ? (
) : ( )}
))} ); }