User Interface low complexity frontendmobile
1
Dependencies
0
Dependents
0
Entities
0
Integrations

Description

Settings screen section allowing organisation administrators to configure the reminder and escalation day thresholds per organisation. Displays current values, validates input ranges, and saves configuration to the org settings table.

Feature: Assignment Follow-up Reminders

reminder-threshold-settings-ui

Summaries

The Reminder Threshold Settings UI gives organisation administrators direct control over how proactively the platform follows up on peer mentor engagement. By allowing each organisation to configure its own reminder and escalation day thresholds, the platform adapts to the operational rhythms and compliance requirements of different institutions — whether a university running a light-touch programme or a school with strict safeguarding obligations. This configurability is a key differentiator that reduces churn risk among enterprise customers who would otherwise need custom deployments to meet their internal standards. Administrators can tune the system without engineering involvement, reducing support overhead.

This is a low-complexity settings screen section with a dependency on the `reminder-config-repository` component, which must be available before end-to-end testing can proceed. Development effort is minimal — two numeric input fields with range validation, a save action, and confirmation/error feedback states. The main scheduling consideration is coordinating with the backend repository work so that integration testing can be completed as a unit. QA should verify: correct loading of existing threshold values on mount, validation rejection of out-of-range inputs, successful persistence on save, confirmation toast/message display, and correct error messaging on validation failure.

No complex state management is expected.

The component is a controlled form section mounted with `orgId` as its primary prop. On mount, `loadCurrentThresholds(orgId)` fetches current values from `reminder-config-repository` and populates the two numeric fields. `validateThresholdRange(value)` should enforce business constraints (e.g., reminder days must be less than escalation days, both must be positive integers within an acceptable range). On save, `saveThresholds({reminderDays, escalationDays, orgId})` commits the values to the org settings table via the repository.

Success triggers `showSaveConfirmation()` and failure triggers `showValidationError(message)`. Both feedback methods should use the app's shared notification or toast system rather than local state rendering. Ensure the form is debounce-safe and that the save button is disabled during in-flight requests to prevent double submission.

Responsibilities

  • Display current reminder and escalation thresholds
  • Provide numeric input fields with validation
  • Save threshold changes to org settings
  • Show confirmation feedback on save

Interfaces

ReminderThresholdSettingsSection({orgId})
loadCurrentThresholds(orgId)
saveThresholds({reminderDays, escalationDays, orgId})
validateThresholdRange(value)
showSaveConfirmation()
showValidationError(message)

Relationships

Dependencies (1)

Components this component depends on