UNPKG

@firecms/core

Version:

Awesome Firebase/Firestore-based headless open-source CMS

68 lines (67 loc) 2.72 kB
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;