UNPKG

@shopify/app-bridge-core

Version:

**[Join our team and work on libraries like this one.](https://www.shopify.ca/careers)**

52 lines (51 loc) 1.61 kB
import { ClientApplication } from '../../client/types'; import { ActionSet } from '../ActionSet'; import { ActionSetProps, ClickAction, MetaAction, Component } from '../types'; export declare enum Action { CLICK = "CLICK", UPDATE = "UPDATE" } export declare enum Icon { Print = "print" } export declare enum Style { Danger = "danger" } export interface Presentation { icon?: Icon; style?: Style; } export interface Options extends Presentation { label: string; disabled?: boolean; loading?: boolean; plain?: boolean; } export interface Payload extends Options { readonly id: string; } export interface ClickPayload { readonly id: string; payload?: any; } export interface ButtonUpdateAction extends MetaAction { readonly group: string; payload: Payload; } export type ButtonAction = ButtonUpdateAction | ClickAction | MetaAction; export declare function clickButton(group: string, component: Component, payload?: ClickPayload): ClickAction; export declare function update(group: string, component: Component, props: Payload): ButtonUpdateAction; export declare class Button extends ActionSet implements ActionSetProps<Options, Payload> { label: string; disabled: boolean; icon?: Icon; style?: Style; loading: boolean; plain: boolean; constructor(app: ClientApplication, options: Options); get options(): Options; get payload(): Payload; set(options: Partial<Options>, shouldUpdate?: boolean): this; dispatch(action: Action.UPDATE): ActionSet; dispatch(action: Action.CLICK, payload?: any): ActionSet; }