Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
10 changes: 5 additions & 5 deletions .cursor/docs/design-system.md
Original file line number Diff line number Diff line change
Expand Up @@ -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.

Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -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
Expand Down Expand Up @@ -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

This file was deleted.

Original file line number Diff line number Diff line change
Expand Up @@ -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
Expand Down Expand Up @@ -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
Expand Down
Original file line number Diff line number Diff line change
@@ -1,4 +1 @@
export * from './CommentContext'
export * from './Context'
export * from './EditContext'
export * from './ReplyContext'

This file was deleted.

7 changes: 2 additions & 5 deletions apps/webapp/src/services/eventsHub.ts
Original file line number Diff line number Diff line change
Expand Up @@ -21,7 +21,6 @@ type TOpenChatData = {
toggleRoom?: boolean
fetchMsgsFromId?: string
focusEditor?: boolean
insertContent?: string | null
}

type TApplyFilterData = {
Expand Down Expand Up @@ -52,8 +51,7 @@ export const eventsHub = (router: NextRouter) => {
scroll2Heading = false,
toggleRoom = true,
fetchMsgsFromId,
focusEditor = false,
insertContent = null
focusEditor = false
} = data

if (!headingId) return
Expand All @@ -71,8 +69,7 @@ export const eventsHub = (router: NextRouter) => {
headingId,
scroll2Heading,
fetchMsgsFromId,
focusEditor,
insertContent
focusEditor
})
}),

Expand Down
30 changes: 3 additions & 27 deletions apps/webapp/src/services/openHeadingChatroom.ts
Original file line number Diff line number Diff line change
Expand Up @@ -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
Expand Down Expand Up @@ -109,7 +91,6 @@ export type OpenHeadingChatroomParams = {
scroll2Heading?: boolean
fetchMsgsFromId?: string
focusEditor?: boolean
insertContent?: string | null
}

export function openHeadingChatroom({
Expand All @@ -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()
Expand Down Expand Up @@ -160,7 +140,6 @@ export function openHeadingChatroom({
onPaneOpen: scroll2Heading ? () => scrollToHeading(headingId) : undefined
})
exitDocEditModeForSheet()
if (insertContent) insertChatComposerContentWithRetry(insertContent)
if (focusEditor) focusChatComposerWithRetry()
}

Expand All @@ -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
})
}
1 change: 0 additions & 1 deletion apps/webapp/src/styles/_chat-editor.scss
Original file line number Diff line number Diff line change
@@ -1,4 +1,3 @@
.chat_msg_container,
.chat_editor_container {
// Slack-style code blocks
pre {
Expand Down