import os
import streamlit as st
import streamlit.components.v1 as components

tab_switch_counter = components.declare_component(
    "tab_switch_counter",
    url="http://localhost:3001"
)

                
_RELEASE = True

# Declare a Streamlit component. `declare_component` returns a function
# that is used to create instances of the component. We're naming this
# function "_component_func", with an underscore prefix, because we don't want
# to expose it directly to users. Instead, we will create a custom wrapper
# function, below, that will serve as our component's public API.

# It's worth noting that this call to `declare_component` is the
# *only thing* you need to do to create the binding between Streamlit and
# your component frontend. Everything else we do in this file is simply a
# best practice.

if not _RELEASE:
    _component_func = components.declare_component(
        "tab_switch_counter",
        url="http://localhost:3001",
    )
else:
    parent_dir = os.path.dirname(os.path.abspath(__file__))
    build_dir = os.path.join(parent_dir, "frontend/build")
    _component_func = components.declare_component(
        "tab_switch_counter",
        path=build_dir
    )


# Create a wrapper function for the component. This is an optional
# best practice - we could simply expose the component function returned by
# `declare_component` and call it done. The wrapper allows us to customize
# our component's API: we can pre-process its input args, post-process its
# output value, and add a docstring for users.

def tab_switch_counter(lang="eng", color="#", key=None):
    component_value = _component_func(lang=lang, color=color, key=key)
    return component_value

if __name__ == "__main__":
    st.set_page_config(page_title="Tab Switch Container", layout="wide")
    tab_switch = tab_switch_counter(key= "Example")
    
