summaryrefslogtreecommitdiffstats
path: root/lib/kuksa-server/intial_connection.dart
blob: 0ba4e9fe67352c0e4e0730553ca4caac92fcd682 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
// SPDX-License-Identifier: Apache-2.0

import 'dart:io';
import 'package:flutter/material.dart';
import 'package:flutter_riverpod/flutter_riverpod.dart';
import 'package:flutter_hvac/kuksa-server/vehicle_config.dart';

import 'on_boarding_page.dart';

class InitialScreen extends ConsumerWidget {
  InitialScreen({Key? key, required this.client}) : super(key: key);
  final HttpClient client;
  late WebSocket socket;

  @override
  Widget build(BuildContext context, ref) {
    final sockConnect = ref.watch(sockConnectprovider(client));

    return sockConnect.when(
      data: (socket) {
        this.socket = socket;
        this.socket.pingInterval = const Duration(seconds: 2);
        return OnBoardingPage(client: client, socket: this.socket);
      },
      error: (e, stk) {
        print(e);
        ref.refresh(sockConnectprovider(client));
        return const Scaffold(
          backgroundColor: Colors.black,
          body: Center(
              child: Text(
            'error',
            style: TextStyle(color: Colors.white),
          )),
        );
      },
      loading: () => const Scaffold(
        backgroundColor: Colors.black,
        body: Center(
            child: Text('loading', style: TextStyle(color: Colors.white))),
      ),
    );
  }
}