implement frontend skeleton with tab navigation and service layer
- Add tab-based navigation (Chat, Calendar) using Expo-Router - Create auth screens (login, register) as skeletons - Add dynamic routes for event detail and note editing - Implement service layer (ApiClient, AuthService, EventService, ChatService) - Add Zustand stores (AuthStore, EventsStore) for state management - Create EventCard and EventConfirmDialog components - Update CLAUDE.md with new frontend architecture documentation - Add Zustand and FlashList to technology stack
This commit is contained in:
24
apps/client/src/components/EventCard.tsx
Normal file
24
apps/client/src/components/EventCard.tsx
Normal file
@@ -0,0 +1,24 @@
|
||||
import { View, Text, Pressable } from 'react-native';
|
||||
import { CalendarEvent } from '@caldav/shared';
|
||||
|
||||
type EventCardProps = {
|
||||
event: CalendarEvent;
|
||||
onPress?: (event: CalendarEvent) => void;
|
||||
};
|
||||
|
||||
const EventCard = ({ event: _event, onPress: _onPress }: EventCardProps) => {
|
||||
// TODO: Display event title, time, and description preview
|
||||
// TODO: Handle onPress to navigate to EventDetailScreen
|
||||
// TODO: Style based on event type or time of day
|
||||
throw new Error('Not implemented');
|
||||
|
||||
return (
|
||||
<Pressable>
|
||||
<View>
|
||||
<Text>EventCard - Not Implemented</Text>
|
||||
</View>
|
||||
</Pressable>
|
||||
);
|
||||
};
|
||||
|
||||
export default EventCard;
|
||||
36
apps/client/src/components/EventConfirmDialog.tsx
Normal file
36
apps/client/src/components/EventConfirmDialog.tsx
Normal file
@@ -0,0 +1,36 @@
|
||||
import { View, Text, Modal, Pressable } from 'react-native';
|
||||
import { CreateEventDTO } from '@caldav/shared';
|
||||
|
||||
type EventConfirmDialogProps = {
|
||||
visible: boolean;
|
||||
proposedEvent: CreateEventDTO | null;
|
||||
onConfirm: () => void;
|
||||
onReject: () => void;
|
||||
onClose: () => void;
|
||||
};
|
||||
|
||||
const EventConfirmDialog = ({
|
||||
visible: _visible,
|
||||
proposedEvent: _proposedEvent,
|
||||
onConfirm: _onConfirm,
|
||||
onReject: _onReject,
|
||||
onClose: _onClose,
|
||||
}: EventConfirmDialogProps) => {
|
||||
// TODO: Display proposed event details (title, time, description)
|
||||
// TODO: Confirm button calls onConfirm and closes dialog
|
||||
// TODO: Reject button calls onReject and closes dialog
|
||||
// TODO: Close button or backdrop tap calls onClose
|
||||
throw new Error('Not implemented');
|
||||
|
||||
return (
|
||||
<Modal visible={false} transparent animationType="fade">
|
||||
<View>
|
||||
<Pressable>
|
||||
<Text>EventConfirmDialog - Not Implemented</Text>
|
||||
</Pressable>
|
||||
</View>
|
||||
</Modal>
|
||||
);
|
||||
};
|
||||
|
||||
export default EventConfirmDialog;
|
||||
Reference in New Issue
Block a user