chore: refactor settings route
This commit is contained in:
+1
-1
@@ -4,7 +4,7 @@ import { PageHeader } from "@/components/layout/page-header";
|
|||||||
import { FindInPage } from "@/components/layout/find-in-page";
|
import { FindInPage } from "@/components/layout/find-in-page";
|
||||||
import { notFound } from "next/navigation";
|
import { notFound } from "next/navigation";
|
||||||
import { getBookMeta, getSingleVerse, getChapterVerseIndex } from "@/lib/api";
|
import { getBookMeta, getSingleVerse, getChapterVerseIndex } from "@/lib/api";
|
||||||
import { ChapterViewer } from "@/app/(app)/books/chapter-viewer";
|
import { ChapterViewer } from "@/app/(app)/(reader)/books/chapter-viewer";
|
||||||
import type { MobileNavGroup } from "@/components/layout/mobile-nav";
|
import type { MobileNavGroup } from "@/components/layout/mobile-nav";
|
||||||
import { ogForVerse, extractQuoteFromHl, buildOgMeta } from "@/lib/og";
|
import { ogForVerse, extractQuoteFromHl, buildOgMeta } from "@/lib/og";
|
||||||
|
|
||||||
+1
-1
@@ -12,7 +12,7 @@ import {
|
|||||||
type VerseIndexEntry,
|
type VerseIndexEntry,
|
||||||
type VerseRecord,
|
type VerseRecord,
|
||||||
} from "@/lib/api";
|
} from "@/lib/api";
|
||||||
import { ChapterViewer } from "@/app/(app)/books/chapter-viewer";
|
import { ChapterViewer } from "@/app/(app)/(reader)/books/chapter-viewer";
|
||||||
import type { MobileNavGroup } from "@/components/layout/mobile-nav";
|
import type { MobileNavGroup } from "@/components/layout/mobile-nav";
|
||||||
import { ogForVerse, extractQuoteFromHl, buildOgMeta } from "@/lib/og";
|
import { ogForVerse, extractQuoteFromHl, buildOgMeta } from "@/lib/og";
|
||||||
|
|
||||||
+1
-1
@@ -6,7 +6,7 @@ import { PageHeader } from "@/components/layout/page-header";
|
|||||||
import { FindInPage } from "@/components/layout/find-in-page";
|
import { FindInPage } from "@/components/layout/find-in-page";
|
||||||
import { notFound } from "next/navigation";
|
import { notFound } from "next/navigation";
|
||||||
import { getBookMeta, getSingleVerse, getChapterVerseIndex } from "@/lib/api";
|
import { getBookMeta, getSingleVerse, getChapterVerseIndex } from "@/lib/api";
|
||||||
import { ChapterViewer } from "@/app/(app)/books/chapter-viewer";
|
import { ChapterViewer } from "@/app/(app)/(reader)/books/chapter-viewer";
|
||||||
import type { MobileNavGroup } from "@/components/layout/mobile-nav";
|
import type { MobileNavGroup } from "@/components/layout/mobile-nav";
|
||||||
import { ogForVerse, extractQuoteFromHl, buildOgMeta } from "@/lib/og";
|
import { ogForVerse, extractQuoteFromHl, buildOgMeta } from "@/lib/og";
|
||||||
|
|
||||||
+1
-1
@@ -11,7 +11,7 @@ import {
|
|||||||
type VerseIndexEntry,
|
type VerseIndexEntry,
|
||||||
type VerseRecord,
|
type VerseRecord,
|
||||||
} from "@/lib/api";
|
} from "@/lib/api";
|
||||||
import { ChapterViewer } from "@/app/(app)/books/chapter-viewer";
|
import { ChapterViewer } from "@/app/(app)/(reader)/books/chapter-viewer";
|
||||||
import type { MobileNavGroup } from "@/components/layout/mobile-nav";
|
import type { MobileNavGroup } from "@/components/layout/mobile-nav";
|
||||||
import type { Metadata } from "next";
|
import type { Metadata } from "next";
|
||||||
import { ogForVerse, extractQuoteFromHl, buildOgMeta } from "@/lib/og";
|
import { ogForVerse, extractQuoteFromHl, buildOgMeta } from "@/lib/og";
|
||||||
+1
-1
@@ -15,7 +15,7 @@ import {
|
|||||||
type VerseRecord,
|
type VerseRecord,
|
||||||
} from "@/lib/api";
|
} from "@/lib/api";
|
||||||
import { ogForVerse, extractQuoteFromHl, buildOgMeta } from "@/lib/og";
|
import { ogForVerse, extractQuoteFromHl, buildOgMeta } from "@/lib/og";
|
||||||
import { ChapterViewer } from "@/app/(app)/books/chapter-viewer";
|
import { ChapterViewer } from "@/app/(app)/(reader)/books/chapter-viewer";
|
||||||
import type { MobileNavGroup } from "@/components/layout/mobile-nav";
|
import type { MobileNavGroup } from "@/components/layout/mobile-nav";
|
||||||
|
|
||||||
type NbsMeta = {
|
type NbsMeta = {
|
||||||
+1
-1
@@ -6,7 +6,7 @@ import { PageHeader } from "@/components/layout/page-header";
|
|||||||
import { FindInPage } from "@/components/layout/find-in-page";
|
import { FindInPage } from "@/components/layout/find-in-page";
|
||||||
import { notFound } from "next/navigation";
|
import { notFound } from "next/navigation";
|
||||||
import { getBookMeta, getSingleVerse, getChapterVerseIndex } from "@/lib/api";
|
import { getBookMeta, getSingleVerse, getChapterVerseIndex } from "@/lib/api";
|
||||||
import { ChapterViewer } from "@/app/(app)/books/chapter-viewer";
|
import { ChapterViewer } from "@/app/(app)/(reader)/books/chapter-viewer";
|
||||||
import type { MobileNavGroup } from "@/components/layout/mobile-nav";
|
import type { MobileNavGroup } from "@/components/layout/mobile-nav";
|
||||||
import { ogForVerse, extractQuoteFromHl, buildOgMeta } from "@/lib/og";
|
import { ogForVerse, extractQuoteFromHl, buildOgMeta } from "@/lib/og";
|
||||||
|
|
||||||
+1
-1
@@ -4,7 +4,7 @@ import { PageHeader } from "@/components/layout/page-header";
|
|||||||
import { FindInPage } from "@/components/layout/find-in-page";
|
import { FindInPage } from "@/components/layout/find-in-page";
|
||||||
import { notFound } from "next/navigation";
|
import { notFound } from "next/navigation";
|
||||||
import { getBookMeta, getSingleVerse, getChapterVerseIndex } from "@/lib/api";
|
import { getBookMeta, getSingleVerse, getChapterVerseIndex } from "@/lib/api";
|
||||||
import { ChapterViewer } from "@/app/(app)/books/chapter-viewer";
|
import { ChapterViewer } from "@/app/(app)/(reader)/books/chapter-viewer";
|
||||||
import type { MobileNavGroup } from "@/components/layout/mobile-nav";
|
import type { MobileNavGroup } from "@/components/layout/mobile-nav";
|
||||||
import { ogForVerse, extractQuoteFromHl, buildOgMeta } from "@/lib/og";
|
import { ogForVerse, extractQuoteFromHl, buildOgMeta } from "@/lib/og";
|
||||||
|
|
||||||
@@ -0,0 +1,37 @@
|
|||||||
|
import { Suspense } from "react";
|
||||||
|
import { TextSelectionToolbar } from "@/components/text-selection-toolbar";
|
||||||
|
import { TextHighlighter } from "@/components/text-highlighter";
|
||||||
|
import { PageBookmarks } from "@/components/social/page-bookmarks";
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Reader layout — the annotation surface for the actual scripture library
|
||||||
|
* (books, letters, lectures, essays, glossary, journals, magazines, other
|
||||||
|
* documents, disciples).
|
||||||
|
*
|
||||||
|
* The text-selection toolbar and its two companions (the `?hl=` highlighter
|
||||||
|
* and the persistent in-text bookmark marks) only make sense over long-form
|
||||||
|
* scripture prose. Mounting them in this nested route group — rather than the
|
||||||
|
* parent `(app)` layout — keeps them off the home feed, search, profiles,
|
||||||
|
* settings, downloads, Kautilya, etc., so a stray text selection on chrome
|
||||||
|
* text no longer pops the toolbar.
|
||||||
|
*
|
||||||
|
* This is a route group: it adds NO path segment, so every URL underneath is
|
||||||
|
* unchanged (`/books/...`, `/letters/...`, …). All the outer `(app)` chrome
|
||||||
|
* (header, sidebar, footer, bottom nav) still wraps these pages.
|
||||||
|
*/
|
||||||
|
export default function ReaderLayout({
|
||||||
|
children,
|
||||||
|
}: {
|
||||||
|
children: React.ReactNode;
|
||||||
|
}) {
|
||||||
|
return (
|
||||||
|
<>
|
||||||
|
{children}
|
||||||
|
<TextSelectionToolbar />
|
||||||
|
<Suspense fallback={null}>
|
||||||
|
<TextHighlighter />
|
||||||
|
</Suspense>
|
||||||
|
<PageBookmarks />
|
||||||
|
</>
|
||||||
|
);
|
||||||
|
}
|
||||||
Some files were not shown because too many files have changed in this diff Show More
Reference in New Issue
Block a user