@shopify/app-bridge
Version:
[](https://travis-ci.com/Shopify/app-bridge) [](https:
51 lines (50 loc) • 2.95 kB
TypeScript
/**
* @module TitleBar
*/
import { Button, Payload as ButtonPayload } from '../Button';
import { ButtonGroup, Payload as ButtonGroupPayload } from '../ButtonGroup';
import { ClientApplication } from '../../client';
import { ActionSetWithChildren } from '../helper';
import { ActionSetProps, ClickAction, Group, MetaAction } from '../types';
import { ErrorAction } from '../Error';
import { Action, ButtonsOptions as TitleBarButtonsOptions, ButtonsPayload as TitleBarButtonsPayload, Options, Payload } from './types';
export declare const GROUP: Group;
export interface UpdateAction extends MetaAction {
readonly group: typeof GROUP;
payload: Payload;
}
export declare type TitleBarAction = UpdateAction | ClickAction | MetaAction;
export declare function clickActionButton(id: string, payload?: any): ClickAction;
export declare function clickBreadcrumb(id: string, payload?: any): ClickAction;
export declare function update(payload: Payload): UpdateAction;
export declare function isValidTitleBarPayload(payload: Payload): boolean;
export declare function isValidTitleBarProps(props: Payload | Options): boolean;
export declare function isValidTitleBarButtons(buttons?: TitleBarButtonsPayload): boolean;
export declare function isValidTitleBarBreadcrumbs(button?: ButtonPayload): boolean;
export declare function validationError(action: TitleBarAction): undefined | ErrorAction;
export declare class TitleBar extends ActionSetWithChildren implements ActionSetProps<Options, Payload> {
title?: string;
primary?: ButtonPayload;
secondary?: (ButtonPayload | ButtonGroupPayload)[];
primaryOptions?: Button;
secondaryOptions?: (ButtonGroup | Button)[];
breadcrumb?: ButtonPayload;
breadcrumbsOption?: Button;
constructor(app: ClientApplication<any>, options: Options);
readonly buttons: TitleBarButtonsPayload | undefined;
readonly buttonsOptions: TitleBarButtonsOptions | undefined;
readonly options: Options;
readonly payload: Payload;
set(options: Partial<Options>, shouldUpdate?: boolean): this;
dispatch(action: Action): this;
protected getButton(button: Button | ButtonGroup, subgroups: string[], updateCb: (newPayload: ButtonPayload | ButtonGroupPayload) => void): ButtonPayload | ButtonGroupPayload;
protected updatePrimaryButton(newPayload: ButtonPayload): void;
protected updateSecondaryButtons(newPayload: ButtonPayload | ButtonGroupPayload): void;
protected updateBreadcrumbButton(newPayload: ButtonPayload): void;
protected setPrimaryButton(newOptions?: Button): void;
protected setSecondaryButton(newOptions?: (ButtonGroup | Button)[]): void;
protected setBreadcrumbs(breadcrumb?: Button): void;
protected getChildButton(newAction: undefined | Button, currentAction: undefined | Button): Button | undefined;
private validateOptions(options);
}
export declare function create(app: ClientApplication<any>, options: Options): TitleBar;