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 { monthNamesBG, GetTimeFormat, GetDateFormat } from "../../../src/helpers/const" import { useSession, getSession } from 'next-auth/react'; export default function MySchedulePage({ assignments }) { const { data: session, status } = useSession(); if (status === "loading") { return
Loading...
; } return (

Моите смени

{assignments && assignments.map((assignment) => (
{assignment.dateStr + ":"}
{/*This is the column for the date. I've given it a fixed width (w-8) which you can adjust*/}
{GetTimeFormat(assignment.shift.startTime)} - {GetTimeFormat(assignment.shift.endTime)}
))}
); } //get future assignments 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, dateStr: assignment.shift.startTime.toLocaleDateString("bg-BG", { day: "numeric", month: "long" }), shift: { ...assignment.shift, startTime: assignment.shift.startTime.toISOString(), endTime: assignment.shift.endTime.toISOString(), }, }; } return assignment; }); return { props: { assignments: transformedAssignments } } }