Extra-Streamlit-Components icon indicating copy to clipboard operation
Extra-Streamlit-Components copied to clipboard

Cookie key and value doesn't get updated in st.session_state

Open uprg opened this issue 11 months ago • 1 comments

Python version

3.8.10

OS version

Ubuntu 20.04.6 LTS (focal)

streamlit version

1.32.1

extra_streamlit_components version

0.1.71

Describe the bug

The key and value of cookie set by cookie manager is not getting set in st.session_state but is set in browser cookies

https://github.com/Mohamed-512/Extra-Streamlit-Components/assets/56631384/04f665dc-2514-458d-9c6c-0c6c245116f3

To Reproduce

Install the above dependencies and run the below code

import extra_streamlit_components as stx
import streamlit as st

st.write(st.session_state)

if "is_logged_in" not in st.session_state:
    st.session_state["is_logged_in"] = False

cookie_manager = stx.CookieManager()

def check():
    # st.write("func called")
    # st.write(cookie_manager)
    user_cookie = cookie_manager.get(cookie="user")

    # st.write(user_cookie)

    if user_cookie:
        st.session_state["is_logged_in"] = True
    else:
        st.session_state["is_logged_in"] = False

check()

if st.session_state["is_logged_in"] == False:
    name = st.text_input(label="cookie name")
    value = st.text_input(label="cookie value")

    set = st.button(label="set cookie")
    
    if set:
        cookie_manager.set(cookie=name, val=value)
        #st.session_state["is_logged_in"] = True

if st.session_state["is_logged_in"] == True:
    get = st.button(label="get cookie")
    delete = st.button(label="delete cookie")

    if get:
        cookie_manager.get(cookie="user")

    if delete:
        cookie_manager.delete(cookie="user")

Expected behavior

The key and value should be set in st.session_state also with the browser cookie storage

uprg avatar Mar 15 '24 07:03 uprg

I don't think this is an expected behaviour.

souvikmaji avatar Aug 29 '24 16:08 souvikmaji