Footer.tsx 3.5 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100
  1. import clsx from 'clsx';
  2. import { footerMenu, socialLinks } from '@/config/site';
  3. import Icon from '@/components/Icon';
  4. import Link from '@/components/Link';
  5. const FooterMenu = ({ border = false }: { border?: boolean }) => (
  6. <footer className="footer">
  7. <div className="container">
  8. <div className={clsx('py-6', border && 'border-top')}>
  9. <div className="row">
  10. <div className="lg:col-7">
  11. <div className="row">
  12. {footerMenu.map((column) => (
  13. <div className="sm:col-6 md:col" key={column.title}>
  14. <div className="h-subheader mb-3">{column.title}</div>
  15. <ul className="list-unstyled list-separated">
  16. {column.items.map((item) => (
  17. <li key={item.title}>
  18. {item.route ? (
  19. <Link href={item.route} className="link-muted">
  20. {item.title}
  21. </Link>
  22. ) : (
  23. <a href={item.href} className="link-muted" target="_blank" rel="noopener noreferrer">
  24. {item.title}
  25. </a>
  26. )}
  27. </li>
  28. ))}
  29. </ul>
  30. </div>
  31. ))}
  32. </div>
  33. </div>
  34. <div className="lg:col-4 ml-auto">
  35. <div className="logo logo-gray mb-4" />
  36. <div className="text-muted">Tabler comes with tons of well-designed components and features. Start your adventure with Tabler and make your dashboard great again. For free!</div>
  37. <div className="mt-4 lg:mt-6">
  38. <div className="row gx-3">
  39. {socialLinks.map((social) => (
  40. <div className="col-auto" key={social.icon}>
  41. <a href={social.url} className="link-muted" aria-label="social.label" target="_blank" rel="noopener noreferrer">
  42. <Icon name={social.icon} className="icon-md" />
  43. </a>
  44. </div>
  45. ))}
  46. </div>
  47. </div>
  48. </div>
  49. </div>
  50. </div>
  51. </div>
  52. </footer>
  53. );
  54. const FooterMain = () => (
  55. <footer className="footer">
  56. <div className="container">
  57. <div className="py-5 text-center lg:text-left border-top">
  58. <div className="row">
  59. <div className="lg:col-auto lg:text-right lg:order-last">
  60. <div className="row justify-center">
  61. <div className="col-auto">
  62. ©
  63. <a href="https://codecalm.net" className="link-muted" target="_blank" rel="noopener noreferrer">
  64. codecalm.net
  65. </a>
  66. </div>
  67. <div className="col-auto">
  68. <div className="list-inline-dots">
  69. <Link href="/terms-of-service" className="link-muted" prefetch={false}>
  70. Terms of service
  71. </Link>
  72. <Link href="/privacy-policy" className="link-muted" prefetch={false}>
  73. Privacy policy
  74. </Link>
  75. </div>
  76. </div>
  77. </div>
  78. </div>
  79. <div className="lg:col">
  80. Made with <Icon name="heart" color="red" filled /> in Poland.
  81. </div>
  82. </div>
  83. </div>
  84. </div>
  85. </footer>
  86. );
  87. export default function Footer() {
  88. return (
  89. <>
  90. <FooterMenu />
  91. <FooterMain />
  92. </>
  93. );
  94. }