diff --git a/assets/javascripts/discourse/connectors/topic-map-expanded-after/ai-summary-trigger.gjs b/assets/javascripts/discourse/connectors/topic-map-expanded-after/ai-summary-trigger.gjs index a004683a..41528a29 100644 --- a/assets/javascripts/discourse/connectors/topic-map-expanded-after/ai-summary-trigger.gjs +++ b/assets/javascripts/discourse/connectors/topic-map-expanded-after/ai-summary-trigger.gjs @@ -7,6 +7,10 @@ import AiSummaryModal from "../../components/modal/ai-summary-modal"; export default class AiSummaryTrigger extends Component { @service modal; + get isAiConversation() { + return this.args.outletArgs.topic.is_bot_pm; + } + @action openAiSummaryModal() { this.modal.show(AiSummaryModal, { @@ -18,15 +22,17 @@ export default class AiSummaryTrigger extends Component { } } diff --git a/assets/javascripts/discourse/connectors/topic-map-participants-after/ai-conversation-invite.gjs b/assets/javascripts/discourse/connectors/topic-map-participants-after/ai-conversation-invite.gjs new file mode 100644 index 00000000..de01ef4f --- /dev/null +++ b/assets/javascripts/discourse/connectors/topic-map-participants-after/ai-conversation-invite.gjs @@ -0,0 +1,55 @@ +import Component from "@glimmer/component"; +import { action } from "@ember/object"; +import { service } from "@ember/service"; +import { or } from "truth-helpers"; +import DButton from "discourse/components/d-button"; +import Participant from "discourse/components/header/topic/participant"; +import AddPmParticipants from "discourse/components/modal/add-pm-participants"; + +export default class AiConversationInvite extends Component { + static shouldRender(args) { + return args.topic.is_bot_pm; + } + + @service site; + @service modal; + @service header; + @service sidebarState; + + get participants() { + const participants = [ + ...this.header.topicInfo.details.allowed_users, + ...this.header.topicInfo.details.allowed_groups, + ]; + return participants; + } + + @action + showInvite() { + this.modal.show(AddPmParticipants, { + model: { + title: "discourse_ai.ai_bot.invite_ai_conversation.title", + inviteModel: this.args.outletArgs.topic, + }, + }); + } + + +} diff --git a/assets/stylesheets/modules/ai-bot-conversations/common.scss b/assets/stylesheets/modules/ai-bot-conversations/common.scss index 43b36dd5..c6f0a02d 100644 --- a/assets/stylesheets/modules/ai-bot-conversations/common.scss +++ b/assets/stylesheets/modules/ai-bot-conversations/common.scss @@ -78,7 +78,6 @@ body.has-ai-conversations-sidebar { .private-message-glyph-wrapper, .topic-header-participants, .topic-above-footer-buttons-outlet, - .topic-map, #topic-footer-buttons .topic-footer-main-buttons details { display: none; } @@ -455,4 +454,82 @@ body.has-ai-conversations-sidebar { display: none; } } + + .topic-map { + box-sizing: border-box; + width: 100%; + margin: 0 auto; + padding-block: 0.5em; + + .topic-map__views-trigger, + .topic-map__likes-trigger, + .summarization-button, + &__private-message-map, + .topic-map__users-list { + display: none; + } + + &.--bottom { + padding-top: 0; + } + + section { + background: transparent; + border-block: 1px solid var(--primary-low); + } + + &__contents { + padding: 0.5em 1.25em; + + @include viewport.from(sm) { + padding: 0.5em 0.5em 0.5em 1.9em; + } + } + + &__stats { + height: 100%; + flex-wrap: nowrap; + gap: 1em; + } + + .ai-conversation__participants { + display: flex; + flex-wrap: wrap; + gap: 0.5em 0.25em; + align-items: center; + + .avatar { + width: 2em; + height: 2em; + } + + .trigger-group-card { + display: flex; + align-items: center; + border: 1px solid var(--primary-low); + border-radius: var(--d-button-border-radius); + padding: 0.25em 0.5em; + font-size: var(--font-down-1); + + span { + position: relative; + top: -1px; + } + + .d-icon { + position: relative; + top: 1px; + } + + a { + color: var(--primary-medium); + } + } + + .btn { + font-size: var(--font-down-1); + margin-right: 0.5em; + } + } + } } diff --git a/config/locales/client.en.yml b/config/locales/client.en.yml index a043ae31..e4354129 100644 --- a/config/locales/client.en.yml +++ b/config/locales/client.en.yml @@ -712,6 +712,10 @@ en: name: "Share AI conversation" title: "Share this AI conversation publicly" + invite_ai_conversation: + button: "Invite" + title: "Invite to AI conversation" + ai_label: "AI" ai_title: "Conversation with AI"