mirror of
https://github.com/urosran/cally.git
synced 2025-11-26 00:24:53 +00:00
bugfixes
This commit is contained in:
@ -1,18 +1,15 @@
|
||||
import React from "react";
|
||||
import {RefreshControl, ScrollView, View} from "react-native";
|
||||
import CalendarPage from "@/components/pages/calendar/CalendarPage";
|
||||
import {colorMap} from "@/constants/colorMap";
|
||||
import TabletCalendarPage from "@/components/pages/(tablet_pages)/calendar/TabletCalendarPage";
|
||||
import * as Device from "expo-device";
|
||||
import {DeviceType} from "expo-device";
|
||||
import {useCalSync} from "@/hooks/useCalSync";
|
||||
import {colorMap} from "@/constants/colorMap";
|
||||
|
||||
export default function Screen() {
|
||||
const isTablet = Device.deviceType === DeviceType.TABLET;
|
||||
const {
|
||||
resyncAllCalendars,
|
||||
isSyncing,
|
||||
} = useCalSync();
|
||||
const {resyncAllCalendars, isSyncing} = useCalSync();
|
||||
|
||||
const onRefresh = React.useCallback(async () => {
|
||||
try {
|
||||
@ -22,58 +19,68 @@ export default function Screen() {
|
||||
}
|
||||
}, [resyncAllCalendars]);
|
||||
|
||||
return (
|
||||
<View style={{ flex: 1 }}>
|
||||
<View style={{ flex: 1, zIndex: 0 }}>
|
||||
{Device.deviceType === DeviceType.TABLET ? (
|
||||
<TabletCalendarPage />
|
||||
) : (
|
||||
<CalendarPage />
|
||||
)}
|
||||
</View>
|
||||
|
||||
<ScrollView
|
||||
style={{
|
||||
position: "absolute",
|
||||
top: 0,
|
||||
left: isTablet ? "15%" : 0,
|
||||
height: isTablet ? "9%" : "4%",
|
||||
width: isTablet ? "62%" : "100%",
|
||||
zIndex: 50,
|
||||
backgroundColor: "transparent",
|
||||
}}
|
||||
contentContainerStyle={{
|
||||
flex: 1,
|
||||
justifyContent: "center",
|
||||
paddingRight: 200,
|
||||
}}
|
||||
refreshControl={
|
||||
<RefreshControl
|
||||
colors={[
|
||||
colorMap.pink,
|
||||
colorMap.green,
|
||||
colorMap.orange,
|
||||
colorMap.purple,
|
||||
colorMap.teal,
|
||||
]}
|
||||
tintColor={colorMap.pink}
|
||||
progressBackgroundColor={"white"}
|
||||
refreshing={isSyncing}
|
||||
onRefresh={onRefresh}
|
||||
style={{
|
||||
position: "absolute",
|
||||
left: "50%", // Position at screen center
|
||||
transform: [
|
||||
// Offset by half its own width
|
||||
{ translateX: -20 }, // Assuming the refresh control is ~40px wide
|
||||
],
|
||||
}}
|
||||
/>
|
||||
}
|
||||
bounces={true}
|
||||
showsVerticalScrollIndicator={false}
|
||||
pointerEvents={isSyncing ? "auto" : "none"}
|
||||
/>
|
||||
</View>
|
||||
const refreshControl = (
|
||||
<RefreshControl
|
||||
colors={[
|
||||
colorMap.pink,
|
||||
colorMap.green,
|
||||
colorMap.orange,
|
||||
colorMap.purple,
|
||||
colorMap.teal,
|
||||
]}
|
||||
tintColor={colorMap.pink}
|
||||
progressBackgroundColor="white"
|
||||
refreshing={isSyncing}
|
||||
onRefresh={onRefresh}
|
||||
style={isTablet ? {
|
||||
position: "absolute",
|
||||
left: "50%",
|
||||
transform: [{translateX: -20}],
|
||||
} : undefined}
|
||||
/>
|
||||
);
|
||||
}
|
||||
|
||||
if (isTablet) {
|
||||
return (
|
||||
<View style={{flex: 1}}>
|
||||
<View style={{flex: 1, zIndex: 0}}>
|
||||
<TabletCalendarPage/>
|
||||
</View>
|
||||
<ScrollView
|
||||
style={{
|
||||
position: "absolute",
|
||||
top: 0,
|
||||
left: "15%",
|
||||
height: "9%",
|
||||
width: "62%",
|
||||
zIndex: 50,
|
||||
backgroundColor: "transparent",
|
||||
}}
|
||||
contentContainerStyle={{
|
||||
flex: 1,
|
||||
justifyContent: "center",
|
||||
paddingRight: 200,
|
||||
}}
|
||||
refreshControl={refreshControl}
|
||||
bounces={true}
|
||||
showsVerticalScrollIndicator={false}
|
||||
pointerEvents={isSyncing ? "auto" : "none"}
|
||||
/>
|
||||
</View>
|
||||
);
|
||||
}
|
||||
|
||||
return (
|
||||
<ScrollView
|
||||
style={{flex: 1, height: "100%"}}
|
||||
contentContainerStyle={{flex: 1, height: "100%"}}
|
||||
refreshControl={refreshControl}
|
||||
bounces={true}
|
||||
showsVerticalScrollIndicator={false}
|
||||
>
|
||||
<View style={{flex: 1}}>
|
||||
<CalendarPage/>
|
||||
</View>
|
||||
</ScrollView>
|
||||
);
|
||||
}
|
||||
Reference in New Issue
Block a user