diff --git a/services/web/frontend/extracted-translations.json b/services/web/frontend/extracted-translations.json
index 5c9a600d7e..a2b2483c85 100644
--- a/services/web/frontend/extracted-translations.json
+++ b/services/web/frontend/extracted-translations.json
@@ -291,7 +291,6 @@
"close_dialog": "",
"clsi_maintenance": "",
"clsi_unavailable": "",
- "code_check_failed": "",
"code_check_failed_explanation": "",
"code_editor": "",
"collaborate_online_and_offline": "",
@@ -1465,7 +1464,6 @@
"recovering": "",
"recurly_email_update_needed": "",
"recurly_email_updated": "",
- "redirect_to_editor": "",
"redirect_url": "",
"redo": "",
"reduce_costs_group_licenses": "",
@@ -1861,8 +1859,6 @@
"synctex_failed": "",
"syntax_checks": "",
"syntax_validation": "",
- "tab_connecting": "",
- "tab_no_longer_connected": "",
"table": "",
"tag_color": "",
"tag_name_cannot_exceed_characters": "",
diff --git a/services/web/frontend/js/features/ide-redesign/components/error-logs/rolling-build-selected-reminder.tsx b/services/web/frontend/js/features/ide-redesign/components/error-logs/rolling-build-selected-reminder.tsx
deleted file mode 100644
index 086b8d6020..0000000000
--- a/services/web/frontend/js/features/ide-redesign/components/error-logs/rolling-build-selected-reminder.tsx
+++ /dev/null
@@ -1,33 +0,0 @@
-import OLNotification from '@/shared/components/ol/ol-notification'
-import { useTranslation, Trans } from 'react-i18next'
-import { useProjectContext } from '@/shared/context/project-context'
-import { onRollingBuild } from '@/shared/utils/rolling-build'
-
-const RollingBuildSelectedReminder = () => {
- const { t } = useTranslation()
- const { project } = useProjectContext()
- if (!onRollingBuild(project?.imageName)) {
- return null
- }
-
- const content = (
- , // eslint-disable-line react/jsx-key, jsx-a11y/anchor-has-content
- , // eslint-disable-line react/jsx-key, jsx-a11y/anchor-has-content
- ]}
- />
- )
-
- return (
-
- )
-}
-
-export default RollingBuildSelectedReminder
diff --git a/services/web/frontend/js/features/ide-redesign/components/pdf-preview/pdf-logs-viewer.tsx b/services/web/frontend/js/features/ide-redesign/components/pdf-preview/pdf-logs-viewer.tsx
deleted file mode 100644
index 32fa2d9c21..0000000000
--- a/services/web/frontend/js/features/ide-redesign/components/pdf-preview/pdf-logs-viewer.tsx
+++ /dev/null
@@ -1,19 +0,0 @@
-import classnames from 'classnames'
-import { useDetachCompileContext as useCompileContext } from '@/shared/context/detach-compile-context'
-import ErrorLogs from '../error-logs/error-logs'
-import { usePdfPreviewContext } from '@/features/pdf-preview/components/pdf-preview-provider'
-
-export default function PdfLogsViewer() {
- const { showLogs } = useCompileContext()
- const { loadingError } = usePdfPreviewContext()
-
- return (
-
-
-
- )
-}
diff --git a/services/web/frontend/js/features/ide-redesign/components/pdf-preview/pdf-preview-hybrid-toolbar.tsx b/services/web/frontend/js/features/ide-redesign/components/pdf-preview/pdf-preview-hybrid-toolbar.tsx
deleted file mode 100644
index ccaeeda527..0000000000
--- a/services/web/frontend/js/features/ide-redesign/components/pdf-preview/pdf-preview-hybrid-toolbar.tsx
+++ /dev/null
@@ -1,43 +0,0 @@
-import { memo, useCallback, useState } from 'react'
-import { useTranslation } from 'react-i18next'
-import OLButtonToolbar from '@/shared/components/ol/ol-button-toolbar'
-import PdfCompileButton from '@/features/pdf-preview/components/pdf-compile-button'
-import PdfHybridDownloadButton from '@/features/pdf-preview/components/pdf-hybrid-download-button'
-import { DetachedSynctexControl } from '@/features/pdf-preview/components/detach-synctex-control'
-import SwitchToEditorButton from '@/features/pdf-preview/components/switch-to-editor-button'
-import PdfHybridLogsButton from '@/features/pdf-preview/components/pdf-hybrid-logs-button'
-import EditorTourLogsTooltip from '../editor-tour/editor-tour-logs-tooltip'
-
-function PdfPreviewHybridToolbar() {
- const { t } = useTranslation()
-
- const [logsButtonElt, setLogsButtonElt] = useState(null)
- const logsButtonRef = useCallback((node: HTMLButtonElement) => {
- if (node !== null) {
- setLogsButtonElt(node)
- }
- }, [])
-
- // TODO: add detached pdf logic
- return (
-
-
-
-
-
-
- {/* TODO: should we have code check? */}
-
-
- )
-}
-
-export default memo(PdfPreviewHybridToolbar)
diff --git a/services/web/frontend/js/features/ide-redesign/components/error-logs/error-logs.tsx b/services/web/frontend/js/features/pdf-preview/components/error-logs.tsx
similarity index 98%
rename from services/web/frontend/js/features/ide-redesign/components/error-logs/error-logs.tsx
rename to services/web/frontend/js/features/pdf-preview/components/error-logs.tsx
index 31743789fd..a9f7b292f5 100644
--- a/services/web/frontend/js/features/ide-redesign/components/error-logs/error-logs.tsx
+++ b/services/web/frontend/js/features/pdf-preview/components/error-logs.tsx
@@ -11,7 +11,7 @@ import { useDetachCompileContext as useCompileContext } from '@/shared/context/d
import { Nav, NavLink, TabContainer, TabContent } from 'react-bootstrap'
import { LogEntry as LogEntryData } from '@/features/pdf-preview/util/types'
import LogEntry from './log-entry'
-import importOverleafModules from '../../../../../macros/import-overleaf-module.macro'
+import importOverleafModules from '../../../../macros/import-overleaf-module.macro'
import TimeoutUpgradePromptNew from '@/features/pdf-preview/components/timeout-upgrade-prompt-new'
import getMeta from '@/utils/meta'
import PdfClearCacheButton from '@/features/pdf-preview/components/pdf-clear-cache-button'
diff --git a/services/web/frontend/js/features/ide-redesign/components/error-logs/log-entry-header.tsx b/services/web/frontend/js/features/pdf-preview/components/log-entry-header.tsx
similarity index 98%
rename from services/web/frontend/js/features/ide-redesign/components/error-logs/log-entry-header.tsx
rename to services/web/frontend/js/features/pdf-preview/components/log-entry-header.tsx
index 6c22234bba..c4a8d97f61 100644
--- a/services/web/frontend/js/features/ide-redesign/components/error-logs/log-entry-header.tsx
+++ b/services/web/frontend/js/features/pdf-preview/components/log-entry-header.tsx
@@ -17,7 +17,7 @@ import {
} from '@/features/pdf-preview/util/types'
import useResizeObserver from '@/features/preview/hooks/use-resize-observer'
import OLIconButton from '@/shared/components/ol/ol-icon-button'
-import importOverleafModules from '../../../../../macros/import-overleaf-module.macro'
+import importOverleafModules from '../../../../macros/import-overleaf-module.macro'
import MaterialIcon from '@/shared/components/material-icon'
import { useFileTreePathContext } from '@/features/file-tree/contexts/file-tree-path'
import { useFileTreeOpenContext } from '@/features/ide-react/context/file-tree-open-context'
diff --git a/services/web/frontend/js/features/ide-redesign/components/error-logs/log-entry.tsx b/services/web/frontend/js/features/pdf-preview/components/log-entry.tsx
similarity index 96%
rename from services/web/frontend/js/features/ide-redesign/components/error-logs/log-entry.tsx
rename to services/web/frontend/js/features/pdf-preview/components/log-entry.tsx
index d10ddd87ed..d5cbeb58f2 100644
--- a/services/web/frontend/js/features/ide-redesign/components/error-logs/log-entry.tsx
+++ b/services/web/frontend/js/features/pdf-preview/components/log-entry.tsx
@@ -5,7 +5,7 @@ import {
SetStateAction,
useState,
} from 'react'
-import HumanReadableLogsHints from '../../../../ide/human-readable-logs/HumanReadableLogsHints'
+import HumanReadableLogsHints from '../../../ide/human-readable-logs/HumanReadableLogsHints'
import {
ErrorLevel,
LogEntry as LogEntryData,
diff --git a/services/web/frontend/js/features/ide-redesign/components/pdf-preview/pdf-code-check-failed-banner.tsx b/services/web/frontend/js/features/pdf-preview/components/pdf-code-check-failed-banner.tsx
similarity index 100%
rename from services/web/frontend/js/features/ide-redesign/components/pdf-preview/pdf-code-check-failed-banner.tsx
rename to services/web/frontend/js/features/pdf-preview/components/pdf-code-check-failed-banner.tsx
diff --git a/services/web/frontend/js/features/pdf-preview/components/pdf-code-check-failed-notice.tsx b/services/web/frontend/js/features/pdf-preview/components/pdf-code-check-failed-notice.tsx
deleted file mode 100644
index ca42ab6843..0000000000
--- a/services/web/frontend/js/features/pdf-preview/components/pdf-code-check-failed-notice.tsx
+++ /dev/null
@@ -1,16 +0,0 @@
-import { memo } from 'react'
-import { useTranslation } from 'react-i18next'
-import OLNotification from '@/shared/components/ol/ol-notification'
-
-function PdfCodeCheckFailedNotice() {
- const { t } = useTranslation()
- return (
-
- )
-}
-
-export default memo(PdfCodeCheckFailedNotice)
diff --git a/services/web/frontend/js/features/pdf-preview/components/pdf-hybrid-code-check-button.tsx b/services/web/frontend/js/features/pdf-preview/components/pdf-hybrid-code-check-button.tsx
deleted file mode 100644
index 7141830425..0000000000
--- a/services/web/frontend/js/features/pdf-preview/components/pdf-hybrid-code-check-button.tsx
+++ /dev/null
@@ -1,34 +0,0 @@
-import { memo, useCallback } from 'react'
-import { useTranslation } from 'react-i18next'
-import { useDetachCompileContext as useCompileContext } from '../../../shared/context/detach-compile-context'
-import OLButton from '@/shared/components/ol/ol-button'
-import MaterialIcon from '@/shared/components/material-icon'
-
-function PdfHybridCodeCheckButton() {
- const { codeCheckFailed, error, toggleLogs } = useCompileContext()
-
- const { t } = useTranslation()
-
- const handleClick = useCallback(() => {
- toggleLogs()
- }, [toggleLogs])
-
- if (!codeCheckFailed) {
- return null
- }
-
- return (
-
-
- {t('code_check_failed')}
-
- )
-}
-
-export default memo(PdfHybridCodeCheckButton)
diff --git a/services/web/frontend/js/features/pdf-preview/components/pdf-log-entry.tsx b/services/web/frontend/js/features/pdf-preview/components/pdf-log-entry.tsx
index 70c08f200d..dafcf05376 100644
--- a/services/web/frontend/js/features/pdf-preview/components/pdf-log-entry.tsx
+++ b/services/web/frontend/js/features/pdf-preview/components/pdf-log-entry.tsx
@@ -4,7 +4,7 @@ import PdfLogEntryContent from './pdf-log-entry-content'
import HumanReadableLogsHints from '../../../ide/human-readable-logs/HumanReadableLogsHints'
import getMeta from '@/utils/meta'
import { ErrorLevel, LogEntry, SourceLocation } from '../util/types'
-import NewLogEntry from '@/features/ide-redesign/components/error-logs/log-entry'
+import NewLogEntry from '@/features/pdf-preview/components/log-entry'
import { useIsNewEditorEnabled } from '@/features/ide-redesign/utils/new-editor-utils'
import useHandleLogEntryClick from '../hooks/use-handle-log-entry-click'
diff --git a/services/web/frontend/js/features/pdf-preview/components/pdf-logs-viewer.tsx b/services/web/frontend/js/features/pdf-preview/components/pdf-logs-viewer.tsx
index 65a8a2e11c..8025bee9ce 100644
--- a/services/web/frontend/js/features/pdf-preview/components/pdf-logs-viewer.tsx
+++ b/services/web/frontend/js/features/pdf-preview/components/pdf-logs-viewer.tsx
@@ -1,91 +1,19 @@
-import { useTranslation } from 'react-i18next'
-import { memo } from 'react'
import classnames from 'classnames'
-import RollingBuildSelectedReminder from './rolling-build-selected-reminder'
-import PdfValidationIssue from './pdf-validation-issue'
-import StopOnFirstErrorPrompt from './stop-on-first-error-prompt'
-import TimeoutUpgradePromptNew from './timeout-upgrade-prompt-new'
-import PdfPreviewError from './pdf-preview-error'
-import PdfClearCacheButton from './pdf-clear-cache-button'
-import PdfDownloadFilesButton from './pdf-download-files-button'
-import PdfLogsEntries from './pdf-logs-entries'
-import withErrorBoundary from '../../../infrastructure/error-boundary'
-import PdfPreviewErrorBoundaryFallback from './pdf-preview-error-boundary-fallback'
-import PdfCodeCheckFailedNotice from './pdf-code-check-failed-notice'
-import { useDetachCompileContext as useCompileContext } from '../../../shared/context/detach-compile-context'
-import PdfLogEntry from './pdf-log-entry'
+import { useDetachCompileContext as useCompileContext } from '@/shared/context/detach-compile-context'
+import ErrorLogs from './error-logs'
import { usePdfPreviewContext } from '@/features/pdf-preview/components/pdf-preview-provider'
-import getMeta from '@/utils/meta'
-
-function PdfLogsViewer({ alwaysVisible = false }: { alwaysVisible?: boolean }) {
- const {
- codeCheckFailed,
- error,
- logEntries,
- rawLog,
- validationIssues,
- showLogs,
- stoppedOnFirstError,
- } = useCompileContext()
+export default function PdfLogsViewer() {
+ const { showLogs } = useCompileContext()
const { loadingError } = usePdfPreviewContext()
- const { compileTimeout } = getMeta('ol-compileSettings')
-
- const { t } = useTranslation()
-
return (
-
-
-
- {codeCheckFailed &&
}
-
- {stoppedOnFirstError &&
}
-
- {loadingError &&
}
-
- {compileTimeout < 60 && error === 'timedout' ? (
-
- ) : (
- <>{error &&
}>
- )}
-
- {validationIssues &&
- Object.entries(validationIssues).map(([name, issue]) => (
-
- ))}
-
- {logEntries?.all && (
-
0}
- />
- )}
-
- {rawLog && (
-
- )}
-
-
-
+
)
}
-
-export default withErrorBoundary(memo(PdfLogsViewer), () => (
-
-))
diff --git a/services/web/frontend/js/features/pdf-preview/components/pdf-orphan-refresh-button.tsx b/services/web/frontend/js/features/pdf-preview/components/pdf-orphan-refresh-button.tsx
deleted file mode 100644
index e4d1439423..0000000000
--- a/services/web/frontend/js/features/pdf-preview/components/pdf-orphan-refresh-button.tsx
+++ /dev/null
@@ -1,22 +0,0 @@
-import { useTranslation } from 'react-i18next'
-import { memo, useCallback } from 'react'
-import { buildUrlWithDetachRole } from '@/shared/utils/url-helper'
-import { useLocation } from '@/shared/hooks/use-location'
-import OLButton from '@/shared/components/ol/ol-button'
-
-function PdfOrphanRefreshButton() {
- const { t } = useTranslation()
- const location = useLocation()
-
- const redirect = useCallback(() => {
- location.assign(buildUrlWithDetachRole(null).toString())
- }, [location])
-
- return (
-
- {t('redirect_to_editor')}
-
- )
-}
-
-export default memo(PdfOrphanRefreshButton)
diff --git a/services/web/frontend/js/features/pdf-preview/components/pdf-preview-hybrid-toolbar.tsx b/services/web/frontend/js/features/pdf-preview/components/pdf-preview-hybrid-toolbar.tsx
index 56b4369102..ca4d8a60ee 100644
--- a/services/web/frontend/js/features/pdf-preview/components/pdf-preview-hybrid-toolbar.tsx
+++ b/services/web/frontend/js/features/pdf-preview/components/pdf-preview-hybrid-toolbar.tsx
@@ -1,100 +1,43 @@
-import { memo, useState, useEffect, useRef } from 'react'
+import { memo, useCallback, useState } from 'react'
import { useTranslation } from 'react-i18next'
import OLButtonToolbar from '@/shared/components/ol/ol-button-toolbar'
-import { useLayoutContext } from '@/shared/context/layout-context'
-import PdfCompileButton from './pdf-compile-button'
-import SwitchToEditorButton from './switch-to-editor-button'
-import PdfHybridLogsButton from './pdf-hybrid-logs-button'
-import PdfHybridDownloadButton from './pdf-hybrid-download-button'
-import PdfHybridCodeCheckButton from './pdf-hybrid-code-check-button'
-import PdfOrphanRefreshButton from './pdf-orphan-refresh-button'
-import { DetachedSynctexControl } from './detach-synctex-control'
-import LoadingSpinner from '@/shared/components/loading-spinner'
-
-const ORPHAN_UI_TIMEOUT_MS = 5000
+import PdfCompileButton from '@/features/pdf-preview/components/pdf-compile-button'
+import PdfHybridDownloadButton from '@/features/pdf-preview/components/pdf-hybrid-download-button'
+import { DetachedSynctexControl } from '@/features/pdf-preview/components/detach-synctex-control'
+import SwitchToEditorButton from '@/features/pdf-preview/components/switch-to-editor-button'
+import PdfHybridLogsButton from '@/features/pdf-preview/components/pdf-hybrid-logs-button'
+import EditorTourLogsTooltip from '../../ide-redesign/components/editor-tour/editor-tour-logs-tooltip'
function PdfPreviewHybridToolbar() {
- const { detachRole, detachIsLinked } = useLayoutContext()
const { t } = useTranslation()
- const uiTimeoutRef = useRef()
- const [orphanPdfTabAfterDelay, setOrphanPdfTabAfterDelay] = useState(false)
- const orphanPdfTab = !detachIsLinked && detachRole === 'detached'
-
- useEffect(() => {
- if (uiTimeoutRef.current) {
- window.clearTimeout(uiTimeoutRef.current)
+ const [logsButtonElt, setLogsButtonElt] = useState(null)
+ const logsButtonRef = useCallback((node: HTMLButtonElement) => {
+ if (node !== null) {
+ setLogsButtonElt(node)
}
+ }, [])
- if (orphanPdfTab) {
- uiTimeoutRef.current = window.setTimeout(() => {
- setOrphanPdfTabAfterDelay(true)
- }, ORPHAN_UI_TIMEOUT_MS)
- } else {
- setOrphanPdfTabAfterDelay(false)
- }
- }, [orphanPdfTab])
-
- let ToolbarInner = null
- if (orphanPdfTabAfterDelay) {
- // when the detached tab has been orphan for a while
- ToolbarInner =
- } else if (orphanPdfTab) {
- ToolbarInner =
- } else {
- // tab is not detached or not orphan
- ToolbarInner =
- }
-
+ // TODO: add detached pdf logic
return (
- {ToolbarInner}
+
+
+
+
+
+ {/* TODO: should we have code check? */}
+
)
}
-function PdfPreviewHybridToolbarInner() {
- return (
- <>
-
-
- >
- )
-}
-
-function PdfPreviewHybridToolbarOrphanInner() {
- const { t } = useTranslation()
- return (
- <>
-
- {t('tab_no_longer_connected')}
-
-
- >
- )
-}
-
-function PdfPreviewHybridToolbarConnectingInner() {
- const { t } = useTranslation()
- return (
- <>
-
-
-
- >
- )
-}
-
export default memo(PdfPreviewHybridToolbar)
diff --git a/services/web/frontend/js/features/pdf-preview/components/pdf-preview-pane.tsx b/services/web/frontend/js/features/pdf-preview/components/pdf-preview-pane.tsx
index e27814e668..d776b2da83 100644
--- a/services/web/frontend/js/features/pdf-preview/components/pdf-preview-pane.tsx
+++ b/services/web/frontend/js/features/pdf-preview/components/pdf-preview-pane.tsx
@@ -1,19 +1,17 @@
import { ElementType, memo, Suspense } from 'react'
import classNames from 'classnames'
-import PdfLogsViewer from './pdf-logs-viewer'
import PdfViewer from './pdf-viewer'
import { FullSizeLoadingSpinner } from '../../../shared/components/loading-spinner'
-import PdfHybridPreviewToolbar from './pdf-preview-hybrid-toolbar'
import { useDetachCompileContext as useCompileContext } from '../../../shared/context/detach-compile-context'
import { PdfPreviewMessages } from './pdf-preview-messages'
import CompileTimeWarningUpgradePrompt from './compile-time-warning-upgrade-prompt'
import { PdfPreviewProvider } from './pdf-preview-provider'
-import PdfPreviewHybridToolbarNew from '@/features/ide-redesign/components/pdf-preview/pdf-preview-hybrid-toolbar'
+import PdfPreviewHybridToolbar from '@/features/pdf-preview/components/pdf-preview-hybrid-toolbar'
import { useIsNewEditorEnabled } from '@/features/ide-redesign/utils/new-editor-utils'
import importOverleafModules from '../../../../macros/import-overleaf-module.macro'
-import PdfCodeCheckFailedBanner from '@/features/ide-redesign/components/pdf-preview/pdf-code-check-failed-banner'
+import PdfCodeCheckFailedBanner from '@/features/pdf-preview/components/pdf-code-check-failed-banner'
import getMeta from '@/utils/meta'
-import NewPdfLogsViewer from '@/features/ide-redesign/components/pdf-preview/pdf-logs-viewer'
+import PdfLogsViewer from '@/features/pdf-preview/components/pdf-logs-viewer'
function PdfPreviewPane() {
const {
@@ -34,7 +32,6 @@ function PdfPreviewPane() {
'pdf-empty': !pdfUrl,
'pdf-dark-mode': darkModePdf,
})
- const newEditor = useIsNewEditorEnabled()
const pdfPromotions = importOverleafModules('pdfPreviewPromotions') as {
import: { default: ElementType }
@@ -44,12 +41,8 @@ function PdfPreviewPane() {
return (
- {newEditor ? (
-
- ) : (
-
- )}
- {newEditor && }
+
+
{compileTimeout < 60 && }
@@ -58,7 +51,7 @@ function PdfPreviewPane() {
- {newEditor ? : }
+
{pdfPromotions.map(({ import: { default: Component }, path }) => (
))}
diff --git a/services/web/frontend/js/features/pdf-preview/components/rolling-build-selected-reminder.tsx b/services/web/frontend/js/features/pdf-preview/components/rolling-build-selected-reminder.tsx
index 20f99a6ddf..086b8d6020 100644
--- a/services/web/frontend/js/features/pdf-preview/components/rolling-build-selected-reminder.tsx
+++ b/services/web/frontend/js/features/pdf-preview/components/rolling-build-selected-reminder.tsx
@@ -6,7 +6,6 @@ import { onRollingBuild } from '@/shared/utils/rolling-build'
const RollingBuildSelectedReminder = () => {
const { t } = useTranslation()
const { project } = useProjectContext()
-
if (!onRollingBuild(project?.imageName)) {
return null
}
@@ -26,6 +25,7 @@ const RollingBuildSelectedReminder = () => {
title={t('this_project_is_compiled_using_untested_version')}
content={content}
type="info"
+ className="mb-0"
/>
)
}
diff --git a/services/web/frontend/stylesheets/pages/editor/pdf.scss b/services/web/frontend/stylesheets/pages/editor/pdf.scss
index 9b8983ae4a..d2e9678a3d 100644
--- a/services/web/frontend/stylesheets/pages/editor/pdf.scss
+++ b/services/web/frontend/stylesheets/pages/editor/pdf.scss
@@ -1,79 +1,36 @@
:root {
- --pdf-bg: var(--neutral-10);
+ --pdf-bg: var(--bg-dark-secondary);
--pdf-toolbar-btn-hover-color: rgb(125 125 125 / 20%);
--synctex-control-size: 24px;
}
@include theme('light') {
--pdf-toolbar-btn-hover-color: var(--neutral-10);
-
- .ide-redesign-main {
- --pdf-bg: var(--neutral-10);
- }
+ --pdf-bg: var(--neutral-10);
}
-.ide-redesign-main {
- --pdf-bg: var(--bg-dark-secondary);
+.pdf-code-check-failed-banner-container {
+ position: absolute;
+ top: calc(var(--toolbar-small-height) + var(--spacing-04));
+ left: 0;
+ right: 0;
+ z-index: 1;
+ display: flex;
+ justify-content: center;
+ padding: 0 var(--spacing-06);
+}
- .pdf-viewer {
- .pdfjs-viewer {
- .page {
- box-shadow:
- 0 5px 5px 0 #23282f0d,
- 0 3px 14px 0 #23282f08,
- 0 8px 10px 0 #23282f14;
- }
- }
- }
-
- .toolbar-pdf-left {
- .compile-button-group {
- height: 24px;
- border-radius: 12px;
- margin-left: var(--spacing-02);
- }
-
- .dropdown > .compile-button {
- border-top-left-radius: 12px;
- border-bottom-left-radius: 12px;
- font-size: var(--font-size-02);
- }
-
- .dropdown > .compile-dropdown-toggle {
- width: 26px;
- padding: var(--spacing-01);
- }
- }
-
- .pdf-code-check-failed-banner-container {
- position: absolute;
- top: calc(var(--toolbar-small-height) + var(--spacing-04));
- left: 0;
- right: 0;
- z-index: 1;
- display: flex;
- justify-content: center;
- padding: 0 var(--spacing-06);
- }
-
- .pdf-code-check-failed-banner {
- display: flex;
- align-items: center;
- gap: var(--spacing-02);
- background-color: var(--bg-light-primary);
- color: var(--content-primary);
- border: 1px solid var(--border-divider);
- padding: var(--spacing-02) var(--spacing-03) var(--spacing-02)
- var(--spacing-02);
- border-radius: var(--border-radius-full);
- box-shadow: 0 2px 4px 0 #1e253029;
- }
-
- .synctex-control {
- .synctex-control-icon {
- font-weight: normal;
- }
- }
+.pdf-code-check-failed-banner {
+ display: flex;
+ align-items: center;
+ gap: var(--spacing-02);
+ background-color: var(--bg-light-primary);
+ color: var(--content-primary);
+ border: 1px solid var(--border-divider);
+ padding: var(--spacing-02) var(--spacing-03) var(--spacing-02)
+ var(--spacing-02);
+ border-radius: var(--border-radius-full);
+ box-shadow: 0 2px 4px 0 #1e253029;
}
.pdf .toolbar.toolbar-pdf {
@@ -95,10 +52,10 @@
gap: var(--spacing-02);
.compile-button-group {
- height: 28px;
- border-top-left-radius: 0;
- border-bottom-left-radius: 0;
+ height: 24px;
background-color: var(--bg-accent-01);
+ border-radius: 12px;
+ margin-left: var(--spacing-02);
.btn-primary:hover {
z-index: auto; // prevents border from being hidden
@@ -118,9 +75,19 @@
cursor: not-allowed;
}
}
+
+ .dropdown > .compile-button {
+ border-top-left-radius: 12px;
+ border-bottom-left-radius: 12px;
+ font-size: var(--font-size-02);
+ }
+
+ .dropdown > .compile-dropdown-toggle {
+ width: 26px;
+ padding: var(--spacing-01);
+ }
}
-.toolbar-pdf-orphan,
.toolbar-pdf-left,
.toolbar-pdf-right,
.toolbar-pdf-controls {
@@ -129,14 +96,10 @@
align-self: stretch;
}
-.toolbar-pdf-orphan,
-.toolbar-pdf-controls {
- flex: 1 1 100%;
-}
-
.toolbar-pdf-controls {
margin-right: var(--spacing-02);
justify-content: flex-end;
+ flex: 1 1 100%;
}
.toolbar-pdf-right {
@@ -144,15 +107,6 @@
justify-content: flex-end;
}
-.toolbar-pdf-orphan {
- justify-content: center;
- color: var(--toolbar-btn-color);
-
- .btn {
- margin-left: var(--spacing-03);
- }
-}
-
.btn.pdf-toolbar-btn {
display: inline-block;
color: var(--toolbar-btn-color);
@@ -294,7 +248,10 @@
.page {
box-sizing: content-box;
margin: var(--spacing-05) auto;
- box-shadow: 0 0 8px #bbb;
+ box-shadow:
+ 0 5px 5px 0 #23282f0d,
+ 0 3px 14px 0 #23282f08,
+ 0 8px 10px 0 #23282f14;
border: none;
}
@@ -497,8 +454,8 @@
.synctex-control {
.synctex-control-icon {
- font-weight: 700;
font-size: var(--font-size-06);
+ font-weight: normal;
}
}
diff --git a/services/web/locales/en.json b/services/web/locales/en.json
index 5b39744bd3..b49d115b18 100644
--- a/services/web/locales/en.json
+++ b/services/web/locales/en.json
@@ -369,7 +369,6 @@
"clsi_maintenance": "The compile servers are down for maintenance, and will be back shortly.",
"clsi_unavailable": "Sorry, the compile server for your project was temporarily unavailable. Please try again in a few moments.",
"cn": "Chinese (Simplified)",
- "code_check_failed": "Code check failed",
"code_check_failed_explanation": "Your code has errors that need to be fixed before the auto-compile can run",
"code_editor": "Code Editor",
"collaborate_easily_on_your_projects": "Collaborate easily on your projects. Work on longer or more complex docs.",
@@ -1887,7 +1886,6 @@
"reconnecting_in_x_secs": "Reconnecting in __seconds__ secs",
"recurly_email_update_needed": "Your billing email address is currently <0>__recurlyEmail__0>. If needed you can update your billing address to <1>__userEmail__1>.",
"recurly_email_updated": "Your billing email address was successfully updated",
- "redirect_to_editor": "Redirect to editor",
"redirect_url": "Redirect URL",
"redirecting": "Redirecting",
"redo": "Redo",
@@ -2362,8 +2360,6 @@
"synctex_failed": "Couldn’t find the corresponding source file",
"syntax_checks": "Syntax checks",
"syntax_validation": "Code check",
- "tab_connecting": "Connecting with the editor",
- "tab_no_longer_connected": "This tab is no longer connected with the editor",
"table": "Table",
"table_generator": "Table Generator",
"tag_color": "Tag color",
diff --git a/services/web/test/frontend/components/pdf-preview/pdf-preview-hybrid-toolbar.spec.tsx b/services/web/test/frontend/components/pdf-preview/pdf-preview-hybrid-toolbar.spec.tsx
index a7bc15441c..777d12f7d9 100644
--- a/services/web/test/frontend/components/pdf-preview/pdf-preview-hybrid-toolbar.spec.tsx
+++ b/services/web/test/frontend/components/pdf-preview/pdf-preview-hybrid-toolbar.spec.tsx
@@ -19,7 +19,8 @@ describe('', function () {
})
describe('orphan mode', function () {
- it('shows connecting message on load', function () {
+ // eslint-disable-next-line mocha/no-skipped-tests
+ it.skip('shows connecting message on load', function () {
cy.window().then(win => {
win.metaAttributesCache.set('ol-detachRole', 'detached')
})
@@ -54,7 +55,8 @@ describe('', function () {
cy.findByRole('button', { name: 'Recompile' })
})
- it('shows connecting message when disconnected', function () {
+ // eslint-disable-next-line mocha/no-skipped-tests
+ it.skip('shows connecting message when disconnected', function () {
cy.window().then(win => {
win.metaAttributesCache.set('ol-detachRole', 'detached')
})
@@ -79,7 +81,8 @@ describe('', function () {
cy.contains('Connecting with the editor')
})
- it('shows redirect button after timeout', function () {
+ // eslint-disable-next-line mocha/no-skipped-tests
+ it.skip('shows redirect button after timeout', function () {
cy.window().then(win => {
win.metaAttributesCache.set('ol-detachRole', 'detached')
})