mirror of
https://github.com/SigNoz/signoz.git
synced 2026-08-06 05:00:42 +01:00
* feat(dashboards-v2): add context-link variable + URL-param building blocks
Reusable primitives for the V2 context-link editor, kept separate from the
UI wiring:
- types: VariableItem / UrlParam / VariableSource
- utils: query-string <-> key/value param parsing, cursor-aware {{variable}}
insertion, and URL validation (http(s)://, /path, or {{var}}/)
- VariablesPopover: autocomplete that lists {{variables}} grouped by source
and inserts the picked token at the cursor
- useContextLinkVariables: self-contained hook sourcing the offered variables
(global timestamps, per-query groupBy fields as _<key>, dashboard variables)
from the query-builder provider + dashboard store, no prop threading
Covered by utils + hook unit tests.
* feat(dashboards-v2): rework context-link editor into a list + modal
The section is now a list of saved links (label + URL with edit/delete),
with add/edit handled in a modal (@signozhq/ui DialogWrapper) instead of the
cramped inline rows.
The modal carries V1's full authoring UX:
- label + URL with {{variable}} autocomplete and inline validation
- a key/value URL-parameters editor synced to the URL query string
- an "open in new tab" toggle; Save is gated on a non-empty, valid URL
Saved links set renderVariables so consumers interpolate the URL at
click-time. The variables popover renders with withPortal=false so it stays
inside the modal (radix's modal disables pointer events on portalled content).
* chore: pr review fixes
* refactor(dashboards-v2): split dashboard fetch into fetch-only hook + required accessor
- useDashboardFetch (renamed from useDashboardV2) now exposes only the raw
dashboard plus fetch lifecycle; spec derivation moves out of it.
- Add useDashboardFetchRequired: reads the active dashboardId from the store,
reuses the shared react-query cache entry, throws when the dashboard is
missing, and derives spec collections (variables). Also exposes refetch.
- Enforce the split with a new signoz/no-dashboard-fetch-outside-root lint rule,
allowlisted for the two root pages and the required hook.
- Point the context-link variables hook at useDashboardFetchRequired and expand
the VariableSource JSDoc.
* chore: fixed fmt