fix(inventory-ui): 필터·창고 선택 상호작용 정비

- 입고/출고/대여 상태·대여구분 드롭다운에 제네릭 타입을 명시해 null 허용 옵션에서도 SDK 경고를 제거\n- 입고 목록 include 라벨에 customers→'고객 포함'을 추가해 UI 설명을 통일\n- WarehouseSelectField가 선택된 라벨과 동일한 검색어일 때 전체 옵션을 복원하고 suggestions를 초기화하도록 로직을 보강\n- FilterBar의 필터 적용 배지를 윤곽 스타일로 교체하고 테마 색상 대비를 조정\n- DatePicker 버튼을 outline 버튼 자체에서 정렬/아이콘 슬롯으로 구성해 긴 날짜 라벨이 잘리지 않도록 개선\n- 필터 배지/날짜 버튼 UI 변경에 맞춰 인벤토리 요약 골든 이미지를 갱신\n- flutter analyze, flutter test로 회귀를 검증
This commit is contained in:
JiWoong Sul
2025-11-10 01:11:04 +09:00
parent 81f419a8a6
commit 04c6bc9a2e
10 changed files with 63 additions and 37 deletions

View File

@@ -31,6 +31,8 @@ class SuperportDatePickerButton extends StatelessWidget {
final format = dateFormat ?? intl.DateFormat('yyyy-MM-dd');
final displayText = value != null ? format.format(value!) : placeholder;
return ShadButton.outline(
mainAxisAlignment: MainAxisAlignment.spaceBetween,
gap: 8,
onPressed: !enabled
? null
: () async {
@@ -49,14 +51,13 @@ class SuperportDatePickerButton extends StatelessWidget {
onChanged(picked);
}
},
child: Row(
mainAxisAlignment: MainAxisAlignment.spaceBetween,
mainAxisSize: MainAxisSize.min,
children: [
Text(displayText),
const SizedBox(width: 8),
const Icon(lucide.LucideIcons.calendar, size: 16),
],
trailing: const Icon(lucide.LucideIcons.calendar, size: 16),
child: Text(
displayText,
maxLines: 1,
overflow: TextOverflow.ellipsis,
softWrap: false,
textAlign: TextAlign.left,
),
);
}
@@ -92,6 +93,8 @@ class SuperportDateRangePickerButton extends StatelessWidget {
? placeholder
: '${format.format(value!.start)} ~ ${format.format(value!.end)}';
return ShadButton.outline(
gap: 8,
mainAxisAlignment: MainAxisAlignment.start,
onPressed: !enabled
? null
: () async {
@@ -111,14 +114,13 @@ class SuperportDateRangePickerButton extends StatelessWidget {
onChanged(picked);
}
},
child: Row(
mainAxisAlignment: MainAxisAlignment.center,
mainAxisSize: MainAxisSize.min,
children: [
const Icon(lucide.LucideIcons.calendar, size: 16),
const SizedBox(width: 8),
Flexible(child: Text(label, overflow: TextOverflow.ellipsis)),
],
leading: const Icon(lucide.LucideIcons.calendar, size: 16),
child: Text(
label,
maxLines: 1,
overflow: TextOverflow.ellipsis,
softWrap: false,
textAlign: TextAlign.left,
),
);
}