UNPKG

sanity

Version:

Sanity is a real-time content infrastructure with a scalable, hosted backend featuring a Graph Oriented Query Language (GROQ), asset pipelines and fast edge caches

172 lines (143 loc) 3.85 kB
import {type Path} from '@sanity/types' import type React from 'react' import {type RouterPanes, type RouterPaneSibling} from '../../types' /** * @hidden * @beta */ export interface ChildLinkProps { childId: string childParameters?: Record<string, string> childPayload?: unknown children?: React.ReactNode } /** * @hidden * @beta */ export interface BackLinkProps { children?: React.ReactNode } /** * @hidden * @beta */ export interface ReferenceChildLinkProps { documentId: string documentType: string parentRefPath: Path template?: {id: string; params?: Record<string, string | number | boolean>} children: React.ReactNode } /** * @hidden * @beta */ export interface ParameterizedLinkProps { params?: Record<string, string> payload?: unknown } /** * @hidden * @beta */ export interface EditReferenceOptions { parentRefPath: Path id: string type: string template: {id: string; params?: Record<string, string | number | boolean>} } /** * @hidden * @beta */ export interface PaneRouterContextValue { /** * Zero-based index (position) of pane, visually */ index: number /** * Zero-based index of pane group (within URL structure) */ groupIndex: number /** * Zero-based index of pane within sibling group */ siblingIndex: number /** * Payload of the current pane */ payload?: unknown /** * Params of the current pane */ params?: RouterPaneSibling['params'] /** * Whether or not the pane has any siblings (within the same group) */ hasGroupSiblings: boolean /** * The length of the current group */ groupLength: number /** * Current router state for the "panes" property */ routerPanesState: RouterPanes /** * Curried StateLink that passes the correct state automatically */ ChildLink: React.ComponentType<ChildLinkProps> /** * Curried StateLink that pops off the last pane group */ BackLink?: React.ComponentType<BackLinkProps> /** * A specialized `ChildLink` that takes in the needed props to open a * referenced document to the right */ ReferenceChildLink: React.ComponentType<ReferenceChildLinkProps> /** * Similar to `ReferenceChildLink` expect without the wrapping component */ handleEditReference: (options: EditReferenceOptions) => void /** * Curried StateLink that passed the correct state, but merges params/payload */ ParameterizedLink: React.ComponentType<ParameterizedLinkProps> /** * Replaces the current pane with a new one */ replaceCurrent: (pane: {id?: string; payload?: unknown; params?: Record<string, string>}) => void /** * Removes the current pane from the group */ closeCurrent: () => void /** * Removes all panes to the right including current pane */ closeCurrentAndAfter: (expandLast?: boolean) => void /** * Duplicate the current pane, with optional overrides for item ID and parameters */ duplicateCurrent: (pane?: {payload?: unknown; params?: Record<string, string>}) => void /** * Set the current "view" for the pane */ setView: (viewId: string | null) => void /** * Set the parameters for the current pane */ setParams: (params: Record<string, string | undefined>) => void /** * Set the payload for the current pane */ setPayload: (payload: unknown) => void /** * A function that creates a path with the given parameters without navigating to it. * Useful for creating links that can be e.g. copied to clipboard and shared. */ createPathWithParams: (params: Record<string, string | undefined>) => string /** * Proxied navigation to a given intent. Consider just exposing `router` instead? */ navigateIntent: ( intentName: string, params: Record<string, string>, options?: {replace?: boolean}, ) => void }