타일 UI 편집 기능 임시 보류 + 로그인 유지 체크박스 추가
- 폰처럼 작은 화면에서 6칸 고정 격자 때문에 레이아웃이 깨지는 문제로, 타일 드래그 이동/크기조절 기능을 kTileEditingEnabled 플래그로 임시 비활성화 (관련 코드는 그대로 유지 - 작은 화면 대응 방안 마련 후 플래그만 켜면 재사용 가능) - 비활성화 상태에서는 화면 폭에 따라 열이 자동으로 줄어드는 기본 그리드 사용 - 설정 화면의 "UI 편집" 항목은 비활성화 표시로 안내 - 로그인 화면에 "로그인 상태 유지" 체크박스 추가 (기본 체크됨, 해제 시 세션 저장 안 함) Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>
This commit is contained in:
@@ -60,7 +60,10 @@ class _MainDashboardState extends State<MainDashboard> {
|
||||
void initState() {
|
||||
super.initState();
|
||||
_layout = DashboardLayoutController(_displayId);
|
||||
_layout.load(_tileSpecs().map((t) => t.id).toList());
|
||||
// 📱 [기능 보류] kTileEditingEnabled가 false인 동안은 서버에서 배치를 불러올 필요가 없다.
|
||||
if (kTileEditingEnabled) {
|
||||
_layout.load(_tileSpecs().map((t) => t.id).toList());
|
||||
}
|
||||
}
|
||||
|
||||
@override
|
||||
@@ -193,7 +196,7 @@ class _MainDashboardState extends State<MainDashboard> {
|
||||
context,
|
||||
MaterialPageRoute(builder: (context) => const DashboardSettingsPage()),
|
||||
);
|
||||
if (result == 'edit_ui') {
|
||||
if (result == 'edit_ui' && kTileEditingEnabled) {
|
||||
_layout.enterEditMode();
|
||||
}
|
||||
}
|
||||
@@ -577,12 +580,16 @@ class _MainDashboardState extends State<MainDashboard> {
|
||||
),
|
||||
),
|
||||
const SizedBox(height: 16),
|
||||
_layout.isLoading
|
||||
? const Padding(
|
||||
padding: EdgeInsets.symmetric(vertical: 40),
|
||||
child: Center(child: CircularProgressIndicator()),
|
||||
)
|
||||
: _buildGridCanvas(tiles, isEditing),
|
||||
// 📱 [기능 보류] kTileEditingEnabled가 꺼져 있는 동안은 화면 크기에 맞춰
|
||||
// 알아서 줄서는 기본 그리드를 쓰고, 드래그 편집용 캔버스는 쓰지 않는다.
|
||||
kTileEditingEnabled
|
||||
? (_layout.isLoading
|
||||
? const Padding(
|
||||
padding: EdgeInsets.symmetric(vertical: 40),
|
||||
child: Center(child: CircularProgressIndicator()),
|
||||
)
|
||||
: _buildGridCanvas(tiles, isEditing))
|
||||
: _buildSimpleGrid(tiles),
|
||||
const SizedBox(height: 32),
|
||||
],
|
||||
),
|
||||
@@ -592,6 +599,26 @@ class _MainDashboardState extends State<MainDashboard> {
|
||||
);
|
||||
}
|
||||
|
||||
// 📱 [기능 보류] kTileEditingEnabled가 꺼져 있을 때 쓰는 기본 그리드.
|
||||
// 화면 폭에 맞춰 열 개수가 자동으로 줄어들기 때문에 폰에서도 안 깨진다.
|
||||
Widget _buildSimpleGrid(List<({String id, Widget child})> tiles) {
|
||||
return Padding(
|
||||
padding: const EdgeInsets.symmetric(horizontal: 24.0),
|
||||
child: GridView.builder(
|
||||
shrinkWrap: true,
|
||||
physics: const NeverScrollableScrollPhysics(),
|
||||
gridDelegate: const SliverGridDelegateWithMaxCrossAxisExtent(
|
||||
maxCrossAxisExtent: 160,
|
||||
mainAxisSpacing: 12,
|
||||
crossAxisSpacing: 12,
|
||||
childAspectRatio: 1,
|
||||
),
|
||||
itemCount: tiles.length,
|
||||
itemBuilder: (context, index) => tiles[index].child,
|
||||
),
|
||||
);
|
||||
}
|
||||
|
||||
Widget _buildGridCanvas(
|
||||
List<({String id, Widget child})> tiles,
|
||||
bool isEditing,
|
||||
|
||||
Reference in New Issue
Block a user