Skip to content

API 参考(API Reference)

v0.3.11 · Latest stable

本节按模块整理 SoDialog 的公开 API,方便开发时快速检索方法、类型、参数、生命周期和适配器能力。

快速跳转

API Pages

  1. Dialog API
  2. Toast API
  3. Context Menu API
  4. Adapter API

方法索引

DomainMethods
MethodsopenModal, openOffcanvas, confirmModal, promptModal, formModal, toast, pushMessage, bindContextMenu, configureAdapter
TypesSoDialogModalOptions, SoDialogOffcanvasOptions, SoToastOptions, SoContextMenuOptions, SoAdapterConfig
Global configconfigureDialog, configureContextMenu, SoToast.configure, configureAdapter
AdaptersSoAdapter, openDialog, bindDialogContextMenu, pushMessage, openDialogFromContextMenu
LifecycleonBeforeOpen, onAfterOpen, onBeforeClose, onAfterClose, onLayoutStable, onAction

Types

DomainKey Types
DialogSoDialogModalOptions, SoDialogOffcanvasOptions, SoDialogHandle
Promise DialogSoDialogConfirmOptions, SoDialogPromptOptions, SoDialogFormOptions, SoDialogFormValue
ToastSoToastOptions, SoToastHandle, SoToastPlacement, SoToastDuplicateStrategy
Context MenuSoContextMenuOptions, SoContextMenuHandle, SoContextMenuItem
AdapterSoAdapterConfig, SoAdapterLogEvent, SoPushMessageOptions, SoMessageLevel

Global config

ts
import { configureDialog, configureContextMenu, SoToast } from 'sodialog'

configureDialog({
  modalDefaults: { footerAlign: 'center', closeOnEsc: false },
  offcanvasDefaults: { placement: 'start' },
})

configureContextMenu({
  closeOnEsc: false,
  minWidth: 220,
  typeaheadEnabled: true,
})

SoToast.configure({
  placement: 'top-end',
  maxVisible: 4,
})

Adapters

Adapter API 负责把 Dialog、Toast 与 Context Menu 组合成更一致的应用层入口,同时提供 diagnostics、logger 和 traceId 约定。

Lifecycle

生命周期钩子适用于 Dialog、Offcanvas、Toast 和 Context Menu。涉及焦点恢复、关闭原因和 Promise 语义时,应优先参考对应 API 页面。

Adapter 示例

ts
import { configureAdapter, openDialog, bindDialogContextMenu, pushMessage } from 'sodialog'

configureAdapter({
  modalDefaults: { closeOnEsc: true, footerAlign: 'center' },
  toastDefaults: { placement: 'top-end', maxVisible: 4 },
  diagnosticsEnabled: true,
})

openDialog({
  title: '删除确认',
  content: '<p>是否继续删除?</p>',
  traceId: 'trace-order-001',
})

bindDialogContextMenu({
  target: '.file-row',
  items: [{ label: '删除' }],
})

pushMessage('success', '操作成功', { traceId: 'trace-order-001' })

Dialog Core

方法签名返回值
openModal(options: SoDialogModalOptions)SoDialogHandle
openOffcanvas(options: Omit<SoDialogOffcanvasOptions, 'kind'>)SoDialogHandle
bindContextMenu(options: SoContextMenuOptions)SoContextMenuHandle
SoDialog.open(options: SoDialogOptions)SoDialogHandle

Promise API

方法签名返回值
confirmModal(options?: SoDialogConfirmOptions)Promise<boolean>
promptModal(options?: SoDialogPromptOptions)Promise<string | null>
formModal(options: SoDialogFormOptions)Promise<Record<string, SoDialogFormValue> | null>

Toast API

方法签名返回值
toast(options: SoToastOptions)SoToastHandle
SoToast.show(options: SoToastOptions)SoToastHandle
SoToast.configure(defaults: Partial<SoToastOptions>)void
SoToast.clear(placement?: SoToastPlacement)void
SoToast.closeAll()void

关联演示

Released under the MIT License.