preview-toolbar.js 2.2 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475
  1. import React from 'react'
  2. import PropTypes from 'prop-types'
  3. import PreviewDownloadButton from './preview-download-button'
  4. import PreviewRecompileButton from './preview-recompile-button'
  5. import PreviewLogsToggleButton from './preview-logs-toggle-button'
  6. function PreviewToolbar({
  7. compilerState,
  8. logsState,
  9. onClearCache,
  10. onRecompile,
  11. onRunSyntaxCheckNow,
  12. onSetAutoCompile,
  13. onSetDraftMode,
  14. onSetSyntaxCheck,
  15. onToggleLogs,
  16. outputFiles,
  17. pdfDownloadUrl,
  18. showLogs
  19. }) {
  20. return (
  21. <div className="toolbar toolbar-pdf">
  22. <div className="toolbar-pdf-left">
  23. <PreviewRecompileButton
  24. compilerState={compilerState}
  25. onRecompile={onRecompile}
  26. onRunSyntaxCheckNow={onRunSyntaxCheckNow}
  27. onSetAutoCompile={onSetAutoCompile}
  28. onSetDraftMode={onSetDraftMode}
  29. onSetSyntaxCheck={onSetSyntaxCheck}
  30. onClearCache={onClearCache}
  31. />
  32. <PreviewDownloadButton
  33. isCompiling={compilerState.isCompiling}
  34. outputFiles={outputFiles}
  35. pdfDownloadUrl={pdfDownloadUrl}
  36. />
  37. </div>
  38. <div className="toolbar-pdf-right">
  39. <PreviewLogsToggleButton
  40. logsState={logsState}
  41. showLogs={showLogs}
  42. onToggle={onToggleLogs}
  43. />
  44. </div>
  45. </div>
  46. )
  47. }
  48. PreviewToolbar.propTypes = {
  49. compilerState: PropTypes.shape({
  50. isAutoCompileOn: PropTypes.bool.isRequired,
  51. isCompiling: PropTypes.bool.isRequired,
  52. isDraftModeOn: PropTypes.bool.isRequired,
  53. isSyntaxCheckOn: PropTypes.bool.isRequired,
  54. logEntries: PropTypes.object.isRequired
  55. }),
  56. logsState: PropTypes.shape({
  57. nErrors: PropTypes.number.isRequired,
  58. nWarnings: PropTypes.number.isRequired,
  59. nLogEntries: PropTypes.number.isRequired
  60. }),
  61. showLogs: PropTypes.bool.isRequired,
  62. onClearCache: PropTypes.func.isRequired,
  63. onRecompile: PropTypes.func.isRequired,
  64. onRunSyntaxCheckNow: PropTypes.func.isRequired,
  65. onSetAutoCompile: PropTypes.func.isRequired,
  66. onSetDraftMode: PropTypes.func.isRequired,
  67. onSetSyntaxCheck: PropTypes.func.isRequired,
  68. onToggleLogs: PropTypes.func.isRequired,
  69. pdfDownloadUrl: PropTypes.string,
  70. outputFiles: PropTypes.array
  71. }
  72. export default PreviewToolbar