1 Commits

Author SHA1 Message Date
Toutsu 5082dd4fcf fix: stack sidebar template nav item
Deploy Telegram Bot / build-and-push (push) Successful in 3m45s
Deploy Telegram Bot / deploy (push) Successful in 9s
2026-04-28 10:36:52 +03:00
8 changed files with 30 additions and 12 deletions
+1 -1
View File
@@ -6,7 +6,7 @@ on:
- main - main
env: env:
VERSION: 1.8.1 VERSION: 1.8.2
jobs: jobs:
# ЧАСТЬ 1: Собираем образы и кладем в Gitea (чтобы делиться с ребятами) # ЧАСТЬ 1: Собираем образы и кладем в Gitea (чтобы делиться с ребятами)
+1 -1
View File
@@ -1,6 +1,6 @@
<Project> <Project>
<PropertyGroup> <PropertyGroup>
<Version>1.8.1</Version> <Version>1.8.2</Version>
<TargetFramework>net10.0</TargetFramework> <TargetFramework>net10.0</TargetFramework>
<LangVersion>preview</LangVersion> <LangVersion>preview</LangVersion>
<Nullable>enable</Nullable> <Nullable>enable</Nullable>
+1 -1
View File
@@ -4,7 +4,7 @@
Проект разработан с упором на производительность, архитектуру Vertical Slice, Native AOT (для бота) и удобство развертывания с использованием .NET Aspire. Проект разработан с упором на производительность, архитектуру Vertical Slice, Native AOT (для бота) и удобство развертывания с использованием .NET Aspire.
**Текущая версия:** `v1.8.1`. **Текущая версия:** `v1.8.2`.
--- ---
+2 -2
View File
@@ -17,7 +17,7 @@ services:
retries: 10 retries: 10
bot: bot:
image: git.codeanddice.ru/toutsu/gmrelay-bot:1.8.1 image: git.codeanddice.ru/toutsu/gmrelay-bot:1.8.2
restart: always restart: always
depends_on: depends_on:
db: db:
@@ -29,7 +29,7 @@ services:
- gmrelay - gmrelay
web: web:
image: git.codeanddice.ru/toutsu/gmrelay-web:1.8.1 image: git.codeanddice.ru/toutsu/gmrelay-web:1.8.2
restart: always restart: always
depends_on: depends_on:
db: db:
@@ -56,7 +56,7 @@
</button> </button>
</form> </form>
<div class="nav-version">v1.8.1</div> <div class="nav-version">v1.8.2</div>
</div> </div>
</Authorized> </Authorized>
<NotAuthorized> <NotAuthorized>
@@ -56,13 +56,17 @@
.nav-section { .nav-section {
padding: 0 0.75rem; padding: 0 0.75rem;
flex: 1; flex: 1;
display: flex;
flex-direction: column;
gap: 0.25rem;
} }
/* === Nav Items === */ /* === Nav Items === */
.nav-item { .nav-section ::deep .nav-item {
display: flex; display: flex;
align-items: center; align-items: center;
gap: 0.75rem; gap: 0.75rem;
width: 100%;
padding: 0.625rem 0.875rem; padding: 0.625rem 0.875rem;
border-radius: var(--radius-sm); border-radius: var(--radius-sm);
color: var(--text-secondary); color: var(--text-secondary);
@@ -70,16 +74,16 @@
font-size: 0.875rem; font-size: 0.875rem;
font-weight: 500; font-weight: 500;
transition: all var(--transition-normal); transition: all var(--transition-normal);
margin-bottom: 0.125rem; white-space: nowrap;
box-sizing: border-box;
} }
.nav-item:hover { .nav-section ::deep .nav-item:hover {
background: rgba(255, 255, 255, 0.06); background: rgba(255, 255, 255, 0.06);
color: var(--text-primary); color: var(--text-primary);
} }
.nav-item.active, .nav-section ::deep .nav-item.active {
.nav-item ::deep a.active {
background: rgba(124, 58, 237, 0.15); background: rgba(124, 58, 237, 0.15);
color: var(--accent-primary); color: var(--accent-primary);
border: 1px solid rgba(124, 58, 237, 0.2); border: 1px solid rgba(124, 58, 237, 0.2);
+1 -1
View File
@@ -1,5 +1,5 @@
/* ============================================ /* ============================================
GM-Relay Design System v1.8.1 GM-Relay Design System v1.8.2
Dark RPG Dashboard Theme Dark RPG Dashboard Theme
============================================ */ ============================================ */
@@ -11,6 +11,20 @@ public sealed class CampaignTemplatesNavigationTests
Assert.Contains("Шаблоны", navMenu, StringComparison.Ordinal); Assert.Contains("Шаблоны", navMenu, StringComparison.Ordinal);
} }
[Fact]
public async Task NavMenuStyles_ShouldStyleNavLinkAnchorsAsStackedRows()
{
var navCss = await File.ReadAllTextAsync(FindRepositoryFile("src/GmRelay.Web/Components/Layout/NavMenu.razor.css"));
Assert.Contains("::deep .nav-item", navCss, StringComparison.Ordinal);
Assert.Matches(
@"\.nav-section\s*\{[^}]*display:\s*flex;[^}]*flex-direction:\s*column;[^}]*gap:\s*0\.25rem;",
navCss);
Assert.Matches(
@"::deep\s+\.nav-item\s*\{[^}]*display:\s*flex;[^}]*width:\s*100%;",
navCss);
}
[Fact] [Fact]
public async Task GroupDetails_ShouldApplyTemplatesWithoutManagingThem() public async Task GroupDetails_ShouldApplyTemplatesWithoutManagingThem()
{ {