import { LocationCard } from './ui/LocationCard'; import { MonthTitle } from './ui/MonthTitle'; import { AddMonthButton } from './ui/AddMonthButton'; import { AddLocationButton } from './ui/AddLocationButton'; import clientPromise from './lib/mongodb'; import { BillingLocation } from './lib/db-types'; import { PageFooter } from './ui/PageFooter'; import { auth } from '@/app/lib/auth'; import { redirect } from 'next/navigation'; const getNextYearMonth = (yearMonth:number) => { return(yearMonth % 100 === 12 ? yearMonth + 89 : yearMonth + 1); } export const Page = async () => { const session = await auth(); const client = await clientPromise; const db = client.db("rezije"); const locations = await db.collection("lokacije") .find({}) .sort({ yearMonth: -1, name: 1 }) // sort by yearMonth descending .limit(20) .toArray(); // if the database is in it's initial state, show the add location button for the current month if(locations.length === 0) { const currentYearMonth = new Date().getFullYear() * 100 + new Date().getMonth() + 1; return (
); } return (
{ locations.map((location, ix, array) => { return ( <> { // show month title above the first LocationCard in the month ix === 0 || location.yearMonth !== array[ix-1].yearMonth ? : null } { // show AddLocationButton as a last item in the firts month location.yearMonth === array[0].yearMonth && location.yearMonth !== array[ix+1]?.yearMonth ? : null } ) }) }
  • session.expires = { session?.expires }
  • session.user.id = { session?.user?.id }
  • session.user.email = { session?.user?.email }
  • session.user.name = { session?.user?.name }
  • session.user.image = { session?.user?.image }
); } export default Page;