time static method

ArcaneField time({
  1. String? name,
  2. String? description,
  3. IconData? icon,
  4. DateTime? defaultValue,
  5. required Future<DateTime> getter(),
  6. required Future setter(
    1. DateTime
    ),
  7. PromptMode mode = PromptMode.popover,
  8. ValueChanged<TimeOfDay?>? onChanged,
  9. AlignmentGeometry? popoverAlignment,
  10. AlignmentGeometry? popoverAnchorAlignment,
  11. EdgeInsetsGeometry? popoverPadding,
  12. bool? use24HourFormat,
  13. bool showSeconds = false,
  14. Widget? dialogTitle,
})

Creates a time input field for selecting and setting DateTime values focused on time components. This field uses a time picker interface, configurable for 12/24-hour format and seconds display. It complements date fields in Form setups within the Arcane component library, enabling precise time entry via popover or dialog.

Parameters:

  • name: Optional field name.
  • description: Optional description.
  • icon: Optional icon.
  • defaultValue: Initial time (defaults to now if null).
  • getter: Async current time retriever.
  • setter: Async time updater.
  • mode: Display mode (default: popover).
  • onChanged: Callback for time changes.
  • popoverAlignment, popoverAnchorAlignment, popoverPadding: Popover config.
  • use24HourFormat: Use 24-hour format (default: platform default).
  • showSeconds: Include seconds (default: false).
  • dialogTitle: Custom title for dialog.

Returns: An ArcaneField<DateTime> for time input.

Implementation

static ArcaneField time({
  String? name,
  String? description,
  IconData? icon,
  DateTime? defaultValue,
  required Future<DateTime> Function() getter,
  required Future Function(DateTime) setter,
  PromptMode mode = PromptMode.popover,
  ValueChanged<TimeOfDay?>? onChanged,
  AlignmentGeometry? popoverAlignment,
  AlignmentGeometry? popoverAnchorAlignment,
  EdgeInsetsGeometry? popoverPadding,
  bool? use24HourFormat,
  bool showSeconds = false,
  Widget? dialogTitle,
}) =>
    ArcaneField<DateTime>(
        meta: ArcaneFieldMetadata(
          name: name,
          description: description,
          icon: icon,
        ),
        provider: ArcaneFieldDirectProvider(
            defaultValue: defaultValue ?? DateTime.now(),
            getter: (_) => getter(),
            setter: (_, v) => setter(v)),
        builder: (context) => ArcaneTimeField(
              mode: mode,
              onChanged: onChanged,
              popoverAlignment: popoverAlignment,
              popoverAnchorAlignment: popoverAnchorAlignment,
              popoverPadding: popoverPadding,
              use24HourFormat: use24HourFormat,
              showSeconds: showSeconds,
              dialogTitle: dialogTitle,
            ));