/
va1eriy
/
taskwards
Обзор
Документация
Войти
/
va1eriy
/
taskwards
Код
Запросы
0
Задачи
Вики
Пакеты
0
Релизы
0
CI/CD
Аналитика
Безопасность
master
Taskwards.Web/Infrastructure/Theme/ThemeService.cs
41 строка
1 KB
Valeriy Kokorev
feat: add ThemeService for dark mode and drawer state persistence
28 фев 2026, 09:22
28 фев 2026, 09:22
c3787b5
Код
Авторство
О чём код?
using Taskwards.Web.Infrastructure.Storage; namespace Taskwards.Web.Infrastructure.Theme; /// <summary> /// Реализация IThemeService через localStorage /// </summary> public class ThemeService : IThemeService { private const string DarkModeKey = "theme_dark_mode"; private const string DrawerOpenKey = "drawer_open"; private readonly ILocalStorageService _localStorage; public ThemeService(ILocalStorageService localStorage) { _localStorage = localStorage; } public async Task<bool?> GetDarkModeAsync() { var value = await _localStorage.GetItemAsync(DarkModeKey); return value is not null ? bool.Parse(value) : null; } public async Task SetDarkModeAsync(bool isDarkMode) { await _localStorage.SetItemAsync(DarkModeKey, isDarkMode.ToString().ToLowerInvariant()); } public async Task<bool> GetDrawerOpenAsync() { var value = await _localStorage.GetItemAsync(DrawerOpenKey); return value is null || bool.Parse(value); } public async Task SetDrawerOpenAsync(bool isOpen) { await _localStorage.SetItemAsync(DrawerOpenKey, isOpen.ToString().ToLowerInvariant()); } }