diff --git a/LANCommander.UI/Components/Chat/Chat.razor b/LANCommander.UI/Components/Chat/Chat.razor index 0e7b0ec5..606964f4 100644 --- a/LANCommander.UI/Components/Chat/Chat.razor +++ b/LANCommander.UI/Components/Chat/Chat.razor @@ -4,19 +4,17 @@ @inject ModalService ModalService @namespace LANCommander.UI.Components -New Thread - - - - - - - @if (_thread != null) - { - - } - - + + + New Thread + + + + + + + + @code { IEnumerable _threads = []; diff --git a/LANCommander.UI/Components/Chat/Chat.razor.scss b/LANCommander.UI/Components/Chat/Chat.razor.scss new file mode 100644 index 00000000..e9e47d92 --- /dev/null +++ b/LANCommander.UI/Components/Chat/Chat.razor.scss @@ -0,0 +1,3 @@ +.chat { + height: 100%; +} \ No newline at end of file diff --git a/LANCommander.UI/Components/Chat/ChatList.razor.scss b/LANCommander.UI/Components/Chat/ChatList.razor.scss new file mode 100644 index 00000000..84cdf212 --- /dev/null +++ b/LANCommander.UI/Components/Chat/ChatList.razor.scss @@ -0,0 +1,8 @@ +.chat-list { + padding: 1em; + padding-top: 0; + + .ant-divider-horizontal { + margin: 1em 0; + } +} \ No newline at end of file diff --git a/LANCommander.UI/Components/Chat/ChatListThread.razor.scss b/LANCommander.UI/Components/Chat/ChatListThread.razor.scss index 2d6644af..2cccdc0a 100644 --- a/LANCommander.UI/Components/Chat/ChatListThread.razor.scss +++ b/LANCommander.UI/Components/Chat/ChatListThread.razor.scss @@ -1,7 +1,3 @@ -.chat-list-thread { - margin: .5em; -} - .chat-list-thread-title { flex-grow: 1; } \ No newline at end of file diff --git a/LANCommander.UI/Components/Chat/ChatMessageInput.razor b/LANCommander.UI/Components/Chat/ChatMessageInput.razor index f166ae32..3933429e 100644 --- a/LANCommander.UI/Components/Chat/ChatMessageInput.razor +++ b/LANCommander.UI/Components/Chat/ChatMessageInput.razor @@ -7,13 +7,16 @@ @code { [Parameter] public Guid? ThreadId { get; set; } + [Parameter] public string? Placeholder { get; set; } string _message = string.Empty; bool _sendingMessage; @@ -21,8 +24,6 @@ string _errorMessage = string.Empty; FormValidateStatus _validateStatus => _hasError ? FormValidateStatus.Error : FormValidateStatus.Default; bool _hasError => !string.IsNullOrWhiteSpace(_errorMessage); - - EasyMdeReadOnly _readonly => _sendingMessage ? EasyMdeReadOnly.Disabled : EasyMdeReadOnly.Default; readonly EasyMdeOptions _options = new() { diff --git a/LANCommander.UI/Components/Chat/ChatMessageInput.razor.scss b/LANCommander.UI/Components/Chat/ChatMessageInput.razor.scss new file mode 100644 index 00000000..0d758c8d --- /dev/null +++ b/LANCommander.UI/Components/Chat/ChatMessageInput.razor.scss @@ -0,0 +1,8 @@ +.chat-message-input { + .EasyMDEContainer .CodeMirror { + margin: .5em; + border: none; + border-radius: 0; + background: #1f1f1f; + } +} \ No newline at end of file diff --git a/LANCommander.UI/Components/Chat/ChatThread.razor b/LANCommander.UI/Components/Chat/ChatThread.razor index c6bcb087..24a01913 100644 --- a/LANCommander.UI/Components/Chat/ChatThread.razor +++ b/LANCommander.UI/Components/Chat/ChatThread.razor @@ -4,8 +4,8 @@ @inject IChatClient ChatClient @namespace LANCommander.UI.Components - - + + @if (_thread != null) { @@ -16,30 +16,30 @@ StartedOn="@messageGroup.StartedOn.LocalDateTime"> @foreach (var message in messageGroup.Messages) { - + } } - + - + @code { - [Parameter] public Guid Id { get; set; } + [Parameter] public Guid? Id { get; set; } SDK.Models.ChatThread? _thread; protected override async Task OnParametersSetAsync() { - if (_thread == null || _thread.Id != Id) + if ((_thread == null || _thread.Id != Id) && Id.HasValue) { - _thread = await ChatClient.GetThreadAsync(Id); + _thread = await ChatClient.GetThreadAsync(Id.Value); _thread.MessageGroups.CollectionChanged += MessageGroupsOnCollectionChanged; - await ChatClient.GetMessagesAsync(Id); + await ChatClient.GetMessagesAsync(Id.Value); } } diff --git a/LANCommander.UI/Components/Chat/ChatThread.razor.scss b/LANCommander.UI/Components/Chat/ChatThread.razor.scss new file mode 100644 index 00000000..658185dd --- /dev/null +++ b/LANCommander.UI/Components/Chat/ChatThread.razor.scss @@ -0,0 +1,10 @@ +.chat-thread { + height: 100%; + flex-grow: 1; + background: #141414; +} + +.chat-thread-messages { + flex-grow: 1; + padding: 1em; +} \ No newline at end of file diff --git a/LANCommander.UI/_Imports.razor.scss b/LANCommander.UI/_Imports.razor.scss index e60aa6b4..40f8d01f 100644 --- a/LANCommander.UI/_Imports.razor.scss +++ b/LANCommander.UI/_Imports.razor.scss @@ -5,8 +5,12 @@ @forward 'Styles/_pdf-reader'; @forward 'Styles/_markdown-editor'; @forward 'Styles/_authentication-provider'; +@forward 'Components/Chat/Chat.razor'; +@forward 'Components/Chat/ChatList.razor'; @forward 'Components/Chat/ChatListThread.razor'; @forward 'Components/Chat/ChatMessage.razor'; +@forward 'Components/Chat/ChatMessageInput.razor'; +@forward 'Components/Chat/ChatThread.razor'; @forward 'Components/ChunkUploader/ChunkUploader.razor'; @forward 'Components/DataList/DataList.razor'; @forward 'Components/DataTable/DataTable.razor';