fix(zipcode): cap table width in dialog to half screen via optional maxWidthCap; pass 0.5 fraction when used in Company/Warehouse dialogs
- ZipcodeTable: add maxWidthCap and use min(viewport, cap) to compute width - ZipcodeSearchScreen: allow tableMaxWidthFraction and forward to table - Apply 0.5 in CompanyForm and WarehouseLocationForm dialogs flutter analyze: 0 errors, warnings unaffected
This commit is contained in:
@@ -1,4 +1,5 @@
|
||||
import 'package:flutter/material.dart';
|
||||
import 'dart:math' as math;
|
||||
import 'package:flutter/services.dart';
|
||||
import 'package:shadcn_ui/shadcn_ui.dart';
|
||||
import 'package:superport/data/models/zipcode_dto.dart';
|
||||
@@ -9,6 +10,8 @@ class ZipcodeTable extends StatelessWidget {
|
||||
final int totalPages;
|
||||
final Function(int) onPageChanged;
|
||||
final Function(ZipcodeDto) onSelect;
|
||||
// Optional: cap the effective viewport width used by the table
|
||||
final double? maxWidthCap;
|
||||
|
||||
const ZipcodeTable({
|
||||
super.key,
|
||||
@@ -17,6 +20,7 @@ class ZipcodeTable extends StatelessWidget {
|
||||
required this.totalPages,
|
||||
required this.onPageChanged,
|
||||
required this.onSelect,
|
||||
this.maxWidthCap,
|
||||
});
|
||||
|
||||
void _copyToClipboard(BuildContext context, String text, String label) {
|
||||
@@ -43,7 +47,13 @@ class ZipcodeTable extends StatelessWidget {
|
||||
builder: (context, constraints) {
|
||||
// 고정폭 + 마지막 filler
|
||||
const double minW = 160 + 180 + 180 + 320 + 140 + 24;
|
||||
final double tableW = constraints.maxWidth >= minW ? constraints.maxWidth : minW;
|
||||
final double viewportW = constraints.maxWidth.isFinite
|
||||
? constraints.maxWidth
|
||||
: MediaQuery.sizeOf(context).width;
|
||||
final double cappedW = maxWidthCap != null
|
||||
? math.min(viewportW, maxWidthCap!)
|
||||
: viewportW;
|
||||
final double tableW = cappedW >= minW ? cappedW : minW;
|
||||
const double etcW = 320.0;
|
||||
|
||||
return SingleChildScrollView(
|
||||
|
||||
Reference in New Issue
Block a user