Skip to main content

Mobile App Job Items Management

This document outlines how job items are managed in the AttuneLogic mobile app, particularly focusing on status management and service operations.

Overview​

The mobile app provides functionality to manage job items, including starting, pausing, resuming, and completing services. This is primarily handled through the ServiceItem component and RTK Query mutations.

Components​

ServiceItem Component​

Located at: features/Job/Items/Services/Service/ServiceItem.tsx

The ServiceItem component is responsible for displaying and managing individual service items within a job. It handles:

  • Service status management
  • Document uploads
  • Parts management
  • Equipment tracking
  • Service details

Key Features​

  1. Status Management
const [startJobItem] = useStartJobItemMutation();
const [pauseJobItem] = usePauseJobItemMutation();
const [resumeJobItem] = useResumeJobItemMutation();
const [markItemComplete] = useMarkItemCompleteMutation();

// Starting a service
const handleStart = async (status: string) => {
await startJobItem({
jobId: jobId,
itemId: _id,
data: { status },
});
};

// Other status management functions...
  1. Service Details
  • Equipment information
  • Parts tracking
  • Time tracking
  • Document management

API Integration​

RTK Query Setup​

The app uses RTK Query for API integration. The relevant API slice is defined in store/api/jobs/jobItemsApi.js.

Key mutations include:

  • startJobItem
  • pauseJobItem
  • resumeJobItem
  • markItemComplete
  • updateItemStatus

Example API Call Flow​

  1. User initiates action (e.g., starts a service)
  2. Component calls appropriate mutation
  3. RTK Query sends request to backend
  4. Response updates local state automatically
  5. UI updates to reflect new status

State Management​

Service item state is managed through:

  1. RTK Query cache
  2. Local component state for UI elements
  3. Parent job context when needed

Error Handling​

The component implements error handling for:

  • Failed API calls
  • Invalid state transitions
  • Missing permissions
  • Network issues

Debugging Tips​

  1. Check RTK Query Developer Tools for:

    • Request/response data
    • Cache state
    • Pending mutations
  2. Common Issues:

    • Authentication token expiration
    • Network connectivity
    • Invalid state transitions
    • Missing permissions
  3. Logging:

    • API calls are logged at the route level
    • Component state changes are logged in development
    • Service status transitions are tracked