import 'package:flutter/material.dart';
import 'package:go_router/go_router.dart';
import '../../../core/theme/halo_tokens.dart';
import '../../../core/theme/widgets/widgets.dart';

/// Result of the post-name Verif Choice Sheet. Caller routes to the matching
/// onboarding sub-flow.
enum VerifChoice { verified, anonymous }

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

  /// Show the sheet and return the user's choice (`null` if dismissed).
  static Future<VerifChoice?> show(BuildContext context) {
    return HaloBottomSheet.show<VerifChoice>(
      context,
      child: const VerifChoiceSheet(),
    );
  }

  @override
  Widget build(BuildContext context) {
    return Column(
      mainAxisSize: MainAxisSize.min,
      crossAxisAlignment: CrossAxisAlignment.stretch,
      children: [
        const Text(
          'Mau curhat sebagai siapa?',
          style: TextStyle(
            fontFamily: HaloTokens.fontDisplay,
            fontSize: 22,
            height: 28 / 22,
            fontWeight: FontWeight.w700,
            color: HaloTokens.ink,
          ),
        ),
        const SizedBox(height: HaloSpacing.s8),
        const Text(
          'Verifikasi nomor HP biar bisa dapet diskon sesi pertama dan riwayat curhatmu kesimpan. Atau langsung curhat anonim, nggak perlu daftar.',
          style: TextStyle(
            fontFamily: HaloTokens.fontBody,
            fontSize: 14,
            height: 20 / 14,
            color: HaloTokens.inkSoft,
          ),
        ),
        const SizedBox(height: HaloSpacing.s24),
        HaloButton(
          label: 'verifikasi nomor HP',
          fullWidth: true,
          onPressed: () =>
              Navigator.of(context).pop(VerifChoice.verified),
        ),
        const SizedBox(height: HaloSpacing.s12),
        HaloButton(
          label: 'curhat anonim',
          variant: HaloButtonVariant.secondary,
          fullWidth: true,
          onPressed: () =>
              Navigator.of(context).pop(VerifChoice.anonymous),
        ),
      ],
    );
  }
}

/// Helper: route to the right onboarding sub-flow for a verif choice.
void routeForVerifChoice(BuildContext context, VerifChoice choice) {
  switch (choice) {
    case VerifChoice.verified:
      context.push('/onboarding/verif/esp');
      break;
    case VerifChoice.anonymous:
      context.push('/onboarding/anon/esp');
      break;
  }
}
