build method

  1. @override
dynamic build(
  1. dynamic context,
  2. dynamic ref
)

Implementation

@override
Widget build(BuildContext context, WidgetRef ref) {
  final pinsLoader = ref.watch(pinsFoundProvider);
  return pinsLoader.when(
    loading: () => Text(L10n.of(context).loading),
    error: (e, s) {
      _log.severe('Failed to search pins', e, s);
      return Text(L10n.of(context).searchingFailed(e));
    },
    data: (pins) => Padding(
      padding: const EdgeInsets.only(top: 10),
      child: Column(
        children: [
          Text(L10n.of(context).pins),
          const SizedBox(height: 15),
          if (pins.isEmpty)
            Text(L10n.of(context).noMatchingPinsFound)
          else
            SingleChildScrollView(
              scrollDirection: Axis.horizontal,
              child: Row(
                children: pins.map((pin) {
                  return InkWell(
                    child: Padding(
                      padding: const EdgeInsets.all(10),
                      child: Row(
                        children: [
                          pin.icon,
                          const SizedBox(width: 5),
                          Text(pin.name),
                        ],
                      ),
                    ),
                    onTap: () {
                      if (popBeforeRoute) Navigator.pop(context);
                      context.pushNamed(
                        Routes.pin.name,
                        pathParameters: {'pinId': pin.navigationTargetId},
                      );
                    },
                  );
                }).toList(),
              ),
            ),
          const SizedBox(height: 10),
        ],
      ),
    ),
    skipLoadingOnRefresh: true,
    skipLoadingOnReload: true,
  );
}