# Journal

Canonical page: https://docs.ovok.com/native-sdk/guide/components/journal

A comprehensive set of React Native components for building journal and questionnaire interfaces in healthcare applications. The Journal module provides keyboard-aware forms, question-answer flows, and display components for past entries.

## Key Features [#key-features]

- **Keyboard-Aware Interface**: Built with `react-native-keyboard-controller` for optimal mobile input experience
- **Compound Components**: Flexible architecture using compound component patterns for customization
- **Healthcare-Focused**: Designed for medical questionnaires, patient journaling, and health tracking
- **Material Design 3**: Seamless integration with theming system for consistent visual design
- **Form Management**: Input components optimized for text-based responses and multiline content

## Components [#components]

- [**`Answer`**](/native-sdk/guide/components/journal/answer/) - Interactive form container for journal entry creation
- [**`PastJournalCard`**](/native-sdk/guide/components/journal/past-journal-card/) - Display component for showing completed journal entries
- [**`TodayQuestionCard`**](/native-sdk/guide/components/journal/today-question-card/) - Interactive card for displaying daily questions

## Architecture [#architecture]

The Journal module follows the compound component pattern, where each main component (`Answer`, `PastJournalCard`, `TodayQuestionCard`) serves as a container with specialized sub-components. This architecture provides:

- **Flexibility**: Mix and match sub-components as needed
- **Consistency**: Shared theming and styling across all components
- **Customization**: Override styles while maintaining design system compliance
- **Type Safety**: Full TypeScript support with proper prop definitions

## Dependencies [#dependencies]

- `react-native-keyboard-controller` - Keyboard-aware scrolling and toolbar
- `react-native-paper` - Material Design components and theming
- `expo-linear-gradient` - Gradient backgrounds for visual appeal

## Performance Considerations [#performance-considerations]

- **Keyboard Management**: Automatic keyboard handling prevents input field obstruction
- **Scroll Optimization**: `KeyboardAwareScrollView` provides smooth scrolling behavior
- **Memory Efficiency**: Lightweight components with minimal overhead
- **Theme Integration**: Efficient theme consumption without unnecessary re-renders
