diff --git a/examples/client/Locomotion/src/Components/EmptyState/index.tsx b/examples/client/Locomotion/src/Components/EmptyState/index.tsx
new file mode 100644
index 000000000..998270cca
--- /dev/null
+++ b/examples/client/Locomotion/src/Components/EmptyState/index.tsx
@@ -0,0 +1,26 @@
+import React from 'react';
+import {
+ Container, Description, Title, TitleWithoutDescription,
+} from './styled';
+
+interface EmptyStateProps {
+ title: string;
+ description?: string;
+}
+const EmptyState = ({
+ title,
+ description,
+}: EmptyStateProps) => (
+
+ {description
+ ? {title}
+ : {title}
+ }
+
+ {description ? {description} : null}
+
+);
+EmptyState.defaultProps = {
+ description: '',
+};
+export default EmptyState;
diff --git a/examples/client/Locomotion/src/Components/EmptyState/styled.ts b/examples/client/Locomotion/src/Components/EmptyState/styled.ts
new file mode 100644
index 000000000..7d5ed2e74
--- /dev/null
+++ b/examples/client/Locomotion/src/Components/EmptyState/styled.ts
@@ -0,0 +1,42 @@
+import { Text, View } from 'react-native';
+import styled from 'styled-components';
+
+export const Container = styled(View)`
+border-radius: 8px;
+border: 1px dashed rgba(125, 139, 172, 0.32);
+display: flex;
+padding: 16px;
+flex-direction: column;
+justify-content: center;
+align-items: center;
+margin: 4px;
+flex: 1 0 0;
+align-self: stretch;
+`;
+export const Title = styled(Text)`
+align-self: stretch;
+color: #212229;
+text-align: center;
+font-family: Inter;
+font-size: 14px;
+font-style: normal;
+font-weight: 600;
+`;
+export const Description = styled(Text)`
+align-self: stretch;
+color: #666975;
+text-align: center;
+font-family: Inter;
+font-size: 14px;
+font-style: normal;
+font-weight: 400;
+`;
+export const TitleWithoutDescription = styled(Text)`
+align-self: stretch;
+color: #666975;
+text-align: center;
+font-family: Inter;
+font-size: 14px;
+font-style: normal;
+font-weight: 500;
+`;
diff --git a/examples/client/Locomotion/src/I18n/en.json b/examples/client/Locomotion/src/I18n/en.json
index 50eca14ab..56d4da2f4 100644
--- a/examples/client/Locomotion/src/I18n/en.json
+++ b/examples/client/Locomotion/src/I18n/en.json
@@ -45,6 +45,10 @@
"tags": {
"fastest": "Fastest",
"cheapest": "Cheapest"
+ },
+ "emptyState": {
+ "title": "There are no available services",
+ "description": "Try changing the ride schedule or select a different payment method"
}
},
"rideDetails": {
@@ -290,6 +294,7 @@
"save": "Save",
"cancel": "Cancel",
"unavailable": "Unavailable for the selected service",
+ "emptyStateText": "No credit cards were added",
"tabs": {
"personal": "Personal",
"business": "Business"
diff --git a/examples/client/Locomotion/src/pages/ActiveRide/RideDrawer/RideOptions/ServiceOptions/index.js b/examples/client/Locomotion/src/pages/ActiveRide/RideDrawer/RideOptions/ServiceOptions/index.js
index 77bc73bd7..7c2d93376 100644
--- a/examples/client/Locomotion/src/pages/ActiveRide/RideDrawer/RideOptions/ServiceOptions/index.js
+++ b/examples/client/Locomotion/src/pages/ActiveRide/RideDrawer/RideOptions/ServiceOptions/index.js
@@ -1,6 +1,7 @@
import React, { useContext, useEffect } from 'react';
import SkeletonContent from 'react-native-skeleton-content-nonexpo';
import { Text } from 'react-native';
+import EmptyState from '../../../../../Components/EmptyState';
import { getCouponText } from '../../../../../context/newRideContext/utils';
import { RidePageContext } from '../../../../../context/newRideContext';
import { UserContext } from '../../../../../context/user';
@@ -55,13 +56,22 @@ const ServiceOptions = () => {
return (
- {(serviceEstimations || []).map(option => (
-
- ))}
+
+ { serviceEstimations?.length === 0
+ ? (
+
+ )
+ : (serviceEstimations || []).map(option => (
+
+ ))
+ }
{!isDebuggingEnabled
? (
(
+ personalPaymentMethods.length > 0
+ ? (personalPaymentMethods.map((paymentMethod: any) => {
+ const reason = getDisabledReason(paymentMethod);
+ return (
+ {
+ setSelectedPaymentId(paymentMethod.id);
+ }}
+ />
+ );
+ })
+ ) : (
+
+ )
+ );
+
return (
);
})
- ) : (
- personalPaymentMethods.map((paymentMethod: any) => {
- const reason = getDisabledReason(paymentMethod);
- return (
- {
- setSelectedPaymentId(paymentMethod.id);
- }}
- />
- );
- })
- )}
+ ) : renderPersonalPaymentMethods()}
{ !isBusinessMode && (