using BuyMeCofee.Maui.Services;
using SkiaSharp.Views.Maui.Controls.Hosting;
namespace BuyMeCofee.Maui;
public static class BuyMeACoffeeExtensions
{
///
/// Registers Buy Me a Coffee controls and their dependencies (SkiaSharp).
/// Call this in your MauiProgram.cs CreateMauiApp() builder.
///
public static MauiAppBuilder UseBuyMeACoffee(this MauiAppBuilder builder)
{
builder.UseSkiaSharp();
return builder;
}
///
/// Registers Buy Me a Coffee controls with optional supporter verification.
/// When an AccessToken is provided, controls with HideIfSupporter=true
/// will auto-hide for verified supporters.
///
///
/// builder.UseBuyMeACoffee(options =>
/// {
/// options.AccessToken = "your-bmc-api-token";
/// options.CacheDuration = TimeSpan.FromHours(2);
/// });
///
public static MauiAppBuilder UseBuyMeACoffee(this MauiAppBuilder builder, Action configure)
{
builder.UseSkiaSharp();
var options = new BmcOptions();
configure(options);
if (!string.IsNullOrWhiteSpace(options.AccessToken))
{
BmcConfiguration.SupporterService = new BmcSupporterService(
options.AccessToken, options.CacheDuration);
}
return builder;
}
}