diff --git a/client/src/components/bill-form/bill-form.component.jsx b/client/src/components/bill-form/bill-form.component.jsx
index 7864d953b..2b67ce8cc 100644
--- a/client/src/components/bill-form/bill-form.component.jsx
+++ b/client/src/components/bill-form/bill-form.component.jsx
@@ -48,7 +48,6 @@ export function BillFormComponent({
setDiscount(opt.discount);
};
- //TODO: Test this further. Required to set discount when viewing an invoice.
useEffect(() => {
if (form.getFieldValue("vendorid") && vendorAutoCompleteOptions) {
const vendorId = form.getFieldValue("vendorid");
diff --git a/client/src/components/bill-form/bill-form.totals.utility.js b/client/src/components/bill-form/bill-form.totals.utility.js
index e07812bf7..8189d3f7b 100644
--- a/client/src/components/bill-form/bill-form.totals.utility.js
+++ b/client/src/components/bill-form/bill-form.totals.utility.js
@@ -11,6 +11,7 @@ export const CalculateBillTotal = (invoice) => {
local_tax_rate,
state_tax_rate,
} = invoice;
+
//TODO Determine why this recalculates so many times.
let subtotal = Dinero({ amount: 0 });
let federalTax = Dinero({ amount: 0 });
diff --git a/client/src/components/contract-convert-to-ro/contract-convert-to-ro.component.jsx b/client/src/components/contract-convert-to-ro/contract-convert-to-ro.component.jsx
index 207f50583..cf580bff5 100644
--- a/client/src/components/contract-convert-to-ro/contract-convert-to-ro.component.jsx
+++ b/client/src/components/contract-convert-to-ro/contract-convert-to-ro.component.jsx
@@ -120,7 +120,7 @@ export function ContractConvertToRo({ bodyshop, currentUser, contract }) {
state_tax_rate: bodyshop.bill_tax_rates.state_tax_rate / 100,
local_tax_rate: bodyshop.bill_tax_rates.local_tax_rate / 100,
clm_no: `${contract.job.clm_no}-CC`,
- clm_total: 1234, //TODO
+ clm_total: 1234,
ownr_fn: contract.job.owner.ownr_fn,
ownr_ln: contract.job.owner.ownr_ln,
ownr_co_nm: contract.job.owner.ownr_co_nm,
diff --git a/client/src/components/job-totals-table/job-totals.utility.js b/client/src/components/job-totals-table/job-totals.utility.js
index 8d7ab40f6..ee9c0ce98 100644
--- a/client/src/components/job-totals-table/job-totals.utility.js
+++ b/client/src/components/job-totals-table/job-totals.utility.js
@@ -20,7 +20,6 @@
// .add(otherTotals.rates.subtotal)
// .add(Dinero({ amount: (job.towing_payable || 0) * 100 }))
// .add(Dinero({ amount: (job.storage_payable || 0) * 100 }));
-// //TODO Levies should be included??
// const statePartsTax = job.joblines.reduce((acc, val) => {
// if (!!!val.tax_part) return acc;
@@ -227,7 +226,7 @@
// subtotal: acc.sublets.subtotal.add(
// Dinero({ amount: Math.round(value.act_price * 100) })
// ),
-// //TODO Add Adjustments in
+//
// },
// };
// // case "PAA":
@@ -268,7 +267,7 @@
// value.part_qty
// )
// ),
-// //TODO Add Adjustments in
+//
// },
// };
// // default:
@@ -305,7 +304,7 @@
// function CalculateCustPayable(job) {
// let ret = {
// deductible: Dinero({ amount: (job.ded_amt || 0) * 100 }) || 0,
-// federal_tax: Dinero({ amount: (job.federal_tax_payable || 0) * 100 }), //TODO Should this be renamed to make it more clear this is customer GST?
+// federal_tax: Dinero({ amount: (job.federal_tax_payable || 0) * 100 }),
// other_customer_amount: Dinero({
// amount: (job.other_amount_payable || 0) * 100,
// }),
diff --git a/client/src/components/jobs-create-jobs-info/jobs-create-jobs-info.component.jsx b/client/src/components/jobs-create-jobs-info/jobs-create-jobs-info.component.jsx
index 1345dbd24..11ead16eb 100644
--- a/client/src/components/jobs-create-jobs-info/jobs-create-jobs-info.component.jsx
+++ b/client/src/components/jobs-create-jobs-info/jobs-create-jobs-info.component.jsx
@@ -193,14 +193,6 @@ export function JobsCreateJobsInfo({ bodyshop, form, selected }) {
- TODO How to handle different taxes and marking them as exempt?
- {
- //
- // {getFieldDecorator("exempt", {
- // initialValue: job.exempt
- // })()}
- //
- }
{job.ownr_ea || ""}
- {
- //TODO Should add an email formatter.
- }
@@ -56,9 +53,6 @@ export default function OwnerTagPopoverComponent({ job }) {
{job.owner.ownr_ea || ""}
- {
- //TODO Should add an email formatter.
- }
diff --git a/client/src/components/print-center-item/print-center-item.component.jsx b/client/src/components/print-center-item/print-center-item.component.jsx
index 1748ccedc..8730fe3ab 100644
--- a/client/src/components/print-center-item/print-center-item.component.jsx
+++ b/client/src/components/print-center-item/print-center-item.component.jsx
@@ -35,16 +35,16 @@ export function PrintCenterItemComponent({
displayTemplateInWindow(html);
};
- if (disabled) return {item.title} ;
+ if (disabled) return {item.title} ;
return (
-
+
{item.title}
{
setEmailOptions({
messageOptions: {
- Subject: "//TODO FIX ME",
+ Subject: "",
},
template: {
name: item.key,
diff --git a/client/src/components/production-list-columns/production-list-columns.data.js b/client/src/components/production-list-columns/production-list-columns.data.js
index d8d6e6bfd..943069111 100644
--- a/client/src/components/production-list-columns/production-list-columns.data.js
+++ b/client/src/components/production-list-columns/production-list-columns.data.js
@@ -8,15 +8,12 @@ import { alphaSort } from "../../utils/sorters";
import ProductionSubletsManageComponent from "../production-sublets-manage/production-sublets-manage.component";
import ProductionListColumnAlert from "./production-list-columns.alert.component";
import ProductionListColumnBodyPriority from "./production-list-columns.bodypriority.component";
+import ProductionListDate from "./production-list-columns.date.component";
import ProductionListColumnPaintPriority from "./production-list-columns.paintpriority.component";
import ProductionListColumnNote from "./production-list-columns.productionnote.component";
-import ProductionListDate from "./production-list-columns.date.component";
import ProductionListColumnStatus from "./production-list-columns.status.component";
import ProductionlistColumnTouchTime from "./prodution-list-columns.touchtime.component";
-const OneCalendarDay = 60 * 60 * 24 * 1000;
-const Now = new Date();
-
const r = [
{
title: i18n.t("jobs.actions.viewdetail"),
diff --git a/client/src/components/production-list-columns/production-list-columns.date.component.jsx b/client/src/components/production-list-columns/production-list-columns.date.component.jsx
index b455d2f5c..f4fe88cfd 100644
--- a/client/src/components/production-list-columns/production-list-columns.date.component.jsx
+++ b/client/src/components/production-list-columns/production-list-columns.date.component.jsx
@@ -1,19 +1,15 @@
-import { ExclamationCircleFilled } from "@ant-design/icons";
-import { DatePicker, Dropdown, Menu } from "antd";
-import React from "react";
-import { useTranslation } from "react-i18next";
import { useMutation } from "@apollo/react-hooks";
-import { UPDATE_JOB } from "../../graphql/jobs.queries";
-import { logImEXEvent } from "../../firebase/firebase.utils";
-import { DateFormatter } from "../../utils/DateFormatter";
+import { DatePicker, Dropdown } from "antd";
import moment from "moment";
+import React from "react";
+import { logImEXEvent } from "../../firebase/firebase.utils";
+import { UPDATE_JOB } from "../../graphql/jobs.queries";
+import { DateFormatter } from "../../utils/DateFormatter";
const OneCalendarDay = 60 * 60 * 24 * 1000;
const Now = new Date();
export default function ProductionListDate({ record, field }) {
- const { t } = useTranslation();
-
const [updateAlert] = useMutation(UPDATE_JOB);
const handleChange = (date) => {
diff --git a/client/src/components/production-list-table/production-list-table.component.jsx b/client/src/components/production-list-table/production-list-table.component.jsx
index 93d838f82..11d23084b 100644
--- a/client/src/components/production-list-table/production-list-table.component.jsx
+++ b/client/src/components/production-list-table/production-list-table.component.jsx
@@ -1,7 +1,7 @@
import { SyncOutlined } from "@ant-design/icons";
import { Button, Dropdown, Input, Menu, Table } from "antd";
import React, { useState } from "react";
-import ReactDragListView from "react-drag-listview"; //TODO Is there a better way? This library is too big.
+import ReactDragListView from "react-drag-listview";
import { useTranslation } from "react-i18next";
import { connect } from "react-redux";
import { createStructuredSelector } from "reselect";
@@ -170,14 +170,14 @@ export function ProductionListTable({
loading={loading}
dataSource={dataSource}
onChange={handleTableChange}
- rowClassName={(record, index) => {
- // const classes = []; //TODO What could be good usage here?
- // if (!!record.scheduled_completion) {
- // if (new Date(record.scheduled_completion) - Now < OneCalendarDay)
- // classes.push("production-completion-1");
- // }
- // return classes.join(" ");
- }}
+ // rowClassName={(record, index) => {
+ // // const classes = [];
+ // // if (!!record.scheduled_completion) {
+ // // if (new Date(record.scheduled_completion) - Now < OneCalendarDay)
+ // // classes.push("production-completion-1");
+ // // }
+ // // return classes.join(" ");
+ // }}
/>
diff --git a/client/src/components/schedule-calendar-wrapper/scheduler-calendar-wrapper.component.jsx b/client/src/components/schedule-calendar-wrapper/scheduler-calendar-wrapper.component.jsx
index eb6723820..dc538c782 100644
--- a/client/src/components/schedule-calendar-wrapper/scheduler-calendar-wrapper.component.jsx
+++ b/client/src/components/schedule-calendar-wrapper/scheduler-calendar-wrapper.component.jsx
@@ -78,7 +78,7 @@ export function ScheduleCalendarWrapperComponent({
bodyshop.schedule_start_time
? new Date(bodyshop.schedule_start_time)
: new Date("2020-01-01T06:00:00")
- } //TODO Read from business settings.
+ }
max={
bodyshop.schedule_end_time
? new Date(bodyshop.schedule_end_time)
diff --git a/client/src/components/schedule-job-modal/schedule-job-modal.component.jsx b/client/src/components/schedule-job-modal/schedule-job-modal.component.jsx
index bfc7fde7f..c208d43b3 100644
--- a/client/src/components/schedule-job-modal/schedule-job-modal.component.jsx
+++ b/client/src/components/schedule-job-modal/schedule-job-modal.component.jsx
@@ -62,7 +62,6 @@ export function ScheduleJobModalComponent({
}
};
- //TODO Existing appointments list only refreshes sometimes after modal close. May have to do with the container class.
return (
diff --git a/client/src/components/shop-employees/shop-employees-form.component.jsx b/client/src/components/shop-employees/shop-employees-form.component.jsx
index ab90cf249..491928f14 100644
--- a/client/src/components/shop-employees/shop-employees-form.component.jsx
+++ b/client/src/components/shop-employees/shop-employees-form.component.jsx
@@ -130,9 +130,7 @@ export function ShopEmployeesFormComponent({
>
- {
- //TODO Make this a picklist.
- }
+
form.resetFields());
})
@@ -63,7 +63,7 @@ function ShopEmployeesContainer({ bodyshop }) {
notification["success"]({
message: t("employees.successes.save"),
});
- //TODO Better way to reset the field decorators?
+
employeeState[1](null);
refetch().then((r) => form.resetFields());
})
@@ -84,7 +84,6 @@ function ShopEmployeesContainer({ bodyshop }) {
notification["success"]({
message: t("employees.successes.save"),
});
- //TODO Better way to reset the field decorators?
employeeState[1](null);
refetch().catch((error) => {
notification["error"]({
diff --git a/client/src/components/shop-info/shop-info.intake.component.jsx b/client/src/components/shop-info/shop-info.intake.component.jsx
index 78383e350..d53907020 100644
--- a/client/src/components/shop-info/shop-info.intake.component.jsx
+++ b/client/src/components/shop-info/shop-info.intake.component.jsx
@@ -12,7 +12,7 @@ const SelectorDiv = styled.div`
width: 200px;
}
`;
-//TODO Fix up styles.
+
export default function ShopInfoIntakeChecklistComponent({ form }) {
const { t } = useTranslation();
diff --git a/client/src/components/shop-info/shop-info.orderstatus.component.jsx b/client/src/components/shop-info/shop-info.orderstatus.component.jsx
index 81a6b66e3..8d7ca831c 100644
--- a/client/src/components/shop-info/shop-info.orderstatus.component.jsx
+++ b/client/src/components/shop-info/shop-info.orderstatus.component.jsx
@@ -3,7 +3,7 @@ import { Button, Form, Input, Select, Row, Col } from "antd";
import React, { useState } from "react";
import { useTranslation } from "react-i18next";
import FormListMoveArrows from "../form-list-move-arrows/form-list-move-arrows.component";
-//TODO Fix up styles.
+
export default function ShopInfoOrderStatusComponent({ form }) {
const { t } = useTranslation();
diff --git a/client/src/components/shop-info/shop-info.rbac.component.jsx b/client/src/components/shop-info/shop-info.rbac.component.jsx
index 3cc24227a..aeaa2970f 100644
--- a/client/src/components/shop-info/shop-info.rbac.component.jsx
+++ b/client/src/components/shop-info/shop-info.rbac.component.jsx
@@ -2,7 +2,6 @@ import { Form, InputNumber } from "antd";
import React from "react";
import { useTranslation } from "react-i18next";
import LayoutFormRow from "../layout-form-row/layout-form-row.component";
-//TODO Fix up styles.
export default function ShopInfoRbacComponent({ form }) {
const { t } = useTranslation();
diff --git a/client/src/components/shop-info/shop-info.responsibilitycenters.component.jsx b/client/src/components/shop-info/shop-info.responsibilitycenters.component.jsx
index bff7b98f7..4c4c532bd 100644
--- a/client/src/components/shop-info/shop-info.responsibilitycenters.component.jsx
+++ b/client/src/components/shop-info/shop-info.responsibilitycenters.component.jsx
@@ -1,10 +1,10 @@
import { DeleteFilled } from "@ant-design/icons";
-import { Button, Form, Input, Select, InputNumber } from "antd";
+import { Button, Form, Input, InputNumber, Select } from "antd";
import React, { useState } from "react";
import { useTranslation } from "react-i18next";
import styled from "styled-components";
import LayoutFormRow from "../layout-form-row/layout-form-row.component";
-//TODO Fix up styles.
+
const SelectorDiv = styled.div`
.ant-form-item .ant-select {
width: 125px;
diff --git a/client/src/components/shop-info/shop-info.rostatus.component.jsx b/client/src/components/shop-info/shop-info.rostatus.component.jsx
index 6f28f7af3..b8691763e 100644
--- a/client/src/components/shop-info/shop-info.rostatus.component.jsx
+++ b/client/src/components/shop-info/shop-info.rostatus.component.jsx
@@ -1,5 +1,5 @@
import { DeleteFilled } from "@ant-design/icons";
-import { Button, Form, Input, Select, Row, Col } from "antd";
+import { Button, Col, Form, Input, Row, Select } from "antd";
import React, { useState } from "react";
import { useTranslation } from "react-i18next";
import styled from "styled-components";
@@ -9,7 +9,7 @@ const SelectorDiv = styled.div`
width: 200px;
}
`;
-//TODO Fix up styles.
+
export default function ShopInfoROStatusComponent({ form }) {
const { t } = useTranslation();
diff --git a/client/src/components/shop-info/shop-info.scheduling.component.jsx b/client/src/components/shop-info/shop-info.scheduling.component.jsx
index b3b23aa54..4dd8c5fb3 100644
--- a/client/src/components/shop-info/shop-info.scheduling.component.jsx
+++ b/client/src/components/shop-info/shop-info.scheduling.component.jsx
@@ -12,9 +12,9 @@ import {
import React from "react";
import { useTranslation } from "react-i18next";
import ColorpickerFormItemComponent from "../form-items-formatted/colorpicker-form-item.component";
-//TODO Fix up styles.
import FormListMoveArrows from "../form-list-move-arrows/form-list-move-arrows.component";
import LayoutFormRow from "../layout-form-row/layout-form-row.component";
+
export default function ShopInfoSchedulingComponent({ form }) {
const { t } = useTranslation();
diff --git a/client/src/components/shop-info/shop-info.speedprint.component.jsx b/client/src/components/shop-info/shop-info.speedprint.component.jsx
index a983a0c75..df3bf9201 100644
--- a/client/src/components/shop-info/shop-info.speedprint.component.jsx
+++ b/client/src/components/shop-info/shop-info.speedprint.component.jsx
@@ -4,7 +4,6 @@ import React from "react";
import { useTranslation } from "react-i18next";
import { TemplateList } from "../../utils/TemplateConstants";
import FormListMoveArrows from "../form-list-move-arrows/form-list-move-arrows.component";
-//TODO Fix up styles.
export default function ShopInfoSpeedPrint({ bodyshop, form }) {
const { t } = useTranslation();
diff --git a/client/src/components/sign-in-form/sign-in-form.component.jsx b/client/src/components/sign-in-form/sign-in-form.component.jsx
index 2797e3066..1e393d1b6 100644
--- a/client/src/components/sign-in-form/sign-in-form.component.jsx
+++ b/client/src/components/sign-in-form/sign-in-form.component.jsx
@@ -2,13 +2,11 @@ import { LockOutlined, UserOutlined } from "@ant-design/icons";
import { Button, Form, Input, Typography } from "antd";
import queryString from "query-string";
import React from "react";
-import { useApolloClient } from "react-apollo";
import { useTranslation } from "react-i18next";
import { connect } from "react-redux";
import { Link, Redirect, useLocation } from "react-router-dom";
import { createStructuredSelector } from "reselect";
import ImEXOnlineLogo from "../../assets/logo192.png";
-import { UPSERT_USER } from "../../graphql/user.queries";
import {
emailSignInStart,
sendPasswordReset,
@@ -38,7 +36,7 @@ export function SignInComponent({
sendPasswordReset,
}) {
const { redirect } = queryString.parse(useLocation().search);
- const apolloClient = useApolloClient();
+
const { t } = useTranslation();
const handleFinish = (values) => {
const { email, password } = values;
@@ -46,22 +44,6 @@ export function SignInComponent({
};
const [form] = Form.useForm();
- //TODO - may be able to run this only on new user creation.
- if (currentUser.authorized === true) {
- apolloClient
- .mutate({
- mutation: UPSERT_USER,
- variables: {
- authEmail: currentUser.email,
- authToken: currentUser.uid,
- },
- })
- .then()
- .catch((error) => {
- console.log("User login upsert error.", error);
- });
- }
-
if (currentUser.authorized === true)
return ;
diff --git a/client/src/components/vehicle-detail-form/vehicle-detail-form.component.jsx b/client/src/components/vehicle-detail-form/vehicle-detail-form.component.jsx
index 4f65e318d..e91a3d05f 100644
--- a/client/src/components/vehicle-detail-form/vehicle-detail-form.component.jsx
+++ b/client/src/components/vehicle-detail-form/vehicle-detail-form.component.jsx
@@ -136,7 +136,7 @@ export default function VehicleDetailFormComponent({ form, loading }) {
{
- //TODO Add handling for paint code json
+
//Removed as a part of IO-446.
//No values have been captured in this field as of yet.
// {
form.resetFields();
@@ -74,7 +74,7 @@ function VendorsFormContainer({ refetch, bodyshop }) {
notification["success"]({
message: t("vendors.successes.saved"),
});
- //TODO Better way to reset the field decorators?
+
if (refetch)
refetch().then(() => {
form.resetFields();
@@ -99,7 +99,7 @@ function VendorsFormContainer({ refetch, bodyshop }) {
notification["success"]({
message: t("vendors.successes.saved"),
});
- //TODO Better way to reset the field decorators?
+
if (refetch) refetch();
form.resetFields();
setFormLoading(false);
diff --git a/client/src/components/vendors-list/vendors-list.component.jsx b/client/src/components/vendors-list/vendors-list.component.jsx
index 9410d0eb2..6fa9681a5 100644
--- a/client/src/components/vendors-list/vendors-list.component.jsx
+++ b/client/src/components/vendors-list/vendors-list.component.jsx
@@ -58,7 +58,6 @@ export default function VendorsListComponent({
setState({ ...state, filteredInfo: filters, sortedInfo: sorter });
};
- //TODO Implement search
return (
);
}}
- size='small'
+ size="small"
pagination={{ position: "top" }}
columns={columns.map((item) => ({ ...item }))}
- rowKey='id'
+ rowKey="id"
onChange={handleTableChange}
dataSource={vendors}
rowSelection={{
diff --git a/client/src/graphql/jobs.queries.js b/client/src/graphql/jobs.queries.js
index bd8b84eaa..70fd17c5d 100644
--- a/client/src/graphql/jobs.queries.js
+++ b/client/src/graphql/jobs.queries.js
@@ -837,7 +837,7 @@ export const SEARCH_FOR_JOBS = gql`
}
}
`;
-//TODO Ensure this is always up to date.
+
export const QUERY_ALL_JOB_FIELDS = gql`
query QUERY_ALL_JOB_FIELDS($id: uuid!) {
jobs_by_pk(id: $id) {
diff --git a/client/src/pages/jobs-create/jobs-create.container.jsx b/client/src/pages/jobs-create/jobs-create.container.jsx
index af75b898f..e0eb135aa 100644
--- a/client/src/pages/jobs-create/jobs-create.container.jsx
+++ b/client/src/pages/jobs-create/jobs-create.container.jsx
@@ -1,19 +1,19 @@
-import React, { useState, useEffect } from "react";
-import JobsCreateComponent from "./jobs-create.component";
+import { useLazyQuery, useMutation } from "@apollo/react-hooks";
import { Form, notification } from "antd";
-import JobCreateContext from "./jobs-create.context";
-import { useMutation, useLazyQuery } from "@apollo/react-hooks";
-import { INSERT_NEW_JOB } from "../../graphql/jobs.queries";
-import { QUERY_OWNER_FOR_JOB_CREATION } from "../../graphql/owners.queries";
+import React, { useEffect, useState } from "react";
+import { useTranslation } from "react-i18next";
import { connect } from "react-redux";
import { createStructuredSelector } from "reselect";
-import { selectBodyshop } from "../../redux/user/user.selectors";
-import { useTranslation } from "react-i18next";
+import RbacWrapper from "../../components/rbac-wrapper/rbac-wrapper.component";
+import { INSERT_NEW_JOB } from "../../graphql/jobs.queries";
+import { QUERY_OWNER_FOR_JOB_CREATION } from "../../graphql/owners.queries";
import {
setBreadcrumbs,
setSelectedHeader,
} from "../../redux/application/application.actions";
-import RbacWrapper from "../../components/rbac-wrapper/rbac-wrapper.component";
+import { selectBodyshop } from "../../redux/user/user.selectors";
+import JobsCreateComponent from "./jobs-create.component";
+import JobCreateContext from "./jobs-create.context";
const mapStateToProps = createStructuredSelector({
bodyshop: selectBodyshop,
@@ -97,8 +97,7 @@ function JobsCreateContainer({ bodyshop, setBreadcrumbs, setSelectedHeader }) {
shopid: bodyshop.id,
}
);
- //TODO Logic to ensure the owner is actually fetched.
- console.log("job", job);
+
let ownerData;
if (!!!job.ownerid) {
ownerData = job.owner.data;
diff --git a/client/src/redux/messaging/messaging.sagas.js b/client/src/redux/messaging/messaging.sagas.js
index c3db8d974..c96a30942 100644
--- a/client/src/redux/messaging/messaging.sagas.js
+++ b/client/src/redux/messaging/messaging.sagas.js
@@ -1,18 +1,18 @@
import axios from "axios";
import phone from "phone";
import { all, call, put, select, takeLatest } from "redux-saga/effects";
-import client from "../../utils/GraphQLClient";
import { logImEXEvent } from "../../firebase/firebase.utils";
import {
CONVERSATION_ID_BY_PHONE,
- CREATE_CONVERSATION,
+ CREATE_CONVERSATION
} from "../../graphql/conversations.queries";
import { INSERT_CONVERSATION_TAG } from "../../graphql/job-conversations.queries";
+import client from "../../utils/GraphQLClient";
import { selectBodyshop } from "../user/user.selectors";
import {
sendMessageFailure,
sendMessageSuccess,
- setSelectedConversation,
+ setSelectedConversation
} from "./messaging.actions";
import MessagingActionTypes from "./messaging.types";
@@ -73,7 +73,7 @@ export function* openChatByPhone({ payload }) {
},
});
} else {
- console.log("ERROR: Multiple conversations found. "); //TODO Graceful handling of this situation
+ console.log("ERROR: Multiple conversations found. ");
}
} catch (error) {
console.log("Error in sendMessage saga.", error);
diff --git a/client/src/redux/user/user.sagas.js b/client/src/redux/user/user.sagas.js
index c4e4553ed..933426172 100644
--- a/client/src/redux/user/user.sagas.js
+++ b/client/src/redux/user/user.sagas.js
@@ -10,6 +10,9 @@ import {
} from "../../firebase/firebase.utils";
import {
checkInstanceId,
+ sendPasswordResetFailure,
+ sendPasswordResetSuccess,
+ setAuthlevel,
setInstanceConflict,
setInstanceId,
setLocalFingerprint,
@@ -19,11 +22,8 @@ import {
signOutSuccess,
unauthorizedUser,
updateUserDetailsSuccess,
- sendPasswordResetFailure,
- sendPasswordResetSuccess,
- validatePasswordResetSuccess,
validatePasswordResetFailure,
- setAuthlevel,
+ validatePasswordResetSuccess,
} from "./user.actions";
import UserActionTypes from "./user.types";
@@ -102,7 +102,6 @@ export function* updateUserDetails(userDetails) {
yield put(updateUserDetailsSuccess(userDetails.payload));
} catch (error) {
//yield put(signOutFailure(error.message));
- //TODO error handling
}
}
export function* onSetInstanceId() {
@@ -127,8 +126,6 @@ export function* setInstanceIdSaga({ payload: uid }) {
if (process.env.NODE_ENV === "production") yield put(checkInstanceId(uid));
} catch (error) {
console.log("error", error);
- //yield put(signOutFailure(error.message));
- //TODO error handling
}
}
@@ -152,7 +149,6 @@ export function* checkInstanceIdSaga({ payload: uid }) {
}
} catch (error) {
console.log("error", error);
- //TODO error handling
}
}
diff --git a/firebase/functions/index.js b/firebase/functions/index.js
index 779dc1893..f7abdb537 100644
--- a/firebase/functions/index.js
+++ b/firebase/functions/index.js
@@ -2,30 +2,6 @@ const functions = require("firebase-functions");
const admin = require("firebase-admin");
admin.initializeApp(functions.config().firebase);
-// //TODO Move this to an environment parameter.
-// const GRAPHQL_ENDPOINT = functions.config().auth.graphql_endpoint;
-// const HASURA_SECRET_ADMIN_KEY = functions.config().auth.hasura_secret_admin_key;
-// const UPSERT_USER = `
-// mutation upsert_user($authEmail: String!, $authToken: String!) {
-// insert_users(
-// objects: [
-// {
-// email:$authEmail,
-// authid:$authToken
-// }
-// ],
-// on_conflict: {
-// constraint: users_pkey,
-// update_columns: [authid]
-// }
-// ) {
-// returning {
-// authid
-// }
-// }
-// }
-// `;
-
// On sign up.
exports.processSignUp = functions.auth.user().onCreate((user) => {
// Check if user meets role criteria:
diff --git a/server/graphql-client/graphql-client.js b/server/graphql-client/graphql-client.js
index 70c3f7a14..9495f6ec3 100644
--- a/server/graphql-client/graphql-client.js
+++ b/server/graphql-client/graphql-client.js
@@ -12,7 +12,6 @@ const { Headers } = require("cross-fetch");
global.Headers = global.Headers || Headers;
-//TODO May need to use a different client that includes caching of resources.
exports.client = new GraphQLClient(process.env.GRAPHQL_ENDPOINT, {
headers: {
"x-hasura-admin-secret": process.env.HASURA_ADMIN_SECRET,
diff --git a/server/job/job-totals.js b/server/job/job-totals.js
index 76f01a1e0..f152b6d87 100644
--- a/server/job/job-totals.js
+++ b/server/job/job-totals.js
@@ -220,7 +220,6 @@ function CalculateTaxesTotals(job, otherTotals) {
.add(otherTotals.additional)
.add(Dinero({ amount: (job.towing_payable || 0) * 100 }))
.add(Dinero({ amount: (job.storage_payable || 0) * 100 }));
- //TODO Levies should be included??
//Potential issue here with Sublet Calculation. Sublets are calculated under labor in Mitchell, but it's done in IO
//Under the parts rates.
diff --git a/server/sms/receive.js b/server/sms/receive.js
index 9d7dab74d..71e617e4e 100644
--- a/server/sms/receive.js
+++ b/server/sms/receive.js
@@ -29,7 +29,6 @@ exports.receive = (req, res) => {
phone: phone(req.body.From)[0],
})
.then((response) => {
- //TODO Add logic for handling MMS.
let newMessage = {
msid: req.body.SmsMessageSid,
text: req.body.Body,