- 将所有图片路径从绝对路径改为使用 process.env.PUBLIC_URL - 修复 HomePage.tsx 中所有图片引用 - 修复 CoursePage.tsx 中所有图片引用 - 确保图片在 GitHub Pages 上正确加载 🤖 Generated with [Claude Code](https://claude.com/claude-code) Co-Authored-By: Claude <noreply@anthropic.com>
62 lines
1.2 KiB
JavaScript
62 lines
1.2 KiB
JavaScript
import React, { useState, useCallback } from 'react';
|
|
|
|
const hiddenStyles = {
|
|
display: 'none'
|
|
};
|
|
function HiddenText(_ref) {
|
|
let {
|
|
id,
|
|
value
|
|
} = _ref;
|
|
return React.createElement("div", {
|
|
id: id,
|
|
style: hiddenStyles
|
|
}, value);
|
|
}
|
|
|
|
function LiveRegion(_ref) {
|
|
let {
|
|
id,
|
|
announcement,
|
|
ariaLiveType = "assertive"
|
|
} = _ref;
|
|
// Hide element visually but keep it readable by screen readers
|
|
const visuallyHidden = {
|
|
position: 'fixed',
|
|
top: 0,
|
|
left: 0,
|
|
width: 1,
|
|
height: 1,
|
|
margin: -1,
|
|
border: 0,
|
|
padding: 0,
|
|
overflow: 'hidden',
|
|
clip: 'rect(0 0 0 0)',
|
|
clipPath: 'inset(100%)',
|
|
whiteSpace: 'nowrap'
|
|
};
|
|
return React.createElement("div", {
|
|
id: id,
|
|
style: visuallyHidden,
|
|
role: "status",
|
|
"aria-live": ariaLiveType,
|
|
"aria-atomic": true
|
|
}, announcement);
|
|
}
|
|
|
|
function useAnnouncement() {
|
|
const [announcement, setAnnouncement] = useState('');
|
|
const announce = useCallback(value => {
|
|
if (value != null) {
|
|
setAnnouncement(value);
|
|
}
|
|
}, []);
|
|
return {
|
|
announce,
|
|
announcement
|
|
};
|
|
}
|
|
|
|
export { HiddenText, LiveRegion, useAnnouncement };
|
|
//# sourceMappingURL=accessibility.esm.js.map
|