Skip to content

Commit

Permalink
Persist chatbot visibility across page loads (see #4).
Browse files Browse the repository at this point in the history
  • Loading branch information
felixarntz committed Nov 18, 2024
1 parent 94026e5 commit 81a0511
Showing 1 changed file with 28 additions and 0 deletions.
28 changes: 28 additions & 0 deletions src/chatbot/components/ChatbotApp/index.js
Original file line number Diff line number Diff line change
Expand Up @@ -30,6 +30,26 @@ import './style.scss';
const CHAT_ID = 'wpspChatbotPrimary';
const SERVICE_ARGS = { capabilities: [ enums.AiCapability.TEXT_GENERATION ] };

const retrieveVisibility = () => {
const chatbotVisibility = window.sessionStorage.getItem(
'ai-services-built-in-chatbot-visibility'
);
return chatbotVisibility === 'visible';
};

const storeVisibility = ( isVisible ) => {
if ( isVisible ) {
window.sessionStorage.setItem(
'ai-services-built-in-chatbot-visibility',
'visible'
);
} else {
window.sessionStorage.removeItem(
'ai-services-built-in-chatbot-visibility'
);
}
};

const getErrorChatResponse = ( error ) => {
return (
__(
Expand Down Expand Up @@ -116,8 +136,16 @@ export default function ChatbotApp() {

const [ isVisible, setIsVisible ] = useState( false );

useEffect( () => {
const initialVisibility = retrieveVisibility();
if ( initialVisibility ) {
setIsVisible( true );
}
}, [ setIsVisible ] );

const toggleVisibility = useCallback( () => {
setIsVisible( ! isVisible );
storeVisibility( ! isVisible );

// Focus on the toggle when the chatbot is closed.
if ( isVisible && toggleButtonRef.current ) {
Expand Down

0 comments on commit 81a0511

Please sign in to comment.