@@ -2,8 +2,13 @@ import { useEffect, useState } from "react";
22import { PositionManagerState , PositionContext } from "./context" ;
33import useStore from "../hooks/useStore" ;
44import { DefaultResource , FieldProps , ProcessedEvent , ResourceFields } from "../types" ;
5- import { getResourcedEvents , sortEventsByTheEarliest } from "../helpers/generals" ;
5+ import {
6+ getResourcedEvents ,
7+ sortEventsByTheEarliest ,
8+ sortEventsByTheLengthest ,
9+ } from "../helpers/generals" ;
610import { eachDayOfInterval , format } from "date-fns" ;
11+ import { View } from "../components/nav/Navigation" ;
712
813type Props = {
914 children : React . ReactNode ;
@@ -39,10 +44,13 @@ const setEventPositionsWithResources = (
3944 events : ProcessedEvent [ ] ,
4045 resources : DefaultResource [ ] ,
4146 rFields : ResourceFields ,
42- fields : FieldProps [ ]
47+ fields : FieldProps [ ] ,
48+ view : View
4349) => {
44- const sorted = sortEventsByTheEarliest ( events ) ;
50+ const sorted =
51+ view === "month" ? sortEventsByTheLengthest ( events ) : sortEventsByTheEarliest ( events ) ;
4552 const slots : PositionManagerState [ "renderedSlots" ] = { } ;
53+
4654 if ( resources . length ) {
4755 for ( const resource of resources ) {
4856 const resourcedEvents = getResourcedEvents ( sorted , resource , rFields , fields ) ;
@@ -52,22 +60,27 @@ const setEventPositionsWithResources = (
5260 } else {
5361 slots . all = setEventPositions ( sorted ) ;
5462 }
55-
5663 return slots ;
5764} ;
5865
5966export const PositionProvider = ( { children } : Props ) => {
60- const { events, resources, resourceFields, fields } = useStore ( ) ;
67+ const { events, resources, resourceFields, fields, view } = useStore ( ) ;
6168 const [ state , set ] = useState < PositionManagerState > ( {
62- renderedSlots : setEventPositionsWithResources ( events , resources , resourceFields , fields ) ,
69+ renderedSlots : setEventPositionsWithResources ( events , resources , resourceFields , fields , view ) ,
6370 } ) ;
6471
6572 useEffect ( ( ) => {
6673 set ( ( prev ) => ( {
6774 ...prev ,
68- renderedSlots : setEventPositionsWithResources ( events , resources , resourceFields , fields ) ,
75+ renderedSlots : setEventPositionsWithResources (
76+ events ,
77+ resources ,
78+ resourceFields ,
79+ fields ,
80+ view
81+ ) ,
6982 } ) ) ;
70- } , [ events , fields , resourceFields , resources ] ) ;
83+ } , [ events , fields , resourceFields , resources , view ] ) ;
7184
7285 const setRenderedSlot = ( day : string , eventId : string , position : number , resourceId ?: string ) => {
7386 set ( ( prev ) => ( {
0 commit comments