Skip to content

Commit

Permalink
fix: marked dates
Browse files Browse the repository at this point in the history
  • Loading branch information
justinrubek committed Jan 9, 2023
1 parent e5679d8 commit 416984f
Show file tree
Hide file tree
Showing 3 changed files with 16 additions and 7 deletions.
2 changes: 1 addition & 1 deletion package.json
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
{
"name": "@justinrubek/svelte-calendar",
"version": "3.1.7",
"version": "3.1.8",
"main": "index.js",
"scripts": {
"dev": "svelte-kit dev",
Expand Down
4 changes: 3 additions & 1 deletion src/lib/components/Datepicker.svelte
Original file line number Diff line number Diff line change
Expand Up @@ -18,12 +18,14 @@
export let theme = {};
export let defaultTheme = undefined;
export let startOfWeekIndex = 0;
export let markedDates = [];
export let store = datepickerStore.get({
selected,
start,
end,
shouldEnlargeDay: true,
startOfWeekIndex
startOfWeekIndex,
markedDates,
});
setContext(storeContextKey, store);
Expand Down
17 changes: 12 additions & 5 deletions src/lib/stores/datepicker.js
Original file line number Diff line number Diff line change
Expand Up @@ -13,13 +13,13 @@ const pipe = (...fns) => (val) => fns.reduce((accum, fn) => fn(accum), val);
const zeroDay = (date) => dayjs(date).startOf('day').toDate();

const buildMarkedDates = (dates = []) => {
return dates.reduce((acc, date) => {
const datesMarked = dates.reduce((acc, date) => {
const year = date.getFullYear();
const month = date.getMonth();
const day = date.getDate();
const markedMonths = acc[year] || {};
const markedDays = markedMonths[month] || [];
const updatedDays = markedDays.include(day) ? markedDays : [...markedDays, day];
const updatedDays = markedDays.includes(day) ? markedDays : [...markedDays, day];

return {
...acc,
Expand All @@ -29,14 +29,16 @@ const buildMarkedDates = (dates = []) => {
}
};
}, {})
console.log(datesMarked)
return datesMarked;
};

const get = ({ selected, start, end, startOfWeekIndex = 0, shouldEnlargeDay = false, marked = [] }) => {
const get = ({ selected, start, end, startOfWeekIndex = 0, shouldEnlargeDay = false, markedDates = [] }) => {
const { subscribe, set, update } = writable({
open: false,
hasChosen: false,
selected,
marked: buildMarkedDates(marked),
markedDates: buildMarkedDates(markedDates),
start: zeroDay(start),
end: zeroDay(end),
shouldEnlargeDay,
Expand Down Expand Up @@ -66,7 +68,12 @@ const get = ({ selected, start, end, startOfWeekIndex = 0, shouldEnlargeDay = fa
},
isMarked(date) {
const { markedDates } = this.getState();
return !!markedDates[date.getFullYear()]?.[date.getMonth]?.includes(date.getDate());
if (markedDates == null) return false;
let year = date.getFullYear();
let month = date.getMonth();
let day = date.getDate();
const marked = markedDates[year] && markedDates[year][month] && markedDates[year][month].includes(day);
return marked;
},
isSelectable(date, clamping = []) {
const vector = this.getSelectableVector(date);
Expand Down

0 comments on commit 416984f

Please sign in to comment.