feat: add AMSC runway observations
This commit is contained in:
@@ -59,6 +59,14 @@ const MonitorPanel = dynamic(
|
||||
{ ssr: false },
|
||||
);
|
||||
|
||||
const RunwayObservationsPanel = dynamic(
|
||||
() =>
|
||||
import(
|
||||
"@/components/dashboard/scan-terminal/RunwayObservationsPanel"
|
||||
).then((module) => module.RunwayObservationsPanel),
|
||||
{ ssr: false },
|
||||
);
|
||||
|
||||
const CityDetailPanel = dynamic(
|
||||
() =>
|
||||
import("@/components/dashboard/DetailPanel").then(
|
||||
@@ -359,7 +367,7 @@ function ScanTerminalScreen() {
|
||||
/>
|
||||
);
|
||||
}
|
||||
if (resolvedView === "monitor") {
|
||||
if (resolvedView === "monitor" || resolvedView === "runway") {
|
||||
return null; // MonitorPanel is rendered below the main view switch
|
||||
}
|
||||
if (!isPro) {
|
||||
@@ -472,6 +480,15 @@ function ScanTerminalScreen() {
|
||||
>
|
||||
🔥 {isEn ? "Monitor" : "市场监控"}
|
||||
</button>
|
||||
<button
|
||||
type="button"
|
||||
role="tab"
|
||||
aria-selected={resolvedView === "runway"}
|
||||
className={resolvedView === "runway" ? "active" : ""}
|
||||
onClick={() => setActiveView("runway")}
|
||||
>
|
||||
🛬 {isEn ? "Runways" : "跑道观测"}
|
||||
</button>
|
||||
</div>
|
||||
<div className="scan-list-status">
|
||||
{terminalData?.generated_at ? (
|
||||
@@ -539,6 +556,13 @@ function ScanTerminalScreen() {
|
||||
<ProFeaturePaywall feature="monitor" />
|
||||
)
|
||||
)}
|
||||
{resolvedView === "runway" && (
|
||||
isPro ? (
|
||||
<RunwayObservationsPanel />
|
||||
) : (
|
||||
<ProFeaturePaywall feature="monitor" />
|
||||
)
|
||||
)}
|
||||
</section>
|
||||
</main>
|
||||
|
||||
|
||||
Reference in New Issue
Block a user