From 20d7a1185edf3d8126715bf97468667d2484c7f2 Mon Sep 17 00:00:00 2001 From: Huang Xin Date: Tue, 20 May 2025 20:12:17 +0800 Subject: [PATCH] layout: grouping modal now should stay on top of the header bar (#1207) --- .../src/app/library/components/Bookshelf.tsx | 5 +++-- .../app/library/components/GroupingModal.tsx | 2 +- .../src/components/ModalPortal.tsx | 20 +++++++++++++++++++ 3 files changed, 24 insertions(+), 3 deletions(-) create mode 100644 apps/readest-app/src/components/ModalPortal.tsx diff --git a/apps/readest-app/src/app/library/components/Bookshelf.tsx b/apps/readest-app/src/app/library/components/Bookshelf.tsx index b4401b80..d31adf7c 100644 --- a/apps/readest-app/src/app/library/components/Bookshelf.tsx +++ b/apps/readest-app/src/app/library/components/Bookshelf.tsx @@ -17,6 +17,7 @@ import { isMd5 } from '@/utils/md5'; import Alert from '@/components/Alert'; import Spinner from '@/components/Spinner'; +import ModalPortal from '@/components/ModalPortal'; import BookshelfItem, { generateGridItems, generateListItems } from './BookshelfItem'; import GroupingModal from './GroupingModal'; @@ -354,7 +355,7 @@ const Bookshelf: React.FC = ({ )} {showGroupingModal && ( -
+ = ({ handleSetSelectMode(false); }} /> -
+ )} {showDeleteAlert && (
= ({ }, [selectedBooks]); return ( -
+
= ({ children }) => { + return ReactDOM.createPortal( +
+ {children} +
, + document.body, + ); +}; + +export default ModalPortal;