react-model-view-viewmodel
Version:
A library for developing ReactJS applications using Model-View-ViewModel, inspired by .NET.
58 lines (57 loc) • 2.05 kB
TypeScript
import type { IDependencyResolver } from './IDependencyResolver';
import { type ReactElement, type PropsWithChildren } from 'react';
/**
* Gets the currently configured dependency resolver.
*
* @returns Returns the currently configured dependency resolver.
*
* @see {@link IDependencyResolver}
* @see {@link IDependencyContainer}
* @see {@link ConfigurableDependency}
* @see {@link ResolvableSimpleDependency}
* @see {@link useDependency}
* @see {@link DependencyResolverProvider}
* @see {@link DependencyResolverScope}
*/
export declare function useDependencyResolver(): IDependencyResolver;
/**
* Represents the dependency resolver context provider props.
*
* @see {@link DependencyResolverProvider}
*/
export interface IDependencyResolverProviderProps {
/**
* The dependency resolver to configure in the context of child components.
*/
readonly dependencyResolver: IDependencyResolver;
}
/**
* Configures a dependency resolver in the context of child components.
*
* @returns Returns the `children` in the context of the provided `dependencyResolver`.
*
* @see {@link IDependencyResolver}
* @see {@link IDependencyContainer}
* @see {@link useDependency}
*/
export declare function DependencyResolverProvider(props: PropsWithChildren<IDependencyResolverProviderProps>): ReactElement;
/**
* Represents the dependency resolver scope context provider props.
*
* @see {@link DependencyResolverScope}
*/
export interface IDependencyResolverScopeProps {
/**
* An optional set of dependencies for which the scope should be refreshed.
* The contents of the array is compared at a shallow level to determine if it has changes.
*/
readonly deps?: readonly any[];
}
/**
* Configures a dependency resolver scope in the context of child components.
*
* @see {@link IDependencyResolver}
* @see {@link IDependencyContainer}
* @see {@link useDependency}
*/
export declare function DependencyResolverScope({ deps, children }: PropsWithChildren<IDependencyResolverScopeProps>): ReactElement;