body.js 570 B

123456789101112131415161718192021
  1. const html = require('choo/html');
  2. const Header = require('./header');
  3. const Footer = require('./footer');
  4. module.exports = function body(main) {
  5. return function(state, emit) {
  6. const b = html`
  7. <body
  8. class="flex flex-col items-center font-sans md:h-screen md:bg-grey-10 dark:bg-black"
  9. >
  10. ${state.cache(Header, 'header').render()} ${main(state, emit)}
  11. ${state.cache(Footer, 'footer').render()}
  12. </body>
  13. `;
  14. if (state.layout) {
  15. // server side only
  16. return state.layout(state, b);
  17. }
  18. return b;
  19. };
  20. };