fix: clarify quick share creation failures
This commit is contained in:
1 parent
fbe6abd519
commit
10ea48bf04
2 files changed
+7
-7
No files matched your search
@@ -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} />
|
||||||
|
|
||||||
|
|||||||
@@ -58,8 +58,7 @@
|
|||||||
}
|
}
|
||||||
|
|
||||||
.editor:focus-visible {
|
.editor:focus-visible {
|
||||||
outline: 2px solid var(--accent);
|
outline: none;
|
||||||
outline-offset: 2px;
|
|
||||||
}
|
}
|
||||||
|
|
||||||
.editor::placeholder {
|
.editor::placeholder {
|
||||||
|
|||||||
Reference in new issue
Block a user