papaya_sdk 0.0.12
papaya_sdk: ^0.0.12 copied to clipboard
papaya_sdk.
example/lib/main.dart
import 'package:example/config/client.dart';
import 'package:example/provider/user_provider.dart';
import 'package:example/screens/home/home_screen.dart';
import 'package:example/screens/welcome/welcome_screen.dart';
import 'package:example/services/shared_preferences_service.dart';
import 'package:flutter/material.dart';
import 'package:graphql_flutter/graphql_flutter.dart';
import 'package:flutter_dotenv/flutter_dotenv.dart';
import 'package:example/constants/theme.dart';
import 'package:example/constants/route.dart';
import 'package:provider/provider.dart';
import 'package:flutter_localizations/flutter_localizations.dart';
import 'package:form_builder_validators/form_builder_validators.dart';
void main() async {
WidgetsFlutterBinding.ensureInitialized();
await dotenv.load(fileName: ".env");
await initHiveForFlutter();
await sharedPreferenceService.getSharedPreferencesInstance();
final token = await sharedPreferenceService.token;
runApp(
MultiProvider(
providers: [
ChangeNotifierProvider(
create: (_) => UserProvider(), // add UserProvider
),
],
child: GraphQLProvider(
client: config.initializeClient(),
child: MyApp(isLogin: token.isNotEmpty),
),
),
);
}
class MyApp extends StatelessWidget {
MyApp({
Key? key,
required this.isLogin,
}) : super(key: key);
bool isLogin = false;
@override
Widget build(BuildContext context) {
return Consumer<UserProvider>(
builder: (context, userProvider, child) {
return MaterialApp(
title: 'Example',
theme: theme(context),
localizationsDelegates: [
FormBuilderLocalizations.delegate,
GlobalMaterialLocalizations.delegate,
GlobalWidgetsLocalizations.delegate,
],
supportedLocales: FormBuilderLocalizations.supportedLocales,
initialRoute:
isLogin ? HomeScreen.routerName : WelcomeScreen.routerName,
routes: routes,
);
},
);
}
}