UNPKG

drf-react-by-schema

Version:

Components and Tools for building a React App having Django Rest Framework (DRF) as server

116 lines 5.07 kB
import React, { ActionDispatch } from 'react'; import { FieldValues, SubmitHandler, UseFormGetValues, UseFormSetValue } from 'react-hook-form'; import { AlertColor, AlertPropsColorOverrides } from '@mui/material/Alert'; import { OverridableStringUnion } from '@mui/types'; import { ObjectSchema } from 'yup'; import { AxiosError } from 'axios'; import { ItemSchemaColumnsType, Id, Item, SchemaType, DataSchemaColumnsType, OnSuccessEvent, OptionsAC, GenericValue, FormFieldLayout, TargetApiParamsLocal, TargetApiPostParamsLocal, GetGenericModelListPropsLocal, GridEnrichedBySchemaColDef, ExtraValidators, GetGenericModelPropsLocal, UpdateDataBySchema, AutocompleteItem } from '../@types'; export interface LoadSinglePageDataProps { model: string; objId?: Id; objTitleField?: string; optionsACModels?: string[]; defaults?: Item; basePath?: string; formPath?: string | null; extraValidators?: ExtraValidators; fieldsLayout?: FormFieldLayout[]; } export interface PageFormType { id: Id; model: string | null; modelVerboseName?: string | null; modelVerboseNamePlural?: string | null; schema: SchemaType | null; columns?: GridEnrichedBySchemaColDef[] | null; initialValues: Item | null; validationSchema: ObjectSchema<Item> | null; forceReload?: boolean; objTitleField?: string; } export interface OnEditModelType { fieldKey?: string; index?: number; model: string; id: Id; labelKey: string; setValue?: UseFormSetValue<FieldValues>; getValues?: UseFormGetValues<FieldValues>; fieldsLayout?: FormFieldLayout[]; initialValuesPartial?: Record<string, string>; } export interface OnEditRelatedModelType { model: string; id: Id; relatedModel: string; relatedModelId: Id; newRow: Item; schema: SchemaType; onlyAddExisting: boolean; } export interface onEditModelDataGridSaveType { model: string; id: Id; newRow: Item; schema: SchemaType; } export interface OnDeleteRelatedModelType { model: string; id: Id; relatedModel: string; relatedModelId: Id; } export interface SnackBarType { open?: boolean; msg?: string; severity?: OverridableStringUnion<AlertColor, AlertPropsColorOverrides>; } export interface DialogType { open: boolean; loading?: boolean; title?: string; Body?: React.ReactNode; Actions?: React.ReactNode; isCancelDisabled?: boolean; } export type DRFReactBySchemaSubmitHandler = (...args: [...[model: string, id: Id], ...Parameters<SubmitHandler<FieldValues>>]) => Promise<Id | AxiosError>; export interface APIWrapperContextType { usuaria: Item | null; updateUsuaria: () => void; onSubmit: DRFReactBySchemaSubmitHandler; loadSinglePageData: (p: LoadSinglePageDataProps) => Promise<Item | AxiosError>; handleLoading: (p: boolean) => void; optionsACState: (OptionsAC | ActionDispatch<[newState: Partial<OptionsAC> | null]> | null)[]; optionsAC: OptionsAC | null; setOptionsAC: (x: Partial<OptionsAC>) => void; pageFormState: (PageFormType | ActionDispatch<[newState: Partial<PageFormType> | null]> | null)[]; pageForm: PageFormType | null; setPageForm: (x: Partial<PageFormType>) => void; onEditModel: (p: OnEditModelType) => void; onEditModelDataGridSave: (p: onEditModelDataGridSaveType) => Promise<Item | AxiosError>; onEditModelSave: (p: Item) => Promise<boolean | AxiosError>; onDeleteModel: (model: string, id: Id, onSuccess?: OnSuccessEvent) => void; onEditRelatedModelSave: (p: OnEditRelatedModelType) => Promise<Item | ItemSchemaColumnsType | AxiosError>; onDeleteRelatedModel: (p: OnDeleteRelatedModelType) => Promise<boolean>; rawUpdateDataBySchema: (props: UpdateDataBySchema) => Promise<Item | AxiosError>; rawDeleteData: (model: string, id: Id) => Promise<true | AxiosError>; onTriggerSnackBar: (p: SnackBarType) => void; setDialog: React.ActionDispatch<[newState: Partial<DialogType> | null]>; getRawData: (route: string) => Promise<GenericValue>; getAutoComplete: (model: string) => Promise<AutocompleteItem[] | AxiosError>; getGenericModel: (x: GetGenericModelPropsLocal) => Promise<ItemSchemaColumnsType | AxiosError>; getGenericModelList: (x: GetGenericModelListPropsLocal) => Promise<DataSchemaColumnsType | AxiosError>; getAllModels: () => Promise<Item[]>; loginByPayload: (payload: Item) => Promise<boolean | AxiosError>; getSignUpOptions: () => Promise<SchemaType | AxiosError>; signUp: (data: Item) => Promise<Item | AxiosError>; signOut: () => void; postData: (params: TargetApiPostParamsLocal) => Promise<Item | AxiosError>; editModel: React.RefObject<Item>; updateModel: (p: TargetApiParamsLocal) => Promise<Item | AxiosError>; populateOptionsAC: (optionsACModels: string[]) => void; isMobile: boolean; } export declare const APIWrapperContext: React.Context<APIWrapperContextType>; export declare const useAPIWrapper: () => APIWrapperContextType; //# sourceMappingURL=APIWrapperContext.d.ts.map