diff --git a/client/src/App/App.styles.scss b/client/src/App/App.styles.scss
index 30257838c..79abc2ba1 100644
--- a/client/src/App/App.styles.scss
+++ b/client/src/App/App.styles.scss
@@ -47,3 +47,20 @@
line-height: 1rem;
}
}
+
+::-webkit-scrollbar-track {
+ -webkit-box-shadow: inset 0 0 6px rgba(0, 0, 0, 0.3);
+ border-radius: 0.2rem;
+ background-color: #f5f5f5;
+}
+
+::-webkit-scrollbar {
+ width: .25rem;
+ background-color: #f5f5f5;
+}
+
+::-webkit-scrollbar-thumb {
+ border-radius: 0.2rem;
+ -webkit-box-shadow: inset 0 0 6px rgba(0, 0, 0, 0.3);
+ background-color: #188fff;
+}
diff --git a/client/src/components/chat-messages-list/chat-message-list.component.jsx b/client/src/components/chat-messages-list/chat-message-list.component.jsx
index 24f954539..2f08657fa 100644
--- a/client/src/components/chat-messages-list/chat-message-list.component.jsx
+++ b/client/src/components/chat-messages-list/chat-message-list.component.jsx
@@ -1,6 +1,6 @@
import Icon from "@ant-design/icons";
-import { FaCheck, FaCheckDouble } from "react-icons/fa";
import React, { useEffect, useRef } from "react";
+import { FaCheck, FaCheckDouble } from "react-icons/fa";
import {
AutoSizer,
CellMeasurer,
@@ -8,7 +8,6 @@ import {
List,
} from "react-virtualized";
import "./chat-message-list.styles.scss";
-import { urlencoded } from "body-parser";
export default function ChatMessageListComponent({ messages }) {
const virtualizedListRef = useRef(null);
@@ -23,7 +22,7 @@ export default function ChatMessageListComponent({ messages }) {
//console.log("Scrolling to", messages.length);
// !!virtualizedListRef.current &&
// virtualizedListRef.current.scrollToRow(messages.length);
- //TODO Outstanding isue on virtualization: https://github.com/bvaughn/react-virtualized/issues/1179
+ // Outstanding isue on virtualization: https://github.com/bvaughn/react-virtualized/issues/1179
//Scrolling does not work on this version of React.
};
@@ -75,7 +74,11 @@ const MessageRender = (message) => {
if (message.image) {
return (
-
+
);
} else {
diff --git a/client/src/components/jobs-create-owner-info/jobs-create-owner-info.new.component.jsx b/client/src/components/jobs-create-owner-info/jobs-create-owner-info.new.component.jsx
index 92eb2b03c..2dfc4d4e4 100644
--- a/client/src/components/jobs-create-owner-info/jobs-create-owner-info.new.component.jsx
+++ b/client/src/components/jobs-create-owner-info/jobs-create-owner-info.new.component.jsx
@@ -101,11 +101,16 @@ export default function JobsCreateOwnerInfoNewComponent() {
message: "This is not a valid email address.",
},
]}
- name={["owner", "data", "ownr_ea"]}>
-
+ name={["owner", "data", "ownr_ea"]}
+ shouldUpdate>
+ {() => {
+ return (
+
+ );
+ }}
item.id === values.id)[0] || null,
diff --git a/client/src/components/schedule-job-modal/schedule-job-modal.container.jsx b/client/src/components/schedule-job-modal/schedule-job-modal.container.jsx
index 98ccdce97..18b9eb5fc 100644
--- a/client/src/components/schedule-job-modal/schedule-job-modal.container.jsx
+++ b/client/src/components/schedule-job-modal/schedule-job-modal.container.jsx
@@ -63,7 +63,6 @@ export function ScheduleJobModalContainer({
skip: !visible || !!!jobId,
});
- //TODO Customize the amount of minutes it will add.
const handleOk = async () => {
setLoading(true);
if (!!previousEvent) {
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 cab0980ca..58178ccac 100644
--- a/client/src/components/shop-employees/shop-employees-form.component.jsx
+++ b/client/src/components/shop-employees/shop-employees-form.component.jsx
@@ -1,9 +1,28 @@
-import { Button, DatePicker, Form, Input, InputNumber, Switch } from "antd";
+import {
+ Button,
+ DatePicker,
+ Form,
+ Input,
+ InputNumber,
+ Select,
+ Switch,
+} from "antd";
import moment from "moment";
import React, { useEffect } from "react";
import { useTranslation } from "react-i18next";
+import { connect } from "react-redux";
+import { createStructuredSelector } from "reselect";
+import { selectBodyshop } from "../../redux/user/user.selectors";
-export default function ShopEmployeesFormComponent({
+const mapStateToProps = createStructuredSelector({
+ bodyshop: selectBodyshop,
+});
+const mapDispatchToProps = (dispatch) => ({
+ //setUserLanguage: language => dispatch(setUserLanguage(language))
+});
+
+export function ShopEmployeesFormComponent({
+ bodyshop,
form,
selectedEmployee,
handleFinish,
@@ -117,7 +136,13 @@ export default function ShopEmployeesFormComponent({
message: t("general.validation.required"),
},
]}>
-
+
);
}
+export default connect(
+ mapStateToProps,
+ mapDispatchToProps
+)(ShopEmployeesFormComponent);
diff --git a/client/src/pages/manage/manage.page.component.jsx b/client/src/pages/manage/manage.page.component.jsx
index 4c9ac14ae..35d9abc51 100644
--- a/client/src/pages/manage/manage.page.component.jsx
+++ b/client/src/pages/manage/manage.page.component.jsx
@@ -145,11 +145,10 @@ export function Manage({ match, conflict }) {
}, [t]);
return (
-
+
-
-
+
{conflict ? (
@@ -158,8 +157,7 @@ export function Manage({ match, conflict }) {
- }
- >
+ }>
@@ -331,13 +329,8 @@ export function Manage({ match, conflict }) {
+ Some footer
-
- {
- //
- }
);
}
diff --git a/ecosystem.config.js b/ecosystem.config.js
index 672cc8b67..a15cfbb49 100644
--- a/ecosystem.config.js
+++ b/ecosystem.config.js
@@ -4,9 +4,16 @@ module.exports = {
name: "ImEX Online API",
script: "./server.js",
watch: true,
+ watch_delay: 1000,
+ ignore_watch: ["node_modules", "client/img"],
+ watch_options: {
+ followSymlinks: false,
+ },
env: {
NODE_ENV: "production",
},
+ instances: "max",
+ exec_mode: "cluster",
},
],
};