chore: refactor settings route

This commit is contained in:
gosangam
2026-07-14 18:16:32 +05:30
parent 1683abc2e9
commit 1582df0ed5
134 changed files with 677 additions and 463 deletions
@@ -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";
@@ -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";
@@ -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";
@@ -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";
@@ -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 = {
@@ -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";
@@ -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";
+37
View File
@@ -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