buildStaticSlivers static method

List<Widget> buildStaticSlivers({
  1. required BuildContext context,
  2. required List<int> data,
  3. required HexConfig config,
})

Implementation

static List<Widget> buildStaticSlivers({
  required BuildContext context,
  required List<int> data,
  required HexConfig config,
}) {
  if (data.isEmpty) {
    return [
      SliverToBoxAdapter(
        child: Center(
          child: Padding(
            padding: const EdgeInsets.all(16.0),
            child: Text(
              'No data to display',
              style: Theme.of(context).textTheme.bodyMedium?.copyWith(
                color: Theme.of(context).colorScheme.onSurfaceVariant,
              ),
            ),
          ),
        ),
      ),
    ];
  }

  final effectiveConfig = _resolveDefaultColorScheme(
    context: context,
    config: config,
  );

  final lineCount = HexFormatter.calculateLineCount(
    data.length,
    config.bytesPerLine,
  );

  return [
    SliverToBoxAdapter(child: HexHeader(config: effectiveConfig)),

    const SliverToBoxAdapter(child: Divider(height: 1)),

    SliverList(
      delegate: SliverChildBuilderDelegate((context, index) {
        final offset = index * effectiveConfig.bytesPerLine;
        final line = HexFormatter.formatLine(data, offset, effectiveConfig);

        return HexRow(
          line: line,
          config: effectiveConfig,
          selection: null,
          onBytePressed: null,
        );
      }, childCount: lineCount),
    ),
  ];
}