@shopify/app-bridge
Version:
[](https://travis-ci.com/Shopify/app-bridge) [](https:
37 lines (36 loc) • 1.91 kB
TypeScript
/**
* @module ButtonGroup
*/
import { ClientApplication } from '../../client';
import { ActionSetWithChildren } from '../helper';
import { ActionSetProps, Component, MetaAction } from '../types';
import { Button, Payload as ButtonPayload } from '../Button';
import { ErrorAction } from '../Error';
import { Action, Options, Payload } from './types';
export interface ButtonGroupUpdateAction extends MetaAction {
readonly group: string;
payload: Payload;
}
export declare type ButtonGroupAction = ButtonGroupUpdateAction | MetaAction;
export declare function update(group: string, component: Component, props: Payload): ButtonGroupUpdateAction;
export declare function isGroupedButton(options: ButtonGroup | object): options is ButtonGroup;
export declare function isGroupedButtonPayload(payload: Payload | object): payload is Payload;
export declare function getSafeButtonGroupProps(props: Payload): Pick<Payload, "disabled" | "label" | "buttons" | "id">;
export declare function validationError(action: ButtonGroupUpdateAction | MetaAction): undefined | ErrorAction;
export declare function isValidButtonGroupProps(buttonGroup: Payload): boolean;
export declare class ButtonGroup extends ActionSetWithChildren implements ActionSetProps<Options, Payload> {
label: string;
disabled: boolean;
buttonsOptions: Button[];
buttons: ButtonPayload[];
constructor(app: ClientApplication<any>, options: Options);
readonly options: Options;
readonly payload: Payload;
set(options: Partial<Options>, shouldUpdate?: boolean): this;
dispatch(action: Action): this;
updateButtons(newPayload: ButtonPayload): void;
protected getSingleButton(button: Button): ButtonPayload;
protected getButtons(buttonOptions?: Button[]): ButtonPayload[];
private validateOptions(options);
}
export declare function create(app: ClientApplication<any>, options: Options): ButtonGroup;