Skip to main content

Per-Time-Slot Attachments

Each time slot in a commitment is not just a time range — it’s an independent enforcement container. You can attach different locations, app blocklists, and verification rules to each slot.

How Attachments Work

Each TimeSlotCard displays three attachment buttons: Tapping an attachment button opens a Preset Picker Modal — a bottom sheet that lists your saved presets for that category.

Attachment Independence

The critical design principle is slot-level independence. Within the same commitment:
Morning Gym Slot (6:00 AM – 8:00 AM):
  • Location: Fitty Gym VIT
  • App Block: None
  • Rule: Just Show Up, 10-min grace
Evening Library Slot (5:00 PM – 9:00 PM):
  • Location: University Library
  • App Block: Instagram, YouTube, Twitter (from “Social Media” preset)
  • Rule: Stay Throughout, strict intensity, max 1 missed

State Management

Attachments are stored directly on the time slot object inside the Zustand draft store, keyed by slot index:
Detaching a preset is done by passing null, which clears the attachment without affecting other slots.