mirror of
https://github.com/ppy/osu
synced 2025-02-09 06:36:56 +00:00
Implement basic layout for kudosu history
This commit is contained in:
parent
5073bce2dc
commit
cf2a9db8e0
@ -0,0 +1,56 @@
|
|||||||
|
// Copyright (c) ppy Pty Ltd <contact@ppy.sh>. Licensed under the MIT Licence.
|
||||||
|
// See the LICENCE file in the repository root for full licence text.
|
||||||
|
|
||||||
|
using osu.Framework.Allocation;
|
||||||
|
using osu.Framework.Graphics;
|
||||||
|
using osu.Framework.Graphics.Containers;
|
||||||
|
using osu.Game.Graphics;
|
||||||
|
using osu.Game.Graphics.Containers;
|
||||||
|
using osu.Game.Online.API.Requests.Responses;
|
||||||
|
using osu.Game.Online.Chat;
|
||||||
|
|
||||||
|
namespace osu.Game.Overlays.Profile.Sections.Kudosu
|
||||||
|
{
|
||||||
|
public class DrawableKudosuHistoryItem : DrawableProfileRow
|
||||||
|
{
|
||||||
|
private readonly APIKudosuHistory historyItem;
|
||||||
|
private LinkFlowContainer content;
|
||||||
|
|
||||||
|
public DrawableKudosuHistoryItem(APIKudosuHistory historyItem)
|
||||||
|
{
|
||||||
|
this.historyItem = historyItem;
|
||||||
|
}
|
||||||
|
|
||||||
|
[BackgroundDependencyLoader]
|
||||||
|
private void load()
|
||||||
|
{
|
||||||
|
LeftFlowContainer.Padding = new MarginPadding { Left = 10 };
|
||||||
|
|
||||||
|
LeftFlowContainer.Add(content = new LinkFlowContainer
|
||||||
|
{
|
||||||
|
AutoSizeAxes = Axes.Y,
|
||||||
|
RelativeSizeAxes = Axes.X,
|
||||||
|
});
|
||||||
|
|
||||||
|
RightFlowContainer.Add(new DrawableDate(historyItem.CreatedAt)
|
||||||
|
{
|
||||||
|
Font = OsuFont.GetFont(size: 13),
|
||||||
|
Colour = OsuColour.Gray(0xAA),
|
||||||
|
Anchor = Anchor.TopRight,
|
||||||
|
Origin = Anchor.TopRight,
|
||||||
|
});
|
||||||
|
|
||||||
|
var formatted = createMessage();
|
||||||
|
|
||||||
|
content.AddLinks(formatted.Text, formatted.Links);
|
||||||
|
}
|
||||||
|
|
||||||
|
protected override Drawable CreateLeftVisual() => new Container
|
||||||
|
{
|
||||||
|
RelativeSizeAxes = Axes.Y,
|
||||||
|
AutoSizeAxes = Axes.X,
|
||||||
|
};
|
||||||
|
|
||||||
|
private MessageFormatter.MessageFormatterResult createMessage() => MessageFormatter.FormatText($@"{historyItem.Amount}");
|
||||||
|
}
|
||||||
|
}
|
@ -0,0 +1,51 @@
|
|||||||
|
// Copyright (c) ppy Pty Ltd <contact@ppy.sh>. Licensed under the MIT Licence.
|
||||||
|
// See the LICENCE file in the repository root for full licence text.
|
||||||
|
|
||||||
|
using osu.Framework.Graphics;
|
||||||
|
using osu.Game.Online.API.Requests;
|
||||||
|
using osu.Game.Users;
|
||||||
|
using System.Linq;
|
||||||
|
using osu.Framework.Bindables;
|
||||||
|
|
||||||
|
namespace osu.Game.Overlays.Profile.Sections.Kudosu
|
||||||
|
{
|
||||||
|
public class PaginatedKudosuHistoryContainer : PaginatedContainer
|
||||||
|
{
|
||||||
|
private GetUserKudosuHistoryRequest request;
|
||||||
|
|
||||||
|
public PaginatedKudosuHistoryContainer(Bindable<User> user, string header, string missing)
|
||||||
|
: base(user, header, missing)
|
||||||
|
{
|
||||||
|
ItemsPerPage = 5;
|
||||||
|
}
|
||||||
|
|
||||||
|
protected override void ShowMore()
|
||||||
|
{
|
||||||
|
request = new GetUserKudosuHistoryRequest(User.Value.Id, VisiblePages++, ItemsPerPage);
|
||||||
|
request.Success += items => Schedule(() =>
|
||||||
|
{
|
||||||
|
MoreButton.FadeTo(items.Count == ItemsPerPage ? 1 : 0);
|
||||||
|
MoreButton.IsLoading = false;
|
||||||
|
|
||||||
|
if (!items.Any() && VisiblePages == 1)
|
||||||
|
{
|
||||||
|
MissingText.Show();
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
|
||||||
|
MissingText.Hide();
|
||||||
|
|
||||||
|
foreach (var item in items)
|
||||||
|
ItemsContainer.Add(new DrawableKudosuHistoryItem(item));
|
||||||
|
});
|
||||||
|
|
||||||
|
Api.Queue(request);
|
||||||
|
}
|
||||||
|
|
||||||
|
protected override void Dispose(bool isDisposing)
|
||||||
|
{
|
||||||
|
base.Dispose(isDisposing);
|
||||||
|
request?.Cancel();
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
@ -1,6 +1,7 @@
|
|||||||
// Copyright (c) ppy Pty Ltd <contact@ppy.sh>. Licensed under the MIT Licence.
|
// Copyright (c) ppy Pty Ltd <contact@ppy.sh>. Licensed under the MIT Licence.
|
||||||
// See the LICENCE file in the repository root for full licence text.
|
// See the LICENCE file in the repository root for full licence text.
|
||||||
|
|
||||||
|
using osu.Framework.Graphics;
|
||||||
using osu.Game.Overlays.Profile.Sections.Kudosu;
|
using osu.Game.Overlays.Profile.Sections.Kudosu;
|
||||||
|
|
||||||
namespace osu.Game.Overlays.Profile.Sections
|
namespace osu.Game.Overlays.Profile.Sections
|
||||||
@ -13,9 +14,10 @@ namespace osu.Game.Overlays.Profile.Sections
|
|||||||
|
|
||||||
public KudosuSection()
|
public KudosuSection()
|
||||||
{
|
{
|
||||||
Children = new[]
|
Children = new Drawable[]
|
||||||
{
|
{
|
||||||
new KudosuInfo(User),
|
new KudosuInfo(User),
|
||||||
|
new PaginatedKudosuHistoryContainer(User, null, @"This user hasn't received any kudosu!"),
|
||||||
};
|
};
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
Loading…
Reference in New Issue
Block a user