Skip to content

Commit 726092c

Browse files
committed
gitbook 新增自动提交密码功能
1 parent 2c1c1ff commit 726092c

File tree

1 file changed

+20
-3
lines changed

1 file changed

+20
-3
lines changed

themes/gitbook/components/ArticleLock.js

+20-3
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,5 @@
11
import { useGlobal } from '@/lib/global'
2+
import { useRouter } from 'next/router'
23
import { useEffect, useRef } from 'react'
34

45
/**
@@ -11,24 +12,40 @@ import { useEffect, useRef } from 'react'
1112
export const ArticleLock = props => {
1213
const { validPassword } = props
1314
const { locale } = useGlobal()
14-
console.log('locale', locale)
15+
const router = useRouter()
16+
const passwordInputRef = useRef(null)
1517

18+
/**
19+
* 输入提交密码
20+
*/
1621
const submitPassword = () => {
1722
const p = document.getElementById('password')
23+
24+
// 验证失败提示
1825
if (!validPassword(p?.value)) {
1926
const tips = document.getElementById('tips')
2027
if (tips) {
2128
tips.innerHTML = ''
2229
tips.innerHTML = `<div class='text-red-500 animate__shakeX animate__animated'>${locale.COMMON.PASSWORD_ERROR}</div>`
2330
}
31+
} else {
32+
// 输入密码存入localStorage,下次自动提交
33+
localStorage.setItem('password_' + router.asPath, p?.value)
2434
}
2535
}
2636

27-
const passwordInputRef = useRef(null)
2837
useEffect(() => {
2938
// 选中密码输入框并将其聚焦
3039
passwordInputRef.current.focus()
31-
}, [])
40+
41+
// 从localStorage中读取上次记录 自动提交密码
42+
const p = localStorage.getItem('password_' + router.asPath)
43+
console.log('pp', p, document.getElementById('password'))
44+
if (p) {
45+
document.getElementById('password').value = p
46+
submitPassword()
47+
}
48+
}, [router])
3249

3350
return (
3451
<div

0 commit comments

Comments
 (0)