|
2 | 2 | import ThemeSelector from './theme-selector.svelte'; |
3 | 3 | import Fa from 'svelte-fa'; |
4 | 4 | import { faAlignJustify } from '@fortawesome/free-solid-svg-icons'; |
| 5 | + import { _ } from 'svelte-i18n'; |
5 | 6 | let navbarExtended = false; |
| 7 | +
|
| 8 | + /** |
| 9 | + * Checks if the user clicked outside of the navbar and the |
| 10 | + * navbar gets minimized, if it was extended before. |
| 11 | + * |
| 12 | + * @param event The PointerEvent triggered by a click |
| 13 | + */ |
| 14 | + const handleClick = (event: PointerEvent) => { |
| 15 | + if (!document.getElementById('navbar').contains(event.target as Node)) { |
| 16 | + navbarExtended = false; |
| 17 | + } |
| 18 | + }; |
| 19 | +
|
| 20 | + // Adding click listener to the whole window |
| 21 | + window.addEventListener('click', handleClick); |
6 | 22 | </script> |
7 | 23 |
|
8 | | -<div class={`navbar ${navbarExtended ? 'extended' : ''}`}> |
| 24 | +<div id="navbar" class={`navbar ${navbarExtended ? 'extended' : ''}`}> |
9 | 25 | <div |
10 | 26 | class="navbar-toggler" |
11 | 27 | on:click={() => { |
|
15 | 31 | <Fa icon={faAlignJustify} /> |
16 | 32 | </div> |
17 | 33 | <div class="navbar-menu"> |
18 | | - <a href="/">Home</a> |
19 | | - <a href="/basic">Basic</a> |
20 | | - <a href="/vector">Vector</a> |
21 | | - <a href="/stochastics">Stochastics</a> |
| 34 | + <a href="/">{$_('navbar.home')}</a> |
| 35 | + <a href="/basic">{$_('navbar.basic')}</a> |
| 36 | + <a href="/vector">{$_('navbar.vector')}</a> |
| 37 | + <a href="/stochastics">{$_('navbar.stochastics')}</a> |
22 | 38 | </div> |
23 | 39 | <div class="navbar-actions"> |
24 | 40 | <ThemeSelector /> |
|
0 commit comments