content method

Widget content(
  1. BuildContext context, {
  2. required DeferredJobState<XWidget> state,
  3. required VoidCallback onRetry,
  4. required Size size,
})

Implementation

Widget content(
  BuildContext context, {
  required DeferredJobState<XWidget> state,
  required VoidCallback onRetry,
  required Size size,
}) {
  final theme = hubbleThemeData(context);
  if (state.isInProgress || state.isReady) {
    return ShimmerContainer(
      height: size.height,
      width: size.width,
      color: theme.baseTertiaryMedium,
      decoration: BoxDecoration(
        color: theme.baseTertiaryMedium,
        borderRadius: BorderRadius.circular(16.0.dp),
      ),
      margin: EdgeInsets.all(12.0.dp).copyWith(bottom: 0),
    );
  }

  if (state.isFailed) {
    return GestureDetector(
      onTap: onRetry,
      child: ShimmerContainer(
        alignment: Alignment.center,
        height: size.height,
        width: size.width,
        margin: EdgeInsets.all(12.0.dp).copyWith(bottom: 0),
        color: theme.baseTertiaryMedium,
        decoration: BoxDecoration(
          color: theme.baseTertiaryMedium,
          borderRadius: BorderRadius.circular(10),
        ),
        child: const Column(
          mainAxisSize: MainAxisSize.min,
          children: [
            Icon(PhosphorIcons.arrowCounterClockwise, size: 34),
            HubbleText('Retry')
          ],
        ),
      ),
    );
  }

  params.ssrWidget ??= (() {
    final widget = _cookWidgetNonNullable(state.data!, params.context);
    widget.applyTheme(theme);

    return widget;
  })();

  return params.ssrWidget!.build(context);
}