mirror of
https://github.com/CJackHwang/ds2api.git
synced 2026-05-12 12:17:47 +08:00
feat(admin): remember Vercel sync credentials
This commit is contained in:
@@ -15,6 +15,8 @@ export default function VercelSyncContainer({ onMessage, authFetch, isVercel = f
|
||||
setProjectId,
|
||||
teamId,
|
||||
setTeamId,
|
||||
saveCredentials,
|
||||
setSaveCredentials,
|
||||
loading,
|
||||
result,
|
||||
preconfig,
|
||||
@@ -46,6 +48,8 @@ export default function VercelSyncContainer({ onMessage, authFetch, isVercel = f
|
||||
setProjectId={setProjectId}
|
||||
teamId={teamId}
|
||||
setTeamId={setTeamId}
|
||||
saveCredentials={saveCredentials}
|
||||
setSaveCredentials={setSaveCredentials}
|
||||
loading={loading}
|
||||
onSync={handleSync}
|
||||
/>
|
||||
|
||||
@@ -14,6 +14,8 @@ export default function VercelSyncForm({
|
||||
setProjectId,
|
||||
teamId,
|
||||
setTeamId,
|
||||
saveCredentials,
|
||||
setSaveCredentials,
|
||||
loading,
|
||||
onSync,
|
||||
}) {
|
||||
@@ -124,6 +126,19 @@ export default function VercelSyncForm({
|
||||
onChange={e => setTeamId(e.target.value)}
|
||||
/>
|
||||
</div>
|
||||
|
||||
<label className="flex items-start gap-3 text-sm">
|
||||
<input
|
||||
type="checkbox"
|
||||
className="mt-1 h-4 w-4 rounded border-border text-primary focus:ring-ring"
|
||||
checked={saveCredentials}
|
||||
onChange={e => setSaveCredentials(e.target.checked)}
|
||||
/>
|
||||
<span className="space-y-1">
|
||||
<span className="block font-medium">{t('vercel.saveCredentials')}</span>
|
||||
<span className="block text-xs text-muted-foreground">{t('vercel.saveCredentialsHint')}</span>
|
||||
</span>
|
||||
</label>
|
||||
</div>
|
||||
|
||||
<div className="pt-4">
|
||||
|
||||
@@ -12,6 +12,7 @@ export function useVercelSyncState({ apiFetch, onMessage, t, isVercel = false })
|
||||
const [vercelToken, setVercelToken] = useState('')
|
||||
const [projectId, setProjectId] = useState('')
|
||||
const [teamId, setTeamId] = useState('')
|
||||
const [saveCredentials, setSaveCredentials] = useState(true)
|
||||
const [loading, setLoading] = useState(false)
|
||||
const [result, setResult] = useState(null)
|
||||
const [preconfig, setPreconfig] = useState(null)
|
||||
@@ -117,6 +118,7 @@ export function useVercelSyncState({ apiFetch, onMessage, t, isVercel = false })
|
||||
vercel_token: tokenToUse,
|
||||
project_id: projectId,
|
||||
team_id: teamId || undefined,
|
||||
save_credentials: saveCredentials,
|
||||
}),
|
||||
})
|
||||
const data = await res.json()
|
||||
@@ -133,7 +135,7 @@ export function useVercelSyncState({ apiFetch, onMessage, t, isVercel = false })
|
||||
} finally {
|
||||
setLoading(false)
|
||||
}
|
||||
}, [apiFetch, fetchSyncStatus, onMessage, preconfig?.has_token, projectId, t, teamId, vercelToken])
|
||||
}, [apiFetch, fetchSyncStatus, onMessage, preconfig?.has_token, projectId, saveCredentials, t, teamId, vercelToken])
|
||||
|
||||
return {
|
||||
vercelToken,
|
||||
@@ -142,6 +144,8 @@ export function useVercelSyncState({ apiFetch, onMessage, t, isVercel = false })
|
||||
setProjectId,
|
||||
teamId,
|
||||
setTeamId,
|
||||
saveCredentials,
|
||||
setSaveCredentials,
|
||||
loading,
|
||||
result,
|
||||
preconfig,
|
||||
|
||||
Reference in New Issue
Block a user