FEATURE: implements drafts for threads (#24483)

This commit implements drafts for threads by adding a new `thread_id` column to `chat_drafts` table. This column is used to create draft keys on the frontend which are a compound key of the channel and the thread. If the draft is only for the channel, the key will be `c-${channelId}`, if for a thread: `c-${channelId}:t-${threadId}`.

This commit also moves the draft holder from the service to the channel or thread model. The current draft can now always be accessed by doing: `channel.draft` or `thread.draft`.

Other notable changes of this commit:
- moves ChatChannel to gjs
- moves ChatThread to gjs
This commit is contained in:
Joffrey JAFFEUX
2023-11-22 11:54:23 +01:00
committed by GitHub
parent 39aa70d7cb
commit 906caa63d7
31 changed files with 867 additions and 476 deletions

View File

@@ -0,0 +1,7 @@
# frozen_string_literal: true
class AddsThreadIdToChatDrafts < ActiveRecord::Migration[7.0]
def change
add_column :chat_drafts, :thread_id, :bigint
end
end