mirror of
https://github.com/urosran/cally.git
synced 2025-11-26 00:24:53 +00:00
added calendar events refresh
This commit is contained in:
@ -1,8 +1,40 @@
|
||||
import React from "react";
|
||||
import React, { useState } from "react";
|
||||
import { ScrollView, RefreshControl } from "react-native";
|
||||
import { useSetAtom } from "jotai";
|
||||
import CalendarPage from "@/components/pages/calendar/CalendarPage";
|
||||
import { refreshTriggerAtom } from "@/components/pages/calendar/atoms";
|
||||
|
||||
export default function Screen() {
|
||||
return (
|
||||
<CalendarPage/>
|
||||
);
|
||||
const [refreshing, setRefreshing] = useState(false);
|
||||
const setRefreshTrigger = useSetAtom(refreshTriggerAtom);
|
||||
|
||||
const onRefresh = React.useCallback(async () => {
|
||||
setRefreshing(true);
|
||||
|
||||
const minimumDelay = new Promise((resolve) => setTimeout(resolve, 1000));
|
||||
|
||||
try {
|
||||
setRefreshTrigger((prev) => !prev);
|
||||
|
||||
await Promise.all([minimumDelay]);
|
||||
} catch (error) {
|
||||
console.error("Refresh failed:", error);
|
||||
} finally {
|
||||
setRefreshing(false);
|
||||
}
|
||||
}, [setRefreshTrigger]);
|
||||
|
||||
return (
|
||||
<ScrollView
|
||||
style={{ flex: 1 }}
|
||||
contentContainerStyle={{ flex: 1 }}
|
||||
refreshControl={
|
||||
<RefreshControl refreshing={refreshing} onRefresh={onRefresh} />
|
||||
}
|
||||
bounces={true}
|
||||
showsVerticalScrollIndicator={false}
|
||||
>
|
||||
<CalendarPage />
|
||||
</ScrollView>
|
||||
);
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user