fix(zipcode): cap table width in dialog to half screen via optional maxWidthCap; pass 0.5 fraction when used in Company/Warehouse dialogs
Some checks failed
Flutter Test & Quality Check / Test on macos-latest (push) Has been cancelled
Flutter Test & Quality Check / Test on ubuntu-latest (push) Has been cancelled
Flutter Test & Quality Check / Build APK (push) Has been cancelled

- 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:
JiWoong Sul
2025-09-09 22:47:29 +09:00
parent 49b203d366
commit 2bbef9defa
4 changed files with 22 additions and 4 deletions

View File

@@ -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(