Change to proxy provider for easier auth access

This commit is contained in:
Tommy Chow 2021-08-26 15:57:16 -04:00
parent b8ab9849d9
commit 64ccccaac2
2 changed files with 16 additions and 1 deletions

View file

@ -2,6 +2,7 @@ import 'package:flutter/material.dart';
import 'package:frosty/providers/authentication_provider.dart';
import 'package:frosty/providers/settings_provider.dart';
import 'package:frosty/screens/home.dart';
import 'package:frosty/providers/channel_list_provider.dart';
import 'package:provider/provider.dart';
void main() {
@ -14,7 +15,19 @@ class MyApp extends StatelessWidget {
return MultiProvider(
providers: [
ChangeNotifierProvider<AuthenticationProvider>(create: (_) => AuthenticationProvider()),
ChangeNotifierProvider<SettingsProvider>(create: (_) => SettingsProvider()),
ChangeNotifierProxyProvider<AuthenticationProvider, SettingsProvider>(
create: (_) => SettingsProvider(),
update: (context, auth, settingsProvider) {
return SettingsProvider();
},
),
ChangeNotifierProxyProvider<AuthenticationProvider, ChannelListProvider>(
create: (_) => ChannelListProvider(token: null),
update: (context, auth, channelListProvider) {
print(auth.token);
return ChannelListProvider(token: auth.token, id: auth.user?.id);
},
),
],
child: MaterialApp(
title: 'Frosty',

View file

@ -2,6 +2,8 @@ import 'package:json_annotation/json_annotation.dart';
part 'channel.g.dart';
// ! Seems like when a channel just went live (< 2 min), tagIds are null. Possibly make it optional.
// Twitch Channels (Streams)
@JsonSerializable(createToJson: false, fieldRename: FieldRename.snake)
class Channel {