chore(env): hide audiobook export button in production

This commit is contained in:
Richard Roberson 2025-11-16 21:41:25 -07:00
parent d7a94a6cb0
commit cc0372405f
2 changed files with 44 additions and 32 deletions

View file

@ -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} />
</> </>

View file

@ -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} />
</> </>