remove desktop help modal
This commit is contained in:
@@ -7,9 +7,7 @@ import React, {
|
||||
useState,
|
||||
useSyncExternalStore,
|
||||
} from 'react';
|
||||
import { createPortal } from 'react-dom';
|
||||
import { resolveDocumentAssetUrl } from '../asset_manager';
|
||||
import { CloseIcon } from '../ui/icons';
|
||||
import { formatTransform } from './math';
|
||||
import useDocumentDrag from './useDocumentDrag';
|
||||
import PreviewZoomOverlay from '../detail/PreviewZoomOverlay';
|
||||
@@ -29,7 +27,6 @@ import usePreviewMetadata from './hooks/usePreviewMetadata';
|
||||
import '../styles/workspace/workspace-layout.css';
|
||||
import '../styles/workspace/workspace-items.css';
|
||||
import '../styles/workspace/workspace-cards.css';
|
||||
import '../styles/workspace/workspace-overlays.css';
|
||||
|
||||
const DEBUG_DRAG = false;
|
||||
const DEBUG_FOCUS = false;
|
||||
@@ -50,8 +47,6 @@ const DesktopWorkspace = ({
|
||||
onClearSelection = null,
|
||||
detailPanelOpen = false,
|
||||
onCloseDetailPanel = null,
|
||||
helpOpen = false,
|
||||
onHelpClose = null,
|
||||
tenantId = null,
|
||||
viewId = 'default',
|
||||
}) => {
|
||||
@@ -641,12 +636,7 @@ const DesktopWorkspace = ({
|
||||
visibleDocIds,
|
||||
],
|
||||
);
|
||||
return (
|
||||
<>
|
||||
<DesktopWorkspaceView {...viewProps} />
|
||||
<DesktopHelpOverlay open={helpOpen} onClose={onHelpClose} />
|
||||
</>
|
||||
);
|
||||
return <DesktopWorkspaceView {...viewProps} />;
|
||||
};
|
||||
|
||||
const DesktopWorkspaceView = ({
|
||||
@@ -897,107 +887,3 @@ const DesktopWorkspaceView = ({
|
||||
};
|
||||
|
||||
export default DesktopWorkspace;
|
||||
|
||||
const DesktopHelpOverlay = ({ open = false, onClose = null }) => {
|
||||
const portalTarget = typeof document !== 'undefined' ? document.body : null;
|
||||
const closeButtonRef = useRef(null);
|
||||
const previousFocusRef = useRef(null);
|
||||
|
||||
const handleClose = useCallback(() => {
|
||||
if (typeof onClose === 'function') {
|
||||
onClose();
|
||||
}
|
||||
}, [onClose]);
|
||||
|
||||
useEffect(() => {
|
||||
if (!open || typeof window === 'undefined') {
|
||||
return undefined;
|
||||
}
|
||||
|
||||
const handleKeyDown = (event) => {
|
||||
if (!event) {
|
||||
return;
|
||||
}
|
||||
if (event.key === 'Escape') {
|
||||
event.preventDefault();
|
||||
handleClose();
|
||||
}
|
||||
};
|
||||
|
||||
window.addEventListener('keydown', handleKeyDown, true);
|
||||
return () => window.removeEventListener('keydown', handleKeyDown, true);
|
||||
}, [open, handleClose]);
|
||||
|
||||
useEffect(() => {
|
||||
if (!open) {
|
||||
const previous = previousFocusRef.current;
|
||||
if (previous && typeof previous.focus === 'function') {
|
||||
previous.focus();
|
||||
}
|
||||
previousFocusRef.current = null;
|
||||
return;
|
||||
}
|
||||
|
||||
if (typeof document !== 'undefined') {
|
||||
previousFocusRef.current = document.activeElement instanceof HTMLElement
|
||||
? document.activeElement
|
||||
: null;
|
||||
}
|
||||
|
||||
if (closeButtonRef.current && typeof closeButtonRef.current.focus === 'function') {
|
||||
closeButtonRef.current.focus();
|
||||
}
|
||||
}, [open]);
|
||||
|
||||
if (!open || !portalTarget) {
|
||||
return null;
|
||||
}
|
||||
|
||||
return createPortal(
|
||||
<div className="desk-help-overlay" role="dialog" aria-modal="true" aria-labelledby="desk-help-title">
|
||||
<div className="desk-help-overlay__backdrop" onClick={handleClose} />
|
||||
<div className="desk-help-overlay__content">
|
||||
<div className="desk-help-overlay__header">
|
||||
<h2 id="desk-help-title">Desk view tips</h2>
|
||||
<button
|
||||
type="button"
|
||||
className="icon-button"
|
||||
onClick={handleClose}
|
||||
aria-label="Close desk view tips"
|
||||
ref={closeButtonRef}
|
||||
>
|
||||
<CloseIcon />
|
||||
</button>
|
||||
</div>
|
||||
<div className="desk-help-overlay__body">
|
||||
<p>Use the desk as a freeform workspace for triage and quick comparisons.</p>
|
||||
<ul className="desk-help-overlay__list">
|
||||
<li><strong>Single-click</strong> a document to open it in the detail panel.</li>
|
||||
<li><strong>Double-click</strong> to open the zoomed preview.</li>
|
||||
<li>
|
||||
<strong>Drag</strong> selected cards to reposition them; build a selection with
|
||||
{' '}
|
||||
<kbd>Cmd</kbd>/<kbd>Ctrl</kbd>
|
||||
{' '}+ click or Shift-click.
|
||||
</li>
|
||||
<li>
|
||||
<strong>Cmd/Ctrl + click</strong> with an empty selection scoops up the stack under
|
||||
{' '}the pointer.
|
||||
</li>
|
||||
<li><strong>Space</strong> clears the current selection.</li>
|
||||
<li>
|
||||
<strong>Drag tags</strong> from the sidebar onto a card to assign them, or fling a
|
||||
{' '}tag away to remove it.
|
||||
</li>
|
||||
</ul>
|
||||
</div>
|
||||
<div className="desk-help-overlay__footer">
|
||||
<button type="button" className="button primary" onClick={handleClose}>
|
||||
Got it
|
||||
</button>
|
||||
</div>
|
||||
</div>
|
||||
</div>,
|
||||
portalTarget,
|
||||
);
|
||||
};
|
||||
|
||||
@@ -54,7 +54,6 @@ const createDesktopSurface = ({
|
||||
viewMode: viewMode || 'desk',
|
||||
onViewModeChange,
|
||||
onRefresh,
|
||||
onShowDeskHelp: viewMode === 'desk' ? workspaceProps?.onOpenHelp : null,
|
||||
includeDescendants: searchIncludeDescendants,
|
||||
onToggleIncludeDescendants: onToggleSearchIncludeDescendants,
|
||||
});
|
||||
|
||||
@@ -46,8 +46,6 @@ const useDeskWorkspaceProps = ({
|
||||
searchQuery,
|
||||
activeCorrespondentFilters,
|
||||
selectedFolder,
|
||||
setDeskHelpOpen,
|
||||
deskHelpOpen,
|
||||
openDetailPanel,
|
||||
}) => {
|
||||
const handleDeskDocumentStackSelect = useCallback(
|
||||
@@ -107,14 +105,6 @@ const useDeskWorkspaceProps = ({
|
||||
[openDetailPanel, selectedDocumentIds],
|
||||
);
|
||||
|
||||
const handleDeskHelpOpen = useCallback(() => {
|
||||
setDeskHelpOpen(true);
|
||||
}, [setDeskHelpOpen]);
|
||||
|
||||
const handleDeskHelpClose = useCallback(() => {
|
||||
setDeskHelpOpen(false);
|
||||
}, [setDeskHelpOpen]);
|
||||
|
||||
const deskViewId = useMemo(() => {
|
||||
if (showingSearchResults) {
|
||||
const trimmedQuery = searchQuery.trim();
|
||||
@@ -148,9 +138,6 @@ const useDeskWorkspaceProps = ({
|
||||
onEntryPointer: handleEntryPointerCore,
|
||||
onDocumentStackSelect: handleDeskDocumentStackSelect,
|
||||
onPromoteSelection: promoteSelectionOrder,
|
||||
onOpenHelp: handleDeskHelpOpen,
|
||||
helpOpen: deskHelpOpen,
|
||||
onHelpClose: handleDeskHelpClose,
|
||||
tenantId: currentTenantId,
|
||||
viewId: deskViewId,
|
||||
selectedDocumentIds,
|
||||
@@ -193,9 +180,6 @@ const useDeskWorkspaceProps = ({
|
||||
handleEntryPointerCore,
|
||||
handleDeskDocumentStackSelect,
|
||||
promoteSelectionOrder,
|
||||
handleDeskHelpOpen,
|
||||
deskHelpOpen,
|
||||
handleDeskHelpClose,
|
||||
currentTenantId,
|
||||
deskViewId,
|
||||
selectedDocumentIds,
|
||||
|
||||
Reference in New Issue
Block a user