namespace LibationUiBase;
///
/// What to show in the middle of the grid when it has no rows to draw. Shared so both frontends word it
/// identically, and kept in one place so a third empty state does not become a third scattered set of strings.
///
public static class GridEmptyStateUi
{
#region A filter matched nothing
/// Headline for a filter that matched nothing in the library.
public static string NoMatchesText(string? searchString)
=> string.IsNullOrWhiteSpace(searchString)
? "No books match the current filter."
: $"No books match \"{searchString.Trim()}\".";
///
/// Follow-up naming matches hiding in the trash. Only worth saying when the filter matched something in
/// there; "nothing here, and by the way the trash has things in it" would just be noise.
///
public static string NoMatchesTrashHintText(int matchesInTrash)
=> matchesInTrash == 1
? "1 matching book is in the trash."
: $"{matchesInTrash} matching books are in the trash.";
public const string OpenTrashBinButton = "Open Trash Bin";
#endregion
#region The library itself is empty
///
/// An empty library has two causes with different next steps, and telling someone with no account to scan
/// their library is a dead end. is what tells them apart.
///
public static string EmptyLibraryHeadline(bool anyAccounts)
=> anyAccounts
? "No books in your library yet."
: "Libation is empty.";
public static string EmptyLibraryDetail(bool anyAccounts)
=> anyAccounts
? "Scan your Audible account to bring your books in."
: "Add your Audible account, then scan your library to bring your books in.";
///
/// Books in the trash while the library itself is empty. Without this the headline above reads as though
/// the books were never there, when in fact they are one click away.
///
public static string EmptyLibraryTrashHintText(int booksInTrash)
=> booksInTrash == 1
? "1 book is in the trash."
: $"{booksInTrash} books are in the trash.";
public const string AddAccountButton = "Add Account";
public const string ScanLibraryButton = "Scan Library";
///
/// The walkthrough is offered once, on first launch, and never again once that is declined. A permanent
/// way back in costs one button and is the only one a new user is likely to find.
///
public const string TakeTheTourButton = "Take a Guided Tour";
#endregion
}