fix: TS build errors — remove asChild, simplify type selector

- SheetTrigger: remove asChild (base-ui doesn't support it)
- ComposeBox: use plain buttons with cn() instead of ToggleGroup (API mismatch)
- Remove unused Button import from App

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
This commit is contained in:
2026-03-29 20:01:22 +02:00
parent 8913cb71c8
commit 4a9807ccd8
2 changed files with 16 additions and 17 deletions

View File

@@ -6,7 +6,6 @@ import { ChannelSidebar } from "@/components/ChannelSidebar";
import { MessageItem } from "@/components/MessageItem"; import { MessageItem } from "@/components/MessageItem";
import { ComposeBox } from "@/components/ComposeBox"; import { ComposeBox } from "@/components/ComposeBox";
import { Sheet, SheetContent, SheetTrigger } from "@/components/ui/sheet"; import { Sheet, SheetContent, SheetTrigger } from "@/components/ui/sheet";
import { Button } from "@/components/ui/button";
export default function App() { export default function App() {
const [channels, setChannels] = useState<Channel[]>([]); const [channels, setChannels] = useState<Channel[]>([]);
@@ -87,10 +86,8 @@ export default function App() {
<div className="px-3 py-2 md:px-4 border-b border-border flex items-center gap-2"> <div className="px-3 py-2 md:px-4 border-b border-border flex items-center gap-2">
{/* Mobile: Sheet trigger */} {/* Mobile: Sheet trigger */}
<Sheet open={sheetOpen} onOpenChange={setSheetOpen}> <Sheet open={sheetOpen} onOpenChange={setSheetOpen}>
<SheetTrigger asChild> <SheetTrigger className="md:hidden p-1 h-8 w-8 text-muted-foreground hover:text-foreground rounded-sm">
<Button variant="ghost" size="sm" className="md:hidden p-1 h-8 w-8 text-muted-foreground">
= =
</Button>
</SheetTrigger> </SheetTrigger>
<SheetContent side="left" className="p-0 w-64 bg-background"> <SheetContent side="left" className="p-0 w-64 bg-background">
{sidebar} {sidebar}

View File

@@ -3,7 +3,7 @@ import type { MessageType } from "@/types/MessageType";
import { postMessage } from "@/api"; import { postMessage } from "@/api";
import { Button } from "@/components/ui/button"; import { Button } from "@/components/ui/button";
import { Input } from "@/components/ui/input"; import { Input } from "@/components/ui/input";
import { ToggleGroup, ToggleGroupItem } from "@/components/ui/toggle-group"; import { cn } from "@/lib/utils";
interface Props { interface Props {
channelId: string; channelId: string;
@@ -60,22 +60,24 @@ export function ComposeBox({
)} )}
<div className="flex items-center gap-1.5 md:gap-2"> <div className="flex items-center gap-1.5 md:gap-2">
<ToggleGroup {/* Type selector */}
type="single" <div className="flex gap-0.5 rounded-md border border-border p-0.5">
value={msgType}
onValueChange={(v) => { if (v) setMsgType(v as MessageType); }}
className="gap-0.5"
>
{MSG_TYPES.map((t) => ( {MSG_TYPES.map((t) => (
<ToggleGroupItem <button
type="button"
key={t.value} key={t.value}
value={t.value} onClick={() => setMsgType(t.value)}
className="h-8 w-8 md:h-7 md:w-auto md:px-2 text-xs font-bold data-[state=on]:bg-primary data-[state=on]:text-primary-foreground" className={cn(
"h-7 w-7 md:h-6 md:w-6 rounded-sm text-xs font-bold transition-colors",
msgType === t.value
? "bg-primary text-primary-foreground"
: "text-muted-foreground hover:text-foreground"
)}
> >
{t.label} {t.label}
</ToggleGroupItem> </button>
))} ))}
</ToggleGroup> </div>
<Input <Input
value={content} value={content}