• Home
  • Features
  • Pricing
  • Docs
  • Announcements
  • Sign In

samsmithnz / SatisfactoryTree / 17901390351

22 Sep 2025 12:51AM UTC coverage: 68.078% (+0.3%) from 67.811%
17901390351

push

github

web-flow
Merge pull request #310 from samsmithnz/FixingImportsAgain

Added new imported item type

427 of 736 branches covered (58.02%)

Branch coverage included in aggregate %.

91 of 185 new or added lines in 10 files covered. (49.19%)

7 existing lines in 3 files now uncovered.

1149 of 1579 relevant lines covered (72.77%)

1172.07 hits per line

Source File
Press 'n' to go to next uncovered line, 'b' for previous

0.0
/src/SatisfactoryTree.Web/Layout/NavMenu.razor
1
@using SatisfactoryTree.Web.Services
2
@inject PlanService PlanService
3
@implements IDisposable
4

5
<div class="top-row ps-3 navbar navbar-dark">
6
    <div class="container-fluid">
7
        <a class="navbar-brand" href="">SatisfactoryTree.Web</a>
8
        <button title="Navigation menu" class="navbar-toggler" @onclick="ToggleNavMenu">
9
            <span class="navbar-toggler-icon"></span>
10
        </button>
11
    </div>
12
</div>
13

14
<div class="@NavMenuCssClass nav-scrollable" @onclick="ToggleNavMenu">
15
    <nav class="flex-column">
16
        <div class="nav-item px-3">
17
            <NavLink class="nav-link" href="" Match="NavLinkMatch.All">
18
                <span class="bi bi-house-door-fill-nav-menu" aria-hidden="true"></span> Home
19
            </NavLink>
20
        </div>
21
        <div class="nav-item px-3">
22
            <NavLink class="nav-link" href="counter">
23
                <span class="bi bi-plus-square-fill-nav-menu" aria-hidden="true"></span> Counter
24
            </NavLink>
25
        </div>
26
        <div class="nav-item px-3">
27
            <NavLink class="nav-link" href="weather">
28
                <span class="bi bi-list-nested-nav-menu" aria-hidden="true"></span> Weather
29
            </NavLink>
30
        </div>
31

NEW
32
        @if (PlanService.HasPlan && PlanService.Plan?.Factories != null && PlanService.Plan.Factories.Any())
×
NEW
33
        {
×
34
            <hr class="nav-divider">
35
            <div class="nav-section-header px-3">
36
                <small class="text-muted text-uppercase">Factories</small>
37
            </div>
NEW
38
            @foreach (var factory in PlanService.Plan.Factories)
×
NEW
39
            {
×
40
                <div class="nav-item px-3">
NEW
41
                    <a class="nav-link factory-link" href="#@GetFactoryAnchor(factory)" @onclick="() => ScrollToFactory(factory)" @onclick:preventDefault="false">
×
42
                        <span class="bi bi-gear-fill" aria-hidden="true"></span> 
NEW
43
                        <span class="factory-name">@factory.Name</span>
×
44
                    </a>
45
                </div>
NEW
46
            }
×
NEW
47
        }
×
48
    </nav>
49
</div>
50

51
@code {
52
    private bool collapseNavMenu = true;
×
53

54
    private string? NavMenuCssClass => collapseNavMenu ? "collapse" : null;
×
55

56
    protected override void OnInitialized()
NEW
57
    {
×
NEW
58
        PlanService.PlanChanged += StateHasChanged;
×
NEW
59
    }
×
60

61
    public void Dispose()
NEW
62
    {
×
NEW
63
        PlanService.PlanChanged -= StateHasChanged;
×
NEW
64
    }
×
65

66
    private void ToggleNavMenu()
67
    {
×
68
        collapseNavMenu = !collapseNavMenu;
×
69
    }
×
70

71
    private string GetFactoryAnchor(SatisfactoryTree.Logic.Models.Factory factory)
NEW
72
    {
×
73
        // Create a URL-friendly anchor from the factory name
NEW
74
        return factory.Name.ToLowerInvariant()
×
NEW
75
            .Replace(" ", "-")
×
NEW
76
            .Replace("'", "")
×
NEW
77
            .Replace("&", "and")
×
NEW
78
            .Replace("/", "-")
×
NEW
79
            .Replace("\\", "-")
×
NEW
80
            .Replace("(", "")
×
NEW
81
            .Replace(")", "");
×
NEW
82
    }
×
83

84
    private async Task ScrollToFactory(SatisfactoryTree.Logic.Models.Factory factory)
NEW
85
    {
×
86
        // Close the nav menu on mobile after clicking
NEW
87
        collapseNavMenu = true;
×
88
        
89
        // Small delay to let the page render and nav menu close
NEW
90
        await Task.Delay(100);
×
91
        
92
        // The browser will handle the anchor scrolling automatically due to the href="#anchor"
93
        // The CSS smooth scrolling will make it animate nicely
NEW
94
        StateHasChanged();
×
NEW
95
    }
×
96
}
STATUS · Troubleshooting · Open an Issue · Sales · Support · CAREERS · ENTERPRISE · START FREE · SCHEDULE DEMO
ANNOUNCEMENTS · TWITTER · TOS & SLA · Supported CI Services · What's a CI service? · Automated Testing

© 2026 Coveralls, Inc