chore(env): hide audiobook export button in production
This commit is contained in:
parent
d7a94a6cb0
commit
cc0372405f
2 changed files with 44 additions and 32 deletions
|
|
@ -15,6 +15,8 @@ import { ZoomControl } from '@/components/ZoomControl';
|
||||||
import { AudiobookExportModal } from '@/components/AudiobookExportModal';
|
import { AudiobookExportModal } from '@/components/AudiobookExportModal';
|
||||||
import { DownloadIcon } from '@/components/icons/Icons';
|
import { DownloadIcon } from '@/components/icons/Icons';
|
||||||
|
|
||||||
|
const isDev = process.env.NEXT_PUBLIC_NODE_ENV !== 'production' || process.env.NODE_ENV == null;
|
||||||
|
|
||||||
export default function EPUBPage() {
|
export default function EPUBPage() {
|
||||||
const { id } = useParams();
|
const { id } = useParams();
|
||||||
const { setCurrentDocument, currDocName, clearCurrDoc, createFullAudioBook: createEPUBAudioBook, regenerateChapter: regenerateEPUBChapter } = useEPUB();
|
const { setCurrentDocument, currDocName, clearCurrDoc, createFullAudioBook: createEPUBAudioBook, regenerateChapter: regenerateEPUBChapter } = useEPUB();
|
||||||
|
|
@ -143,14 +145,16 @@ export default function EPUBPage() {
|
||||||
min={0}
|
min={0}
|
||||||
max={100}
|
max={100}
|
||||||
/>
|
/>
|
||||||
<button
|
{isDev && (
|
||||||
onClick={() => setIsAudiobookModalOpen(true)}
|
<button
|
||||||
className="inline-flex items-center py-1 px-2 rounded-md border border-offbase bg-base text-foreground text-xs hover:bg-offbase transition-all duration-200 ease-in-out hover:scale-[1.09] hover:text-accent"
|
onClick={() => setIsAudiobookModalOpen(true)}
|
||||||
aria-label="Open audiobook export"
|
className="inline-flex items-center py-1 px-2 rounded-md border border-offbase bg-base text-foreground text-xs hover:bg-offbase transition-all duration-200 ease-in-out hover:scale-[1.09] hover:text-accent"
|
||||||
title="Export Audiobook"
|
aria-label="Open audiobook export"
|
||||||
>
|
title="Export Audiobook"
|
||||||
<DownloadIcon className="w-4 h-4 transform transition-transform duration-200 ease-in-out hover:scale-[1.09] hover:text-accent" />
|
>
|
||||||
</button>
|
<DownloadIcon className="w-4 h-4 transform transition-transform duration-200 ease-in-out hover:scale-[1.09] hover:text-accent" />
|
||||||
|
</button>
|
||||||
|
)}
|
||||||
<button
|
<button
|
||||||
onClick={() => setIsSettingsOpen(true)}
|
onClick={() => setIsSettingsOpen(true)}
|
||||||
className="inline-flex items-center py-1 px-2 rounded-md border border-offbase bg-base text-foreground text-xs hover:bg-offbase transition-all duration-200 ease-in-out hover:scale-[1.09] hover:text-accent"
|
className="inline-flex items-center py-1 px-2 rounded-md border border-offbase bg-base text-foreground text-xs hover:bg-offbase transition-all duration-200 ease-in-out hover:scale-[1.09] hover:text-accent"
|
||||||
|
|
@ -172,14 +176,16 @@ export default function EPUBPage() {
|
||||||
</div>
|
</div>
|
||||||
)}
|
)}
|
||||||
</div>
|
</div>
|
||||||
<AudiobookExportModal
|
{isDev && (
|
||||||
isOpen={isAudiobookModalOpen}
|
<AudiobookExportModal
|
||||||
setIsOpen={setIsAudiobookModalOpen}
|
isOpen={isAudiobookModalOpen}
|
||||||
documentType="epub"
|
setIsOpen={setIsAudiobookModalOpen}
|
||||||
documentId={id as string}
|
documentType="epub"
|
||||||
onGenerateAudiobook={handleGenerateAudiobook}
|
documentId={id as string}
|
||||||
onRegenerateChapter={handleRegenerateChapter}
|
onGenerateAudiobook={handleGenerateAudiobook}
|
||||||
/>
|
onRegenerateChapter={handleRegenerateChapter}
|
||||||
|
/>
|
||||||
|
)}
|
||||||
<TTSPlayer />
|
<TTSPlayer />
|
||||||
<DocumentSettings epub isOpen={isSettingsOpen} setIsOpen={setIsSettingsOpen} />
|
<DocumentSettings epub isOpen={isSettingsOpen} setIsOpen={setIsSettingsOpen} />
|
||||||
</>
|
</>
|
||||||
|
|
|
||||||
|
|
@ -14,6 +14,8 @@ import { ZoomControl } from '@/components/ZoomControl';
|
||||||
import { AudiobookExportModal } from '@/components/AudiobookExportModal';
|
import { AudiobookExportModal } from '@/components/AudiobookExportModal';
|
||||||
import TTSPlayer from '@/components/player/TTSPlayer';
|
import TTSPlayer from '@/components/player/TTSPlayer';
|
||||||
|
|
||||||
|
const isDev = process.env.NEXT_PUBLIC_NODE_ENV !== 'production' || process.env.NODE_ENV == null;
|
||||||
|
|
||||||
// Dynamic import for client-side rendering only
|
// Dynamic import for client-side rendering only
|
||||||
const PDFViewer = dynamic(
|
const PDFViewer = dynamic(
|
||||||
() => import('@/components/PDFViewer').then((module) => module.PDFViewer),
|
() => import('@/components/PDFViewer').then((module) => module.PDFViewer),
|
||||||
|
|
@ -131,14 +133,16 @@ export default function PDFViewerPage() {
|
||||||
right={
|
right={
|
||||||
<div className="flex items-center gap-2">
|
<div className="flex items-center gap-2">
|
||||||
<ZoomControl value={zoomLevel} onIncrease={handleZoomIn} onDecrease={handleZoomOut} />
|
<ZoomControl value={zoomLevel} onIncrease={handleZoomIn} onDecrease={handleZoomOut} />
|
||||||
<button
|
{isDev && (
|
||||||
onClick={() => setIsAudiobookModalOpen(true)}
|
<button
|
||||||
className="inline-flex items-center py-1 px-2 rounded-md border border-offbase bg-base text-foreground text-xs hover:bg-offbase transition-all duration-200 ease-in-out hover:scale-[1.09] hover:text-accent"
|
onClick={() => setIsAudiobookModalOpen(true)}
|
||||||
aria-label="Open audiobook export"
|
className="inline-flex items-center py-1 px-2 rounded-md border border-offbase bg-base text-foreground text-xs hover:bg-offbase transition-all duration-200 ease-in-out hover:scale-[1.09] hover:text-accent"
|
||||||
title="Export Audiobook"
|
aria-label="Open audiobook export"
|
||||||
>
|
title="Export Audiobook"
|
||||||
<DownloadIcon className="w-4 h-4 transform transition-transform duration-200 ease-in-out hover:scale-[1.09] hover:text-accent" />
|
>
|
||||||
</button>
|
<DownloadIcon className="w-4 h-4 transform transition-transform duration-200 ease-in-out hover:scale-[1.09] hover:text-accent" />
|
||||||
|
</button>
|
||||||
|
)}
|
||||||
<button
|
<button
|
||||||
onClick={() => setIsSettingsOpen(true)}
|
onClick={() => setIsSettingsOpen(true)}
|
||||||
className="inline-flex items-center py-1 px-2 rounded-md border border-offbase bg-base text-foreground text-xs hover:bg-offbase transition-all duration-200 ease-in-out hover:scale-[1.09] hover:text-accent"
|
className="inline-flex items-center py-1 px-2 rounded-md border border-offbase bg-base text-foreground text-xs hover:bg-offbase transition-all duration-200 ease-in-out hover:scale-[1.09] hover:text-accent"
|
||||||
|
|
@ -158,14 +162,16 @@ export default function PDFViewerPage() {
|
||||||
<PDFViewer zoomLevel={zoomLevel} />
|
<PDFViewer zoomLevel={zoomLevel} />
|
||||||
)}
|
)}
|
||||||
</div>
|
</div>
|
||||||
<AudiobookExportModal
|
{isDev && (
|
||||||
isOpen={isAudiobookModalOpen}
|
<AudiobookExportModal
|
||||||
setIsOpen={setIsAudiobookModalOpen}
|
isOpen={isAudiobookModalOpen}
|
||||||
documentType="pdf"
|
setIsOpen={setIsAudiobookModalOpen}
|
||||||
documentId={id as string}
|
documentType="pdf"
|
||||||
onGenerateAudiobook={handleGenerateAudiobook}
|
documentId={id as string}
|
||||||
onRegenerateChapter={handleRegenerateChapter}
|
onGenerateAudiobook={handleGenerateAudiobook}
|
||||||
/>
|
onRegenerateChapter={handleRegenerateChapter}
|
||||||
|
/>
|
||||||
|
)}
|
||||||
<TTSPlayer currentPage={currDocPage} numPages={currDocPages} />
|
<TTSPlayer currentPage={currDocPage} numPages={currDocPages} />
|
||||||
<DocumentSettings isOpen={isSettingsOpen} setIsOpen={setIsSettingsOpen} />
|
<DocumentSettings isOpen={isSettingsOpen} setIsOpen={setIsSettingsOpen} />
|
||||||
</>
|
</>
|
||||||
|
|
|
||||||
Loading…
Reference in a new issue