import 'package:flutter/material.dart';
import 'package:flutter_remix/flutter_remix.dart';
import 'package:go_router/go_router.dart';
import 'package:shadcn_ui/shadcn_ui.dart';

/// 圆形返回钮（对齐 demo `.back`：38×38 圆 + 1px 描边 + chevron）。
/// 左对齐到 12px（demo `.dhead` padding-left），用作各页 AppBar 的 leading。
class CircleBackButton extends StatelessWidget {
  const CircleBackButton({
    super.key,
    this.onTap,
    this.fallbackLocation = '/assets',
  });

  final VoidCallback? onTap;
  final String fallbackLocation;

  @override
  Widget build(BuildContext context) {
    final cs = ShadTheme.of(context).colorScheme;
    return Align(
      alignment: Alignment.centerLeft,
      child: Padding(
        padding: const EdgeInsets.only(left: 12),
        child: GestureDetector(
          behavior: HitTestBehavior.opaque,
          onTap:
              onTap ??
              () {
                if (context.canPop()) {
                  context.pop();
                } else {
                  context.go(fallbackLocation);
                }
              },
          child: Container(
            width: 38,
            height: 38,
            alignment: Alignment.center,
            decoration: BoxDecoration(
              shape: BoxShape.circle,
              border: Border.all(color: cs.border, width: 1),
            ),
            child: Icon(
              FlutterRemix.arrow_left_s_line,
              size: 22,
              color: cs.foreground,
            ),
          ),
        ),
      ),
    );
  }
}
