import React from "react";
import pluralize from "pluralize";
import { humanizeString } from "../../definitions/helpers/humanizeString";
import type {
IRefineContext,
IRefineContextOptions,
IRefineContextProvider,
} from "./types";
const defaultTitle: IRefineContextOptions["title"] = {
icon: (
),
text: "Refine Project",
};
export const defaultRefineOptions: IRefineContextOptions = {
mutationMode: "pessimistic",
syncWithLocation: false,
undoableTimeout: 5000,
warnWhenUnsavedChanges: false,
liveMode: "off",
redirect: {
afterCreate: "list",
afterClone: "list",
afterEdit: "list",
},
overtime: {
enabled: true,
interval: 1000,
},
textTransformers: {
humanize: humanizeString,
plural: pluralize.plural,
singular: pluralize.singular,
},
disableServerSideValidation: false,
disableRouteChangeHandler: false,
title: defaultTitle,
};
export const RefineContext = React.createContext({
mutationMode: "pessimistic",
warnWhenUnsavedChanges: false,
syncWithLocation: false,
undoableTimeout: 5000,
liveMode: "off",
onLiveEvent: undefined,
options: defaultRefineOptions,
});
export const RefineContextProvider: React.FC = ({
mutationMode,
warnWhenUnsavedChanges,
syncWithLocation,
undoableTimeout,
children,
liveMode = "off",
onLiveEvent,
options,
}) => {
return (
{children}
);
};