1 Commits
Author SHA1 Message Date
justme 10ea48bf04 fix: clarify quick share creation failures
ci/woodpecker/tag/release-backend Pipeline was successful
ci/woodpecker/push/ci Pipeline was successful
2026-10-02 13:44:03 +08:00
2 changed files with 7 additions and 7 deletions

No files matched your search

+6 -5
View File
@@ -6,6 +6,7 @@ import { useGlobalPaste } from '@/lib/useGlobalPaste';
import { useChannels } from '@/store/channels'; import { useChannels } from '@/store/channels';
import { useShares } from '@/store/shares'; import { useShares } from '@/store/shares';
import { solveCreationCaptcha } from '@/core-bridge/captcha'; import { solveCreationCaptcha } from '@/core-bridge/captcha';
import { errorMessage } from '@/core-bridge/errors';
import { Button } from '@/ui/Button'; import { Button } from '@/ui/Button';
import { ChannelList } from './ChannelList'; import { ChannelList } from './ChannelList';
import { CreateSheet } from './CreateSheet'; import { CreateSheet } from './CreateSheet';
@@ -22,7 +23,7 @@ export function Home() {
const [createOpen, setCreateOpen] = useState(false); const [createOpen, setCreateOpen] = useState(false);
const [scanOpen, setScanOpen] = useState(false); const [scanOpen, setScanOpen] = useState(false);
const [busy, setBusy] = useState(false); const [busy, setBusy] = useState(false);
const [failed, setFailed] = useState(false); const [failedMessage, setFailedMessage] = useState('');
const [shareText, setShareText] = useState(''); const [shareText, setShareText] = useState('');
const [shareFiles, setShareFiles] = useState<File[]>([]); const [shareFiles, setShareFiles] = useState<File[]>([]);
@@ -32,15 +33,15 @@ export function Home() {
async (p: ClipboardPayload) => { async (p: ClipboardPayload) => {
if (busy || (p.files.length === 0 && !p.text.trim())) return false; if (busy || (p.files.length === 0 && !p.text.trim())) return false;
setBusy(true); setBusy(true);
setFailed(false); setFailedMessage('');
try { try {
const captchaToken = await solveCreationCaptcha(); const captchaToken = await solveCreationCaptcha();
open(await createDraft(p, captchaToken)); open(await createDraft(p, captchaToken));
setShareFiles([]); setShareFiles([]);
setShareText(''); setShareText('');
return true; return true;
} catch { } catch (error) {
setFailed(true); setFailedMessage(errorMessage(error));
return false; return false;
} finally { } finally {
setBusy(false); setBusy(false);
@@ -71,7 +72,7 @@ export function Home() {
onFilesChange={setShareFiles} onFilesChange={setShareFiles}
onShare={share} onShare={share}
/> />
{failed ? <p role="alert" className={styles.error}>创建分享失败,请重试。</p> : null} {failedMessage ? <p role="alert" className={styles.error}>创建分享失败:{failedMessage}</p> : null}
<ChannelList kind="share" title="我的分享" onOpen={open} /> <ChannelList kind="share" title="我的分享" onOpen={open} />
+1 -2
View File
@@ -58,8 +58,7 @@
} }
.editor:focus-visible { .editor:focus-visible {
outline: 2px solid var(--accent); outline: none;
outline-offset: 2px;
} }
.editor::placeholder { .editor::placeholder {