pdf-viewer.stories.jsx 1.3 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950
  1. import useFetchMock from './hooks/use-fetch-mock'
  2. import PdfSynctexControls from '../js/features/pdf-preview/components/pdf-synctex-controls'
  3. import PdfViewer from '../js/features/pdf-preview/components/pdf-viewer'
  4. import {
  5. mockBuildFile,
  6. mockCompile,
  7. mockSynctex,
  8. mockValidPdf,
  9. } from './fixtures/compile'
  10. import { useEffect, Suspense } from 'react'
  11. import { ScopeDecorator } from './decorators/scope'
  12. import { PdfPreviewProvider } from '@/features/pdf-preview/components/pdf-preview-provider'
  13. export default {
  14. title: 'Editor / PDF Viewer',
  15. component: PdfViewer,
  16. decorators: [ScopeDecorator],
  17. }
  18. export const Interactive = () => {
  19. useFetchMock(fetchMock => {
  20. mockCompile(fetchMock)
  21. mockBuildFile(fetchMock)
  22. mockValidPdf(fetchMock)
  23. mockSynctex(fetchMock)
  24. })
  25. useEffect(() => {
  26. window.dispatchEvent(
  27. new CustomEvent(`cursor:editor:update`, {
  28. detail: { row: 10, position: 10 },
  29. })
  30. )
  31. }, [])
  32. return (
  33. <div>
  34. <div className="pdf-viewer">
  35. <Suspense fallback={null}>
  36. <PdfPreviewProvider>
  37. <PdfViewer />
  38. </PdfPreviewProvider>
  39. </Suspense>
  40. </div>
  41. <div style={{ position: 'absolute', top: 150, left: 50 }}>
  42. <PdfSynctexControls />
  43. </div>
  44. </div>
  45. )
  46. }