@firecms/core
Version:
Awesome Firebase/Firestore-based headless open-source CMS
68 lines (67 loc) • 2.72 kB
TypeScript
import { AuthController, CMSView, CMSViewsBuilder, DataSourceDelegate, EntityCollection, EntityCollectionsBuilder, FireCMSPlugin, NavigationController, NavigationGroupMapping, PermissionsBuilder, User, UserConfigurationPersistence } from "../types";
export declare const NAVIGATION_ADMIN_GROUP_NAME = "Admin";
export type BuildNavigationContextProps<EC extends EntityCollection, USER extends User> = {
/**
* Base path for the CMS, used to build the all the URLs.
* Defaults to "/".
*/
basePath?: string;
/**
* Base path for the collections, used to build the collection URLs.
* Defaults to "c" (e.g. "/c/products").
*/
baseCollectionPath?: string;
/**
* The auth controller used to manage the user authentication and permissions.
*/
authController: AuthController<USER>;
/**
* The collections to be used in the CMS.
* This can be a static array of collections or a function that returns a promise
* resolving to an array of collections.
*/
collections?: EC[] | EntityCollectionsBuilder<EC>;
/**
* Optional permissions builder to be applied to the collections.
* If not provided, the permissions will be resolved from the collection configuration.
*/
collectionPermissions?: PermissionsBuilder;
/**
* Custom views to be added to the CMS, these will be available in the main navigation.
* This can be a static array of views or a function that returns a promise
* resolving to an array of views.
*/
views?: CMSView[] | CMSViewsBuilder;
/**
* Custom views to be added to the CMS admin navigation.
* This can be a static array of views or a function that returns a promise
* resolving to an array of views.
*/
adminViews?: CMSView[] | CMSViewsBuilder;
/**
* Controller for storing user preferences.
*/
userConfigPersistence?: UserConfigurationPersistence;
/**
* Delegate for data source operations, used to resolve collections and views.
*/
dataSourceDelegate: DataSourceDelegate;
/**
* Plugins to be used in the CMS.
*/
plugins?: FireCMSPlugin[];
/**
* Used to define the name of groups and order of the navigation entries.
*/
navigationGroupMappings?: NavigationGroupMapping[];
/**
* If true, the navigation logic will not be updated until this flag is false
*/
disabled?: boolean;
/**
* @deprecated
* Use `navigationGroupMappings` instead.
*/
viewsOrder?: string[];
};
export declare function useBuildNavigationController<EC extends EntityCollection, USER extends User>(props: BuildNavigationContextProps<EC, USER>): NavigationController;