diff --git a/frontend/src/App.jsx b/frontend/src/App.jsx
index 0afe93a..1d41ae1 100644
--- a/frontend/src/App.jsx
+++ b/frontend/src/App.jsx
@@ -27,30 +27,42 @@ function Toast({ message, onClose }) {
return
{message}
}
-function Login() {
- const login = useAppStore((s) => s.login)
- const [form, setForm] = useState({ username: '', password: '' })
+function PickupPanel({ className = '' }) {
+ const [pickup, setPickup] = useState({ hash: '', code: '' })
const [error, setError] = useState('')
const [busy, setBusy] = useState(false)
- const [pickup, setPickup] = useState({ hash: '', code: '' })
- const [pickupError, setPickupError] = useState('')
- const [pickupBusy, setPickupBusy] = useState(false)
const retrieve = async () => {
const hash = pickup.hash.trim()
- setPickupError('')
- if (hash.length !== 8) return setPickupError('请输入 8 位文件码')
- if (pickup.code && pickup.code.length !== 6) return setPickupError('取件码必须是 6 位数字')
+ setError('')
+ if (hash.length !== 8) return setError('请输入 8 位文件码')
+ if (pickup.code && pickup.code.length !== 6) return setError('取件码必须是 6 位数字')
const query = new URLSearchParams()
if (pickup.code) query.set('code', pickup.code)
- setPickupBusy(true)
+ setBusy(true)
try {
await api(`/api/pickup/${encodeURIComponent(hash)}${query.size ? `?${query}` : ''}`)
const link = document.createElement('a')
link.href = `/uf/${encodeURIComponent(hash)}${query.size ? `?${query}` : ''}`
document.body.appendChild(link); link.click(); link.remove()
- } catch (error) { setPickupError(error.message) }
- finally { setPickupBusy(false) }
+ } catch (error) { setError(error.message) }
+ finally { setBusy(false) }
}
+ return
+}
+
+function Login() {
+ const login = useAppStore((s) => s.login)
+ const [form, setForm] = useState({ username: '', password: '' })
+ const [error, setError] = useState('')
+ const [busy, setBusy] = useState(false)
const submit = async (event) => {
event.preventDefault(); setBusy(true); setError('')
try { await login(form.username, form.password) }
@@ -63,15 +75,7 @@ function Login() {
Send less. Share better.
把文件交给链接,
把空间留给重要的事。
限时保存、下载次数与取件码,让每一次分享都清晰可控。
-
-
-
- { setPickup({ ...pickup, hash: e.target.value }); setPickupError('') }} />
- { setPickup({ ...pickup, code: e.target.value.replace(/\D/g, '') }); setPickupError('') }} />
-
-
- {pickupError &&
{pickupError}
}
-
+