Hacktoberfest 2026: the issues maintainers tagged for October, open and beginner-friendly. Browse Hacktoberfest issues

[Bug]: Plugin UI slots data-grid.toolbar.actions and sidebar.footer.actions receive an empty context

Open Beginner friendly
#892 0 comments 0 reactions 0 assignees View on GitHub

Maintainers usually reply within 1 day

Nobody has claimed this yet.

Assessment

Difficulty
2/5
Estimated time
1-3 hours
Newbie friendliness
82/100
Issue type
Bug
Clarity
Clearly specified
Activity status
Active
Tech stack
typescript
Domain
frontend

Research direction

Start with packages/plugin-api/src/slots.ts to check the declared SlotContextMap, then inspect src/components/ui/TableToolbar.tsx, src/components/layout/Sidebar.tsx, src/components/layout/RowEditorPanel.tsx, and src/components/ui/DataGrid.tsx. Trace how each <SlotAnchor> gets its context and how src/contexts/PluginSlotProvider.tsx applies the driver filter. Done when the host passes the declared context for the relevant slots and driver-filtered extensions render with the expected data.

Written by the indexing model from the issue text.

Description

bug help wanted
Describe the bug

Two plugin UI slots are rendered with an empty context, although the SDK types (packages/plugin-api/src/slots.ts, SlotContextMap) promise data:

Slot SDK context Host passes
data-grid.toolbar.actions connectionId, tableName, schema, driver {} (src/components/ui/TableToolbar.tsx)
sidebar.footer.actions connectionId, driver {} (src/components/layout/Sidebar.tsx)

Other slots also omit driver (row-editor-sidebar.*, data-grid.context-menu.items).

Because the manifest driver filter is implemented as ctx.driver === entry.driver (src/contexts/PluginSlotProvider.tsx), a UI extension restricted to its own driver never renders in any slot whose context lacks driver — including the toolbar, the most common use case.

To Reproduce
  1. A plugin with "ui_extensions": [{ "slot": "data-grid.toolbar.actions", "module": "ui/dist/index.js", "driver": "<id>" }].
  2. Open a table of that driver: the component is not rendered. Without driver it renders, but context.tableName / connectionId are undefined.
Expected behavior

Each slot receives the context declared in SlotContextMap, including driver, so the driver filter works.

Where to start
  • TableToolbar.tsx, Sidebar.tsx, RowEditorPanel.tsx, DataGrid.tsx: pass the active connection id, driver, table and schema to <SlotAnchor context={…}>.
  • Keep SlotContextMap and the host in sync (a type-level check would prevent regressions).
Dominant language
TypeScript
Stars
5.1k
Forks
335
Avg merge
1d 22h
Merged PRs (30d)
75

Getting set up

First steps

  1. Read the whole issue, then the project's contributing guide.
  2. Comment on the issue to say you are picking it up — it saves two people doing the same work.
  3. Fork the repository and make your change on a branch.
  4. Open a pull request that references the issue number.

More from TabularisDB/tabularis

All issues in TabularisDB/tabularis

Similar issues

More TypeScript issues

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.