showEditMessageModal function
Lets the user change their message text, then forks from the previous message and sends the new text (same idea as ChatGPT edit).
Implementation
void showEditMessageModal(PupauMessage message) {
final PupauChatController chatController = Get.find();
chatController.editMessageTextController.text = message.query;
WoltModalSheetPage page(BuildContext modalSheetContext) {
final bool isTablet = DeviceService.isTablet;
return WoltModalSheetPage(
surfaceTintColor: MyStyles.pupauTheme(!Get.isDarkMode).white,
backgroundColor: MyStyles.pupauTheme(!Get.isDarkMode).white,
hasTopBarLayer: true,
isTopBarLayerAlwaysVisible: true,
topBarTitle: Row(
mainAxisAlignment: MainAxisAlignment.spaceBetween,
children: [
const SizedBox(width: 48),
Expanded(
child: Padding(
padding: const EdgeInsets.only(top: 8),
child: Text(
Strings.editMessageTitle.tr,
textAlign: TextAlign.center,
style: TextStyle(
fontSize: isTablet ? 18 : 16,
fontWeight: FontWeight.w600,
color: MyStyles.pupauTheme(!Get.isDarkMode).darkBlue,
),
),
),
),
const Padding(padding: EdgeInsets.only(top: 8), child: CloseIcon()),
],
),
child: _EditMessageBody(
message: message,
modalSheetContext: modalSheetContext,
chatController: chatController,
isTablet: isTablet,
),
);
}
final BuildContext? safeContext = getSafeModalContext();
if (safeContext == null) {
return;
}
WoltModalSheet.show(
context: safeContext,
pageListBuilder: (modalSheetContext) {
return [page(modalSheetContext)];
},
);
}