summaryrefslogtreecommitdiff
path: root/src/lib/ServiceContext.tsx
diff options
context:
space:
mode:
Diffstat (limited to 'src/lib/ServiceContext.tsx')
-rw-r--r--src/lib/ServiceContext.tsx37
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;