diff --git a/.cursor/docs/design-system.md b/.cursor/docs/design-system.md index b1ed216a2..98e03a3f9 100644 --- a/.cursor/docs/design-system.md +++ b/.cursor/docs/design-system.md @@ -673,11 +673,11 @@ docked — `components/chatroom/components/MessageComposer/components/ComposerEm content — `styles/_chat-editor.scss`, `components/chatroom/components/skeleton/` -| State | Recipe | -| ------------------------ | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ | -| frame | `.chat_msg_container/.chat_editor_container`: pre `bg base-200, 1px base-300 border, radius 6px, mono 13px`; inline code `bg base-200, base-300 border, radius 3px, color var(--color-error)`; blockquote `border-left 3px base-300`; `.msg_card` shares `editor-prose-shared` mixin | -| feed / composer skeleton | daisyUI `skeleton` bones (`skeleton size-8 rounded-full`, `skeleton h-2.5 w-16 rounded-field`); composer skeleton mirrors the ComposerBar frame per variant; breadcrumb `skeleton h-3 w-10 rounded-field` + chevron `skeleton size-2.5` | -| media accent bones | at most one info accent per feed: `bg-[color-mix(in_oklch,var(--color-info)_20%,var(--color-base-300))]` (panel 18%) — never media-tinted or brand bones | +| State | Recipe | +| ------------------------ | ---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | +| frame | `.chat_editor_container`: pre `bg base-200, 1px base-300 border, radius 6px, mono 13px`; inline code `bg base-200, base-300 border, radius 3px, color var(--color-error)`; blockquote `border-left 3px base-300`; `.msg_card` shares `editor-prose-shared` mixin | +| feed / composer skeleton | daisyUI `skeleton` bones (`skeleton size-8 rounded-full`, `skeleton h-2.5 w-16 rounded-field`); composer skeleton mirrors the ComposerBar frame per variant; breadcrumb `skeleton h-3 w-10 rounded-field` + chevron `skeleton size-2.5` | +| media accent bones | at most one info accent per feed: `bg-[color-mix(in_oklch,var(--color-info)_20%,var(--color-base-300))]` (panel 18%) — never media-tinted or brand bones | > Off-system: pre 6px / inline-code 3px radii off the `--radius-*` scale; hardcoded `Monaco/Menlo/Ubuntu Mono` stack. diff --git a/apps/webapp/src/components/chatroom/components/ChannelComposer/ChannelComposer.tsx b/apps/webapp/src/components/chatroom/components/ChannelComposer/ChannelComposer.tsx index e9c4937f8..d5c5215dc 100644 --- a/apps/webapp/src/components/chatroom/components/ChannelComposer/ChannelComposer.tsx +++ b/apps/webapp/src/components/chatroom/components/ChannelComposer/ChannelComposer.tsx @@ -4,12 +4,7 @@ import { twMerge } from 'tailwind-merge' import MsgComposer from '../MessageComposer/MessageComposer' import { ChatroomComposerSkeleton } from '../skeleton' -import { - JoinBroadcastChannel, - JoinDirectChannel, - JoinGroupChannel, - SignInToJoinChannel -} from './components' +import { JoinBroadcastChannel, JoinDirectChannel, JoinGroupChannel } from './components' export interface ChannelComposerProps { children?: React.ReactNode @@ -64,9 +59,6 @@ const ChannelComposer = ({ children, className }: ChannelComposerProps) => ( export default ChannelComposer -ChannelComposer.SignInPrompt = SignInToJoinChannel ChannelComposer.JoinDirect = JoinDirectChannel ChannelComposer.JoinGroup = JoinGroupChannel ChannelComposer.JoinBroadcast = JoinBroadcastChannel -ChannelComposer.MsgComposer = MsgComposer -ChannelComposer.AccessControl = AccessControl diff --git a/apps/webapp/src/components/chatroom/components/ChannelComposer/index.ts b/apps/webapp/src/components/chatroom/components/ChannelComposer/index.ts deleted file mode 100644 index fb91e0e87..000000000 --- a/apps/webapp/src/components/chatroom/components/ChannelComposer/index.ts +++ /dev/null @@ -1,2 +0,0 @@ -export type { ChannelComposerProps } from './ChannelComposer' -export { default } from './ChannelComposer' diff --git a/apps/webapp/src/components/chatroom/components/MessageComposer/MessageComposer.tsx b/apps/webapp/src/components/chatroom/components/MessageComposer/MessageComposer.tsx index 426c9dd78..f7117c6da 100644 --- a/apps/webapp/src/components/chatroom/components/MessageComposer/MessageComposer.tsx +++ b/apps/webapp/src/components/chatroom/components/MessageComposer/MessageComposer.tsx @@ -11,26 +11,12 @@ import { useCallback, useEffect, useMemo, useRef, useState } from 'react' import { twMerge } from 'tailwind-merge' import { useChatroomContext } from '../../ChatroomContext' -import { Actions, EmojiButton, MentionButton } from './components/Actions' +import { Actions, EmojiButton } from './components/Actions' import { ComposerEmojiPanel } from './components/ComposerEmojiPanel' import { Context } from './components/Context' -import CommentContext from './components/Context/CommentContext' -import EditContext from './components/Context/EditContext' -import ReplyContext from './components/Context/ReplyContext' import { Input } from './components/Input' import { ComposerDesktopLayout, ComposerLayout, ComposerMobileLayout } from './components/layouts' -import { - BlockquoteButton, - BoldButton, - BulletListButton, - CodeBlockButton, - CodeButton, - HyperlinkButton, - ItalicButton, - OrderedListButton, - StrikethroughButton, - Toolbar -} from './components/Toolbar' +import { Toolbar } from './components/Toolbar' import { type ComposerAttachmentActions, ComposerAttachmentActionsContext @@ -292,22 +278,9 @@ export default MessageComposer MessageComposer.EditorContent = EditorContent MessageComposer.Toolbar = Toolbar -MessageComposer.BlockquoteButton = BlockquoteButton -MessageComposer.CodeButton = CodeButton -MessageComposer.HyperlinkButton = HyperlinkButton -MessageComposer.ItalicButton = ItalicButton -MessageComposer.OrderedListButton = OrderedListButton -MessageComposer.StrikethroughButton = StrikethroughButton -MessageComposer.BoldButton = BoldButton -MessageComposer.BulletListButton = BulletListButton -MessageComposer.CodeBlockButton = CodeBlockButton MessageComposer.Context = Context -MessageComposer.ReplyContext = ReplyContext -MessageComposer.EditContext = EditContext -MessageComposer.CommentContext = CommentContext MessageComposer.Actions = Actions MessageComposer.EmojiButton = EmojiButton -MessageComposer.MentionButton = MentionButton MessageComposer.Input = Input MessageComposer.ComposerDesktopLayout = ComposerDesktopLayout MessageComposer.ComposerMobileLayout = ComposerMobileLayout diff --git a/apps/webapp/src/components/chatroom/components/MessageComposer/components/Context/index.ts b/apps/webapp/src/components/chatroom/components/MessageComposer/components/Context/index.ts index 1fdc469f4..a4fac4270 100644 --- a/apps/webapp/src/components/chatroom/components/MessageComposer/components/Context/index.ts +++ b/apps/webapp/src/components/chatroom/components/MessageComposer/components/Context/index.ts @@ -1,4 +1 @@ -export * from './CommentContext' export * from './Context' -export * from './EditContext' -export * from './ReplyContext' diff --git a/apps/webapp/src/components/chatroom/components/MessageComposer/index.ts b/apps/webapp/src/components/chatroom/components/MessageComposer/index.ts deleted file mode 100644 index c75be826d..000000000 --- a/apps/webapp/src/components/chatroom/components/MessageComposer/index.ts +++ /dev/null @@ -1 +0,0 @@ -export * from './MessageComposer' diff --git a/apps/webapp/src/components/chatroom/components/MessageComposer/types/index.ts b/apps/webapp/src/components/chatroom/components/MessageComposer/types/index.ts deleted file mode 100644 index e69de29bb..000000000 diff --git a/apps/webapp/src/services/eventsHub.ts b/apps/webapp/src/services/eventsHub.ts index fcf902a9a..7fa3cb645 100644 --- a/apps/webapp/src/services/eventsHub.ts +++ b/apps/webapp/src/services/eventsHub.ts @@ -21,7 +21,6 @@ type TOpenChatData = { toggleRoom?: boolean fetchMsgsFromId?: string focusEditor?: boolean - insertContent?: string | null } type TApplyFilterData = { @@ -52,8 +51,7 @@ export const eventsHub = (router: NextRouter) => { scroll2Heading = false, toggleRoom = true, fetchMsgsFromId, - focusEditor = false, - insertContent = null + focusEditor = false } = data if (!headingId) return @@ -71,8 +69,7 @@ export const eventsHub = (router: NextRouter) => { headingId, scroll2Heading, fetchMsgsFromId, - focusEditor, - insertContent + focusEditor }) }), diff --git a/apps/webapp/src/services/openHeadingChatroom.ts b/apps/webapp/src/services/openHeadingChatroom.ts index 1c141983c..b08897cb1 100644 --- a/apps/webapp/src/services/openHeadingChatroom.ts +++ b/apps/webapp/src/services/openHeadingChatroom.ts @@ -59,24 +59,6 @@ export function focusChatComposerWithRetry(): void { retryWithBackoff(focusChatEditor, FOCUS_RETRY) } -export function insertChatComposerContentWithRetry(insertContent: string): void { - retryWithBackoff( - () => { - const { editorInstance } = useChatStore.getState().chatRoom - if (!editorInstance) return false - - editorInstance.chain().focus().insertContent(insertContent).run() - return true - }, - { - ...FOCUS_RETRY, - onRetry: (attempt, error) => { - console.info(`Attempt ${attempt} failed: ${error.message}. Retrying...`) - } - } - ) -} - type ScheduleOpenHeadingChatroomParams = { headingId: string workspaceId: string | undefined @@ -109,7 +91,6 @@ export type OpenHeadingChatroomParams = { scroll2Heading?: boolean fetchMsgsFromId?: string focusEditor?: boolean - insertContent?: string | null } export function openHeadingChatroom({ @@ -118,8 +99,7 @@ export function openHeadingChatroom({ anchor, scroll2Heading = false, fetchMsgsFromId, - focusEditor = false, - insertContent = null + focusEditor = false }: OpenHeadingChatroomParams): void { const { workspaceId } = useStore.getState().settings const chatStore = useChatStore.getState() @@ -160,7 +140,6 @@ export function openHeadingChatroom({ onPaneOpen: scroll2Heading ? () => scrollToHeading(headingId) : undefined }) exitDocEditModeForSheet() - if (insertContent) insertChatComposerContentWithRetry(insertContent) if (focusEditor) focusChatComposerWithRetry() } @@ -173,22 +152,19 @@ type OpenHeadingChatBrowseParams = { scroll2Heading?: boolean fetchMsgsFromId?: string focusEditor?: boolean - insertContent?: string | null } export function openHeadingChatBrowse({ headingId, scroll2Heading = false, fetchMsgsFromId, - focusEditor = false, - insertContent = null + focusEditor = false }: OpenHeadingChatBrowseParams): void { openHeadingChatroom({ headingId, intent: 'browse', scroll2Heading, fetchMsgsFromId, - focusEditor, - insertContent + focusEditor }) } diff --git a/apps/webapp/src/styles/_chat-editor.scss b/apps/webapp/src/styles/_chat-editor.scss index 54007b489..919c696f4 100644 --- a/apps/webapp/src/styles/_chat-editor.scss +++ b/apps/webapp/src/styles/_chat-editor.scss @@ -1,4 +1,3 @@ -.chat_msg_container, .chat_editor_container { // Slack-style code blocks pre {