App.vue 1.4 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566
  1. <template>
  2. <div id="root">
  3. <header role="banner">
  4. <div class="wrapper">
  5. <h1
  6. class="site-title"
  7. tabindex="0"
  8. >
  9. Les Guides de Paris
  10. </h1>
  11. <HeaderMenu />
  12. </div>
  13. </header>
  14. <section role="main-content">
  15. <RouterView />
  16. </section>
  17. <footer role="tools">
  18. <History />
  19. <Results v-if="resultsOpened" />
  20. <div id="footer-bottom" class="row">
  21. <FooterTabs />
  22. <Search />
  23. </div>
  24. </footer>
  25. </div>
  26. </template>
  27. <script>
  28. import HeaderMenu from './components/nav/HeaderMenu'
  29. import History from './components/nav/History'
  30. import Results from './components/nav/Results'
  31. import Search from './components/nav/Search'
  32. import FooterTabs from './components/nav/FooterTabs'
  33. import { mapState } from 'vuex'
  34. export default {
  35. metaInfo: {
  36. // if no subcomponents specify a metaInfo.title, this title will be used
  37. title: 'Home',
  38. // all titles will be injected into this template
  39. titleTemplate: '%s | Guides de Paris'
  40. },
  41. components: {
  42. HeaderMenu,
  43. History,
  44. Results,
  45. Search,
  46. FooterTabs
  47. },
  48. computed: {
  49. ...mapState({
  50. resultsOpened: state => state.Search.opened
  51. })
  52. }
  53. }
  54. </script>
  55. <style lang="scss" scoped>
  56. .container{
  57. font-family:'Franklin Gothic Medium', 'Arial Narrow', Arial, sans-serif;
  58. max-width: 1200px;
  59. }
  60. </style>