From 9630e11063c12738c9e939bbfc7b56fc7b9cbfe6 Mon Sep 17 00:00:00 2001 From: Oliver Date: Wed, 24 Jul 2024 19:37:19 +0200 Subject: [PATCH] Fix shift click on X of tooltip not working to disable the tooltip --- external/@worldbrain/memex-common | 2 +- src/content-scripts/content_script/global.ts | 6 ++++++ src/in-page-ui/content_script/types.ts | 1 + src/in-page-ui/tooltip/content_script/components/index.tsx | 3 +++ src/in-page-ui/tooltip/content_script/interactions.ts | 4 ++++ src/in-page-ui/tooltip/types.ts | 1 + 6 files changed, 16 insertions(+), 1 deletion(-) diff --git a/external/@worldbrain/memex-common b/external/@worldbrain/memex-common index a90bc84d72..b974a53a50 160000 --- a/external/@worldbrain/memex-common +++ b/external/@worldbrain/memex-common @@ -1 +1 @@ -Subproject commit a90bc84d72abd21248d674b503b44a7dd1d83e59 +Subproject commit b974a53a50545221fa4a31fef2ed8284a5b5998e diff --git a/src/content-scripts/content_script/global.ts b/src/content-scripts/content_script/global.ts index 00ad187926..e0a40c302b 100644 --- a/src/content-scripts/content_script/global.ts +++ b/src/content-scripts/content_script/global.ts @@ -1202,6 +1202,9 @@ export async function main( pageActivityIndicatorBG, localStorageAPI: browser.storage.local, syncSettingsBG: syncSettingsBG, + toggleTooltipState: async (state: boolean) => { + tooltipUtils.setTooltipState(state) + }, }) components.tooltip?.resolve() }, @@ -1315,6 +1318,9 @@ export async function main( updateRibbon: async () => inPageUI.updateRibbon(), showContentTooltip: async () => inPageUI.showTooltip(), insertTooltip: async () => inPageUI.showTooltip(), + toggleTooltipState: async (state: boolean) => { + this.dependencies.tooltip.setState(state) + }, removeTooltip: async () => inPageUI.removeTooltip(), insertOrRemoveTooltip: async () => inPageUI.toggleTooltip(), goToHighlight: async (annotationCacheId) => { diff --git a/src/in-page-ui/content_script/types.ts b/src/in-page-ui/content_script/types.ts index 29fdad3ef6..2d1c95b4a4 100644 --- a/src/in-page-ui/content_script/types.ts +++ b/src/in-page-ui/content_script/types.ts @@ -24,6 +24,7 @@ export interface InPageUIContentScriptRemoteInterface { // Tooltip showContentTooltip(): Promise insertTooltip(): Promise + toggleTooltipState(state: boolean): Promise removeTooltip(): Promise insertOrRemoveTooltip(): Promise diff --git a/src/in-page-ui/tooltip/content_script/components/index.tsx b/src/in-page-ui/tooltip/content_script/components/index.tsx index 096181037c..d6b5537955 100644 --- a/src/in-page-ui/tooltip/content_script/components/index.tsx +++ b/src/in-page-ui/tooltip/content_script/components/index.tsx @@ -50,6 +50,7 @@ interface TooltipRootProps { mount: InPageUIRootMount params: Omit onTooltipInit: (showTooltip: () => void) => void + toggleTooltipState: (state: boolean) => Promise analyticsBG: AnalyticsCoreInterface annotationsBG: AnnotationInterface<'caller'> annotationsCache: PageAnnotationsCache @@ -531,6 +532,7 @@ class TooltipRoot extends React.Component { this.renderHighlightColorPicker } showColorPicker={this.state.showColorPicker} + toggleTooltipState={props.toggleTooltipState} /> @@ -563,6 +565,7 @@ export function setupUIContainer( syncSettingsBG={props.syncSettingsBG} createHighlight={params.createHighlight} getWindow={params.getWindow} + toggleTooltipState={props.toggleTooltipState} />, mount.rootElement, ) diff --git a/src/in-page-ui/tooltip/content_script/interactions.ts b/src/in-page-ui/tooltip/content_script/interactions.ts index ffa5836fdc..1e3268d10f 100644 --- a/src/in-page-ui/tooltip/content_script/interactions.ts +++ b/src/in-page-ui/tooltip/content_script/interactions.ts @@ -105,6 +105,9 @@ export const insertTooltip = async (params: TooltipInsertDependencies) => { }, onTooltipHide: () => params.inPageUI.hideTooltip(), onTooltipClose: () => params.inPageUI.removeTooltip(), + toggleTooltipState: async (state: boolean) => { + params.toggleTooltipState + }, onExternalDestroy: (destroyTooltip) => { const handleUIStateChange: SharedInPageUIEvents['stateChanged'] = ( event, @@ -199,6 +202,7 @@ export const insertTooltip = async (params: TooltipInsertDependencies) => { syncSettingsBG: params.syncSettingsBG, createHighlight: params.createHighlight, getWindow: () => window, + toggleTooltipState: params.toggleTooltipState, }, ) diff --git a/src/in-page-ui/tooltip/types.ts b/src/in-page-ui/tooltip/types.ts index 79b986b47f..6b224e436e 100644 --- a/src/in-page-ui/tooltip/types.ts +++ b/src/in-page-ui/tooltip/types.ts @@ -25,4 +25,5 @@ export interface TooltipDependencies extends AnnotationFunctions { pageActivityIndicatorBG: RemotePageActivityIndicatorInterface localStorageAPI: Storage.LocalStorageArea syncSettingsBG: RemoteSyncSettingsInterface + toggleTooltipState: (state: boolean) => Promise }