zuraffa_dashboard 6.2.2 copy "zuraffa_dashboard: ^6.2.2" to clipboard
zuraffa_dashboard: ^6.2.2 copied to clipboard

Typed, persistence-backed dashboard layouts for the Zuraffa ecosystem.

example/lib/main.dart

import 'package:flutter/material.dart';
import 'package:get_it/get_it.dart';
import 'package:zuraffa_dashboard/zuraffa_dashboard.dart';

final GetIt getIt = GetIt.instance;

Future<void> main() async {
  WidgetsFlutterBinding.ensureInitialized();
  registerDashboardDependencies(getIt);
  final dashboards = getIt<DashboardService>();

  // The documented journey: create → add → move → save.
  var board = await dashboards.create(
    id: 'main',
    title: 'Main',
    owner: 'demo-user',
  );
  board = await dashboards.addTile(
    board.id,
    DashboardTile(
      id: 'tile.sales',
      type: 'chart.sales',
      title: 'Sales',
      placement: TilePlacement.create(
        row: 0,
        column: 0,
        rowSpan: 1,
        colSpan: 2,
      ),
      enabled: true,
      config: {'metric': 'revenue'},
    ),
  );
  board = await dashboards.moveTile(board.id, 'tile.sales', row: 1, column: 1);
  await dashboards.save(board);

  runApp(DashboardExampleApp(service: dashboards));
}

/// The example host: lists the demo user's boards and their tiles.
class DashboardExampleApp extends StatelessWidget {
  const DashboardExampleApp({super.key, required this.service});

  final DashboardService service;

  @override
  Widget build(BuildContext context) {
    return MaterialApp(
      title: 'zuraffa_dashboard example',
      home: Scaffold(
        appBar: AppBar(title: const Text('zuraffa_dashboard example')),
        body: FutureBuilder<List<Dashboard>>(
          future: service.list('demo-user'),
          builder: (context, snapshot) {
            if (!snapshot.hasData) {
              return const Center(child: CircularProgressIndicator());
            }
            final boards = snapshot.data!;
            return ListView(
              children: [
                for (final board in boards)
                  ListTile(
                    key: Key('board-${board.id}'),
                    title: Text(board.title),
                    subtitle: Text(
                      '${board.tiles.length} tile(s) — owner ${board.owner}',
                    ),
                  ),
              ],
            );
          },
        ),
      ),
    );
  }
}
0
likes
160
points
69
downloads

Documentation

API reference

Publisher

verified publisherzuraffa.com

Weekly Downloads

Typed, persistence-backed dashboard layouts for the Zuraffa ecosystem.

Homepage
Repository (GitHub)
View/report issues

Topics

#dashboard #clean-architecture #zuraffa #state

License

MIT (license)

Dependencies

json_annotation, zorphy_annotation, zuraffa

More

Packages that depend on zuraffa_dashboard