fix: calendar storybook issue (#125)
Co-authored-by: doprz <52579214+doprz@users.noreply.github.com>
This commit is contained in:
@@ -12,28 +12,36 @@ export default function useSchedules(): [active: UserSchedule | null, schedules:
|
|||||||
const [activeSchedule, setActiveSchedule] = useState<UserSchedule | null>(null);
|
const [activeSchedule, setActiveSchedule] = useState<UserSchedule | null>(null);
|
||||||
|
|
||||||
useEffect(() => {
|
useEffect(() => {
|
||||||
Promise.all([UserScheduleStore.get('schedules'), UserScheduleStore.get('activeIndex')]).then(
|
const fetchData = async () => {
|
||||||
([schedules, activeIndex]) => {
|
const [storedSchedules, storedActiveIndex] = await Promise.all([
|
||||||
setSchedules(schedules.map(s => new UserSchedule(s)));
|
UserScheduleStore.get('schedules'),
|
||||||
setActiveIndex(activeIndex);
|
UserScheduleStore.get('activeIndex'),
|
||||||
setActiveSchedule(new UserSchedule(schedules[activeIndex]));
|
]);
|
||||||
|
setSchedules(storedSchedules.map(s => new UserSchedule(s)));
|
||||||
|
setActiveIndex(storedActiveIndex);
|
||||||
|
setActiveSchedule(new UserSchedule(storedSchedules[storedActiveIndex]));
|
||||||
|
|
||||||
|
const initializable = UserScheduleStore.initialize();
|
||||||
|
|
||||||
|
if (initializable) {
|
||||||
|
const l1 = UserScheduleStore.listen('schedules', ({ newValue }) => {
|
||||||
|
setSchedules(newValue.map(s => new UserSchedule(s)));
|
||||||
|
setActiveSchedule(new UserSchedule(newValue[activeIndex]));
|
||||||
|
});
|
||||||
|
|
||||||
|
const l2 = UserScheduleStore.listen('activeIndex', ({ newValue }) => {
|
||||||
|
setActiveIndex(newValue);
|
||||||
|
setActiveSchedule(new UserSchedule(schedules[newValue]));
|
||||||
|
});
|
||||||
|
|
||||||
|
return () => {
|
||||||
|
UserScheduleStore.removeListener(l1);
|
||||||
|
UserScheduleStore.removeListener(l2);
|
||||||
|
};
|
||||||
}
|
}
|
||||||
);
|
|
||||||
|
|
||||||
const l1 = UserScheduleStore.listen('schedules', ({ newValue }) => {
|
|
||||||
setSchedules(newValue.map(s => new UserSchedule(s)));
|
|
||||||
setActiveSchedule(new UserSchedule(newValue[activeIndex]));
|
|
||||||
});
|
|
||||||
|
|
||||||
const l2 = UserScheduleStore.listen('activeIndex', ({ newValue }) => {
|
|
||||||
setActiveIndex(newValue);
|
|
||||||
setActiveSchedule(new UserSchedule(schedules[newValue]));
|
|
||||||
});
|
|
||||||
|
|
||||||
return () => {
|
|
||||||
UserScheduleStore.removeListener(l1);
|
|
||||||
UserScheduleStore.removeListener(l2);
|
|
||||||
};
|
};
|
||||||
|
|
||||||
|
fetchData();
|
||||||
}, [activeIndex, schedules]);
|
}, [activeIndex, schedules]);
|
||||||
|
|
||||||
return [activeSchedule, schedules];
|
return [activeSchedule, schedules];
|
||||||
|
|||||||
Reference in New Issue
Block a user