Skip to content

Commit

Permalink
merged from master
Browse files Browse the repository at this point in the history
  • Loading branch information
Dahly96 committed Feb 24, 2025
2 parents cb2eb12 + 2ba35b0 commit 36fb7ba
Show file tree
Hide file tree
Showing 7 changed files with 82 additions and 61 deletions.
43 changes: 20 additions & 23 deletions src/mobile-token/MobileTokenContext.tsx
Original file line number Diff line number Diff line change
Expand Up @@ -9,7 +9,6 @@ import React, {
import {useAuthContext} from '@atb/auth';
import {useRemoteConfigContext} from '@atb/RemoteConfigContext';
import {
IntercomTokenStatus,
MobileTokenStatus,
RemoteToken,
Token,
Expand Down Expand Up @@ -114,14 +113,26 @@ export const MobileTokenContextProvider: React.FC = ({children}) => {
} = useLoadNativeTokenQuery(enabled, userId, traceId.current);

useEffect(() => {
updateMetadata({
'AtB-Mobile-Token-Id': nativeToken ? nativeToken.tokenId : 'undefined',
'AtB-Mobile-Token-Status': getAttestationStatus(nativeToken),
'AtB-Mobile-Token-Error-Correlation-Id': nativeToken
? 'undefined'
: traceId.current,
});
}, [nativeToken, updateMetadata]);
if (nativeTokenStatus === 'success') {
const tokenStatus = nativeToken.isAttested()
? 'attested'
: 'non-attested';

updateMetadata({
'AtB-Mobile-Token-Id': nativeToken.tokenId,
'AtB-Mobile-Token-Status': tokenStatus,
'AtB-Mobile-Token-Error-Correlation-Id': undefined,
});
tokenService.postTokenStatus(nativeToken.tokenId, tokenStatus, undefined);
} else if (nativeTokenStatus === 'error') {
updateMetadata({
'AtB-Mobile-Token-Id': undefined,
'AtB-Mobile-Token-Status': 'error',
'AtB-Mobile-Token-Error-Correlation-Id': traceId.current,
});
tokenService.postTokenStatus(undefined, 'error', traceId.current);
}
}, [nativeToken, nativeTokenStatus, updateMetadata]);

const {
data: remoteTokens,
Expand Down Expand Up @@ -368,17 +379,3 @@ const getTokenToggleDetails = async () => {
return undefined;
}
};

function getAttestationStatus(
nativeToken: ActivatedToken | undefined,
): IntercomTokenStatus {
if (nativeToken) {
if (nativeToken.isAttested()) {
return 'attested';
} else {
return 'non-attested';
}
} else {
return 'error';
}
}
19 changes: 19 additions & 0 deletions src/mobile-token/tokenService.ts
Original file line number Diff line number Diff line change
Expand Up @@ -40,6 +40,11 @@ export type TokenService = RemoteTokenService & {
) => Promise<RemoteToken[]>;
validate: (token: ActivatedToken, traceId: string) => Promise<void>;
getTokenToggleDetails: () => Promise<TokenLimitResponse>;
postTokenStatus: (
tokenId: string | undefined,
tokenStatus: string,
traceId: string | undefined,
) => Promise<void>;
};

const handleError = (err: any) => {
Expand Down Expand Up @@ -232,4 +237,18 @@ export const tokenService: TokenService = {
.catch(handleError),
);
},
postTokenStatus: async (tokenId, tokenStatus, traceId) => {
await client.post(
'/token/v1/status',
{
mobileTokenId: tokenId,
mobileTokenStatus: tokenStatus,
mobileTokenErrorCorrelationId: traceId,
},
{
authWithIdToken: true,
timeout: 15000,
},
);
},
};
5 changes: 3 additions & 2 deletions src/mobility/components/ScooterSheet.tsx
Original file line number Diff line number Diff line change
Expand Up @@ -23,7 +23,7 @@ import {FormFactor} from '@atb/api/types/generated/mobility-types_v2';
import {useDoOnceOnItemReceived} from '../use-do-once-on-item-received';
import {useFeatureTogglesContext} from '@atb/modules/feature-toggles';
import {VehicleCard} from './VehicleCard';
import {ShmoActionButtons} from './ShmoActionButtons';
import {ShmoActionButton} from './ShmoActionButtons';
import {useOperators} from '../use-operators';

