Footer.js 1.5 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061
  1. import React, { useEffect, useState } from 'react';
  2. import { Container, Segment } from 'semantic-ui-react';
  3. import { getFooterHTML, getSystemName } from '../helpers';
  4. const Footer = () => {
  5. const systemName = getSystemName();
  6. const [footer, setFooter] = useState(getFooterHTML());
  7. let remainCheckTimes = 5;
  8. const loadFooter = () => {
  9. let footer_html = localStorage.getItem('footer_html');
  10. if (footer_html) {
  11. setFooter(footer_html);
  12. }
  13. };
  14. useEffect(() => {
  15. const timer = setInterval(() => {
  16. if (remainCheckTimes <= 0) {
  17. clearInterval(timer);
  18. return;
  19. }
  20. remainCheckTimes--;
  21. loadFooter();
  22. }, 200);
  23. return () => clearTimeout(timer);
  24. }, []);
  25. return (
  26. <Segment vertical>
  27. <Container textAlign='center'>
  28. {footer ? (
  29. <div
  30. className='custom-footer'
  31. dangerouslySetInnerHTML={{ __html: footer }}
  32. ></div>
  33. ) : (
  34. <div className='custom-footer'>
  35. <a
  36. href='https://github.com/Calcium-Ion/one-api'
  37. target='_blank'
  38. >
  39. {systemName} {process.env.REACT_APP_VERSION}{' '}
  40. </a>
  41. 由{' '}
  42. <a href='https://github.com/songquanpeng' target='_blank'>
  43. JustSong
  44. </a>{' '}
  45. 构建,源代码遵循{' '}
  46. <a href='https://opensource.org/licenses/mit-license.php'>
  47. MIT 协议
  48. </a>
  49. </div>
  50. )}
  51. </Container>
  52. </Segment>
  53. );
  54. };
  55. export default Footer;