Skip to content

v0.3.0 — leaner API, better filter UX

Choose a tag to compare

@popov-do popov-do released this 26 Apr 12:09

Highlights

Breaking

  • <Grid> no longer exposes refresh, items, or loading. Consumers calling gridRef.value.refresh() should switch to dataProvider.refresh() — that's the single source of truth for re-fetching, and what the grid uses internally.

Features

  • API Reference docs section in the demo (Props / Slots / Events tables for <Grid>).
  • Customizing example showing slot-based overrides for #empty, #loader, and #pagination.
  • New StateInspector component used by all four state-provider demos to render live JSON of the StateProvider.

Fixes & UX

  • Filters commit on Enter / blur (was: every keystroke). <input size="1"> + a max-width: 220px on the filter wrap so narrow columns no longer inflate to the input's intrinsic width.
  • SortingExample dropdown was wired to a non-existent custom event and never fired — replaced with a real @change handler + Default option. Tests rewritten to cover every sortable field.
  • Hero install command: pnpm add → npm install, with a working copy button.

Internal

  • Drop dead gridRef indirection across demo and examples (refs declared but never read; writes to gridRef.value.items were no-ops on a computed ref).
  • useScrollPagination's 4 refresh() callsites moved to dataProvider.refresh().

Migration

- await gridRef.value?.refresh()
+ await dataProvider.refresh()

If you're using a wrapper that re-exposes its own refresh() (admin-panel, elite-vehicle), nothing changes for your call sites — those wrappers already call props.dataProvider.refresh() internally.


Full diff: v0.1.0...v0.3.0
PR: #23