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 ? (
) : (
)}
))}
>
);
}