refactor: improve AI event handling and conflict display in chat
- AI fetches events on-demand via callbacks for better efficiency - Add conflict detection with warning display when proposing overlapping events - Improve event search and display in chat interface - Load full chat history for display while limiting AI context
This commit is contained in:
@@ -1,6 +1,6 @@
|
||||
import { View, Text, Pressable } from "react-native";
|
||||
import { Feather } from "@expo/vector-icons";
|
||||
import { ProposedEventChange, formatDate } from "@calchat/shared";
|
||||
import { Feather, Ionicons } from "@expo/vector-icons";
|
||||
import { ProposedEventChange, formatDate, formatTime } from "@calchat/shared";
|
||||
import { rrulestr } from "rrule";
|
||||
import { useThemeStore } from "../stores/ThemeStore";
|
||||
import { EventCardBase } from "./EventCardBase";
|
||||
@@ -143,6 +143,29 @@ export const ProposedEventCard = ({
|
||||
</Text>
|
||||
</View>
|
||||
)}
|
||||
{/* Show conflicting events warning */}
|
||||
{proposedChange.conflictingEvents &&
|
||||
proposedChange.conflictingEvents.length > 0 && (
|
||||
<View className="mb-2">
|
||||
{proposedChange.conflictingEvents.map((conflict, index) => (
|
||||
<View key={index} className="flex-row items-center mt-1">
|
||||
<Ionicons
|
||||
name="alert-circle"
|
||||
size={16}
|
||||
color={theme.rejectButton}
|
||||
style={{ marginRight: 8 }}
|
||||
/>
|
||||
<Text
|
||||
style={{ color: theme.rejectButton }}
|
||||
className="text-sm flex-1"
|
||||
>
|
||||
Konflikt: {conflict.title} ({formatTime(conflict.startTime)}{" "}
|
||||
- {formatTime(conflict.endTime)})
|
||||
</Text>
|
||||
</View>
|
||||
))}
|
||||
</View>
|
||||
)}
|
||||
<ActionButtons
|
||||
isDisabled={isDisabled}
|
||||
respondedAction={proposedChange.respondedAction}
|
||||
|
||||
Reference in New Issue
Block a user