import React from 'react'; import { Box } from '@material-ui/core'; import QBQueryButton from './QBEditButton'; import { QBQueryElem } from './QBQueryElem'; import { QueryElem, addPlaceholders, removePlaceholders, simplify } from '../../lib/query/Query'; export interface TagItem { name: string, id: number, childIds: number[], parentId?: number, } export interface Requests { getArtists: (filter: string) => Promise, getAlbums: (filter: string) => Promise, getSongTitles: (filter: string) => Promise, getTags: () => Promise, } export interface IProps { query: QueryElem | null, editing: boolean, onChangeEditing: (e: boolean) => void, onChangeQuery: (q: QueryElem | null) => void, requestFunctions: Requests, } export default function QueryBuilder(props: IProps) { const simpleQuery = simplify(props.query); const showQuery = props.editing ? addPlaceholders(simpleQuery, null) : simpleQuery; const onReplace = (q: any) => { const newQ = removePlaceholders(q); props.onChangeEditing(false); props.onChangeQuery(newQ); } return <> props.onChangeEditing(!props.editing)} editing={props.editing} /> {showQuery && } }