type Props = {
Expand All @@ -32,6 +32,7 @@ type Props = {
onReportParkingViolation: () => void;
onVehicleReceived?: (vehicle: VehicleExtendedFragment) => void;
navigateSupportCallback: () => void;

loginCallback: () => void;
};

Expand Down Expand Up @@ -100,7 +101,7 @@ export const ScooterSheet = ({
mobilityOperators?.find((e) => e.id === operatorId)
?.isDeepIntegrationEnabled ? (
<>
<ShmoActionButtons onLogin={loginCallback} />
<ShmoActionButton onLogin={loginCallback} />
<Button
expanded={true}
onPress={navigateSupportCallback}
Expand Down
19 changes: 9 additions & 10 deletions src/mobility/components/ShmoActionButtons.tsx
Original file line number Diff line number Diff line change
Expand Up @@ -5,36 +5,35 @@ import React from 'react';
import {useShmoRequirements} from '../use-shmo-requirements.tsx';
import {ButtonInfoTextCombo} from './ButtonInfoTextCombo.tsx';

type ShmoActionButtonsProps = {
type ShmoActionButtonProps = {
onLogin: () => void;
};

export const ShmoActionButtons = ({onLogin}: ShmoActionButtonsProps) => {
export const ShmoActionButton = ({onLogin}: ShmoActionButtonProps) => {
const {authenticationType} = useAuthContext();

const {blockers} = useShmoRequirements();
const {hasBlockers} = useShmoRequirements();

const {t} = useTranslation();

if (authenticationType != 'phone') {
return (
<ButtonInfoTextCombo
onPress={onLogin}
buttonText={t(MobilityTexts.loginBlocker)}
message={t(MobilityTexts.loginBlockerInfoMessage)}
buttonText={t(MobilityTexts.shmoRequirements.loginBlocker)}
message={t(MobilityTexts.shmoRequirements.loginBlockerInfoMessage)}
/>
);
}

// check if a user has any blockers for shmo
if (blockers.some((blocker) => blocker.isBlocking)) {
if (hasBlockers) {
return (
<ButtonInfoTextCombo
onPress={() => {
console.log('ButtonPress');
//console.log('ButtonPress');
}}
buttonText={t(MobilityTexts.shmoBlockers)}
message={t(MobilityTexts.shmoBlockersInfoMessage)}
buttonText={t(MobilityTexts.shmoRequirements.shmoBlockers)}
message={t(MobilityTexts.shmoRequirements.shmoBlockersInfoMessage)}
/>
);
}
Expand Down
2 changes: 1 addition & 1 deletion src/mobility/types.ts
Original file line number Diff line number Diff line change
Expand Up @@ -5,7 +5,7 @@ export enum ShmoRequirementEnum {
}

export type ShmoRequirementType = {
requirement: ShmoRequirementEnum;
requirementCode: ShmoRequirementEnum;
isLoading: boolean;
isBlocking: boolean;
};
13 changes: 8 additions & 5 deletions src/mobility/use-shmo-requirements.tsx
Original file line number Diff line number Diff line change
Expand Up @@ -7,25 +7,28 @@ export const useShmoRequirements = () => {
const {data: recurringPayments, isLoading: paymentsLoading} =
useListRecurringPaymentsQuery();

const blockers: ShmoRequirementType[] = [
const requirements: ShmoRequirementType[] = [
{
requirement: ShmoRequirementEnum.LOCATION,
requirementCode: ShmoRequirementEnum.LOCATION,
isLoading: false,
isBlocking: !locationIsAvailable,
},
{
requirement: ShmoRequirementEnum.PAYMENT_CARD,
requirementCode: ShmoRequirementEnum.PAYMENT_CARD,
isLoading: paymentsLoading,
isBlocking: recurringPayments ? recurringPayments?.length === 0 : true,
},
{
requirement: ShmoRequirementEnum.TERMS_AND_CONDITIONS,
requirementCode: ShmoRequirementEnum.TERMS_AND_CONDITIONS,
isLoading: false,
isBlocking: true,
},
];

const hasBlockers = requirements.some((req) => req.isBlocking);

return {
blockers,
requirements,
hasBlockers,
};
};
42 changes: 22 additions & 20 deletions src/translations/screens/subscreens/MobilityTexts.ts
Original file line number Diff line number Diff line change
Expand Up @@ -23,26 +23,28 @@ export const MobilityTexts = {
return _('Annet', 'Other', 'Annet');
}
},
loginBlocker: _(
'Logg inn for å starte turen',
'Log in to start the trip',
'Logg inn for å starte turen',
),
loginBlockerInfoMessage: _(
'Du må logge inn og ordne noen småting for å starte turen',
'You need to log in and fix some things to start the trip',
'Du må logge inn og ordne nokre småting for å starte turen',
),
shmoBlockers: _(
'Ordne småting for å starte turen',
'Fix some things to start the trip',
'Ordne nokre småting for å starte turen',
),
shmoBlockersInfoMessage: _(
'Du må ordne noen småting for å starte turen',
'You need to fix some things to start the trip',
'Du må ordne nokre småting for å starte turen',
),
shmoRequirements: {
loginBlocker: _(
'Logg inn for å starte turen',
'Log in to start the trip',
'Logg inn for å starte turen',
),
loginBlockerInfoMessage: _(
'Du må logge inn og ordne noen småting for å starte turen',
'You need to log in and fix some things to start the trip',
'Du må logge inn og ordne nokre småting for å starte turen',
),
shmoBlockers: _(
'Ordne småting for å starte turen',
'Fix some things to start the trip',
'Ordne nokre småting for å starte turen',
),
shmoBlockersInfoMessage: _(
'Du må ordne noen småting for å starte turen',
'You need to fix some things to start the trip',
'Du må ordne nokre småting for å starte turen',
),
},
helpText: _('Trenger du hjelp?', 'Need help?', 'Treng du hjelp?'),
unknownOperator: _('Ukjent operatør', 'Unknown operator', 'Ukjent operatør'),
operatorAppSwitchButton: (operator: string) =>
Expand Down

0 comments on commit 36fb7ba

Please sign in to comment.