Skip to content
Merged
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
Original file line number Diff line number Diff line change
Expand Up @@ -856,8 +856,10 @@ export function ChannelFeedView({
<ChatMessageScrollerViewport ref={viewportRef}>
{/* Horizontal padding is load-bearing: ThreadItem's actions float at
the row's top-right corner (absolute, past the row edge). Without a
gutter they hug the scroll container and get clipped. */}
<ChatMessageScrollerContent className="mx-auto w-full gap-0 py-4">
gutter they hug the scroll container and get clipped. The deeper
bottom padding clears the composer's floating workspace-mode
selector, which hangs over the end of the feed. */}
<ChatMessageScrollerContent className="mx-auto w-full gap-0 pt-4 pb-10">
{intro}
{entries.map((entry, index) => {
const previous = entries[index - 1];
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -371,11 +371,13 @@ export const ChannelHomeComposer = forwardRef<
const submitComposer = canvasArmed ? handleCanvasSubmit : submit;

return (
<div className="flex w-full flex-col">
<div className="relative flex w-full flex-col">
{/* Canvas generation always runs in the cloud, so the local/cloud pick
doesn't apply while canvas mode is armed. */}
doesn't apply while canvas mode is armed. The row floats over the feed,
and the trigger's own fill is translucent, so it carries an opaque
backdrop at the button's radius to stop messages showing through. */}
{!canvasArmed && (
<div className="mb-2 flex items-center gap-2">
<div className="absolute bottom-full left-0 mb-2 flex items-center gap-2 rounded-sm bg-card">
<WorkspaceModeSelect
value={workspaceMode}
onChange={setWorkspaceMode}
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -303,7 +303,7 @@ export function WebsiteChannelHome({ channelId }: { channelId: string }) {
onOpenTask={handleOpenTask}
onOpenThread={handleOpenThread}
/>
<div className="mx-auto w-full px-4 pb-4">
<div className="mx-auto w-full px-4 pt-2 pb-4">
<ChannelHomeComposer
ref={composerRef}
channelId={channelId}
Expand Down
Loading