'use client'; import { useRouter } from 'next/navigation'; import { useMemo, useState, useTransition } from 'react'; import { toast } from 'sonner'; import type { BotPresenceConfig, OwnerRole } from '@nexumi/shared'; import { useTranslations } from '@/components/locale-provider'; import { SettingsForm } from '@/components/settings/settings-form'; import { Button } from '@/components/ui/button'; import { Card, CardContent, CardHeader, CardTitle } from '@/components/ui/card'; import { Input } from '@/components/ui/input'; import { Label } from '@/components/ui/label'; async function readError(response: Response): Promise { const data = (await response.json().catch(() => null)) as { error?: string } | null; return data?.error ?? 'Request failed'; } export function PresenceForm({ initialValue }: { initialValue: BotPresenceConfig }) { const t = useTranslations(); return ( { const response = await fetch('/api/owner/presence', { method: 'PATCH', headers: { 'Content-Type': 'application/json' }, body: JSON.stringify(value) }); if (!response.ok) { return { ok: false, error: await readError(response) }; } return { ok: true }; }} > {({ value, setValue, error }) => ( {error &&

{error}

}
setValue({ ...value, activityText: e.target.value })} />