| | | 1 | | @* Shared footer component for both public and authenticated layouts *@ |
| | | 2 | | @inject IVersionService VersionService |
| | | 3 | | |
| | | 4 | | <footer class="chronicis-footer"> |
| | | 5 | | <div class="chronicis-footer-content"> |
| | | 6 | | <div class="chronicis-footer-brand"> |
| | | 7 | | <img src="/images/logo.png" alt="Chronicis" /> |
| | | 8 | | <span>Chronicis</span> |
| | | 9 | | </div> |
| | | 10 | | <nav class="chronicis-footer-nav"> |
| | | 11 | | <a href="/">Home</a> |
| | | 12 | | <a href="/about">About</a> |
| | | 13 | | <a href="/change-log">Change Log</a> |
| | | 14 | | <a href="/privacy">Privacy Policy</a> |
| | | 15 | | <a href="/terms-of-service">Terms of Service</a> |
| | | 16 | | <a href="/licenses">Licenses</a> |
| | | 17 | | </nav> |
| | | 18 | | <p class="chronicis-footer-copy"> |
| | 17 | 19 | | © @DateTime.Now.Year Chronicis. Made by <i class="fa-solid fa-person"></i> and <i class="fa-solid fa-robot"> |
| | | 20 | | </p> |
| | 17 | 21 | | @if (!string.IsNullOrEmpty(_version)) |
| | | 22 | | { |
| | 16 | 23 | | <span class="footer-version" title="Build @_sha">v@(_version)</span> |
| | | 24 | | } |
| | | 25 | | </div> |
| | | 26 | | </footer> |
| | | 27 | | |
| | | 28 | | @code { |
| | 17 | 29 | | private string _version = string.Empty; |
| | 17 | 30 | | private string _sha = string.Empty; |
| | | 31 | | |
| | | 32 | | protected override async Task OnInitializedAsync() |
| | | 33 | | { |
| | | 34 | | var info = await VersionService.GetBuildInfoAsync(); |
| | | 35 | | _version = info.Version; |
| | | 36 | | _sha = info.Sha; |
| | | 37 | | } |
| | | 38 | | } |