@felte/reporter-tippy

中文文档
1.1.10发布于 2024/10/30MITTypeScriptESM + CJS近 30 天下载 2719

[破 使用 Tipy.js 的 Felte 错误报告器

中文使用文档
文档目录7 节
  1. 安装
  2. 使用量
  3. 选项
  4. 警告
  5. 选择退出
  6. 自定义控制
  7. 自定义定位

@felte/reporter-tippy (英语)

Tests Bundle size NPM Version codecov

使用 Felte 的记者 Tippy.js (英语) 以显示错误消息.

[尖叫声] Tipy.js在过去几年里没有被维持(而"浮井"似乎是它的取而代之) 因此,我不再建议使用这一一揽子办法,而应视为贬值.

安装

npm install --save @felte/reporter-tippy tippy.js

# Or, if you use yarn

yarn add @felte/reporter-tippy tippy.js

使用量

默认导出是返回报告者的函数 。 把它加进 extend 费尔特的财产 createForm 配置对象.

import reporter from '@felte/reporter-tippy';

const { form } = createForm({
  // ...
  extend: reporter(),
  // ...
});

你也许也想把Tippy的风格加进你的回放

import 'tippy.js/dist/tippy.css';

选项

您可以在给记者打电话时将选项传递给 Tipby :

reporter({
  tippyProps: {
    /* tippy options */
  },
});

也可以通过一个 setContent 函数将接收当前验证消息和字段路径。 您可以在此修改您的验证信件, 如果您想在 Tipy 内显示 HTML 内容, 这些信息将会有用 。 这个 messages 参数或是一个字符串的数组(根据您的验证策略,它可能不止一个消息)或未定义。 这个 path 参数将是一个字符串,带有您字段的全部路径(例如. email, (中文(简体) ), account.email(见e/cn.4/sub.2/2002/l.48等).

reporter({
  setContent: (messages, path) => {
    return messages?.map((message) => `<p>${message}</p>`);
  },
  tippyProps: {
    allowHTML: true,
  },
});

您也可以使用 tippyPropsMap 属性。 它期望一个与您数据形状相同的物体:

reporter({
  tippyPropsMap: {
    account: {
      email: {
        allowHTML: true,
        /* other tippy props */
      },
    },
  },
});

警告

这个记者也可以显示您的警告信息 。 为了这样做,你需要通过财产 level 给您的记者的值为 warning。 。 。 .

reporter({
  level: 'warning',
});

为了避免你的UI出错,建议使用Tippy报告错误 或 警告,不是两者皆有.

选择退出

如果这个套件不能满足您对所有情况的需求, 请知道我们正在努力改进, 但是您最好选择不报告一个特定字段的错误, 添加 data-felte-reporter-tippy-ignore 作为您输入的属性.

<input name="email" data-felte-reporter-tippy-ignore />

自定义控制

如果您使用非 Felte 管理的自定义控制, 您仍然可以使用 @felte/reporter-tippy。您可以为此使用两个数据属性:

  • data-felte-reporter-tippy-for: 告诉此包使用带有此属性的元素作为指定字段的控制.
  • data-felte-reporter-tippy-trigger-for: 告诉此包使用带有此属性的元素作为触发器,以显示指定字段的 Tippy .

自定义控件将永远成为tipy的触发器,第二个参数是有用的,如果你想用标签等其它元素来触发Tipy来模仿这个包的默认行为.

<span id="email-label" data-felte-reporter-tippy-trigger-for="email"
  >Email:</span
>
<div
  contenteditable
  data-felte-reporter-tippy-for="email"
  aria-labelledby="email-label"
  tabindex="0"
/>

自定义定位

如果您需要显示您的Tippy的位置不同,您可以使用 data-felte-reporter-tippy-position-for 属性。 如果使用自定义控制,在幕后使用有效的 HTML 输入但隐藏它,这将是有益的:

<!-- Tippy will be shown on top of this div -->
<div data-felte-reporter-tippy-position-for="email" />
<!-- Not on top of this input -->
<input name="email" type="email" />

版本与发布记录

@felte/reporter-tippy 共发布 81 个版本,首次发布于 2021/02/10;过去 12 个月发布了 0 个版本。

版本发布日期距今
1.1.10latest2024/10/302 年前
1.1.92023/08/303 年前
1.1.82023/06/173 年前
1.1.72023/06/153 年前
1.1.52023/01/123 年前
1.1.42022/09/274 年前

其他发布通道:next → 1.0.0-next.23。

关于 @felte/reporter-tippy 的常见问题

@felte/reporter-tippy 是什么?

[破 使用 Tipy.js 的 Felte 错误报告器

如何安装 @felte/reporter-tippy?

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

@felte/reporter-tippy 支持 TypeScript 吗?

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

@felte/reporter-tippy 支持 ESM 还是 CommonJS?

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

@felte/reporter-tippy 需要什么版本的 Node.js?

package.json 的 engines 字段要求 Node.js ^12.20.0 || ^14.13.1 || >=16.0.0。版本不符时 npm 默认只给出警告,开启 engine-strict 后会拒绝安装。

@felte/reporter-tippy 可以商用吗?

@felte/reporter-tippy 使用 MIT 许可。宽松许可:允许商业使用、修改和再分发,通常只需在分发时保留原版权与许可声明。以上为概括,不构成法律意见,请以许可原文为准。

@felte/reporter-tippy 的下载量有多少?

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

@felte/reporter-tippy 还在维护吗?

最新版本 1.1.10 发布于 2024/10/30(2 年前);至今共发布 81 个版本,其中过去 12 个月发布了 0 个;首次发布于 2021/02/10。发布频率只是参考信号:功能稳定的工具可能很少需要更新,建议结合源码仓库的 issue 和提交记录判断。