import React, { useMemo } from 'react';
import { CRUDProps, CRUDState } from '../types';

interface QuickQueryProps {
  props: CRUDProps
  state: CRUDState
  onFilterInit: () => void
  onFilterSubmit: (data: any) => void
  onFilterReset: () => void
  onFilterDataChange?: (value: any) => void
}

const QuickQuery: React.FC<QuickQueryProps> = ({ props, state, onFilterInit, onFilterSubmit, onFilterReset, onFilterDataChange }) => {

  const { name, filter, globalFilter, store, render, classnames: cx, translate: __, } = props

  const { mobileUI, advancedFilterData } = state

  //把高级查询数据转换成tag ui
  const advancedFilterTags = useMemo(() => {
    
    return []
  }, [advancedFilterData])

  return render(
    //默认
    'filter',
    {
      title: __('CRUD.filter'),
      mode: 'grid',
      submitText: __('search'),
      wrapWithPanel: false,
      ...filter,
      type: 'form',
      api: null,
      showHeader: true,
      sortable: true
    },
    {
      key: 'filter',
      crudName: name,
      className: !!filter ? undefined : cx('Form--hidden'),
      panelClassName: cx(
        'Crud-filter',
        filter?.panelClassName || 'Panel--default'
      ),
      data: store.filterData,
      formStore: undefined,

      advancedFilters: advancedFilterTags,

      onInit: filter ? onFilterInit : undefined,
      onReset: onFilterReset,
      onSubmit: onFilterSubmit,

      handleFilterOptions: onFilterDataChange,

      // getFilterForm: this.getFilterForm, // Jay

      // filtercont: this.state.filtercont,
      // handledelVisible: this.handledelVisible,
      // handleReset: this.handleReset,

      onAdvancedFilterRemove: (name: 'all' | string) => {

      },
      globalFilters: globalFilter ? globalFilter.body : null,
      onGlobalFilterChange: (values: object) => {
        // const query = { ...store.query, globalFilterParam: values }
        // store.updateQuery(query)
        // this.search(undefined, undefined, undefined, true, this.afterSearchFn)
      }
    }
  )
};

export default QuickQuery;
export type { QuickQuery };