@comms-id/abr-abn-lookup-react

中文文档
1.0.0发布于 2026/10/22SEE LICENSE IN LICENSETypeScriptES Module

React hook and component for Comms.ID ABN search: a name or an ABN or ACN, accessible, no layout shift, with the data attribution

此软件包已被标记为弃用

Removed. Comms.ID products are served live, nothing to install: https://cdn.comms.id/abr-abn-lookup/latest.js

原始使用文档
文档目录4 节
  1. What the field does
  2. Your own markup: useAbn
  3. The component
  4. Data attribution

@comms-id/abn-react

A React hook and a finished component for Comms.ID ABN search. The user types a business name, or an ABN or ASIC number (ACN, ARBN). Accessible, no layout shift, with the data attribution always shown. React 18 or later; it depends on @comms-id/abr-abn-lookup and nothing else.

import { createAbrAbnLookupBrowserClient } from "@comms-id/abr-abn-lookup/browser";
import { AbnAutocomplete } from "@comms-id/abr-abn-lookup-react";

const client = createAbrAbnLookupBrowserClient({ relayUrl: "/api/comms-id/abr-abn-lookup" });

export const Supplier = () => (
  <AbnAutocomplete
    client={client}
    label="Business name or ABN"
    onSelect={(business) => console.log(business.name, business.formattedAbn, business.status)}
  />
);

relayUrl is your own server route, set up with @comms-id/relay: your server signs the call as your registered app, so the browser holds no credential.

What the field does

  • A name: after the user pauses, it suggests businesses (name, ABN, state and postcode). Choosing one looks it up and calls onSelect.
  • An ABN or ASIC number (ACN, ARBN): a whole number (9 or 11 digits, spaces and hyphens allowed) is checked in the browser first. An invalid number sends nothing, and the field says why ("This is not a valid ABN: the check digits do not match."). A valid number is looked up.
  • No match is not an outage. "No business found." and "Business search is unavailable" are different messages; an outage offers "Try again".

onSelect(business, timing) gets one AbnBusiness whichever source answered the lookup: abn, formattedAbn, asicNumber with asicNumberType (ACN, ARBN, ARSN or undetermined: ABR never states the kind; v2, #714), name, status, entityType, gstRegistered, state, postcode, source (live or snapshot), asAt and attribution.

Your own markup: useAbn

const abn = useAbn({ client, onSelect });
return (
  <>
    <input {...abn.getInputProps()} />
    <ul {...abn.getListboxProps("Matches")} hidden={!abn.state.open}>
      {abn.state.suggestions.map((s, i) => (
        <li key={`${s.abn}-${i}`} {...abn.getOptionProps(i)}>{describeSuggestion(s).primary}</li>
      ))}
    </ul>
    <p {...abn.getStatusProps()}>{abn.state.announcement}</p>
  </>
);

The prop getters carry the WAI-ARIA combobox contract: roles, aria-expanded, aria-controls, aria-activedescendant, key handling (arrows, Enter, Escape, Tab) and a polite live region. Show the attribution yourself when you use the hook: abn.state.attribution.

The component

Props: client and label (required), onSelect, minChars (3), debounceMs (400), limit (8), prefer ({ state, postcode }), idPrefix, name, placeholder, disabled, required, className, listLabel, showTiming (true), renderOption.

Style it with the custom properties --comms-id-text, --comms-id-surface, --comms-id-border, --comms-id-active, --comms-id-radius or the comms-id-abr-abn-lookup__* class names. It needs no stylesheet.

  • The list floats under the input; opening it moves nothing. One note line has a reserved height and does not wrap: the result is a summary (name, ABN, status, GST), not a card, so the page never moves. Use onSelect for the whole record.
  • It renders on the server with the same structure, and works under StrictMode.

Data attribution

The component always shows the attribution: the one the reply carried, or the standard text when a reply has none. Do not hide it.

LICENSE is the consumer client licence.

版本与发布记录

@comms-id/abr-abn-lookup-react 共发布 2 个版本,首次发布于 2026/10/22;过去 12 个月发布了 2 个版本。

版本发布日期距今
1.0.0latest2026/10/2212 天前
0.0.0-stage2026/10/2212 天前

关于 @comms-id/abr-abn-lookup-react 的常见问题

@comms-id/abr-abn-lookup-react 是什么?

用于通信的React钩子和组件。ID ABN搜索:名称或ABN或ACN,可访问,无布局移位,具有数据属性注意:该包已被作者标记为弃用——Removed. Comms.ID products are served live, nothing to install: https://cdn.comms.id/abr-abn-lookup/latest.js

如何安装 @comms-id/abr-abn-lookup-react?

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

@comms-id/abr-abn-lookup-react 支持 TypeScript 吗?

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

@comms-id/abr-abn-lookup-react 支持 ESM 还是 CommonJS?

以 ES Module 形式发布,推荐使用 import 引入。在 CommonJS 项目中,Node.js 20.19+ / 22.12+ 可以直接 require() 不含顶层 await 的 ES Module,更早的版本需要改用动态 import()。

@comms-id/abr-abn-lookup-react 可以商用吗?

@comms-id/abr-abn-lookup-react 使用 SEE LICENSE IN LICENSE 许可。许可条款写在包内的独立文件中,请阅读该文件确认可否商用。以上为概括,不构成法律意见,请以许可原文为准。

@comms-id/abr-abn-lookup-react 还在维护吗?

最新版本 1.0.0 发布于 2026/10/22(12 天前);至今共发布 2 个版本,其中过去 12 个月发布了 2 个;首次发布于 2026/10/22。作者已将其标记为弃用,新项目建议寻找替代方案。