Skip to content
Snippets Groups Projects
top_artists.dart 1.33 KiB
Newer Older
import 'dart:convert';

import 'package:easy_localization/easy_localization.dart';
import 'package:flutter/material.dart';
Benoît Harrault's avatar
Benoît Harrault committed
import 'package:flutter_bloc/flutter_bloc.dart';
Benoît Harrault's avatar
Benoît Harrault committed
import 'package:scrobbles/config/settings.dart';
Benoît Harrault's avatar
Benoît Harrault committed
import 'package:scrobbles/cubit/data_top_artists_cubit.dart';
import 'package:scrobbles/models/topartists.dart';
import 'package:scrobbles/ui/widgets/card_content.dart';
import 'package:scrobbles/ui/widgets/charts/top_artists.dart';

class CardTopArtists extends StatelessWidget {
  const CardTopArtists({super.key});

  @override
  Widget build(BuildContext context) {
Benoît Harrault's avatar
Benoît Harrault committed
    final int daysCount = Settings.topArtistsDaysCount;
Benoît Harrault's avatar
Benoît Harrault committed
    return BlocProvider<DataTopArtistsCubit>(
      create: (BuildContext context) => DataTopArtistsCubit(),
      child: BlocBuilder<DataTopArtistsCubit, DataTopArtistsState>(
        builder: (BuildContext context, DataTopArtistsState state) {
          return CardContent(
            color: Theme.of(context).colorScheme.surface,
            title: 'top_artists_title'.tr(
              namedArgs: {
                'daysCount': daysCount.toString(),
              },
            ),
            content: ChartTopArtists(
              chartData: TopArtistsData.fromJson(jsonDecode(state.topArtists.toString())),
              isLoading: false,
            ),
          );
        },
      ),