pragma ComponentBehavior: Bound import ZShell.Config import ZShell.Llm import QtQuick import QtQuick.Controls import Quickshell import qs.Modules.Notifications.Sidebar import qs.Components import qs.Services Item { id: root property bool chatOpen: false required property Props props anchors.fill: parent anchors.margins: Tokens.padding.small Component.onCompleted: { if (root.props.inChat) { stack.push(chatList); stack.push(chatContent, { "chatData": root.props.chatSession }); } else stack.push(chatList); } StackView { id: stack anchors.fill: parent } Component { id: chatList ChatList { model: ScriptModel { values: Chat.chats.values } onDeleteChatRequest: chat => { Chat.chats.remove(chat); } onLoadChatRequest: chat => { stack.push(chatContent, { "chatData": chat }); root.props.inChat = true; root.props.chatSession = chat; } onNewChatRequest: { const data = Chat.chats.insert(); stack.push(chatContent, { "chatData": data }); root.props.inChat = true; root.props.chatSession = data; } } } Component { id: chatContent ChatContent { onRequestClose: { stack.pop(); root.props.inChat = false; } } } }