feat(scenarios): add buy me a coffee maui library
Create a .NET MAUI library for Buy Me a Coffee integration with branded button, QR code, and widget controls. Includes 8 theme presets (yellow, black, white, blue, violet, orange, red, green), customizable styling, and SkiaSharp-based rendering. Supports opening BMC pages in browser and generating QR codes for donations.
This commit is contained in:
23
BuyMeCofee.Maui/Helpers/BmcThemeResolver.cs
Normal file
23
BuyMeCofee.Maui/Helpers/BmcThemeResolver.cs
Normal file
@@ -0,0 +1,23 @@
|
||||
using BuyMeCofee.Maui.Constants;
|
||||
using BuyMeCofee.Maui.Enums;
|
||||
using BuyMeCofee.Maui.Models;
|
||||
|
||||
namespace BuyMeCofee.Maui.Helpers;
|
||||
|
||||
public static class BmcThemeResolver
|
||||
{
|
||||
public static BmcThemeInfo Resolve(BmcButtonTheme theme) => theme switch
|
||||
{
|
||||
BmcButtonTheme.Yellow => new(Color.FromArgb(BmcColors.YellowBg), Color.FromArgb(BmcColors.BrandDark), Colors.Transparent),
|
||||
BmcButtonTheme.Black => new(Color.FromArgb(BmcColors.BlackBg), Colors.White, Colors.Transparent),
|
||||
BmcButtonTheme.White => new(Color.FromArgb(BmcColors.WhiteBg), Color.FromArgb(BmcColors.BrandDark), Color.FromArgb(BmcColors.WhiteStroke)),
|
||||
BmcButtonTheme.Blue => new(Color.FromArgb(BmcColors.BlueBg), Colors.White, Colors.Transparent),
|
||||
BmcButtonTheme.Violet => new(Color.FromArgb(BmcColors.VioletBg), Colors.White, Colors.Transparent),
|
||||
BmcButtonTheme.Orange => new(Color.FromArgb(BmcColors.OrangeBg), Colors.White, Colors.Transparent),
|
||||
BmcButtonTheme.Red => new(Color.FromArgb(BmcColors.RedBg), Colors.White, Colors.Transparent),
|
||||
BmcButtonTheme.Green => new(Color.FromArgb(BmcColors.GreenBg), Colors.White, Colors.Transparent),
|
||||
BmcButtonTheme.Custom => throw new InvalidOperationException(
|
||||
"Custom theme requires setting CustomBackgroundColor and CustomTextColor properties directly."),
|
||||
_ => throw new ArgumentOutOfRangeException(nameof(theme))
|
||||
};
|
||||
}
|
||||
Reference in New Issue
Block a user