* Task/Ticket desktop dialogs — widened from 520 → 600dp, and tasks now uses SizedBox(width: 600) instead of ConstrainedBox(maxWidth:) which was the root cause of the "still small" issue (max-only never forced expansion)

* Pass Slip + Leave — both dialogs gained an isSheet flag; callers now branch on AppBreakpoints.tablet: bottom sheet on mobile, dialog on desktop
This commit is contained in:
2026-04-30 06:45:51 +08:00
parent 48cd3bcd60
commit 783c5eb0be
19 changed files with 1224 additions and 887 deletions
@@ -2,6 +2,7 @@
import 'dart:convert';
import 'dart:async';
import 'dart:typed_data';
import '../../theme/m3_motion.dart';
import 'package:flutter/material.dart';
import 'package:flutter_riverpod/flutter_riverpod.dart';
import 'package:file_picker/file_picker.dart';
@@ -458,10 +459,15 @@ class _ItServiceRequestDetailScreenState
),
body: Skeletonizer(
enabled: showSkeleton,
child: request == null && !showSkeleton
? const Center(child: Text('Request not found'))
: ResponsiveBody(
maxWidth: double.infinity,
child: M3AnimatedSwitcher(
child: request == null && !showSkeleton
? const Center(
key: ValueKey('isr_not_found'),
child: Text('Request not found'),
)
: ResponsiveBody(
key: const ValueKey('isr_content'),
maxWidth: double.infinity,
child: Column(
children: [
AnimatedSwitcher(
@@ -516,6 +522,7 @@ class _ItServiceRequestDetailScreenState
],
),
),
),
),
);
}