feat: media query added

This commit is contained in:
Michael Shabanov committed 2021-10-25 18:34:55 +03:00
1 parent bebb5ee692
commit d3e1e52e19
7 files changed
+45

No files matched your search

@@ -4,6 +4,7 @@
<RadzenProgressBar Value="100" ShowValue="false" Mode="ProgressBarMode.Indeterminate" <RadzenProgressBar Value="100" ShowValue="false" Mode="ProgressBarMode.Indeterminate"
Visible="@(AccountInfo == null)" Visible="@(AccountInfo == null)"
Style="width: 100%; margin-top: 10px;" /> Style="width: 100%; margin-top: 10px;" />
SmallScreen = @SmallScreen
@if (AccountInfo != null) @if (AccountInfo != null)
{ {
<h1> <h1>
@@ -22,6 +22,9 @@ namespace WotBlitzStatisticsPro.Blazor.Pages
[Inject] [Inject]
public INotificationsService Notifications { get; set; } public INotificationsService Notifications { get; set; }
[Inject]
public IMediaQueriesService MediaQueriesService { get; set; }
[Parameter] [Parameter]
public long AccountId { get; set; } public long AccountId { get; set; }
@@ -32,12 +35,16 @@ namespace WotBlitzStatisticsPro.Blazor.Pages
public IReadOnlyList<ISection> AchievementsBySection { get; set; } public IReadOnlyList<ISection> AchievementsBySection { get; set; }
public bool SmallScreen { get; set; }
protected override async Task OnInitializedAsync() protected override async Task OnInitializedAsync()
{ {
var loggedInInfo = await LocalStorageService.GetItemAsync<LoginInfo>(Constants.LoginInfoLocalStorageKey); var loggedInInfo = await LocalStorageService.GetItemAsync<LoginInfo>(Constants.LoginInfoLocalStorageKey);
var settings = await LocalStorageService.ReadSettings(); var settings = await LocalStorageService.ReadSettings();
CurrentRealmType = settings.RealmType; CurrentRealmType = settings.RealmType;
SmallScreen = await MediaQueriesService.IsScreenWidthLessThen(1000);
try try
{ {
// Maybe add refresh button instead of calling mutation each time // Maybe add refresh button instead of calling mutation each time
+1
View File
@@ -30,6 +30,7 @@ namespace WotBlitzStatisticsPro.Blazor
builder.Services.AddScoped<TooltipService>(); builder.Services.AddScoped<TooltipService>();
builder.Services.AddScoped<ISearchDialogService, SearchDialogService>(); builder.Services.AddScoped<ISearchDialogService, SearchDialogService>();
builder.Services.AddScoped<IChartsService, ChartService>(); builder.Services.AddScoped<IChartsService, ChartService>();
builder.Services.AddScoped<IMediaQueriesService, MediaQueriesService>();
builder.Services.AddMediatR(typeof(Program)); builder.Services.AddMediatR(typeof(Program));
@@ -0,0 +1,9 @@
using System.Threading.Tasks;
namespace WotBlitzStatisticsPro.Blazor.Services
{
public interface IMediaQueriesService
{
ValueTask<bool> IsScreenWidthLessThen(long widthInPx);
}
}
@@ -0,0 +1,20 @@
using Microsoft.JSInterop;
using System.Threading.Tasks;
namespace WotBlitzStatisticsPro.Blazor.Services
{
public class MediaQueriesService : IMediaQueriesService
{
private readonly IJSRuntime _jsRuntime;
public MediaQueriesService(IJSRuntime jsRuntime)
{
_jsRuntime = jsRuntime;
}
public ValueTask<bool> IsScreenWidthLessThen(long widthInPx)
{
return _jsRuntime.InvokeAsync<bool>("mediaQueries.IsScreenWidthLessThen", widthInPx);
}
}
}
@@ -26,6 +26,7 @@
<script src="_content/Radzen.Blazor/Radzen.Blazor.js"></script> <script src="_content/Radzen.Blazor/Radzen.Blazor.js"></script>
<script src="echarts/echarts.js"></script> <script src="echarts/echarts.js"></script>
<script src="echarts/echarts-interop.js"></script> <script src="echarts/echarts-interop.js"></script>
<script src="media-queries.js"></script>
<script>navigator.serviceWorker.register('service-worker.js');</script> <script>navigator.serviceWorker.register('service-worker.js');</script>
</body> </body>
@@ -0,0 +1,6 @@
var mediaQueries = mediaQueries || {};
mediaQueries.IsScreenWidthLessThen = function (width) {
let mql = window.matchMedia(`(max-width: ${width}px)`);
return mql.matches;
};