bugfixing economic calendar
This commit is contained in:
parent
fa2124b468
commit
e059b00180
@ -1,5 +1,12 @@
|
|||||||
<script lang="ts">
|
<script lang="ts">
|
||||||
import { format, startOfWeek, addDays, addWeeks, subWeeks } from "date-fns";
|
import {
|
||||||
|
format,
|
||||||
|
startOfWeek,
|
||||||
|
addDays,
|
||||||
|
addWeeks,
|
||||||
|
subWeeks,
|
||||||
|
differenceInWeeks,
|
||||||
|
} from "date-fns";
|
||||||
import { screenWidth, numberOfUnreadNotification } from "$lib/store";
|
import { screenWidth, numberOfUnreadNotification } from "$lib/store";
|
||||||
import { abbreviateNumber, listOfRelevantCountries } from "$lib/utils";
|
import { abbreviateNumber, listOfRelevantCountries } from "$lib/utils";
|
||||||
import ArrowLogo from "lucide-svelte/icons/move-up-right";
|
import ArrowLogo from "lucide-svelte/icons/move-up-right";
|
||||||
@ -12,6 +19,7 @@
|
|||||||
let rawData;
|
let rawData;
|
||||||
let filterList = [];
|
let filterList = [];
|
||||||
let weekdayFiltered = [];
|
let weekdayFiltered = [];
|
||||||
|
let weekday; // Added declaration
|
||||||
let syncWorker: Worker | undefined;
|
let syncWorker: Worker | undefined;
|
||||||
|
|
||||||
const maxWeeksChange = 6;
|
const maxWeeksChange = 6;
|
||||||
@ -25,10 +33,15 @@
|
|||||||
$: economicCalendar = data?.getEconomicCalendar;
|
$: economicCalendar = data?.getEconomicCalendar;
|
||||||
$: daysOfWeek = getDaysOfWeek(currentWeek);
|
$: daysOfWeek = getDaysOfWeek(currentWeek);
|
||||||
$: formattedWeekday = daysOfWeek.map((day) => format(day.date, "EEE, MMM d"));
|
$: formattedWeekday = daysOfWeek.map((day) => format(day.date, "EEE, MMM d"));
|
||||||
$: weekday = getWeekdayData(economicCalendar, daysOfWeek);
|
$: {
|
||||||
$: rawData = weekday;
|
weekday = getWeekdayData(economicCalendar, daysOfWeek);
|
||||||
|
rawData = weekday;
|
||||||
|
// Reapply filters whenever weekday data changes
|
||||||
|
if (filterList.length > 0 && syncWorker) {
|
||||||
|
loadWorker();
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
// Calculate start and end boundaries
|
|
||||||
const startBoundary = subWeeks(
|
const startBoundary = subWeeks(
|
||||||
startOfWeek(today, { weekStartsOn: 1 }),
|
startOfWeek(today, { weekStartsOn: 1 }),
|
||||||
maxWeeksChange,
|
maxWeeksChange,
|
||||||
@ -38,7 +51,6 @@
|
|||||||
maxWeeksChange,
|
maxWeeksChange,
|
||||||
);
|
);
|
||||||
|
|
||||||
// Update max checks based on boundaries
|
|
||||||
$: previousMax = currentWeek <= startBoundary;
|
$: previousMax = currentWeek <= startBoundary;
|
||||||
$: nextMax = currentWeek >= endBoundary;
|
$: nextMax = currentWeek >= endBoundary;
|
||||||
|
|
||||||
@ -71,7 +83,7 @@
|
|||||||
};
|
};
|
||||||
|
|
||||||
const loadWorker = async () => {
|
const loadWorker = async () => {
|
||||||
syncWorker.postMessage({ rawData, filterList });
|
syncWorker?.postMessage({ rawData, filterList });
|
||||||
};
|
};
|
||||||
|
|
||||||
function toggleDate(index) {
|
function toggleDate(index) {
|
||||||
@ -100,7 +112,6 @@
|
|||||||
? subWeeks(currentWeek, 1)
|
? subWeeks(currentWeek, 1)
|
||||||
: addWeeks(currentWeek, 1);
|
: addWeeks(currentWeek, 1);
|
||||||
|
|
||||||
// Only update if within boundaries
|
|
||||||
if (newWeek >= startBoundary && newWeek <= endBoundary) {
|
if (newWeek >= startBoundary && newWeek <= endBoundary) {
|
||||||
currentWeek = newWeek;
|
currentWeek = newWeek;
|
||||||
}
|
}
|
||||||
@ -163,7 +174,6 @@
|
|||||||
currentWeek = startOfWeek(today, { weekStartsOn: 1 });
|
currentWeek = startOfWeek(today, { weekStartsOn: 1 });
|
||||||
selectedWeekday = Math.min((currentDate.getDay() + 6) % 7, 4);
|
selectedWeekday = Math.min((currentDate.getDay() + 6) % 7, 4);
|
||||||
|
|
||||||
// Reset max checks based on boundaries
|
|
||||||
previousMax = currentWeek <= startBoundary;
|
previousMax = currentWeek <= startBoundary;
|
||||||
nextMax = currentWeek >= endBoundary;
|
nextMax = currentWeek >= endBoundary;
|
||||||
}
|
}
|
||||||
|
|||||||
Loading…
x
Reference in New Issue
Block a user