@atlaskit/link-provider

中文文档
6.1.0发布于 2026/11/04Apache-2.0TypeScriptESM + CJS近 30 天下载 8.3万

Contains provider with react context for anything link related and the link http client

原始使用文档

@atlaskit/link-provider

Usage

import { SmartCardProvider, CardClient } from '@atlaskit/link-provider'
import { Card } from '@atlaskit/smart-card'

<SmartCardProvider client={new CardClient()}>
  <Card />
</SmartCardProvider>

Choreographing Smart Card experiments

Products supply a stable choreographer component to SmartCardProvider. Create it once at module scope with createChoreographedContent and the product's existing useChoreographer hook:

import { createChoreographedContent } from '@atlaskit/link-provider/create-choreographed-content';

const SmartCardChoreographer = createChoreographedContent(useChoreographer);

If the product obtains its choreographer from React context, pass a module-level custom hook that reads that context and calls the native hook. Do not create the adapter during rendering. A nested provider inherits the outer provider's component. The public package has no runtime dependency on Post Office.

Experiments can use ChoreographedContent from @atlaskit/link-provider/choreographed-content:

<ChoreographedContent
    messageId="my-smart-card-experiment"
    isActive={isEligible}
    onUnavailable={cancelOpportunity}
>
    {({ hasPermission }) => <MyPopup isOpen={hasPermission} trigger={normalAction} />}
</ChoreographedContent>

Keep the normal action rendered while permission is pending or unavailable. Close the opportunity (isActive={false}) on action, dismissal, or loss of eligibility; unmounting also releases it. Use a distinct message ID for each experiment. Concurrent instances receive distinct registration IDs. Missing host integration, rejected delivery, and choreographer revocation fail closed. A blocked request is not automatically retried. The adapter requests no automatic expiry. The current native choreographer may apply its default five-minute expiry to queued requests; any expiry or host stop hides the UI. Closing the opportunity or unmounting releases the claim.

This only coordinates participating in-app messages. The experiment still owns feature gates, assignment, audience checks, impressions, dismissal history, and analytics. No portal message or headless API is required.

版本与发布记录

@atlaskit/link-provider 共发布 149 个版本,首次发布于 2022/04/06;过去 12 个月发布了 34 个版本。

版本发布日期距今
6.1.0latest2026/11/043 天前
6.0.12026/09/301 个月前
6.0.02026/09/241 个月前
5.7.12026/09/191 个月前
5.7.02026/09/161 个月前
5.6.22026/09/161 个月前

其他发布通道:next → 1.6.2。

关于 @atlaskit/link-provider 的常见问题

@atlaskit/link-provider 是什么?

Contains provider with react context for anything link related and the link http client

如何安装 @atlaskit/link-provider?

在项目目录运行 npm install @atlaskit/link-provider,或使用 pnpm add / yarn add / bun add。它还需要宿主项目提供 peer 依赖:react(^18.2.0)。npm 7 及以上与 pnpm 8 及以上默认会自动安装必需的 peer 依赖,Yarn 需要手动安装。

@atlaskit/link-provider 支持 TypeScript 吗?

支持。包内自带 TypeScript 类型声明(package.json 声明了 types 入口),安装后即可获得类型提示,无需再安装 @types 包。

@atlaskit/link-provider 支持 ESM 还是 CommonJS?

同时提供 ES Module 与 CommonJS 入口,import 和 require() 都可以使用,打包工具会自动选择合适的版本。

@atlaskit/link-provider 可以商用吗?

@atlaskit/link-provider 使用 Apache-2.0 许可。宽松许可:允许商业使用、修改和再分发,并附带明确的专利授权;分发时需保留许可与 NOTICE 文件,修改过的文件要注明改动。以上为概括,不构成法律意见,请以许可原文为准。

@atlaskit/link-provider 的下载量有多少?

根据 npm 官方下载统计,@atlaskit/link-provider 在 2026/10/07 – 2026/11/05 这 30 天内被下载 83,318 次,日均约 2,777 次。下载量会把 CI 构建、镜像同步和作为其他包依赖的安装一并计入,适合横向比较热度,不能直接等同于使用人数。

@atlaskit/link-provider 还在维护吗?

最新版本 6.1.0 发布于 2026/11/04(3 天前);至今共发布 149 个版本,其中过去 12 个月发布了 34 个;首次发布于 2022/04/06。发布频率只是参考信号:功能稳定的工具可能很少需要更新,建议结合源码仓库的 issue 和提交记录判断。