UNPKG

@shopify/app-bridge

Version:

**Shopify is doubling our engineering staff in 2021! [Join our team and work on libraries like this one.](https://smrtr.io/5GGrc)**

45 lines (44 loc) 1.77 kB
import { ClientApplication } from '../../client'; import { ActionSetWithChildren } from '../helper'; import { ActionSetProps, Component, MetaAction } from '../types'; import { Button, Payload as ButtonPayload } from '../Button'; export declare enum Action { UPDATE = "UPDATE" } export interface Options { label: string; disabled?: boolean; buttons: Button[]; plain?: boolean; } export interface Payload { readonly id: string; label: string; disabled?: boolean; buttons: ButtonPayload[]; plain?: boolean; } 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 class ButtonGroup extends ActionSetWithChildren implements ActionSetProps<Options, Payload> { label: string; disabled: boolean; plain: boolean; buttonsOptions: Button[]; buttons: ButtonPayload[]; constructor(app: ClientApplication<any>, options: Options); get options(): Options; get 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[]; } export declare function create(app: ClientApplication<any>, options: Options): ButtonGroup;