Check for mobile app access.

This commit is contained in:
Patrick Fic
2022-01-10 14:09:10 -08:00
parent efd7a9abf4
commit 389b637891
11 changed files with 8314 additions and 20 deletions

View File

@@ -24,6 +24,27 @@
<folder_node>
<name>app</name>
<children>
<concept_node>
<name>nomobileaccess</name>
<definition_loaded>false</definition_loaded>
<description></description>
<comment></comment>
<default_text></default_text>
<translations>
<translation>
<language>en-US</language>
<approved>false</approved>
</translation>
<translation>
<language>es-MX</language>
<approved>false</approved>
</translation>
<translation>
<language>fr-CA</language>
<approved>false</approved>
</translation>
</translations>
</concept_node>
<concept_node>
<name>title</name>
<definition_loaded>false</definition_loaded>

View File

@@ -25,7 +25,7 @@ import ScreenMediaBrowser from "../screen-media-browser/screen-media-browser.com
import ScreenSettingsComponent from "../screen-settings/screen-settings.component";
import ScreenSignIn from "../screen-sign-in/screen-sign-in.component";
import ScreenSplash from "../screen-splash/screen-splash.component";
import moment from "moment";
const JobStack = createStackNavigator();
const MoreStack = createStackNavigator();
const BottomTabs = createBottomTabNavigator();
@@ -167,16 +167,27 @@ export function ScreenMainComponent({
checkUserSession;
}, [checkUserSession]);
const hasMobileAccess =
bodyshop &&
bodyshop.features &&
(bodyshop.features.allAccess === true ||
moment(bodyshop.features.mobile).isAfter(moment()));
console.log(
"🚀 ~ file: screen-main.component.jsx ~ line 171 ~ hasMobileAccess",
hasMobileAccess,
bodyshop && bodyshop.features
);
return (
<SafeAreaView style={{ flex: 1 }}>
<NavigationContainer>
{currentUser.authorized === null ? (
<ScreenSplash />
) : currentUser.authorized ? (
bodyshop ? (
bodyshop && hasMobileAccess ? (
<BottomTabsNavigator />
) : (
<ScreenSplash />
<ScreenSplash noAccess />
)
) : (
<ScreenSignIn />

View File

@@ -1,10 +1,10 @@
import React from "react";
import { useTranslation } from "react-i18next";
import { ActivityIndicator, Image, StyleSheet, View } from "react-native";
import { Title } from "react-native-paper";
import { Title, Subheading } from "react-native-paper";
import Logo from "../../assets/logo192.png";
export default function ScreenSplash() {
export default function ScreenSplash({ noAccess }) {
const { t } = useTranslation();
return (
<View style={[localStyles.container]}>
@@ -13,7 +13,15 @@ export default function ScreenSplash() {
<Title>{t("app.title")}</Title>
</View>
<ActivityIndicator color="dodgerblue" size="large" />
{noAccess ? (
<View style={[localStyles.logoContainer]}>
<Subheading style={{ textAlign: "center" }}>
{t("app.nomobileaccess")}
</Subheading>
</View>
) : (
<ActivityIndicator color="dodgerblue" size="large" />
)}
</View>
);
}

View File

@@ -9,6 +9,7 @@ initializeApp(env.firebase);
export const auth = getAuth();
export const unsubscribe = onAuthStateChanged(auth, (user) => {
console.log("Auth State Check", user);
store.dispatch(
user
? signInSuccess({

View File

@@ -6,13 +6,10 @@ export const QUERY_BODYSHOP = gql`
id
jobsizelimit
md_ro_statuses
md_order_statuses
shopname
messagingservicesid
md_referral_sources
md_messaging_presets
md_parts_locations
md_notes_presets
features
}
}
`;

View File

@@ -67,14 +67,13 @@ const link = split(
// split based on operation type
({ query }) => {
const definition = getMainDefinition(query);
// console.log(
// "##Intercepted GQL Transaction : " +
// definition.operation +
// "|" +
// definition.name.value +
// "##",
// query
// );
console.log(
"##Intercepted GQL Transaction : " +
definition.operation +
"|" +
// definition.name.value +
"##"
);
return (
definition.kind === "OperationDefinition" &&
definition.operation === "subscription"
@@ -133,6 +132,10 @@ export const client = new ApolloClient({
defaultOptions: {
watchQuery: {
fetchPolicy: "network-only",
nextFetchPolicy: "network-only",
},
query: {
fetchPolicy: "network-only",
},
},
});

View File

@@ -48,6 +48,7 @@
"i18next": "^21.6.4",
"lodash": "^4.17.20",
"luxon": "^2.2.0",
"moment": "^2.29.1",
"react": "17.0.2",
"react-dom": "17.0.2",
"react-i18next": "^11.15.2",

View File

@@ -1,6 +1,7 @@
{
"translation": {
"app": {
"nomobileaccess": "Your shop does not currently have access to ImEX Mobile. ",
"title": "ImEX Mobile"
},
"camera": {

View File

@@ -1,6 +1,7 @@
{
"translation": {
"app": {
"nomobileaccess": "",
"title": ""
},
"camera": {

View File

@@ -1,6 +1,7 @@
{
"translation": {
"app": {
"nomobileaccess": "",
"title": ""
},
"camera": {

8249
yarn.lock Normal file

File diff suppressed because it is too large Load Diff