feat: add toggle for conversation control sidebar (#546) #none
This commit is contained in:
parent
ab6b3fc529
commit
a1fecfac45
|
@ -97,7 +97,7 @@ button.selected {
|
||||||
#chat-info-panel {
|
#chat-info-panel {
|
||||||
max-height: var(--main-area-height) !important;
|
max-height: var(--main-area-height) !important;
|
||||||
overflow: auto !important;
|
overflow: auto !important;
|
||||||
transition: all 0.5s;
|
transition: all 0.4s;
|
||||||
}
|
}
|
||||||
|
|
||||||
body.dark #chat-info-panel figure>img{
|
body.dark #chat-info-panel figure>img{
|
||||||
|
@ -109,12 +109,12 @@ body.dark #chat-info-panel figure>img{
|
||||||
flex-wrap: unset;
|
flex-wrap: unset;
|
||||||
overflow-y: scroll !important;
|
overflow-y: scroll !important;
|
||||||
position: sticky;
|
position: sticky;
|
||||||
min-width: min(305px, 100%) !important;
|
|
||||||
column-gap: 2px !important;
|
column-gap: 2px !important;
|
||||||
scrollbar-width: none;
|
scrollbar-width: none;
|
||||||
/* Firefox */
|
/* Firefox */
|
||||||
-ms-overflow-style: none;
|
-ms-overflow-style: none;
|
||||||
/* Internet Explorer 10+ */
|
/* Internet Explorer 10+ */
|
||||||
|
transition: all 0.3s;
|
||||||
}
|
}
|
||||||
|
|
||||||
#conv-settings-panel::-webkit-scrollbar {
|
#conv-settings-panel::-webkit-scrollbar {
|
||||||
|
@ -204,6 +204,13 @@ mark {
|
||||||
right: 15px;
|
right: 15px;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
#chat-expand-button {
|
||||||
|
position: absolute;
|
||||||
|
top: 6px;
|
||||||
|
right: -10px;
|
||||||
|
z-index: 10;
|
||||||
|
}
|
||||||
|
|
||||||
#use-mindmap-checkbox {
|
#use-mindmap-checkbox {
|
||||||
position: absolute;
|
position: absolute;
|
||||||
width: 110px;
|
width: 110px;
|
||||||
|
|
1
libs/ktem/ktem/assets/icons/expand.svg
Normal file
1
libs/ktem/ktem/assets/icons/expand.svg
Normal file
|
@ -0,0 +1 @@
|
||||||
|
<svg class="svg-icon" style="width: 24; height: 24;vertical-align: middle;fill: none;overflow: hidden;" viewBox="0 0 1024 1024" version="1.1" xmlns="http://www.w3.org/2000/svg"><path fill="#cecece" fill-rule="evenodd" d="M853.333333 213.333333a42.666667 42.666667 0 0 0-42.666666-42.666666h-213.333334a42.666667 42.666667 0 0 0 0 85.333333h109.653334l-139.946667 140.373333a42.666667 42.666667 0 0 0 0 60.586667 42.666667 42.666667 0 0 0 60.586667 0L768 316.586667V426.666667a42.666667 42.666667 0 0 0 42.666667 42.666666 42.666667 42.666667 0 0 0 42.666666-42.666666zM456.96 567.04a42.666667 42.666667 0 0 0-60.586667 0L256 706.986667V597.333333a42.666667 42.666667 0 0 0-42.666667-42.666666 42.666667 42.666667 0 0 0-42.666666 42.666666v213.333334a42.666667 42.666667 0 0 0 42.666666 42.666666h213.333334a42.666667 42.666667 0 0 0 0-85.333333H316.586667l140.373333-140.373333a42.666667 42.666667 0 0 0 0-60.586667z" /></svg>
|
After Width: | Height: | Size: 929 B |
|
@ -16,6 +16,29 @@ function run() {
|
||||||
let chat_info_panel = document.getElementById("info-expand");
|
let chat_info_panel = document.getElementById("info-expand");
|
||||||
chat_info_panel.insertBefore(info_expand_button, chat_info_panel.childNodes[2]);
|
chat_info_panel.insertBefore(info_expand_button, chat_info_panel.childNodes[2]);
|
||||||
|
|
||||||
|
// move toggle-side-bar button
|
||||||
|
let chat_expand_button = document.getElementById("chat-expand-button");
|
||||||
|
let chat_column = document.getElementById("main-chat-bot");
|
||||||
|
let conv_column = document.getElementById("conv-settings-panel");
|
||||||
|
|
||||||
|
let default_conv_column_min_width = "min(300px, 100%)";
|
||||||
|
conv_column.style.minWidth = default_conv_column_min_width
|
||||||
|
|
||||||
|
globalThis.toggleChatColumn = (() => {
|
||||||
|
/* get flex-grow value of chat_column */
|
||||||
|
let flex_grow = conv_column.style.flexGrow;
|
||||||
|
console.log("chat col", flex_grow);
|
||||||
|
if (flex_grow == '0') {
|
||||||
|
conv_column.style.flexGrow = '1';
|
||||||
|
conv_column.style.minWidth = default_conv_column_min_width;
|
||||||
|
} else {
|
||||||
|
conv_column.style.flexGrow = '0';
|
||||||
|
conv_column.style.minWidth = "0px";
|
||||||
|
}
|
||||||
|
});
|
||||||
|
|
||||||
|
chat_column.insertBefore(chat_expand_button, chat_column.firstChild);
|
||||||
|
|
||||||
// move use mind-map checkbox
|
// move use mind-map checkbox
|
||||||
let mindmap_checkbox = document.getElementById("use-mindmap-checkbox");
|
let mindmap_checkbox = document.getElementById("use-mindmap-checkbox");
|
||||||
let chat_setting_panel = document.getElementById("chat-settings-expand");
|
let chat_setting_panel = document.getElementById("chat-settings-expand");
|
||||||
|
|
|
@ -8,7 +8,7 @@ import gradio as gr
|
||||||
from ktem.app import BasePage
|
from ktem.app import BasePage
|
||||||
from ktem.components import reasonings
|
from ktem.components import reasonings
|
||||||
from ktem.db.models import Conversation, engine
|
from ktem.db.models import Conversation, engine
|
||||||
from ktem.index.file.ui import File, chat_input_focus_js
|
from ktem.index.file.ui import File
|
||||||
from ktem.reasoning.prompt_optimization.suggest_conversation_name import (
|
from ktem.reasoning.prompt_optimization.suggest_conversation_name import (
|
||||||
SuggestConvNamePipeline,
|
SuggestConvNamePipeline,
|
||||||
)
|
)
|
||||||
|
@ -31,6 +31,12 @@ from .report import ReportIssue
|
||||||
DEFAULT_SETTING = "(default)"
|
DEFAULT_SETTING = "(default)"
|
||||||
INFO_PANEL_SCALES = {True: 8, False: 4}
|
INFO_PANEL_SCALES = {True: 8, False: 4}
|
||||||
|
|
||||||
|
chat_input_focus_js = """
|
||||||
|
function() {
|
||||||
|
let chatInput = document.querySelector("#chat-input textarea");
|
||||||
|
chatInput.focus();
|
||||||
|
}
|
||||||
|
"""
|
||||||
|
|
||||||
pdfview_js = """
|
pdfview_js = """
|
||||||
function() {
|
function() {
|
||||||
|
@ -403,6 +409,9 @@ class ChatPage(BasePage):
|
||||||
inputs=self._info_panel_expanded,
|
inputs=self._info_panel_expanded,
|
||||||
outputs=[self.info_column, self._info_panel_expanded],
|
outputs=[self.info_column, self._info_panel_expanded],
|
||||||
)
|
)
|
||||||
|
self.chat_control.btn_chat_expand.click(
|
||||||
|
fn=None, inputs=None, js="function() {toggleChatColumn();}"
|
||||||
|
)
|
||||||
|
|
||||||
self.chat_panel.chatbot.like(
|
self.chat_panel.chatbot.like(
|
||||||
fn=self.is_liked,
|
fn=self.is_liked,
|
||||||
|
|
|
@ -48,9 +48,17 @@ class ConversationControl(BasePage):
|
||||||
elem_classes=["no-background", "body-text-color"],
|
elem_classes=["no-background", "body-text-color"],
|
||||||
elem_id="toggle-dark-button",
|
elem_id="toggle-dark-button",
|
||||||
)
|
)
|
||||||
|
self.btn_chat_expand = gr.Button(
|
||||||
|
value="",
|
||||||
|
icon=f"{ASSETS_DIR}/expand.svg",
|
||||||
|
scale=1,
|
||||||
|
size="sm",
|
||||||
|
elem_classes=["no-background", "body-text-color"],
|
||||||
|
elem_id="chat-expand-button",
|
||||||
|
)
|
||||||
self.btn_info_expand = gr.Button(
|
self.btn_info_expand = gr.Button(
|
||||||
value="",
|
value="",
|
||||||
icon=f"{ASSETS_DIR}/sidebar.svg",
|
icon=f"{ASSETS_DIR}/expand.svg",
|
||||||
min_width=2,
|
min_width=2,
|
||||||
scale=1,
|
scale=1,
|
||||||
size="sm",
|
size="sm",
|
||||||
|
|
Loading…
Reference in New Issue
Block a user