diff --git a/components/sidemenuData.js b/components/sidemenuData.js
index 1b85b1d..e747b55 100644
--- a/components/sidemenuData.js
+++ b/components/sidemenuData.js
@@ -15,6 +15,11 @@ const sidemenu = [
text: "График",
url: "/cart/calendar/schedule",
},
+ // {
+ // id: "myshedule",
+ // text: "Моя График",
+ // url: "/cart/publishers/myschedule",
+ // },
{
id: "locations",
text: "Местоположения",
diff --git a/pages/cart/publishers/myschedule.tsx b/pages/cart/publishers/myschedule.tsx
new file mode 100644
index 0000000..340db55
--- /dev/null
+++ b/pages/cart/publishers/myschedule.tsx
@@ -0,0 +1,90 @@
+import { useState } from 'react';
+import Layout from "../../../components/layout";
+import ProtectedRoute from '../../../components/protectedRoute';
+import { UserRole } from '@prisma/client';
+import axiosServer from '../../../src/axiosServer';
+import common from '../../../src/helpers/common';
+import { ShiftsList } from '../../../components/publisher/ShiftsList';
+
+import { useSession, getSession } from 'next-auth/react';
+
+export default function MySchedulePage({ shifts }) {
+
+ const { data: session, status } = useSession();
+ if (status === "loading") {
+ return
Loading...
;
+ }
+
+ return (
+
+
+
+
Моите смени
+
+
+
+
+ );
+}
+
+//get future assignmenrs for the current user (session.user.id)
+
+export const getServerSideProps = async (context) => {
+ const session = await getSession(context);
+
+ context.res.setHeader("Cache-Control", "s-maxage=1, stale-while-revalidate");
+
+ if (!session) {
+ return {
+ redirect: {
+ destination: '/auth/login', // Adjust the login path as needed
+ permanent: false,
+ },
+ };
+ }
+
+ const prisma = common.getPrismaClient();
+ const publisher = await prisma.publisher.findMany({
+ where: {
+ id: session.user.id,
+ assignments: {
+ some: {
+ shift: {
+ startTime: {
+ gte: new Date(),
+ },
+ },
+ },
+ },
+ },
+ include: {
+ assignments: {
+ include: {
+ shift: true,
+ },
+ },
+ },
+ });
+
+ const assignments = publisher[0]?.assignments;
+ const transformedAssignments = assignments.map(assignment => {
+ if (assignment.shift && assignment.shift.startTime) {
+ return {
+ ...assignment,
+ shift: {
+ ...assignment.shift,
+ startTime: assignment.shift.startTime.toISOString(),
+ endTime: assignment.shift.endTime.toISOString(),
+ },
+ };
+ }
+ return assignment;
+ });
+
+
+ return {
+ props: {
+ assignments: transformedAssignments,
+ },
+ };
+};