25 lines
1.2 KiB
Dart
25 lines
1.2 KiB
Dart
// SPDX-FileCopyrightText: 2026 FocusFlow contributors
|
|
// SPDX-License-Identifier: AGPL-3.0-only
|
|
|
|
part of '../focus_flow_app.dart';
|
|
|
|
/// Private implementation type for `_PlanIssue` in this library.
|
|
/// It keeps supporting state and behavior scoped to the owning file so the public API stays focused on the scheduler concepts that callers use directly.
|
|
class _PlanIssue extends StatelessWidget {
|
|
/// Creates a `_PlanIssue` instance with the values required by its invariants.
|
|
/// Callers should pass already-normalized scheduler data because validation and defaulting belong at the model or service boundary, not in arbitrary UI code.
|
|
const _PlanIssue({required this.message});
|
|
|
|
/// Stores the `message` value for this object.
|
|
/// This field is part of the explicit state that downstream scheduling, persistence, or UI code reads when composing behavior.
|
|
final String message;
|
|
|
|
/// Builds the widget subtree for this component.
|
|
/// The method translates the current widget configuration and state into Flutter UI without mutating scheduler domain data.
|
|
@override
|
|
Widget build(BuildContext context) {
|
|
return Center(
|
|
child: Text(message, style: Theme.of(context).textTheme.titleMedium),
|
|
);
|
|
}
|
|
}
|