1- import { ComponentProps , DisplayComponent , FSComponent , Subscribable , VNode } from "@microsoft/msfs-sdk"
1+ import { ComponentProps , DisplayComponent , FSComponent , MappedSubject , Subscribable , VNode } from "@microsoft/msfs-sdk"
22import { PackageInfo } from "@navigraph/msfs-navigation-data-interface"
33
44interface DashboardProps extends ComponentProps {
55 databases : Subscribable < PackageInfo [ ] >
6+ activeDatabase : Subscribable < PackageInfo | null >
67}
78
89export class Dashboard extends DisplayComponent < DashboardProps > {
10+ public renderDatabaseInfo ( ) : VNode | void {
11+ return (
12+ < >
13+ < div
14+ class = { this . props . activeDatabase . map (
15+ status =>
16+ `p-4 flex flex-col align-middle items-start flex-start space-y-6 ${ status ? "vertical" : "hidden" } ` ,
17+ ) }
18+ >
19+ < div class = "flex flex-col space-y-2" >
20+ < p class = "text-3xl" > Bundled</ p >
21+ < p class = "text-2xl text-gray-400" > { this . props . activeDatabase . map ( s => s ?. is_bundled ) } </ p >
22+ </ div >
23+ < div class = "flex flex-col space-y-2" >
24+ < p class = "text-3xl" > Installed format</ p >
25+ < p class = "text-2xl text-gray-400" >
26+ { this . props . activeDatabase . map ( s => `${ s ?. cycle . format } revision ${ s ?. cycle . revision } ` ) }
27+ </ p >
28+ </ div >
29+ < div class = "flex flex-col space-y-2" >
30+ < p class = "text-3xl" > Active path</ p >
31+ < p class = "text-2xl text-gray-400" > { this . props . activeDatabase . map ( s => s ?. path ) } </ p >
32+ </ div >
33+ < div class = "flex flex-col space-y-2" >
34+ < p class = "text-3xl" > Active cycle</ p >
35+ < p class = "text-2xl text-gray-400" > { this . props . activeDatabase . map ( s => s ?. cycle . cycle ) } </ p >
36+ </ div >
37+ < div class = "flex flex-col space-y-2" >
38+ < p class = "text-3xl" > Validity period</ p >
39+ < p class = "text-2xl text-gray-400" > { this . props . activeDatabase . map ( s => s ?. cycle . validityPeriod ) } </ p >
40+ </ div >
41+ </ div >
42+ </ >
43+ )
44+ }
45+
946 render ( ) : VNode {
1047 return (
1148 < div class = "size-full flex flex-col" >
12- < p class = "mb-8 text-4xl " > Dashboard</ p >
49+ < p class = "mb-8 text-6xl " > Dashboard</ p >
1350 < div class = "flex flex-row flex-grow flex-auto space-x-4" >
1451 < div class = "w-1/3 flex flex-col" >
15- < p class = "text-2xl mb-4" > Databases</ p >
52+ < p class = "text-3xl mb-4" > Databases</ p >
1653 < div class = "mt-2 flex-grow rounded-xl bg-ng-background-500" >
1754 { this . props . databases . map ( val =>
1855 val . map ( pkgs => (
@@ -26,8 +63,8 @@ export class Dashboard extends DisplayComponent<DashboardProps> {
2663 </ div >
2764 </ div >
2865 < div class = "flex flex-col flex-grow" >
29- < p class = "text-2xl mb-4" > Info</ p >
30- < div class = "mt-2 flex-grow rounded-xl bg-ng-background-500" > </ div >
66+ < p class = "text-3xl mb-4" > Info</ p >
67+ < div class = "mt-2 flex-grow rounded-xl bg-ng-background-500" > { this . renderDatabaseInfo ( ) } </ div >
3168 </ div >
3269 </ div >
3370 </ div >
0 commit comments