Widget build()

in lib/studies/crane/backdrop.dart [73:126]


  Widget build(BuildContext context) {
    final isDesktop = isDisplayDesktop(context);
    final isSmallDesktop = isDisplaySmallDesktop(context);

    final crossAxisCount = isSmallDesktop
        ? 2
        : isDesktop
            ? 4
            : 1;

    return FocusTraversalGroup(
      policy: ReadingOrderTraversalPolicy(),
      child: Padding(
        padding: isDesktop
            ? EdgeInsets.zero
            : EdgeInsets.only(top: widget.mobileTopOffset),
        child: PhysicalShape(
          elevation: 16,
          color: cranePrimaryWhite,
          clipper: const ShapeBorderClipper(
            shape: RoundedRectangleBorder(
              borderRadius: BorderRadius.only(
                topLeft: Radius.circular(frontLayerBorderRadius),
                topRight: Radius.circular(frontLayerBorderRadius),
              ),
            ),
          ),
          child: StaggeredGridView.countBuilder(
            key: ValueKey('CraneListView-${widget.index}'),
            restorationId: widget.restorationId,
            crossAxisCount: crossAxisCount,
            crossAxisSpacing: 16.0,
            padding: isDesktop
                ? EdgeInsets.symmetric(
                        horizontal:
                            isSmallDesktop ? appPaddingSmall : appPaddingLarge)
                    .add(bottomPadding)
                : const EdgeInsets.symmetric(horizontal: 20).add(bottomPadding),
            itemBuilder: (context, index) {
              if (index == 0) {
                return _header();
              } else {
                return DestinationCard(destination: destinations[index]);
              }
            },
            staggeredTileBuilder: (index) => index == 0
                ? StaggeredTile.fit(crossAxisCount)
                : const StaggeredTile.fit(1),
            itemCount: destinations.length,
          ),
        ),
      ),
    );
  }