Refine GSX lockout
This commit is contained in:
@@ -17,6 +17,25 @@ interface PaxProps {
|
||||
const Pax: FC<PaxProps> = ({ WASMData, username }) => {
|
||||
const [selectedTab, setSelectedTab] = useState(0);
|
||||
const [loadingState, setLoadingState] = useState<LoadingState>('preview');
|
||||
const [boardingState, setBoardingState] = useState(1);
|
||||
const [deboardingState, setDeboardingState] = useState(1);
|
||||
|
||||
useEffect(() => {
|
||||
console.log('GSX boarding state changed', boardingState, WASMData.GSX.boardingState);
|
||||
|
||||
if (WASMData.GSX.boardingState < GSX_SERVICE_CALLED) return;
|
||||
|
||||
setBoardingState(WASMData.GSX.boardingState);
|
||||
setDeboardingState(1);
|
||||
}, [WASMData.GSX.boardingState]);
|
||||
useEffect(() => {
|
||||
console.log('GSX deboarding state changed', deboardingState, WASMData.GSX.deboardingState);
|
||||
|
||||
if (WASMData.GSX.deboardingState < GSX_SERVICE_CALLED) return;
|
||||
|
||||
setBoardingState(1);
|
||||
setDeboardingState(WASMData.GSX.deboardingState);
|
||||
}, [WASMData.GSX.deboardingState]);
|
||||
|
||||
const upper1 = (overrideState: LoadingState = loadingState) => {
|
||||
if (overrideState !== 'loaded') return WASMData.targetPayload.business1;
|
||||
@@ -60,9 +79,17 @@ const Pax: FC<PaxProps> = ({ WASMData, username }) => {
|
||||
};
|
||||
|
||||
const GSXActive = () => {
|
||||
// Cases when active:
|
||||
// BOARDING called, running or done
|
||||
// DEBOARDING called, running or done
|
||||
// Cases when not active:
|
||||
// BOARDING not called, disabled
|
||||
// DEBOARDING not called, disabled
|
||||
// BOTH done
|
||||
|
||||
return (
|
||||
(WASMData.GSX.boardingState >= GSX_SERVICE_CALLED || WASMData.GSX.deboardingState >= GSX_SERVICE_CALLED) &&
|
||||
WASMData.GSX.deboardingState !== GSX_SERVICE_FINISHED
|
||||
(boardingState >= GSX_SERVICE_CALLED || deboardingState >= GSX_SERVICE_CALLED) &&
|
||||
deboardingState !== GSX_SERVICE_FINISHED
|
||||
);
|
||||
};
|
||||
|
||||
@@ -76,7 +103,7 @@ const Pax: FC<PaxProps> = ({ WASMData, username }) => {
|
||||
];
|
||||
}
|
||||
|
||||
if (WASMData.options.GSXSync && GSXActive() && WASMData.GSX.boardingState !== GSX_SERVICE_FINISHED) {
|
||||
if (WASMData.options.GSXSync && GSXActive() && boardingState !== GSX_SERVICE_FINISHED) {
|
||||
return [
|
||||
WASMData.targetPayload.ZFWCG.toFixed(1),
|
||||
WASMData.targetPayload.ZFWCG < WASMData.limits.minCG || WASMData.targetPayload.ZFWCG > WASMData.limits.maxCG,
|
||||
@@ -119,8 +146,7 @@ const Pax: FC<PaxProps> = ({ WASMData, username }) => {
|
||||
CGs={CGs()}
|
||||
done={
|
||||
WASMData.options.GSXSync
|
||||
? WASMData.GSX.boardingState === GSX_SERVICE_FINISHED &&
|
||||
WASMData.GSX.deboardingState !== GSX_SERVICE_FINISHED
|
||||
? boardingState === GSX_SERVICE_FINISHED && deboardingState !== GSX_SERVICE_FINISHED
|
||||
: loadingState !== 'preview'
|
||||
}
|
||||
/>
|
||||
@@ -132,13 +158,28 @@ const Pax: FC<PaxProps> = ({ WASMData, username }) => {
|
||||
setSelectedTab={setSelectedTab}
|
||||
/>
|
||||
{username && selectedTab === 0 && (
|
||||
<SBEntryPax WASMData={WASMData} loadingState={loadingState} setLoadingState={setLoadingState} />
|
||||
<SBEntryPax
|
||||
WASMData={WASMData}
|
||||
loadingState={loadingState}
|
||||
setLoadingState={setLoadingState}
|
||||
gsxActive={GSXActive()}
|
||||
/>
|
||||
)}
|
||||
{((username && selectedTab === 1) || (!username && selectedTab === 0)) && (
|
||||
<ZFWEntryPax WASMData={WASMData} loadingState={loadingState} setLoadingState={setLoadingState} />
|
||||
<ZFWEntryPax
|
||||
WASMData={WASMData}
|
||||
loadingState={loadingState}
|
||||
setLoadingState={setLoadingState}
|
||||
gsxActive={GSXActive()}
|
||||
/>
|
||||
)}
|
||||
{((username && selectedTab === 2) || (!username && selectedTab === 1)) && (
|
||||
<StationEntryPax WASMData={WASMData} loadingState={loadingState} setLoadingState={setLoadingState} />
|
||||
<StationEntryPax
|
||||
WASMData={WASMData}
|
||||
loadingState={loadingState}
|
||||
setLoadingState={setLoadingState}
|
||||
gsxActive={GSXActive()}
|
||||
/>
|
||||
)}
|
||||
{((username && selectedTab === 3) || (!username && selectedTab === 2)) && (
|
||||
<OptionsPax WASMData={WASMData} loadingState={loadingState} />
|
||||
|
||||
Reference in New Issue
Block a user