|
16 | 16 | </MudText>
|
17 | 17 |
|
18 | 18 | <ProviderSelection @bind-ProviderSettings="@this.providerSettings"/>
|
19 |
| -<InnerScrolling @ref="@this.scrollingArea" HeaderHeight="12.3em"> |
20 |
| - <ChildContent> |
21 |
| - @if (this.chatThread is not null) |
| 19 | +<MudStack Row="@true" Style="width: 100%; overflow: hidden;"> |
| 20 | + @if (this.SettingsManager.ConfigurationData.Workspace.StorageBehavior is not WorkspaceStorageBehavior.DISABLE_WORKSPACES |
| 21 | + && this.SettingsManager.ConfigurationData.Workspace.DisplayBehavior is WorkspaceDisplayBehavior.TOGGLE_SIDEBAR |
| 22 | + && !this.SettingsManager.ConfigurationData.Workspace.IsSidebarVisible) |
| 23 | + { |
| 24 | + <MudPaper Class="border border-solid rounded-lg"> |
| 25 | + <MudTooltip Text="Show your workspaces" Placement="@TOOLBAR_TOOLTIP_PLACEMENT"> |
| 26 | + <MudIconButton Size="Size.Large" Icon="@this.WorkspaceSidebarToggleIcon" OnClick="() => this.ToggleWorkspaceSidebar()"/> |
| 27 | + </MudTooltip> |
| 28 | + </MudPaper> |
| 29 | + } |
| 30 | + @if (this.SettingsManager.ConfigurationData.Workspace.StorageBehavior is not WorkspaceStorageBehavior.DISABLE_WORKSPACES) |
| 31 | + { |
| 32 | + @if ((this.SettingsManager.ConfigurationData.Workspace.DisplayBehavior is WorkspaceDisplayBehavior.TOGGLE_SIDEBAR && this.SettingsManager.ConfigurationData.Workspace.IsSidebarVisible) || this.SettingsManager.ConfigurationData.Workspace.DisplayBehavior is WorkspaceDisplayBehavior.SIDEBAR_ALWAYS_VISIBLE) |
22 | 33 | {
|
23 |
| - foreach (var block in this.chatThread.Blocks.OrderBy(n => n.Time)) |
| 34 | + @if (this.SettingsManager.ConfigurationData.Workspace.DisplayBehavior is WorkspaceDisplayBehavior.TOGGLE_SIDEBAR && this.SettingsManager.ConfigurationData.Workspace.IsSidebarVisible) |
24 | 35 | {
|
25 |
| - @if (!block.HideFromUser) |
26 |
| - { |
27 |
| - <ContentBlockComponent Role="@block.Role" Type="@block.ContentType" Time="@block.Time" Content="@block.Content"/> |
28 |
| - } |
| 36 | + <InnerScrolling HeaderHeight="12.3em" Class="border border-solid rounded-lg"> |
| 37 | + <HeaderContent> |
| 38 | + <MudTooltip Text="Hide your workspaces" Placement="@TOOLBAR_TOOLTIP_PLACEMENT"> |
| 39 | + <MudIconButton Size="Size.Large" Icon="@this.WorkspaceSidebarToggleIcon" OnClick="() => this.ToggleWorkspaceSidebar()"/> |
| 40 | + </MudTooltip> |
| 41 | + </HeaderContent> |
| 42 | + <ChildContent> |
| 43 | + <Workspaces @ref="this.workspaces" @bind-CurrentChatThread="@this.chatThread" LoadedChatWasChanged="this.LoadedChatChanged"/> |
| 44 | + </ChildContent> |
| 45 | + </InnerScrolling> |
29 | 46 | }
|
30 |
| - } |
31 |
| - </ChildContent> |
32 |
| - <FooterContent> |
33 |
| - <MudElement Style="flex: 0 0 auto;"> |
34 |
| - <MudTextField T="string" @ref="@this.inputField" @bind-Text="@this.userInput" Variant="Variant.Outlined" AutoGrow="@true" Lines="3" MaxLines="12" Label="@this.InputLabel" Placeholder="@this.ProviderPlaceholder" Adornment="Adornment.End" AdornmentIcon="@Icons.Material.Filled.Send" OnAdornmentClick="() => this.SendMessage()" ReadOnly="!this.IsProviderSelected || this.isStreaming" Immediate="@true" OnKeyUp="this.InputKeyEvent" UserAttributes="@USER_INPUT_ATTRIBUTES" Class="@this.UserInputClass" Style="@this.UserInputStyle"/> |
35 |
| - </MudElement> |
36 |
| - <MudToolBar WrapContent="true" Gutters="@false" Class="border border-solid rounded" Style="border-color: lightgrey;"> |
37 |
| - @if (this.SettingsManager.ConfigurationData.Workspace.StorageBehavior is not WorkspaceStorageBehavior.DISABLE_WORKSPACES) |
| 47 | + else |
38 | 48 | {
|
39 |
| - <MudTooltip Text="Your workspaces" Placement="@TOOLBAR_TOOLTIP_PLACEMENT"> |
40 |
| - <MudIconButton Icon="@Icons.Material.Filled.SnippetFolder" OnClick="() => this.ToggleWorkspaces()"/> |
41 |
| - </MudTooltip> |
| 49 | + <InnerScrolling HeaderHeight="12.3em" Class="border border-solid rounded-lg"> |
| 50 | + <ChildContent> |
| 51 | + <Workspaces @ref="this.workspaces" @bind-CurrentChatThread="@this.chatThread" LoadedChatWasChanged="this.LoadedChatChanged"/> |
| 52 | + </ChildContent> |
| 53 | + </InnerScrolling> |
42 | 54 | }
|
43 |
| - |
44 |
| - @if (this.SettingsManager.ConfigurationData.Workspace.StorageBehavior is WorkspaceStorageBehavior.STORE_CHATS_MANUALLY) |
| 55 | + } |
| 56 | + } |
| 57 | + <InnerScrolling FillEntireHorizontalSpace="@true" @ref="@this.scrollingArea" HeaderHeight="12.3em"> |
| 58 | + <ChildContent> |
| 59 | + @if (this.chatThread is not null) |
45 | 60 | {
|
46 |
| - <MudTooltip Text="Save chat" Placement="@TOOLBAR_TOOLTIP_PLACEMENT"> |
47 |
| - <MudIconButton Icon="@Icons.Material.Filled.Save" OnClick="() => this.SaveThread()" Disabled="@(!this.CanThreadBeSaved)"/> |
48 |
| - </MudTooltip> |
| 61 | + foreach (var block in this.chatThread.Blocks.OrderBy(n => n.Time)) |
| 62 | + { |
| 63 | + @if (!block.HideFromUser) |
| 64 | + { |
| 65 | + <ContentBlockComponent Role="@block.Role" Type="@block.ContentType" Time="@block.Time" Content="@block.Content"/> |
| 66 | + } |
| 67 | + } |
49 | 68 | }
|
| 69 | + </ChildContent> |
| 70 | + <FooterContent> |
| 71 | + <MudElement Style="flex: 0 0 auto;"> |
| 72 | + <MudTextField T="string" @ref="@this.inputField" @bind-Text="@this.userInput" Variant="Variant.Outlined" AutoGrow="@true" Lines="3" MaxLines="12" Label="@this.InputLabel" Placeholder="@this.ProviderPlaceholder" Adornment="Adornment.End" AdornmentIcon="@Icons.Material.Filled.Send" OnAdornmentClick="() => this.SendMessage()" ReadOnly="!this.IsProviderSelected || this.isStreaming" Immediate="@true" OnKeyUp="this.InputKeyEvent" UserAttributes="@USER_INPUT_ATTRIBUTES" Class="@this.UserInputClass" Style="@this.UserInputStyle"/> |
| 73 | + </MudElement> |
| 74 | + <MudToolBar WrapContent="true" Gutters="@false" Class="border border-solid rounded" Style="border-color: lightgrey;"> |
| 75 | + @if ( |
| 76 | + this.SettingsManager.ConfigurationData.Workspace.StorageBehavior is not WorkspaceStorageBehavior.DISABLE_WORKSPACES |
| 77 | + && this.SettingsManager.ConfigurationData.Workspace.DisplayBehavior is WorkspaceDisplayBehavior.TOGGLE_OVERLAY) |
| 78 | + { |
| 79 | + <MudTooltip Text="Show your workspaces" Placement="@TOOLBAR_TOOLTIP_PLACEMENT"> |
| 80 | + <MudIconButton Icon="@Icons.Material.Filled.SnippetFolder" OnClick="() => this.ToggleWorkspaceOverlay()"/> |
| 81 | + </MudTooltip> |
| 82 | + } |
50 | 83 |
|
51 |
| - <MudTooltip Text="Start temporary chat" Placement="@TOOLBAR_TOOLTIP_PLACEMENT"> |
52 |
| - <MudIconButton Icon="@Icons.Material.Filled.AddComment" OnClick="() => this.StartNewChat(useSameWorkspace: false)"/> |
53 |
| - </MudTooltip> |
| 84 | + @if (this.SettingsManager.ConfigurationData.Workspace.StorageBehavior is WorkspaceStorageBehavior.STORE_CHATS_MANUALLY) |
| 85 | + { |
| 86 | + <MudTooltip Text="Save chat" Placement="@TOOLBAR_TOOLTIP_PLACEMENT"> |
| 87 | + <MudIconButton Icon="@Icons.Material.Filled.Save" OnClick="() => this.SaveThread()" Disabled="@(!this.CanThreadBeSaved)"/> |
| 88 | + </MudTooltip> |
| 89 | + } |
54 | 90 |
|
55 |
| - @if (!string.IsNullOrWhiteSpace(this.currentWorkspaceName)) |
56 |
| - { |
57 |
| - <MudTooltip Text="@this.TooltipAddChatToWorkspace" Placement="@TOOLBAR_TOOLTIP_PLACEMENT"> |
58 |
| - <MudIconButton Icon="@Icons.Material.Filled.CommentBank" OnClick="() => this.StartNewChat(useSameWorkspace: true)"/> |
| 91 | + <MudTooltip Text="Start temporary chat" Placement="@TOOLBAR_TOOLTIP_PLACEMENT"> |
| 92 | + <MudIconButton Icon="@Icons.Material.Filled.AddComment" OnClick="() => this.StartNewChat(useSameWorkspace: false)"/> |
59 | 93 | </MudTooltip>
|
60 |
| - } |
61 |
| - |
62 |
| - @if (this.SettingsManager.ConfigurationData.Workspace.StorageBehavior is WorkspaceStorageBehavior.STORE_CHATS_AUTOMATICALLY) |
63 |
| - { |
64 |
| - <MudTooltip Text="Delete this chat & start a new one" Placement="@TOOLBAR_TOOLTIP_PLACEMENT"> |
65 |
| - <MudIconButton Icon="@Icons.Material.Filled.Refresh" OnClick="() => this.StartNewChat(useSameWorkspace: true, deletePreviousChat: true)" Disabled="@(!this.CanThreadBeSaved)"/> |
66 |
| - </MudTooltip> |
67 |
| - } |
68 | 94 |
|
69 |
| - @if (this.SettingsManager.ConfigurationData.Workspace.StorageBehavior is not WorkspaceStorageBehavior.DISABLE_WORKSPACES) |
70 |
| - { |
71 |
| - <MudTooltip Text="Move the chat to a workspace, or to another if it is already in one." Placement="@TOOLBAR_TOOLTIP_PLACEMENT"> |
72 |
| - <MudIconButton Icon="@Icons.Material.Filled.MoveToInbox" Disabled="@(!this.CanThreadBeSaved)" OnClick="() => this.MoveChatToWorkspace()"/> |
73 |
| - </MudTooltip> |
74 |
| - } |
| 95 | + @if (!string.IsNullOrWhiteSpace(this.currentWorkspaceName)) |
| 96 | + { |
| 97 | + <MudTooltip Text="@this.TooltipAddChatToWorkspace" Placement="@TOOLBAR_TOOLTIP_PLACEMENT"> |
| 98 | + <MudIconButton Icon="@Icons.Material.Filled.CommentBank" OnClick="() => this.StartNewChat(useSameWorkspace: true)"/> |
| 99 | + </MudTooltip> |
| 100 | + } |
75 | 101 |
|
76 |
| - @if (this.SettingsManager.ConfigurationData.LLMProviders.ShowProviderConfidence) |
77 |
| - { |
78 |
| - <ConfidenceInfo Mode="ConfidenceInfoMode.ICON" LLMProvider="@this.providerSettings.UsedLLMProvider"/> |
79 |
| - } |
| 102 | + @if (this.SettingsManager.ConfigurationData.Workspace.StorageBehavior is WorkspaceStorageBehavior.STORE_CHATS_AUTOMATICALLY) |
| 103 | + { |
| 104 | + <MudTooltip Text="Delete this chat & start a new one" Placement="@TOOLBAR_TOOLTIP_PLACEMENT"> |
| 105 | + <MudIconButton Icon="@Icons.Material.Filled.Refresh" OnClick="() => this.StartNewChat(useSameWorkspace: true, deletePreviousChat: true)" Disabled="@(!this.CanThreadBeSaved)"/> |
| 106 | + </MudTooltip> |
| 107 | + } |
| 108 | + |
| 109 | + @if (this.SettingsManager.ConfigurationData.Workspace.StorageBehavior is not WorkspaceStorageBehavior.DISABLE_WORKSPACES) |
| 110 | + { |
| 111 | + <MudTooltip Text="Move the chat to a workspace, or to another if it is already in one." Placement="@TOOLBAR_TOOLTIP_PLACEMENT"> |
| 112 | + <MudIconButton Icon="@Icons.Material.Filled.MoveToInbox" Disabled="@(!this.CanThreadBeSaved)" OnClick="() => this.MoveChatToWorkspace()"/> |
| 113 | + </MudTooltip> |
| 114 | + } |
| 115 | + |
| 116 | + @if (this.SettingsManager.ConfigurationData.LLMProviders.ShowProviderConfidence) |
| 117 | + { |
| 118 | + <ConfidenceInfo Mode="ConfidenceInfoMode.ICON" LLMProvider="@this.providerSettings.UsedLLMProvider"/> |
| 119 | + } |
80 | 120 |
|
81 |
| - <ProfileSelection CurrentProfile="@this.currentProfile" CurrentProfileChanged="@this.ProfileWasChanged" /> |
82 |
| - </MudToolBar> |
83 |
| - </FooterContent> |
84 |
| -</InnerScrolling> |
| 121 | + <ProfileSelection CurrentProfile="@this.currentProfile" CurrentProfileChanged="@this.ProfileWasChanged" /> |
| 122 | + </MudToolBar> |
| 123 | + </FooterContent> |
| 124 | + </InnerScrolling> |
| 125 | +</MudStack> |
85 | 126 |
|
86 |
| -@if (this.SettingsManager.ConfigurationData.Workspace.StorageBehavior != WorkspaceStorageBehavior.DISABLE_WORKSPACES) |
| 127 | +@if ( |
| 128 | + this.SettingsManager.ConfigurationData.Workspace.StorageBehavior != WorkspaceStorageBehavior.DISABLE_WORKSPACES |
| 129 | + && this.SettingsManager.ConfigurationData.Workspace.DisplayBehavior is WorkspaceDisplayBehavior.TOGGLE_OVERLAY) |
87 | 130 | {
|
88 |
| - <MudDrawer @bind-Open="@this.workspacesVisible" Width="40em" Height="100%" Anchor="Anchor.Start" Variant="DrawerVariant.Temporary" Elevation="1"> |
| 131 | + <MudDrawer @bind-Open="@this.workspaceOverlayVisible" Width="40em" Height="100%" Anchor="Anchor.Start" Variant="DrawerVariant.Temporary" Elevation="1"> |
89 | 132 | <MudDrawerHeader>
|
90 | 133 | <MudStack Row="@true" AlignItems="AlignItems.Center">
|
91 | 134 | <MudText Typo="Typo.h6" Class="mr-3">
|
92 | 135 | Your workspaces
|
93 | 136 | </MudText>
|
94 |
| - <MudIconButton Icon="@Icons.Material.Filled.Close" Variant="Variant.Filled" Color="Color.Default" Size="Size.Small" OnClick="() => this.ToggleWorkspaces()"/> |
| 137 | + <MudIconButton Icon="@Icons.Material.Filled.Close" Variant="Variant.Filled" Color="Color.Default" Size="Size.Small" OnClick="() => this.ToggleWorkspaceOverlay()"/> |
95 | 138 | </MudStack>
|
96 | 139 | </MudDrawerHeader>
|
97 | 140 | <MudDrawerContainer Class="ml-6">
|
|
0 commit comments