Timetickets Fixes

This commit is contained in:
Patrick Fic
2023-08-04 15:36:16 -07:00
parent 31735b947a
commit a07d28670d
8 changed files with 77 additions and 87 deletions

View File

@@ -18,7 +18,7 @@ import ErrorDisplay from "../error-display/error-display.component";
const mapStateToProps = createStructuredSelector({
currentEmployee: selectCurrentEmployee,
signingIn: selectSigningIn,
signingError: selectSignInError,
signinError: selectSignInError,
});
const mapDispatchToProps = (dispatch) => ({
@@ -27,7 +27,7 @@ const mapDispatchToProps = (dispatch) => ({
});
export function EmployeeSignIn({
signingError,
signinError,
signingIn,
employeeSignInStart,
}) {
@@ -46,40 +46,45 @@ export function EmployeeSignIn({
onSubmit={formSubmit}
>
{({ handleChange, handleBlur, handleSubmit, values }) => {
const signingErrorMsg = signingError ? (<ErrorDisplay errorMessage={signingError} />) : null;
return(
<View>
<TextInput
label={t("employeesignin.fields.employeeid")}
mode="outlined"
autoCapitalize="none"
keyboardType="default"
onChangeText={handleChange("employeeId")}
onBlur={handleBlur("employeeId")}
value={values.employeeId}
style={[localStyles.input]}
/>
<TextInput
label={t("employeesignin.fields.pin")}
mode="outlined"
secureTextEntry={true}
onChangeText={handleChange("pin")}
onBlur={handleBlur("pin")}
value={values.pin}
style={[localStyles.input]}
textContentType={"none"}
/>
{signingErrorMsg}
<Button
mode="outlined"
loading={signingIn}
onPress={handleSubmit}
>
<Text>{t("employeesignin.actions.employeesignin")}</Text>
</Button>
</View>
)
}}
return (
<View>
<TextInput
label={t("employeesignin.fields.employeeid")}
mode="outlined"
autoCapitalize="none"
keyboardType="default"
autoComplete="off"
onChangeText={handleChange("employeeId")}
onBlur={handleBlur("employeeId")}
value={values.employeeId}
textContentType={"none"}
style={localStyles.item}
/>
<TextInput
label={t("employeesignin.fields.pin")}
mode="outlined"
secureTextEntry={true}
autoComplete="off"
onChangeText={handleChange("pin")}
onBlur={handleBlur("pin")}
value={values.pin}
textContentType={"none"}
style={localStyles.item}
/>
<Button
mode="outlined"
loading={signingIn}
onPress={handleSubmit}
style={localStyles.item}
>
<Text>{t("employeesignin.actions.employeesignin")}</Text>
</Button>
{signinError ? (
<ErrorDisplay errorMessage={signinError} />
) : null}
</View>
);
}}
</Formik>
</View>
</View>
@@ -91,10 +96,12 @@ const localStyles = StyleSheet.create({
display: "flex",
flex: 1,
},
item: {
marginTop: 12,
marginBottom: 12,
},
signInContainer: {
flex: 1,
},
input: {
margin: 12,
},
});

View File

@@ -1,18 +1,20 @@
import React, { useEffect, useRef } from "react";
import { Ionicons } from "@expo/vector-icons";
import { createBottomTabNavigator } from "@react-navigation/bottom-tabs";
import { NavigationContainer } from "@react-navigation/native";
import { createNativeStackNavigator } from "@react-navigation/native-stack";
import i18n from "i18next";
import moment from "moment";
import React, { useEffect, useRef } from "react";
import { AppState } from "react-native";
import { Button } from "react-native-paper";
import { Ionicons } from "@expo/vector-icons";
import { NavigationContainer } from "@react-navigation/native";
import { createBottomTabNavigator } from "@react-navigation/bottom-tabs";
import { createNativeStackNavigator } from "@react-navigation/native-stack";
import { logImEXEvent } from "../../firebase/firebase.analytics";
import { connect } from "react-redux";
import { createStructuredSelector } from "reselect";
import { setCameraJob, setCameraJobId } from "../../redux/app/app.actions";
import { employeeSignOut } from "../../redux/employee/employee.actions";
import { selectCurrentEmployee } from "../../redux/employee/employee.selectors";
import {
checkUserSession,
emailSignInStart,
@@ -22,8 +24,6 @@ import {
selectBodyshop,
selectCurrentUser,
} from "../../redux/user/user.selectors";
import { employeeSignOut } from "../../redux/employee/employee.actions";
import { selectCurrentEmployee } from "../../redux/employee/employee.selectors";
import ScreenJobDetail from "../screen-job-detail/screen-job-detail.component";
import ScreenJobList from "../screen-job-list/screen-job-list.component";
@@ -32,12 +32,11 @@ import ScreenSettingsComponent from "../screen-settings/screen-settings.componen
import ScreenSignIn from "../screen-sign-in/screen-sign-in.component";
import ScreenSplash from "../screen-splash/screen-splash.component";
import SignOutButton from "../Buttons/employee-sign-out-button.component";
import EmployeeSignIn from "../screen-employee-sign-in/screen-employee-sign-in.component";
import ScreenTimeTicketBrowser from "../screen-time-ticket-browser/screen-time-ticket-browser.component";
import SignOutButton from "../Buttons/employee-sign-out-button.component";
import AddTimeTicketButton from "../Buttons/create-time-ticket-button.component";
import ScreenTimeTicketCreate from "../time-ticket/screen-time-ticket-create.component";
import ScreenTimeTicketClockoffComponent from "../time-ticket/screen-time-ticket-clockoff.component";
import ScreenTimeTicketCreate from "../time-ticket/screen-time-ticket-create.component";
const ActiveJobStack = createNativeStackNavigator();
const MoreStack = createNativeStackNavigator();
@@ -160,6 +159,8 @@ const TimeTicketBrowserStackNavigator = connect(
name="TimeTicketBrowser"
options={{
title: i18n.t("timeticketbrowser.titles.timeticketbrowsertab"),
// eslint-disable-next-line react/display-name
headerRight: () => <SignOutButton style={{ margin: 8 }} />,
}}
component={ScreenTimeTicketBrowser}
/>

View File

@@ -21,7 +21,7 @@ export default function ScreenSettingsComponent() {
>
<Title>
{t("settings.labels.version", {
number: `${Constants.manifest.version}-${Constants.manifest.extra.expover}`,
number: `${Constants.expoConfig.version}-${Constants.expoConfig.extra.expover}`,
})}
</Title>

View File

@@ -5,7 +5,7 @@ import { Image, StyleSheet, Text, View } from "react-native";
import { Button, TextInput, Title } from "react-native-paper";
import { connect } from "react-redux";
import { createStructuredSelector } from "reselect";
import Logo from "../../assets/logo192.png";
import Logo from "../../assets/RomeOnlineIcon.png";
import { emailSignInStart } from "../../redux/user/user.actions";
import {
selectCurrentUser,

View File

@@ -2,7 +2,7 @@ import React from "react";
import { useTranslation } from "react-i18next";
import { ActivityIndicator, Image, StyleSheet, View } from "react-native";
import { Title, Subheading, Divider } from "react-native-paper";
import Logo from "../../assets/logo192.png";
import Logo from "../../assets/RomeOnlineIcon.png";
import SignOutButton from "../sign-out-button/sign-out-button.component";
export default function ScreenSplash({ noAccess }) {

View File

@@ -1,18 +1,10 @@
import React, { useCallback, useState, useRef } from "react";
import moment from "moment";
import {
View,
Text,
StyleSheet,
ScrollView,
RefreshControl,
FlatList,
} from "react-native";
import React, { useCallback, useState } from "react";
import { FlatList, RefreshControl, StyleSheet, Text, View } from "react-native";
import {
ActivityIndicator,
Button,
Card,
Headline,
Subheading,
} from "react-native-paper";
import styles from "../styles";
@@ -24,37 +16,37 @@ import { createStructuredSelector } from "reselect";
import { employeeGetRatesStart } from "../../redux/employee/employee.actions";
import {
selectCurrentEmployee,
selectRates,
selectGettingRates,
selectSignInError,
selectEmployeeFullName,
selectGettingRates,
selectRates,
selectSignInError,
} from "../../redux/employee/employee.selectors";
import { selectBodyshop } from "../../redux/user/user.selectors";
import CostCenterSelect from "../Selects/select-cost-center";
import ErrorDisplay from "../error-display/error-display.component";
import { useMutation, useQuery } from "@apollo/client";
import {
INSERT_NEW_TIME_TICKET,
QUERY_ACTIVE_TIME_TICKETS,
} from "../../graphql/timetickets.queries";
import {
selectCurrentTimeTicketJob,
selectCurrentTimeTicketJobId,
} from "../../redux/timetickets/timetickets.selectors";
import { INSERT_NEW_TIME_TICKET } from "../../graphql/timetickets.queries";
import { useMutation, useQuery } from "@apollo/client";
import { QUERY_ACTIVE_TIME_TICKETS } from "../../graphql/timetickets.queries";
import CostCenterSelect from "../Selects/select-cost-center";
import ErrorDisplay from "../error-display/error-display.component";
// import EmployeeClockedInList from "../time-ticket-lists/employee-clockedin-list.component";
import { useTranslation } from "react-i18next";
import ClockedinListItem from "../time-ticket-items/clockedin-list-item.component";
import SignOutButton from "../Buttons/employee-sign-out-button.component";
import AddTimeTicketButton from "../Buttons/create-time-ticket-button.component";
import KeyboardAvoidingComponent from "../keyboards/KeyboardAvoidingComponent";
import JobSearchAndSelectModal from "../Modals/JobSearchAndSelectModal";
import { useNavigation } from "@react-navigation/native";
import JobSearchAndSelectModal from "../Modals/JobSearchAndSelectModal";
import KeyboardAvoidingComponent from "../keyboards/KeyboardAvoidingComponent";
const mapStateToProps = createStructuredSelector({
currentEmployee: selectCurrentEmployee,
loaderGettingRates: selectGettingRates,
signingError: selectSignInError,
signinError: selectSignInError,
currentBodyshop: selectBodyshop,
currentRatesNCostCenters: selectRates,
currentSelectedTimeTicketJobId: selectCurrentTimeTicketJobId,
@@ -68,14 +60,9 @@ const mapDispatchToProps = (dispatch) => ({
});
export function ScreenTimeTicketBrowser({
loaderGettingRates,
currentEmployee,
employeeGetRatesStart,
signingError,
currentBodyshop,
currentRatesNCostCenters,
currentSelectedTimeTicketJob,
currentSelectedTimeTicketJobId,
currentEmployeeFullName,
}) {
const { t } = useTranslation();
@@ -198,7 +185,6 @@ export function ScreenTimeTicketBrowser({
<Card style={localStyles.localCardStyle}>
<Card.Title
title={t("timeticketbrowser.labels.loggedinemployee")}
right={(props) => <SignOutButton style={{margin:8}}/>}
/>
<Card.Content>
{currentEmployeeFullName && (
@@ -226,9 +212,7 @@ export function ScreenTimeTicketBrowser({
icon="plus"
style={{ margin: 8 }}
>
<Text >
{t("timeticketbrowser.actions.ticket")}
</Text>
<Text>{t("timeticketbrowser.actions.ticket")}</Text>
</Button>
{/* <Button
mode="outlined"