Skip to content

API 参考(API Reference) ​

v0.3.23 · Latest stable

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

快速跳转 ​

API Pages ​

  1. Dialog API
  2. 图片预览 API
  3. Toast API
  4. Context Menu API
  5. Adapter API
  6. Tags Input API
  7. Tooltip API

方法索引 ​

DomainMethods
MethodssetTheme, getTheme, openModal, openOffcanvas, confirmModal, promptModal, formModal, openImagePreview, bindImagePreview, toast, pushMessage, bindContextMenu, bindTooltip, configureTooltip, createTagsInput, configureAdapter
TypesSoThemePreset, SoDialogModalOptions, SoDialogOffcanvasOptions, SoImagePreviewOptions, SoToastOptions, SoContextMenuOptions, SoTooltipOptions, SoAdapterConfig
Global configsetTheme, configureDialog, configureContextMenu, configureTooltip, SoToast.configure, configureAdapter
AdaptersSoAdapter, openDialog, bindDialogContextMenu, pushMessage, openDialogFromContextMenu
LifecycleonBeforeOpen, onAfterOpen, onBeforeClose, onAfterClose, onLayoutStable, onAction

Types ​

DomainKey Types
DialogSoDialogModalOptions, SoDialogOffcanvasOptions, SoOffcanvasResizeOptions, SoDialogHandle
ThemeSoThemePreset (classic | modern | minimal)
Promise DialogSoDialogConfirmOptions, SoDialogPromptOptions, SoDialogFormOptions, SoDialogFormValue
Image PreviewSoImagePreviewOptions, SoImagePreviewBindingOptions, SoImagePreviewHandle
ToastSoToastOptions, SoToastHandle, SoToastPlacement, SoToastDuplicateStrategy
Context MenuSoContextMenuOptions, SoContextMenuHandle, SoContextMenuItem
TooltipSoTooltipOptions, SoTooltipDefaults, SoTooltipHandle, SoTooltipTarget, SoTooltipContent, SoTooltipPlacement
Tags InputSoTagsInputOptions, SoTagsInputHandle
AdapterSoAdapterConfig, SoAdapterLogEvent, SoPushMessageOptions, SoMessageLevel

Global config ​

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

setTheme('modern')

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.