diff --git a/src/components/ConversationCard/index.jsx b/src/components/ConversationCard/index.jsx index 117b019..4362e6a 100644 --- a/src/components/ConversationCard/index.jsx +++ b/src/components/ConversationCard/index.jsx @@ -213,7 +213,6 @@ function ConversationCard(props) { { setConfig(config) setRender(true) + + if (!triggered) props.container.style.position = 'absolute' }) }, []) @@ -127,6 +129,9 @@ function FloatingToolbar(props) { className: 'chatgptbox-selection-toolbar-button', title: toolConfig.label, onClick: async () => { + const p = getClientPosition(props.container) + props.container.style.position = 'fixed' + setPosition(p) setPrompt(await toolConfig.genPrompt(selection)) setTriggered(true) }, @@ -149,7 +154,6 @@ function FloatingToolbar(props) { FloatingToolbar.propTypes = { session: PropTypes.object.isRequired, selection: PropTypes.string.isRequired, - position: PropTypes.object.isRequired, container: PropTypes.object.isRequired, triggered: PropTypes.bool, closeable: PropTypes.bool, diff --git a/src/content-script/index.jsx b/src/content-script/index.jsx index 42612f4..664efc3 100644 --- a/src/content-script/index.jsx +++ b/src/content-script/index.jsx @@ -121,14 +121,12 @@ async function prepareForSelectionTools() { setTimeout(() => { const selection = window.getSelection()?.toString() if (selection) { - const position = { x: e.clientX + 15, y: e.clientY - 15 } - toolbarContainer = createElementAtPosition(position.x, position.y) + toolbarContainer = createElementAtPosition(e.pageX + 15, e.pageY - 15) toolbarContainer.className = 'chatgptbox-toolbar-container' render( , @@ -169,17 +167,15 @@ async function prepareForSelectionToolsTouch() { setTimeout(() => { const selection = window.getSelection()?.toString() if (selection) { - const position = { - x: e.changedTouches[0].clientX + 15, - y: e.changedTouches[0].clientY - 15, - } - toolbarContainer = createElementAtPosition(position.x, position.y) + toolbarContainer = createElementAtPosition( + e.changedTouches[0].pageX + 15, + e.changedTouches[0].pageY - 15, + ) toolbarContainer.className = 'chatgptbox-toolbar-container' render( , @@ -214,7 +210,6 @@ async function prepareForRightClickMenu() {