import React from 'react';
import { FormikProps } from 'formik';

export interface PanelProps {
  item: any;
  mutate: (item: any) => void;
}

type Route = Record<string, React.FC>;

export interface ServiceParams {
  route: string;
  name: string;
  nameSingular: string;
  tableFields: any[];
  default: Record<string, any>;
  routes?: Route[];
  Form?: React.FC<FormikProps>;
  Panel?: React.FC<PanelProps>;
}

const ServiceContext = React.createContext<ServiceParams>({
  route: '',
  name: '',
  nameSingular: '',
  tableFields: [],
  default: {},
});

export const ServiceProvider = ServiceContext.Provider;
export default ServiceContext;
