diff options
Diffstat (limited to 'src/lib/ServiceContext.tsx')
-rw-r--r-- | src/lib/ServiceContext.tsx | 37 |
1 files changed, 37 insertions, 0 deletions
diff --git a/src/lib/ServiceContext.tsx b/src/lib/ServiceContext.tsx new file mode 100644 index 0000000..93cac4e --- /dev/null +++ b/src/lib/ServiceContext.tsx @@ -0,0 +1,37 @@ +import React from 'react'; +import { FormikProps } from 'formik'; +import { Props as ButtonProps } from '../components/Button'; +import { Field } from '../components/ListTable'; + +export interface Action extends ButtonProps { + name: string; +} + +export interface PanelProps { + item: any; + mutate: (item: any) => void; +} + +export interface ServiceParams { + route: string; + name: string; + tableFields: Field[]; + nameSingular?: string; + default?: Record<string, any>; + routes?: Record<string, React.FC>; + actions?: Action[]; + rowLink?: (item: any) => string; + Form?: React.FC<FormikProps<any>>; + Panel?: React.FC<PanelProps>; +} + +const ServiceContext = React.createContext<ServiceParams>({ + route: '', + name: '', + nameSingular: '', + tableFields: [], + default: {}, +}); + +export const ServiceProvider = ServiceContext.Provider; +export default ServiceContext; |