Skip to content

fix: auto-focus search box when link record selector opens#3582

Open
ajuijas wants to merge 2131 commits into
teableio:mainfrom
ajuijas:fix/2928-linked-record-selection
Open

fix: auto-focus search box when link record selector opens#3582
ajuijas wants to merge 2131 commits into
teableio:mainfrom
ajuijas:fix/2928-linked-record-selection

Conversation

@ajuijas

@ajuijas ajuijas commented Jul 14, 2026

Copy link
Copy Markdown

Summary

  • The linked-record row selector's search input didn't receive focus when the popup opened, so users had to click into it before they could start typing (issue also notes the popup itself requires a double-click to open, which is existing, consistent grid behavior shared by every field type's cell editor).
  • Auto-focuses the search input on mount in SearchInput (new optional autoFocus prop, opt-in so the other consumer of this shared component, the settings query builder's persistent search bar, is unaffected) and wires it up from the link editor's EditorMain.

Why this option (of the two proposed in the issue)

The issue offered two options: make the cell searchable on a single click, or keep the existing double-click-to-open flow and just auto-focus the search box. Went with the latter: double-click-to-edit is the grid's shared activation gesture across every field type (packages/sdk/src/components/grid/InteractionLayer.tsx's onDblClick), so changing it for link fields only would special-case one field type against the whole interaction model (single click is also used for cell selection/range-select) for a much larger, riskier change. Auto-focusing the search input is a small, localized fix that removes the actual friction described (an extra click before typing).

Test plan

  • Manually reviewed the diff line-by-line (imports, hook ordering, prop plumbing) for correctness.
  • Could not run pnpm install/build/lint/typecheck in my environment (tooling install was blocked by sandbox restrictions with no interactive approval available). Noting this rather than claiming it was verified. Happy to address any build/lint feedback from CI.

Fixes #2928

caoxing9 and others added 30 commits December 19, 2025 20:14
* feat: add template visit count T1352

* fix: add base id for base export

* fix: template ui relative
* perf: template admin panel display relative with T1374

* fix: lint error

* fix: sharedialog open without default select nodes
teableio#2325)

* fix: correct paste misalignment when using shuffled projection

* fix: form share collaborators user fields
…cope

fix: scope lookup CTE references T1361
* fix: export base table with dbtablename

relative issueid: T1388

* fix: template sql query has no permission
teableio#2327)

* feat(ui-lib): add zoom and rotate capabilities to image preview

* feat: touch device drag

* perf(ui-lib): optimize image preview performance with ResizeObserver and dimension caching
fix: cast substitute operands to text T1361
* perf: shrink template card

relative issueid: T1380

* feat: support template reorder

relative issueid: T1379
* feat: add confirmation dialog for button actions

* fix: update theme styles for prompt editor

* feat: add confirm text editor to button options

* fix: update placeholder styles in editor themes to inherit font size
* feat: add billable roles with constant

* feat: add collaborator update event and emit on update action

* refactor:  enhance UI components for better layout and accessibility

* refactor: remove unused billable roles logic and community edition check from collaborator service

* feat: enhance base permission update listener to emit collaborator update event

* fix: adjust collaborator component layout and remove unnecessary margin

* feat: add cache key generation for instance billable user count

* fix: update billable property type in IUserCollaborator interface to allow null

* fix: simplify badge rendering in Collaborator component

* style: update badge styling in Collaborator component for improved visibility
* fix: button field enable

* feat: add Business billing level and update related components

* refactor: remove Plus billing level from components and adjust related logic

* fix: update billing levels in components to reflect recent changes

* fix: adjust target billing level logic and improve space owner check in UpgradeWrapper component

* fix: enhance space query logic in UpgradeWrapper

* refactor: optimize confirm function with useCallback for better performance
…o#2335)

* feat: support background upload for attachment files

* fix: download file

* fix: remove debug code

* fix: download file in preview
tea-artist and others added 29 commits March 24, 2026 10:04
…bleio#2836)

Synced from teableio/teable-ee@3d8d8f8

Co-authored-by: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com>
Co-authored-by: Aries X <caoxing9@gmail.com>
Co-authored-by: Boris <boris2code@outlook.com>
Co-authored-by: Jun Lu <hammond@teable.io>
Co-authored-by: nichenqin <nichenqin@hotmail.com>
…ables (teableio#2845)

Synced from teableio/teable-ee@8aa82c0

Co-authored-by: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com>
Co-authored-by: Aries X <caoxing9@gmail.com>
Co-authored-by: Uno <uno@teable.ai>
Co-authored-by: nichenqin <nichenqin@hotmail.com>
…ad of Node memory (teableio#2891)

Synced from teableio/teable-ee@a256ef4

Co-authored-by: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com>
Co-authored-by: Aries X <caoxing9@gmail.com>
Co-authored-by: Boris <boris2code@outlook.com>
Co-authored-by: Gary Guangyu Li <gary@teable.ai>
Co-authored-by: Jun Lu <hammond@teable.io>
Co-authored-by: Uno <uno@teable.ai>
Co-authored-by: nichenqin <nichenqin@hotmail.com>
…2782) (teableio#2975)

Synced from teableio/teable-ee@6486d30

Co-authored-by: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com>
Co-authored-by: Aries X <caoxing9@gmail.com>
Co-authored-by: Boris <boris2code@outlook.com>
Co-authored-by: Gary Guangyu Li <gary@teable.ai>
Co-authored-by: Jocky-Teable <jocky@teable.ai>
Co-authored-by: Jun Lu <hammond@teable.io>
Co-authored-by: SkyHuang <sky.huang.fe@gmail.com>
Co-authored-by: Uno <uno@teable.ai>
Co-authored-by: nichenqin <nichenqin@hotmail.com>
…#3027)

Synced from teableio/teable-ee@1e6eea9

Co-authored-by: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com>
Co-authored-by: Aries X <caoxing9@gmail.com>
Co-authored-by: Boris <boris2code@outlook.com>
Co-authored-by: Gary Guangyu Li <gary@teable.ai>
Co-authored-by: Jocky-Teable <jocky@teable.ai>
Co-authored-by: Jun Lu <hammond@teable.io>
Co-authored-by: Pengap <penganpingprivte@gmail.com>
Co-authored-by: Uno <uno@teable.ai>
Co-authored-by: nichenqin <nichenqin@hotmail.com>
Synced from teableio/teable-ee@8f7e381

Co-authored-by: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com>
Co-authored-by: Boris <boris2code@outlook.com>
Synced from teableio/teable-ee@e761db1

Co-authored-by: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com>
Co-authored-by: Aries X <caoxing9@gmail.com>
Co-authored-by: Boris <boris2code@outlook.com>
Co-authored-by: Jocky-Teable <jocky@teable.ai>
Co-authored-by: Jun Lu <hammond@teable.io>
Co-authored-by: Pengap <penganpingprivte@gmail.com>
Co-authored-by: SkyHuang <sky.huang.fe@gmail.com>
Co-authored-by: Uno <uno@teable.ai>
Co-authored-by: nichenqin <nichenqin@hotmail.com>
teableio#3170)

Synced from teableio/teable-ee@13fd81e

Co-authored-by: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com>
Co-authored-by: Aries X <caoxing9@gmail.com>
Co-authored-by: Boris <boris2code@outlook.com>
Co-authored-by: Jocky-Teable <jocky@teable.ai>
Co-authored-by: Jun Lu <hammond@teable.io>
Co-authored-by: Pengap <penganpingprivte@gmail.com>
Co-authored-by: SkyHuang <sky.huang.fe@gmail.com>
Co-authored-by: Uno <uno@teable.ai>
Co-authored-by: nichenqin <nichenqin@hotmail.com>
…via v2 (teableio#3254)

Synced from teableio/teable-ee@91fd651

Co-authored-by: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com>
Co-authored-by: Aries X <caoxing9@gmail.com>
Co-authored-by: Boris <boris2code@outlook.com>
Co-authored-by: Jocky-Teable <jocky@teable.ai>
Co-authored-by: Jun Lu <hammond@teable.io>
Co-authored-by: Pengap <penganpingprivte@gmail.com>
Co-authored-by: SkyHuang <sky.huang.fe@gmail.com>
Co-authored-by: Uno <uno@teable.ai>
Co-authored-by: nichenqin <nichenqin@hotmail.com>
Synced from teableio/teable-ee@b5221a7

Co-authored-by: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com>
Co-authored-by: Aries X <caoxing9@gmail.com>
Co-authored-by: Boris <boris2code@outlook.com>
Co-authored-by: Jocky Zhou <jocky@teable.ai>
Co-authored-by: Jun Lu <hammond@teable.io>
Co-authored-by: Pengap <penganpingprivte@gmail.com>
Co-authored-by: SkyHuang <sky.huang.fe@gmail.com>
Co-authored-by: Uno <uno@teable.ai>
Co-authored-by: nichenqin <nichenqin@hotmail.com>
…bleio#3576)

Synced from teableio/teable-ee@8c322bb

Co-authored-by: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com>
Co-authored-by: Aries X <caoxing9@gmail.com>
Co-authored-by: Jocky Zhou <jocky@teable.ai>
Co-authored-by: Jun Lu <hammond@teable.io>
Co-authored-by: Pengap <penganpingprivte@gmail.com>
Co-authored-by: SkyHuang <sky.huang.fe@gmail.com>
Co-authored-by: Uno <uno@teable.ai>
Co-authored-by: nichenqin <nichenqin@hotmail.com>
The row selector for linked-record fields did not focus its search
input on open, requiring an extra click before typing. Auto-focus the
search input when the link editor mounts.

Signed-off-by: ajuijas <189517297+ajuijas@users.noreply.github.com>
@CLAassistant

CLAassistant commented Jul 14, 2026

Copy link
Copy Markdown

CLA assistant check
All committers have signed the CLA.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

10 participants