Skip to content

Commit 96df278

Browse files
committed
Merge branch 'master' of github.com:wix/react-native-calendars into release
2 parents 51e95c3 + a063e0d commit 96df278

File tree

4 files changed

+38
-10
lines changed

4 files changed

+38
-10
lines changed

src/expandableCalendar/Context/Provider.tsx

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -23,7 +23,7 @@ export interface CalendarContextProviderProps extends ViewProps {
2323
onDateChanged?: (date: string, updateSource: UpdateSources) => void;
2424
/** Callback for month change event */
2525
onMonthChange?: (date: DateData, updateSource: UpdateSources) => void;
26-
26+
2727
/** Whether to show the today button */
2828
showTodayButton?: boolean;
2929
/** Today button's top position */
@@ -32,7 +32,7 @@ export interface CalendarContextProviderProps extends ViewProps {
3232
todayButtonStyle?: ViewStyle;
3333
/** The opacity for the disabled today button (0-1) */
3434
disabledOpacity?: number;
35-
35+
3636
/** The number of days to present in the timeline calendar */
3737
numberOfDays?: number;
3838
/** The left inset of the timeline calendar (sidebar width), default is 72 */
@@ -70,7 +70,7 @@ const CalendarProvider = (props: CalendarContextProviderProps) => {
7070
}, [style, propsStyle]);
7171

7272
useDidUpdate(() => {
73-
if (date) {
73+
if (date && date !== currentDate) {
7474
_setDate(date, UpdateSources.PROP_UPDATE);
7575
}
7676
}, [date]);

src/expandableCalendar/WeekCalendar/index.tsx

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -55,6 +55,7 @@ const WeekCalendar = (props: WeekCalendarProps) => {
5555
items.current = getDatesArray(date, firstDay, numberOfDays);
5656
setListData(items.current);
5757
visibleWeek.current = date;
58+
list?.current?.scrollToIndex({index: NUMBER_OF_PAGES, animated: false});
5859
}, [numberOfDays]);
5960

6061
useDidUpdate(() => {

src/expandableCalendar/__test__/index.spec.ts

Lines changed: 27 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -80,7 +80,6 @@ describe('ExpandableCalendar', () => {
8080
});
8181

8282
describe('Init', () => {
83-
8483
beforeEach(() => {
8584
driver.render();
8685
});
@@ -126,15 +125,38 @@ describe('ExpandableCalendar', () => {
126125
});
127126

128127
it('should not close expandable header on day press when closeOnDayPress is false', () => {
129-
const aDriver = new ExpandableCalendarDriver(testIdExpandableCalendar, TestCase({expandableCalendarProps: {closeOnDayPress: false}}));
130-
aDriver.toggleKnob();
128+
const driver = new ExpandableCalendarDriver(testIdExpandableCalendar, TestCase({expandableCalendarProps: {closeOnDayPress: false}}));
129+
driver.toggleKnob();
131130
jest.runAllTimers();
132-
aDriver.selectDay(dashedToday);
131+
driver.selectDay(dashedToday);
132+
jest.runAllTimers();
133+
expect(driver.isCalendarExpanded()).toBe(true);
134+
});
135+
});
136+
137+
describe('numberOfDays', () => {
138+
beforeEach(() => {
139+
driver.render();
140+
});
141+
142+
it('should be closed when numberOfDays is defined (> 0) ', () => {
143+
const driver = new ExpandableCalendarDriver(testIdExpandableCalendar, TestCase({calendarContextProps: {numberOfDays: 3}, expandableCalendarProps: {initialPosition: Positions.OPEN}}));
133144
jest.runAllTimers();
134-
expect(aDriver.isCalendarExpanded()).toBe(true);
145+
expect(driver.isCalendarExpanded()).toBe(false);
146+
});
147+
148+
it('should hide Knob when numberOfDays > 1', () => {
149+
const driver = new ExpandableCalendarDriver(testIdExpandableCalendar, TestCase({calendarContextProps: {numberOfDays: 3}}));
150+
expect(driver.getKnob()).toBeNull();
151+
});
152+
153+
it('should hide Knob when numberOfDays === 1', () => {
154+
const driver = new ExpandableCalendarDriver(testIdExpandableCalendar, TestCase({calendarContextProps: {numberOfDays: 1}}));
155+
expect(driver.getKnob()).not.toBeNull();
135156
});
136157
});
137158

159+
138160
describe('CalendarList updates', () => {
139161
describe('Day Press', () => {
140162
beforeEach(() => {

src/expandableCalendar/index.tsx

Lines changed: 7 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -163,8 +163,7 @@ const ExpandableCalendar = (props: ExpandableCalendarProps) => {
163163
const numberOfWeeks = useRef(getNumberOfWeeksInMonth(date));
164164

165165
/** Position */
166-
167-
const [position, setPosition] = useState(initialPosition);
166+
const [position, setPosition] = useState(numberOfDays ? Positions.CLOSED : initialPosition);
168167
const isOpen = position === Positions.OPEN;
169168

170169
const getOpenHeight = () => {
@@ -187,6 +186,12 @@ const ExpandableCalendar = (props: ExpandableCalendarProps) => {
187186

188187
const headerDeltaY = useRef(new Animated.Value(isOpen ? -HEADER_HEIGHT : 0));
189188

189+
useEffect(() => {
190+
if (numberOfDays) {
191+
setPosition(Positions.CLOSED);
192+
}
193+
}, [numberOfDays]);
194+
190195
/** Components' refs */
191196

192197
const wrapper = useRef<any>();

0 commit comments

Comments
 (0)