liquid_analytics_ui 0.1.0
liquid_analytics_ui: ^0.1.0 copied to clipboard
DX widgets for liquid_analytics — consent banner kit, in-app event inspector, and GoRouter screen tracking.
liquid_analytics_ui #
DX helpers for liquid_analytics:
- GoRouter screen tracking
- Consent banner / sheet widgets
- In-app event inspector + DevTools timeline events
Install #
dependencies:
liquid_analytics: ^0.1.0
liquid_analytics_ui: ^0.1.0
go_router: ^17.0.0 # if you use GoRouter helpers
GoRouter #
final liquid = Liquid(sinks: [...], ...);
await liquid.init();
// Option A — route names (GoRoute.name)
final router = GoRouter(
observers: [LiquidGoRouterObserver(liquid)],
routes: [
GoRoute(path: '/', name: 'home', builder: ...),
GoRoute(path: '/cart', name: 'cart', builder: ...),
],
);
// Option B — full matched path (/product/42)
final binding = LiquidGoRouterBinding(liquid, router)..attach();
Consent banner kit #
Stack(
children: [
child,
Align(
alignment: Alignment.bottomCenter,
child: LiquidConsentBanner(
controller: liquid.consent,
onAccept: () => liquid.consent.grant(ConsentCategory.analytics),
onReject: () => liquid.consent.deny(ConsentCategory.analytics),
),
),
],
);
// Granular categories:
await showLiquidConsentSheet(
context: context,
controller: liquid.consent,
);
Event inspector #
final recording = RecordingSink();
final liquid = Liquid(
sinks: [recording, /* production sinks */],
consent: ConsentPolicy.allowAll,
);
// Overlay in debug builds:
if (kDebugMode)
LiquidInspector(controller: recording.controller);
RecordingSink also posts Liquid.Message events via dart:developer so they
appear on the DevTools timeline in debug/profile builds.