Post publish zone

This commit is contained in:
2024-08-01 15:21:43 +08:00
parent 190bb34958
commit 7655dfdf37
7 changed files with 123 additions and 12 deletions

View File

@ -0,0 +1,70 @@
import 'package:dropdown_button2/dropdown_button2.dart';
import 'package:flutter/material.dart';
import 'package:get/get.dart';
import 'package:solian/controllers/post_editor_controller.dart';
import 'package:solian/providers/content/realm.dart';
class PostEditorPublishZoneDialog extends StatelessWidget {
final PostEditorController controller;
const PostEditorPublishZoneDialog({super.key, required this.controller});
@override
Widget build(BuildContext context) {
final RealmProvider realms = Get.find();
return AlertDialog(
title: Text('postPublishZone'.tr),
content: Column(
mainAxisSize: MainAxisSize.min,
children: [
Obx(() {
return DropdownButtonFormField2<int>(
isExpanded: true,
decoration: const InputDecoration(
border: OutlineInputBorder(
borderRadius: BorderRadius.all(Radius.circular(8)),
),
),
items: [
DropdownMenuItem<int>(
value: null,
child: Text(
'postPublishZoneNone'.tr,
style: const TextStyle(fontSize: 14),
),
),
...realms.availableRealms.map(
(x) => DropdownMenuItem<int>(
value: x.id,
child: Text(
'${x.name} (${x.alias})',
style: const TextStyle(fontSize: 14),
),
),
),
],
value: controller.realmZone.value?.id,
onChanged: (int? value) {
if (value == null) {
controller.realmZone.value = null;
} else {
controller.realmZone.value =
realms.availableRealms.firstWhere((x) => x.id == value);
}
},
buttonStyleData: const ButtonStyleData(height: 20),
menuItemStyleData: const MenuItemStyleData(height: 40),
);
}),
],
),
actions: [
TextButton(
onPressed: () => Navigator.pop(context),
child: Text('confirm'.tr),
),
],
);
}
}