Files
flutter_server_box/lib/view/page/server/tab/landscape.dart
lollipopkit🏳️‍⚧️ 53a7c0d8ff migrate: riverpod + freezed (#870)
2025-08-31 00:55:54 +08:00

57 lines
1.5 KiB
Dart

part of 'tab.dart';
extension on _ServerPageState {
Widget _buildLandscape() {
final offset = Offset(_offset, _offset);
return Padding(
// Avoid display cutout
padding: EdgeInsets.all(_offset.abs()),
child: Transform.translate(
offset: offset,
child: Stack(
children: [
_buildLandscapeBody(),
Positioned(
top: 0,
left: 0,
child: IconButton(
onPressed: () => SettingsPage.route.go(context),
icon: const Icon(Icons.settings, color: Colors.grey),
),
),
],
),
),
);
}
Widget _buildLandscapeBody() {
final serverState = ref.watch(serverNotifierProvider);
final order = serverState.serverOrder;
if (order.isEmpty) {
return Center(child: Text(libL10n.empty, textAlign: TextAlign.center));
}
return PageView.builder(
itemCount: order.length,
itemBuilder: (_, idx) {
final id = order[idx];
final srv = ref.watch(individualServerNotifierProvider(id));
final title = _buildServerCardTitle(srv);
final List<Widget> children = [title, _buildNormalCard(srv.status, srv.spi)];
return _getCardNoti(id).listenVal((_) {
return Column(
mainAxisSize: MainAxisSize.min,
mainAxisAlignment: MainAxisAlignment.center,
crossAxisAlignment: CrossAxisAlignment.center,
children: children,
);
});
},
);
}
}