diff --git a/libs/shell/layout/src/index.ts b/libs/shell/layout/src/index.ts index fb2a8704b..a835806a9 100644 --- a/libs/shell/layout/src/index.ts +++ b/libs/shell/layout/src/index.ts @@ -1 +1 @@ -export * from './lib/shell-layout/shell-layout.component'; +export * from './lib/shell-layout.component'; diff --git a/libs/shell/layout/src/lib/components/network-status-banner.component.css b/libs/shell/layout/src/lib/components/network-status-banner.component.css new file mode 100644 index 000000000..de4b1a53a --- /dev/null +++ b/libs/shell/layout/src/lib/components/network-status-banner.component.css @@ -0,0 +1,11 @@ +:host { + @apply none fixed inset-x-0 top-0 z-50 flex justify-center p-4 text-center; +} + +:host.online { + @apply block bg-isa-accent-green text-white; +} + +:host.offline { + @apply block bg-isa-accent-red text-white; +} diff --git a/libs/shell/layout/src/lib/components/network-status-banner.component.html b/libs/shell/layout/src/lib/components/network-status-banner.component.html new file mode 100644 index 000000000..bebd69f15 --- /dev/null +++ b/libs/shell/layout/src/lib/components/network-status-banner.component.html @@ -0,0 +1,12 @@ +@switch (networkStatus()) { + @case ('online') { +
Sie sind wieder online.
+ } + @case ('offline') { +
Sie sind offline, keine Verbindung zum Netzwerk.
+
+ Bereits geladene Ihnalte werden angezeigt, Interaktionen sind aktuell + nicht möglich. +
+ } +} diff --git a/libs/shell/layout/src/lib/components/network-status-banner.component.ts b/libs/shell/layout/src/lib/components/network-status-banner.component.ts new file mode 100644 index 000000000..dbf77d7ad --- /dev/null +++ b/libs/shell/layout/src/lib/components/network-status-banner.component.ts @@ -0,0 +1,17 @@ +import { ChangeDetectionStrategy, Component } from '@angular/core'; +import { injectNetworkStatus } from '@isa/core/connectivity'; + +@Component({ + selector: 'shell-network-status-banner', + templateUrl: './network-status-banner.component.html', + styleUrls: ['./network-status-banner.component.css'], + changeDetection: ChangeDetectionStrategy.OnPush, + imports: [], + host: { + '[class.online]': "networkStatus() === 'online'", + '[class.offline]': "networkStatus() === 'offline'", + }, +}) +export class NetworkBannerStatusComponent { + readonly networkStatus = injectNetworkStatus(); +} diff --git a/libs/shell/layout/src/lib/shell-layout.component.css b/libs/shell/layout/src/lib/shell-layout.component.css new file mode 100644 index 000000000..7cce79a90 --- /dev/null +++ b/libs/shell/layout/src/lib/shell-layout.component.css @@ -0,0 +1,3 @@ +:host { + @apply block h-full w-full; +} diff --git a/libs/shell/layout/src/lib/shell-layout.component.html b/libs/shell/layout/src/lib/shell-layout.component.html new file mode 100644 index 000000000..ecb4d3231 --- /dev/null +++ b/libs/shell/layout/src/lib/shell-layout.component.html @@ -0,0 +1,2 @@ + + diff --git a/libs/shell/layout/src/lib/shell-layout.component.ts b/libs/shell/layout/src/lib/shell-layout.component.ts new file mode 100644 index 000000000..cec4837c6 --- /dev/null +++ b/libs/shell/layout/src/lib/shell-layout.component.ts @@ -0,0 +1,12 @@ +import { ChangeDetectionStrategy, Component } from '@angular/core'; +import { RouterOutlet } from '@angular/router'; +import { NetworkBannerStatusComponent } from './components/network-status-banner.component'; + +@Component({ + selector: 'shell-layout', + templateUrl: './shell-layout.component.html', + styleUrls: ['./shell-layout.component.css'], + changeDetection: ChangeDetectionStrategy.OnPush, + imports: [RouterOutlet, NetworkBannerStatusComponent], +}) +export class ShellLayoutComponent {} diff --git a/libs/shell/layout/src/lib/shell-layout/shell-layout.component.css b/libs/shell/layout/src/lib/shell-layout/shell-layout.component.css deleted file mode 100644 index e69de29bb..000000000 diff --git a/libs/shell/layout/src/lib/shell-layout/shell-layout.component.html b/libs/shell/layout/src/lib/shell-layout/shell-layout.component.html deleted file mode 100644 index 8ee25be96..000000000 --- a/libs/shell/layout/src/lib/shell-layout/shell-layout.component.html +++ /dev/null @@ -1 +0,0 @@ -

ShellLayout works!

diff --git a/libs/shell/layout/src/lib/shell-layout/shell-layout.component.spec.ts b/libs/shell/layout/src/lib/shell-layout/shell-layout.component.spec.ts deleted file mode 100644 index a938b6d81..000000000 --- a/libs/shell/layout/src/lib/shell-layout/shell-layout.component.spec.ts +++ /dev/null @@ -1,21 +0,0 @@ -import { ComponentFixture, TestBed } from '@angular/core/testing'; -import { ShellLayoutComponent } from './shell-layout.component'; - -describe('ShellLayoutComponent', () => { - let component: ShellLayoutComponent; - let fixture: ComponentFixture; - - beforeEach(async () => { - await TestBed.configureTestingModule({ - imports: [ShellLayoutComponent], - }).compileComponents(); - - fixture = TestBed.createComponent(ShellLayoutComponent); - component = fixture.componentInstance; - fixture.detectChanges(); - }); - - it('should create', () => { - expect(component).toBeTruthy(); - }); -}); diff --git a/libs/shell/layout/src/lib/shell-layout/shell-layout.component.ts b/libs/shell/layout/src/lib/shell-layout/shell-layout.component.ts deleted file mode 100644 index 1986f4db2..000000000 --- a/libs/shell/layout/src/lib/shell-layout/shell-layout.component.ts +++ /dev/null @@ -1,10 +0,0 @@ -import { Component } from '@angular/core'; -import { CommonModule } from '@angular/common'; - -@Component({ - selector: 'shell-shell-layout', - imports: [CommonModule], - templateUrl: './shell-layout.component.html', - styleUrl: './shell-layout.component.css', -}) -export class ShellLayoutComponent {}