import 'package:flutter/material.dart';
import 'package:hooks_riverpod/hooks_riverpod.dart';
import 'package:island/screens/account/profile.dart';
import 'package:island/widgets/content/cloud_files.dart';
import 'package:styled_widget/styled_widget.dart';
import 'package:easy_localization/easy_localization.dart';

class AccountNameplate extends HookConsumerWidget {
  final String name;
  const AccountNameplate({super.key, required this.name});

  @override
  Widget build(BuildContext context, WidgetRef ref) {
    final user = ref.watch(accountProvider(name));

    return Container(
      decoration: BoxDecoration(
        border: Border.all(
          width: 1 / MediaQuery.of(context).devicePixelRatio,
          color: Theme.of(context).dividerColor,
        ),
        borderRadius: BorderRadius.all(Radius.circular(8)),
      ),
      margin: EdgeInsets.all(16),
      child: Card(
        margin: EdgeInsets.zero,
        elevation: 0,
        color: Colors.transparent,
        child: user.when(
          data: (account) => ListTile(
            leading: ProfilePictureWidget(
              fileId: account.profile.picture?.id,
            ),
            title: Text(account.nick).bold(),
            subtitle: Text('@${account.name}'),
          ),
          loading: () => ListTile(
            leading: const CircularProgressIndicator(),
            title: const Text('loading').bold().tr(),
            subtitle: const Text('...'),
          ),
          error: (error, stackTrace) => ListTile(
            leading: Icon(Icons.error_outline, color: Colors.red),
            title: Text('somethingWentWrong').bold().tr(),
            subtitle: Text(error.toString()),
          ),
        ),
      ),
    );
  }
}