mirror of
https://github.com/urosran/cally.git
synced 2026-10-23 08:17:54 +00:00
bugfixes
This commit is contained in:
@@ -1,5 +1,5 @@
|
||||
import React, {memo} from "react";
|
||||
import {Button, Picker, PickerModes, SegmentedControl, Text, View,} from "react-native-ui-lib";
|
||||
import {Button, Picker, PickerModes, SegmentedControl, Text, View} from "react-native-ui-lib";
|
||||
import {MaterialIcons} from "@expo/vector-icons";
|
||||
import {months} from "./constants";
|
||||
import {StyleSheet} from "react-native";
|
||||
@@ -8,6 +8,7 @@ import {modeAtom, selectedDateAtom} from "@/components/pages/calendar/atoms";
|
||||
import {format, isSameDay} from "date-fns";
|
||||
import * as Device from "expo-device";
|
||||
import {Mode} from "react-native-big-calendar";
|
||||
import { FontAwesome5 } from '@expo/vector-icons';
|
||||
|
||||
export const CalendarHeader = memo(() => {
|
||||
const [selectedDate, setSelectedDate] = useAtom(selectedDateAtom);
|
||||
@@ -15,8 +16,8 @@ export const CalendarHeader = memo(() => {
|
||||
const isTablet = Device.deviceType === Device.DeviceType.TABLET;
|
||||
|
||||
const segments = isTablet
|
||||
? [{label: "D"}, {label: "W"}, {label: "M"}] // Tablet segments
|
||||
: [{label: "D"}, {label: "3D"}, {label: "M"}]; // Phone segments
|
||||
? [{label: "D"}, {label: "W"}, {label: "M"}]
|
||||
: [{label: "D"}, {label: "3D"}, {label: "M"}];
|
||||
|
||||
const handleSegmentChange = (index: number) => {
|
||||
let selectedMode: Mode;
|
||||
@@ -46,28 +47,18 @@ export const CalendarHeader = memo(() => {
|
||||
|
||||
const getInitialIndex = () => {
|
||||
if (isTablet) {
|
||||
// Tablet index mapping
|
||||
switch (mode) {
|
||||
case "day":
|
||||
return 0;
|
||||
case "week":
|
||||
return 1;
|
||||
case "month":
|
||||
return 2;
|
||||
default:
|
||||
return 1; // Default to week view for tablets
|
||||
case "day": return 0;
|
||||
case "week": return 1;
|
||||
case "month": return 2;
|
||||
default: return 1;
|
||||
}
|
||||
} else {
|
||||
// Phone index mapping
|
||||
switch (mode) {
|
||||
case "day":
|
||||
return 0;
|
||||
case "3days":
|
||||
return 1;
|
||||
case "month":
|
||||
return 2;
|
||||
default:
|
||||
return 1; // Default to 3day view for phones
|
||||
case "day": return 0;
|
||||
case "3days": return 1;
|
||||
case "month": return 2;
|
||||
default: return 1;
|
||||
}
|
||||
}
|
||||
};
|
||||
@@ -110,31 +101,16 @@ export const CalendarHeader = memo(() => {
|
||||
</View>
|
||||
|
||||
<View row centerV>
|
||||
{!isSelectedDateToday && (
|
||||
<Button
|
||||
size={"xSmall"}
|
||||
marginR-0
|
||||
avoidInnerPadding
|
||||
style={{
|
||||
borderRadius: 50,
|
||||
backgroundColor: "white",
|
||||
borderWidth: 0.7,
|
||||
borderColor: "#dadce0",
|
||||
height: 30,
|
||||
paddingHorizontal: 10,
|
||||
}}
|
||||
labelStyle={{
|
||||
fontSize: 12,
|
||||
color: "black",
|
||||
fontFamily: "Manrope_500Medium",
|
||||
}}
|
||||
label={format(new Date(), "dd/MM/yyyy")}
|
||||
onPress={() => {
|
||||
setSelectedDate(new Date());
|
||||
}}
|
||||
/>
|
||||
)}
|
||||
|
||||
<Button
|
||||
size={"xSmall"}
|
||||
marginR-1
|
||||
avoidInnerPadding
|
||||
style={styles.todayButton}
|
||||
onPress={() => setSelectedDate(new Date())}
|
||||
>
|
||||
<MaterialIcons name="calendar-today" size={30} color="#5f6368" />
|
||||
<Text style={styles.todayDate}>{format(new Date(), "d")}</Text>
|
||||
</Button>
|
||||
<View>
|
||||
<SegmentedControl
|
||||
segments={segments}
|
||||
@@ -159,4 +135,19 @@ const styles = StyleSheet.create({
|
||||
fontSize: 12,
|
||||
fontFamily: "Manrope_600SemiBold",
|
||||
},
|
||||
todayButton: {
|
||||
backgroundColor: "transparent",
|
||||
borderWidth: 0,
|
||||
height: 30,
|
||||
width: 30,
|
||||
alignItems: 'center',
|
||||
justifyContent: 'center',
|
||||
},
|
||||
todayDate: {
|
||||
position: 'absolute',
|
||||
fontSize: 12,
|
||||
fontFamily: "Manrope_600SemiBold",
|
||||
color: "#5f6368",
|
||||
top: '30%',
|
||||
},
|
||||
});
|
||||
@@ -145,15 +145,10 @@ export const ManuallyAddEventModal = () => {
|
||||
setIsPrivate(editEvent?.private || false);
|
||||
|
||||
setStartTime(() => {
|
||||
const date = new Date(initialDate ?? new Date());
|
||||
const minutes = date.getMinutes();
|
||||
date.setMinutes(0, 0, 0);
|
||||
if (minutes >= 30) {
|
||||
date.setHours(date.getHours() + 1);
|
||||
}
|
||||
const date = initialDate ?? new Date();
|
||||
date.setSeconds(0, 0);
|
||||
return date;
|
||||
});
|
||||
|
||||
setEndTime(() => {
|
||||
if (editEvent?.end) {
|
||||
return startOfMinute(new Date(editEvent.end));
|
||||
|
||||
Reference in New Issue
Block a user