Spaces:
Running
Running
from dash import html, dcc | |
import dash_mantine_components as dmc | |
from dash_iconify import DashIconify | |
styleUSERIA = { | |
"textAlign": "right", | |
"marginBottom" : "5px" | |
} | |
def create_chatbot_panel(): | |
return dmc.Drawer( | |
id="chatbot-drawer", | |
title="AI Chatbot", | |
padding="md", | |
size="40%", | |
position="right", | |
zIndex=10000, | |
opened=False, # Explicitly set to closed for initial load | |
children=[ | |
html.Div( | |
[ | |
# Chat history | |
dmc.Paper( | |
p="md", | |
shadow="xs", | |
style={"height": "calc(100vh - 250px)", "overflowY": "auto"}, | |
children=[ | |
# Chat messages will go here | |
dcc.Store(id="store-conversation", data=""), | |
dcc.Loading(html.Div(id="loading-component", style={"margin-top":"10%","z-index":"100"}),type="default"), | |
html.Div( | |
html.Div(id="display-conversation"), | |
style={ | |
"overflow-y": "auto", | |
"display": "flex", | |
"flex-direction": "column-reverse", | |
}, | |
) | |
], | |
), | |
# Chat controls | |
dmc.Group( | |
justify="flex-end", | |
mt="sm", | |
children=[ | |
dmc.Tooltip( | |
label="Nouveau Chat", | |
children=[dmc.ActionIcon(DashIconify(icon="material-symbols:add"), variant="outline")], | |
), | |
dmc.Tooltip( | |
label="Relancer", | |
children=[dmc.ActionIcon(DashIconify(icon="material-symbols:refresh"), variant="outline")], | |
), | |
], | |
), | |
# Chat input | |
dmc.Textarea( | |
id="user-input", | |
placeholder="Envoyer un message...", | |
autosize=True, | |
minRows=2, | |
maxRows=5, | |
rightSection=dmc.ActionIcon( | |
DashIconify(icon="material-symbols:send-outline"), | |
variant="filled", | |
color="blue", | |
id="submit", | |
style={"cursor": "pointer"}, | |
), | |
mt="md", | |
), | |
] | |
) | |
], | |
) |