Fix Settings crash: temporal dead zone on checkDdnsStatus
Unit Tests / test (push) Successful in 7m37s
Unit Tests / test (push) Successful in 7m37s
checkDdnsStatus was declared via useCallback at line ~526 but referenced in a useEffect dependency array at line 419 — before its declaration. JavaScript const/let are not hoisted; accessing them before declaration throws a ReferenceError (temporal dead zone). In the production build this surfaced as: ReferenceError: Cannot access 'Pn' before initialization and caused the Settings page to crash blank on load. Moved the checkDdnsStatus useCallback definition to immediately before the useEffect that lists it as a dependency. Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
This commit is contained in:
@@ -416,6 +416,18 @@ function Settings() {
|
||||
useEffect(() => { loadAll(); }, [loadAll]);
|
||||
useEffect(() => () => clearInterval(certPollRef.current), []);
|
||||
|
||||
const checkDdnsStatus = useCallback(async () => {
|
||||
setDdnsStatusLoading(true);
|
||||
try {
|
||||
const res = await ddnsAPI.getStatus();
|
||||
setDdnsStatus(res.data);
|
||||
} catch {
|
||||
setDdnsStatus(null);
|
||||
} finally {
|
||||
setDdnsStatusLoading(false);
|
||||
}
|
||||
}, []);
|
||||
|
||||
useEffect(() => {
|
||||
if (domainMode === 'pic_ngo') checkDdnsStatus();
|
||||
}, [domainMode, checkDdnsStatus]); // eslint-disable-line react-hooks/exhaustive-deps
|
||||
@@ -523,18 +535,6 @@ function Settings() {
|
||||
}
|
||||
}, [ddnsCfToken, domainName]);
|
||||
|
||||
const checkDdnsStatus = useCallback(async () => {
|
||||
setDdnsStatusLoading(true);
|
||||
try {
|
||||
const res = await ddnsAPI.getStatus();
|
||||
setDdnsStatus(res.data);
|
||||
} catch {
|
||||
setDdnsStatus(null);
|
||||
} finally {
|
||||
setDdnsStatusLoading(false);
|
||||
}
|
||||
}, []);
|
||||
|
||||
const startCertPolling = useCallback(() => {
|
||||
clearInterval(certPollRef.current);
|
||||
setCertAcquiring(true);
|
||||
|
||||
Reference in New Issue
Block a user