diff --git a/Dockerfile.emergency b/Dockerfile.emergency
index 72216e6..7df8569 100644
--- a/Dockerfile.emergency
+++ b/Dockerfile.emergency
@@ -10,4 +10,5 @@ COPY next.config.js ./next.config.js
EXPOSE 3000
ENV PORT 3000
-CMD ["node_modules/.bin/next", "start"]
\ No newline at end of file
+CMD ["/app/node_modules/.bin/next", "start"]
+
diff --git a/components/ShiftComponent/ShiftCard/page.jsx b/components/ShiftComponent/ShiftCard/page.jsx
index 9adcb0d..2421a06 100644
--- a/components/ShiftComponent/ShiftCard/page.jsx
+++ b/components/ShiftComponent/ShiftCard/page.jsx
@@ -109,7 +109,7 @@ const ShiftCard = () => {
-
-
{
- setDayOfWeeksCurrent(e.target.value);
-
- if (!!dayOfWeeksChoose.find((b) => b == e.target.value)) {
- toast.error("روز تکراری است", {
- position: "bottom-right",
- closeOnClick: true,
- });
- } else {
- CTX.setDayOfWeeksChoose((current) => [
- ...current,
- parseInt(e.target.value),
- ]);
- }
- }}
- style="text-right"
- select={true}
- selectData={[
- { key: "شنبه", value: parseInt(6) },
- { key: "یکشنبه", value: 0 },
- { key: "دوشنبه", value: 1 },
- { key: "سه شنبه", value: 2 },
- { key: "چهار شنبه", value: 3 },
- { key: "پنج شنبه", value: 4 },
- { key: "جمعه", value: 5 },
- ]}
- />
-
-
- {dayOfWeeksChoose &&
- dayOfWeeksChoose.map((e) => (
-
-
deleteRole(e)}
- >
-
-
-
- {week?.find((b) => b.value == e).key}
-
-
-
- ))}
-
-
-
=6.0'}
dev: true
- /classnames@2.3.2:
- resolution: {integrity: sha512-CSbhY4cFEJRe6/GQzIk5qXZ4Jeg5pcsP7b5peFSDpffpe1cqjASH/n9UTjBwOp6XpMSTwQ8Za2K5V02ueA7Tmw==}
- dev: false
-
/cli-cursor@3.1.0:
resolution: {integrity: sha512-I/zHAwsKf9FqGoXM4WWRACob9+SNukZTd94DWF57E4toouRulbCxcUh6RKUEOQlYTHJnzkPMySvPNaaSLNfLZw==}
engines: {node: '>=8'}
@@ -747,38 +727,12 @@ packages:
engines: {node: '>= 10'}
dev: false
- /component-classes@1.2.6:
- resolution: {integrity: sha512-hPFGULxdwugu1QWW3SvVOCUHLzO34+a2J6Wqy0c5ASQkfi9/8nZcBB0ZohaEbXOQlCflMAEMmEWk7u7BVs4koA==}
- dependencies:
- component-indexof: 0.0.3
- dev: false
-
- /component-indexof@0.0.3:
- resolution: {integrity: sha512-puDQKvx/64HZXb4hBwIcvQLaLgux8o1CbWl39s41hrIIZDl1lJiD5jc22gj3RBeGK0ovxALDYpIbyjqDUUl0rw==}
- dev: false
-
/concat-map@0.0.1:
resolution: {integrity: sha512-/Srv4dswyQNBfohGpz9o6Yb3Gz3SrUDqBH5rTuhGR7ahtlbYKnVxw2bCFMRljaA7EXHaXZ8wsHdodFvbkhKmqg==}
dev: false
- /core-js@2.6.12:
- resolution: {integrity: sha512-Kb2wC0fvsWfQrgk8HU5lW6U/Lcs8+9aaYcy4ZFc6DDlo4nZ7n70dEgE5rtR0oG6ufKDUnrwfWL1mXR5ljDatrQ==}
- deprecated: core-js@<3.23.3 is no longer maintained and not recommended for usage due to the number of issues. Because of the V8 engine whims, feature detection in old core-js versions could cause a slowdown up to 100x even if nothing is polyfilled. Some versions have web compatibility issues. Please, upgrade your dependencies to the actual version of core-js.
- requiresBuild: true
- dev: false
-
- /create-react-class@15.7.0:
- resolution: {integrity: sha512-QZv4sFWG9S5RUvkTYWbflxeZX+JG7Cz0Tn33rQBJ+WFQTqTfUTjMjiv9tnfXazjsO5r0KhPs+AqCjyrQX6h2ng==}
- dependencies:
- loose-envify: 1.4.0
- object-assign: 4.1.1
- dev: false
-
- /css-animation@1.6.1:
- resolution: {integrity: sha512-/48+/BaEaHRY6kNQ2OIPzKf9A6g8WjZYjhiNDNuIVbsm5tXCGIAsHDjB4Xu1C4vXJtUWZo26O68OQkDpNBaPog==}
- dependencies:
- babel-runtime: 6.26.0
- component-classes: 1.2.6
+ /core-util-is@1.0.3:
+ resolution: {integrity: sha512-ZQBvi1DcpJ4GDqanjucZ2Hj3wEO5pZDS89BWbkcrvdxksJorwUDDZamX9ldFkp9aw2lmBDLgkObEA4DWNJ9FYQ==}
dev: false
/css-loader@6.8.1(webpack@5.89.0):
@@ -822,10 +776,6 @@ packages:
resolution: {integrity: sha512-+HlytyjlPKnIG8XuRG8WvmBP8xs8P71y+SKKS6ZXWoEgLuePxtDoUEiH7WkdePWrQ5JBpE6aoVqfZfJUQkjXwA==}
dev: false
- /dom-align@1.12.4:
- resolution: {integrity: sha512-R8LUSEay/68zE5c8/3BDxiTEvgb4xZTF0RKmAHfiEVN3klfIpXfi2/QCoiWPccVQ0J/ZGdz9OjzL4uJEP/MRAw==}
- dev: false
-
/electron-to-chromium@1.4.503:
resolution: {integrity: sha512-LF2IQit4B0VrUHFeQkWhZm97KuJSGF2WJqq1InpY+ECpFRkXd8yTIaTtJxsO0OKDmiBYwWqcrNaXOurn2T2wiA==}
@@ -1134,10 +1084,6 @@ packages:
engines: {node: '>=10'}
dev: false
- /jalaali-js@0.2.0:
- resolution: {integrity: sha512-NnJVmUbesh1v3GXZsjPd18sGvxKaNmHQ7svwULNvYBSVQKdsEatUmXiUQZd7HzU10Ur2eX/83ZT5rEzc746dJw==}
- dev: false
-
/jalaali-js@1.2.6:
resolution: {integrity: sha512-io974va+Qyu+UfuVX3UIAgJlxLhAMx9Y8VMfh+IG00Js7hXQo1qNQuwSiSa0xxco0SVgx5HWNkaiCcV+aZ8WPw==}
dev: false
@@ -1255,13 +1201,6 @@ packages:
brace-expansion: 1.1.11
dev: false
- /moment-jalali@0.3.9:
- resolution: {integrity: sha512-ffHEHJbyYsHImjABoVIq309nnNjMSnapnoTcLRIDsxNQNdrkqiAVmjTFn1EiQdts6XDwhKg9d/06vurVoChMyA==}
- dependencies:
- jalaali-js: 0.2.0
- moment: 2.29.4
- dev: false
-
/moment@2.29.4:
resolution: {integrity: sha512-5LC9SOxjSc2HF6vO2CyuTDNivEdoz2IvyJJGj6X8DJ0eFyfszE0QiEd+iXmBvUP3WHxSjFH/vIsA0EN00cgr8w==}
dev: false
@@ -1392,10 +1331,6 @@ packages:
resolution: {integrity: sha512-LDJzPVEEEPR+y48z93A0Ed0yXb8pAByGWo/k5YYdYgpY2/2EsOsksJrq7lOHxryrVOn1ejG6oAp8ahvOIQD8sw==}
dev: false
- /performance-now@2.1.0:
- resolution: {integrity: sha512-7EAHlyLHI56VEIdK57uwHdHKIaAGbnXPiw0yWbarQZOKaKpvUIgW0jWRVLiatnM+XXlSwsanIBH/hzGMJulMow==}
- dev: false
-
/picocolors@1.0.0:
resolution: {integrity: sha512-1fygroTLlHu66zi26VoTDv8yRgm0Fccecssto+MhsZ0D/DGW2sm8E8AjW7NU5VVTRt5GxbeZ5qBuJr+HyLYkjQ==}
@@ -1552,68 +1487,12 @@ packages:
resolution: {integrity: sha512-NuaNSa6flKT5JaSYQzJok04JzTL1CA6aGhv5rfLW3PgqA+M2ChpZQnAC8h8i4ZFkBS8X5RqkDBHA7r4hej3K9A==}
dev: false
- /raf@3.4.1:
- resolution: {integrity: sha512-Sq4CW4QhwOHE8ucn6J34MqtZCeWFP2aQSmrlroYgqAV1PjStIhJXxYuTgUIfkEk7zTLjmIjLmU5q+fbD1NnOJA==}
- dependencies:
- performance-now: 2.1.0
- dev: false
-
/randombytes@2.1.0:
resolution: {integrity: sha512-vYl3iOX+4CKUWuxGi9Ukhie6fsqXqS9FE2Zaic4tNFD2N2QQaXOMFbuKK4QmDHC0JO6B1Zp41J0LpT0oR68amQ==}
dependencies:
safe-buffer: 5.2.1
dev: true
- /rc-align@2.4.5:
- resolution: {integrity: sha512-nv9wYUYdfyfK+qskThf4BQUSIadeI/dCsfaMZfNEoxm9HwOIioQ+LyqmMK6jWHAZQgOzMLaqawhuBXlF63vgjw==}
- dependencies:
- babel-runtime: 6.26.0
- dom-align: 1.12.4
- prop-types: 15.8.1
- rc-util: 4.21.1
- dev: false
-
- /rc-animate@2.11.1(react-dom@18.2.0)(react@18.2.0):
- resolution: {integrity: sha512-1NyuCGFJG/0Y+9RKh5y/i/AalUCA51opyyS/jO2seELpgymZm2u9QV3xwODwEuzkmeQ1BDPxMLmYLcTJedPlkQ==}
- peerDependencies:
- react: '>=16.9.0'
- react-dom: '>=16.9.0'
- dependencies:
- babel-runtime: 6.26.0
- classnames: 2.3.2
- css-animation: 1.6.1
- prop-types: 15.8.1
- raf: 3.4.1
- rc-util: 4.21.1
- react: 18.2.0
- react-dom: 18.2.0(react@18.2.0)
- react-lifecycles-compat: 3.0.4
- dev: false
-
- /rc-trigger@1.11.5(react-dom@18.2.0)(react@18.2.0):
- resolution: {integrity: sha512-MBuUPw1nFzA4K7jQOwb7uvFaZFjXGd00EofUYiZ+l/fgKVq8wnLC0lkv36kwqM7vfKyftRo2sh7cWVpdPuNnnw==}
- dependencies:
- babel-runtime: 6.26.0
- create-react-class: 15.7.0
- prop-types: 15.8.1
- rc-align: 2.4.5
- rc-animate: 2.11.1(react-dom@18.2.0)(react@18.2.0)
- rc-util: 4.21.1
- transitivePeerDependencies:
- - react
- - react-dom
- dev: false
-
- /rc-util@4.21.1:
- resolution: {integrity: sha512-Z+vlkSQVc1l8O2UjR3WQ+XdWlhj5q9BMQNLk2iOBch75CqPfrJyGtcWMcnhRlNuDu0Ndtt4kLVO8JI8BrABobg==}
- dependencies:
- add-dom-event-listener: 1.1.0
- prop-types: 15.8.1
- react-is: 16.13.1
- react-lifecycles-compat: 3.0.4
- shallowequal: 1.1.0
- dev: false
-
/react-dom@18.2.0(react@18.2.0):
resolution: {integrity: sha512-6IMTriUmvsjHUjNtEDudZfuDQUoWXVxKHhlEGSk81n4YFS+r/Kl99wXiwlVXtPBtJenozv2P+hxDsw9eA7Xo6g==}
peerDependencies:
@@ -1624,23 +1503,10 @@ packages:
scheduler: 0.23.0
dev: false
- /react-duration-picker@1.1.1(react@18.2.0):
- resolution: {integrity: sha512-1yzIjfpoSbRgJm88h8RF5VkTA0wa+sBRMmH9dudxzs7A8BC4LFvQiku51atx//JI5Yb4iwAelB9jjuWyxbkcqg==}
- peerDependencies:
- react: '>=16.8.0'
- dependencies:
- prop-types: 15.8.1
- react: 18.2.0
- dev: false
-
/react-is@16.13.1:
resolution: {integrity: sha512-24e6ynE2H+OKt4kqsOvNd8kBpV65zoxbA4BVsEOB3ARVWQki/DHzaUoC5KuON/BiccDaCCTZBuOcfZs70kR8bQ==}
dev: false
- /react-lifecycles-compat@3.0.4:
- resolution: {integrity: sha512-fBASbA6LnOU9dOU2eW7aQ8xmYBSXUIWr+UmF9b1efZBazGNO+rcXT/icdKnYm2pTwcRylVUYwW7H1PHfLekVzA==}
- dev: false
-
/react-modern-calendar-datepicker@3.1.6(react-dom@18.2.0)(react@18.2.0):
resolution: {integrity: sha512-lnMqEMj9Wn32/sm119tjCl5lOkq4u9vJE7wggi7hdXV4s8rPdKlH56FVVehlBi0dfYeWQVZ9npY384Zprjn4WA==}
peerDependencies:
@@ -1652,28 +1518,6 @@ packages:
react-dom: 18.2.0(react@18.2.0)
dev: false
- /react-onclickoutside@5.11.1:
- resolution: {integrity: sha512-iZKK+qUsGuqz+O3O/LtvDWkwmoqagC0EtRybhCJ3hawi9PF0ZaVrLnR24lqovbuvvUeA+cd1cWALOw+l1tfeaQ==}
- dependencies:
- create-react-class: 15.7.0
- dev: false
-
- /react-persian-datepicker@3.0.2(react-dom@18.2.0)(react@18.2.0):
- resolution: {integrity: sha512-Kg6eQlBqQOv+j8g3MTv5WOD+fpsBgfbWolrlQH2DLCiUnypWD/qLi5c+UptYjXNoQiCjo6ikN/gFiOb5eHb3lA==}
- peerDependencies:
- react: ^15.2.1
- react-dom: ^15.2.1
- dependencies:
- classnames: 2.3.2
- moment-jalali: 0.3.9
- prop-types: 15.8.1
- rc-trigger: 1.11.5(react-dom@18.2.0)(react@18.2.0)
- react: 18.2.0
- react-dom: 18.2.0(react@18.2.0)
- react-onclickoutside: 5.11.1
- react-tether: 0.5.7(react-dom@18.2.0)(react@18.2.0)
- dev: false
-
/react-spring-bottom-sheet@3.4.1(react-dom@18.2.0)(react@18.2.0):
resolution: {integrity: sha512-yDFqiPMm/fjefjnOe6Q9zxccbCl6HMUKsK5bWgfGHJIj4zmXVKio5d4icQvmOLuwpuCA2pwv4J6nGWS6fUZidQ==}
peerDependencies:
@@ -1706,18 +1550,6 @@ packages:
react-dom: 18.2.0(react@18.2.0)
dev: false
- /react-tether@0.5.7(react-dom@18.2.0)(react@18.2.0):
- resolution: {integrity: sha512-oAZQLcABWpFXSV2El6WqFMoUuYdG8iKnE+CJcBI+WMPkvMGnguMC0lHx/cmyIcOxm/6JetTEmq2Q7T2bpoe69w==}
- peerDependencies:
- react: ^0.14.0 || ^15.0.0
- react-dom: ^0.14.0 || ^15.0.0
- dependencies:
- prop-types: 15.8.1
- react: 18.2.0
- react-dom: 18.2.0(react@18.2.0)
- tether: 1.4.7
- dev: false
-
/react-toastify@9.1.3(react-dom@18.2.0)(react@18.2.0):
resolution: {integrity: sha512-fPfb8ghtn/XMxw3LkxQBk3IyagNpF/LIKjOBflbexr2AWxAH1MJgvnESwEwBn9liLFXgTKWgBSdZpw9m4OTHTg==}
peerDependencies:
@@ -1767,10 +1599,6 @@ packages:
picomatch: 2.3.1
dev: false
- /regenerator-runtime@0.11.1:
- resolution: {integrity: sha512-MguG95oij0fC3QV3URf4V2SDYGJhJnJGqvIIgdECeODCT98wSWDAJ94SSuVpYQUoTcGUIL6L4yNB7j1DFFHSBg==}
- dev: false
-
/regenerator-runtime@0.14.0:
resolution: {integrity: sha512-srw17NI0TUWHuGa5CFGGmhfNIeja30WMBfbslPNhf6JrqQlLN5gcrvig1oqPxiVaXb0oW0XRKtH6Nngs5lKCIA==}
dev: false
@@ -1850,10 +1678,6 @@ packages:
randombytes: 2.1.0
dev: true
- /shallowequal@1.1.0:
- resolution: {integrity: sha512-y0m1JoUZSlPAjXVtPPW70aZWfIL/dSP7AFkRnniLCrK/8MDKog3TySTBmckD+RObVxH0v4Tox67+F14PdED2oQ==}
- dev: false
-
/signal-exit@3.0.7:
resolution: {integrity: sha512-wnD2ZE+l+SPC/uoS0vXeE9L1+0wuaMqKlfz9AMUo38JsyLSBWSFcHR1Rri62LZc12vLr1gb3jl7iwQhgwpAbGQ==}
dev: false
@@ -2035,10 +1859,6 @@ packages:
source-map-support: 0.5.21
dev: true
- /tether@1.4.7:
- resolution: {integrity: sha512-Z0J1aExjoFU8pybVkQAo/vD2wfSO63r+XOPfWQMC5qtf1bI7IWqNk4MiyBcgvvnY8kqnY06dVdvwTK2S3PU/Fw==}
- dev: false
-
/thenify-all@1.6.0:
resolution: {integrity: sha512-RNxQH/qI8/t3thXJDwcstUO4zeqo64+Uy/+sNVRBx4Xn2OX+OZ9oP+iJnNFqplFra2ZUVeKCSa2oVWi3T4uVmA==}
engines: {node: '>=0.8'}
diff --git a/src/app/layout.jsx b/src/app/layout.jsx
index 2851375..8d90b23 100644
--- a/src/app/layout.jsx
+++ b/src/app/layout.jsx
@@ -17,6 +17,7 @@ import "react-toastify/dist/ReactToastify.css";
import Loading from "plugins/Loading/page";
import Chapar, { getToken } from "plugins/Chapar";
import TimePicker from "plugins/TimePicker/page";
+import axios from "axios";
const inter = Inter({ subsets: ["latin"] });
@@ -36,6 +37,8 @@ export default function RootLayout({ children }) {
const [BottomSheetCreateShiftsOpen, setBottomSheetCreateShiftsOpen] =
useState(false);
+ const [BottomManageShiftOpen, setBottomManageShiftOpen] = useState(false);
+
// BigPlus
const [BigPlusOpen, setBigPlusOpen] = useState(false);
const [BigPlusRotateIcon, setBigPlusRotateIcon] = useState(false);
@@ -68,7 +71,6 @@ export default function RootLayout({ children }) {
const [idEditUser, setIdEditUser] = useState(null);
// shift
- const [dayOfWeeksChoose, setDayOfWeeksChoose] = useState([]);
const [startAtTimeShift, setStartAtTimeShift] = useState(["00", "00"]);
const [endAtTimeShift, setEndAtTimeShift] = useState(["00", "00"]);
const [shiftsData, setShiftsData] = useState([null]);
@@ -76,6 +78,9 @@ export default function RootLayout({ children }) {
const [goToEditShift, setGoToEditShift] = useState(false);
const [idEditShift, setIdEditShift] = useState(null);
+ // shift manage-shift
+ const [searchUserChoose, setSearchUserChoose] = useState([]);
+
// TimePicker
const [openTimePicker, setOpenTimePicker] = useState(false);
const [TimePickerOrder, setTimePickerOrder] = useState(null);
@@ -639,7 +644,6 @@ export default function RootLayout({ children }) {
idEditUser,
goToEditUser,
userData,
- dayOfWeeksChoose,
openTimePicker,
endAtTimeShift,
startAtTimeShift,
@@ -649,6 +653,8 @@ export default function RootLayout({ children }) {
goToEditShift,
shiftData,
profile,
+ searchUserChoose,
+ BottomManageShiftOpen,
},
setBottomSheetCreateRoleOpen,
setBottomSheetCreateEmployeesOpen,
@@ -686,7 +692,6 @@ export default function RootLayout({ children }) {
DeleteUser,
GetUser,
UpdateUser,
- setDayOfWeeksChoose,
setOpenTimePicker,
setEndAtTimeShift,
setStartAtTimeShift,
@@ -702,6 +707,8 @@ export default function RootLayout({ children }) {
DeleteShift,
setProfile,
CheckUser,
+ setSearchUserChoose,
+ setBottomManageShiftOpen,
}}
>
diff --git a/src/app/page.jsx b/src/app/page.jsx
index f1dd3cc..44a3090 100644
--- a/src/app/page.jsx
+++ b/src/app/page.jsx
@@ -10,6 +10,8 @@ import core from "../../public/images/core.png";
import { useEffect, useState } from "react";
import PersianNumber from "../../plugins/PersianNumber";
import UnderDevelopeTimer from "../../components/UnderDevelopeTimer";
+import { version } from "../../package.json";
+import Link from "next/link";
export default function Home() {
const [state, setstate] = useState(false);
@@ -19,7 +21,7 @@ export default function Home() {
}, []);
return (
-
+
-
- کارگران مشغول کارند
-
-
+
+ تا اینجا ورژن
{" "}
- شهریــــــــــــــــــــــور میبینمتون
-
+
+
+
+
+
diff --git a/src/app/shifts/manage-shift/page.jsx b/src/app/shifts/manage-shift/page.jsx
new file mode 100644
index 0000000..4ddbe5a
--- /dev/null
+++ b/src/app/shifts/manage-shift/page.jsx
@@ -0,0 +1,337 @@
+"use client";
+
+import React, { useContext, useEffect, useState } from "react";
+import moment from "jalali-moment";
+import "moment/locale/fa"; // Set the locale to Farsi (Persian)
+import AppHeader from "@comp/AppHeader/page";
+import { Swiper, SwiperSlide } from "swiper/react";
+import PersianNumber from "plugins/PersianNumber";
+import { PersianD, PersianDay, PersianM, holidays } from "datacalender";
+import AppContext from "@ctx/AppContext";
+import Input from "plugins/Input/page";
+import { toast } from "react-toastify";
+import Avatar from "boring-avatars";
+import BottomManageShift from "plugins/BottomSheet/BottomManageShift";
+
+const Calendar = () => {
+ const CTX = useContext(AppContext);
+ const shiftsData = CTX.state.shiftsData;
+ const searchUserChoose = CTX.state.searchUserChoose;
+ const usersData = CTX.state.usersData;
+
+ console.log("usersData", usersData);
+
+ const [searchUserCurrntData, setSearchUserCurrntData] = useState([]);
+ const [daysUntilEnd, setDaysUntilEnd] = useState([]);
+ const [selectDay, setSelectDay] = useState(null);
+ const [selectShift, setselectShift] = useState(0);
+ const [manageShiftEmployeesData, setManageShiftEmployeesData] = useState([]);
+
+ const today = moment().format("jYYYY/jM/jD"); // Get the current Jalali date
+ const todayJustDay = moment().format("jD"); // Get the current Jalali date
+
+ // Find the end of the current month
+ const endOfMonth = moment(today, "jYYYY/jM/jD").endOf("jMonth");
+
+ const daysInCurrentMonth = moment(today, "jYYYY/jM/jD")
+ .endOf("jMonth")
+ .jDate();
+
+ const daysEndOfMonth = () => {
+ const days = [];
+ for (let i = -1; i < daysInCurrentMonth - todayJustDay + 1; i++) {
+ const currentDate = moment(today, "jYYYY/jM/jD").add(i, "days");
+ const isToday = currentDate.isSame(moment(), "day");
+ days.push({
+ checkDay: currentDate.format("jYYYY/jM/jD"),
+ date: currentDate.format("jD / jM"),
+ dayOfWeek: currentDate.format("dddd"),
+ today: isToday, // Set today: true if it's the current date
+ });
+ }
+
+ return setDaysUntilEnd(days);
+ };
+
+ console.log("daysUntilEnd", daysUntilEnd[selectDay]);
+
+ const handleManageShiftEmployeesOpen = (e) => {
+ setManageShiftEmployeesData(
+ usersData.map((item) => ({
+ key:
+ item.firstName +
+ " " +
+ item.lastName +
+ "( " +
+ item.roleNames[0] +
+ " )",
+
+ value: item.userId,
+ }))
+ );
+ };
+
+ const deleteSearchUser = (id) => {
+ CTX.setSearchUserChoose(searchUserChoose.filter((el) => el !== id));
+ };
+
+ useEffect(() => {
+ daysEndOfMonth();
+ setSelectDay(1);
+ CTX.GetShifts();
+ CTX.GetUsers();
+ }, []);
+
+ useEffect(() => {
+ // if (!!CTX.GetUsers()) {
+ //
+ // }
+ handleManageShiftEmployeesOpen();
+ }, [usersData]);
+
+ console.log("searchUserChooseqqqqqqqqqqqqqqqqqqqqqqqqq", searchUserChoose);
+
+ console.log(daysUntilEnd);
+
+ return (
+
+
+
+
+
console.log("slide change")}
+ onSwiper={(swiper) => console.log(swiper)}
+ >
+ {daysUntilEnd?.map((e, index) => (
+
+ {
+ setSelectDay(index);
+ console.log(index);
+ }}
+ >
+
+
+ b.date == e.checkDay)
+ ? "text-red-500"
+ : ""
+ } `}
+ />
+
+
+
+
b.date == e.checkDay)
+ ? "bg-transparent text-red-500"
+ : "bg-white text-gray-500"
+ }`}
+ >
+
+ {/* {PersianD.find((i) => i == e.dayOfWeek)} */}
+ {PersianDay(e.dayOfWeek)}
+
+
+
+
+ ))}
+
+
+
+
+ {shiftsData.length > 0 ? (
+
+ {shiftsData.map((e, index) => (
+
setselectShift(index)}
+ >
+
{e?.title}
+
+ ))}
+
+ ) : (
+
+ )}
+
+
+
+
+
+
+ ویرایش برای{" "}
+
+ {shiftsData && shiftsData[selectShift]?.title}
+ {" "}
+ تاریخ{" "}
+
+
+ {" "}
+ میباشد
+
+
+
+
+
+ {
+ setSearchUserCurrntData(e.target.value);
+
+ if (!!searchUserChoose.find((b) => b == e.target.value)) {
+ toast.error("نقش تکراری است", {
+ position: "bottom-right",
+ closeOnClick: true,
+ });
+ } else {
+ CTX.setSearchUserChoose((current) => [
+ ...current,
+ e.target.value,
+ ]);
+ }
+ }}
+ style="text-right"
+ // validatorData={validator.current.message(
+ // "phoneNumber",
+ // phoneNumber,
+ // "required"
+ // )}
+ select={true}
+ selectData={manageShiftEmployeesData}
+ theme={1}
+ />
+
+
+
0 ? "" : "justify-center"
+ }`}
+ >
+ {searchUserChoose.length > 0 ? (
+ searchUserChoose.map((e) => (
+
+
deleteSearchUser(e)}
+ >
+
b.userId == e)?.firstName}
+ variant="beam"
+ colors={["#9d9f88", "#83af96", "#b2de93"]}
+ />
+
+
+
+
+ {usersData.find((b) => b.userId == e)?.firstName}
+
+
+
+ ))
+ ) : (
+
+ )}
+
+
+
+
+ {" "}
+ ثبت نهایی شیفت
+
+ CTX.setBottomManageShiftOpen(true)}
+ >
+ تغییر حالت تسک ها{" "}
+
+
+
+
+
+ );
+};
+
+export default Calendar;
+
+{
+ /* {shiftsData.map((e, index) => (
+
+
+
+
+
+
{e?.title}
+
+ {e?.title} {}
+
+
+
+
+ ))} */
+}
diff --git a/src/app/shifts/page.jsx b/src/app/shifts/page.jsx
index 57f5a6f..c7b0cf6 100644
--- a/src/app/shifts/page.jsx
+++ b/src/app/shifts/page.jsx
@@ -3,6 +3,7 @@
import AppHeader from "@comp/AppHeader/page";
import ShiftCard from "@comp/ShiftComponent/ShiftCard/page";
import AppContext from "@ctx/AppContext";
+import Link from "next/link";
import BottomSheetCreateShifts from "plugins/BottomSheet/BottomSheetCreateShifts";
import PersianNumber from "plugins/PersianNumber";
import React, { useContext, useEffect } from "react";
@@ -43,14 +44,18 @@ const Shifts = (props) => {
نمایید و با توجه به نیاز های مجموعه خود شیفت بندی کنید .{" "}
-
- {" "}
- شیفت بندی هفته
-
-
- {" "}
- شیفت بندی هغته بعد
-
+
+
+ {" "}
+ شیفت بندی هفته
+
+
+
+
+ {" "}
+ شیفت بندی هغته بعد
+
+
diff --git a/style/globals.css b/style/globals.css
index f3310fc..1615561 100644
--- a/style/globals.css
+++ b/style/globals.css
@@ -204,3 +204,13 @@ body {
inherits: true;
initial-value: 0turn;
}
+
+#swich-shifts::-webkit-scrollbar {
+ display: none;
+}
+
+/* Hide scrollbar for IE, Edge and Firefox */
+#swich-shifts {
+ -ms-overflow-style: none; /* IE and Edge */
+ scrollbar-width: none; /* Firefox */
+}