diff --git a/src/helpers/navigation.ts b/src/helpers/navigation.ts index 94a67abb5f309a5ed45201c3df214bc190ba9d8d..5b5e3da1dcf78cbd081b578628c15b1a177130d0 100644 --- a/src/helpers/navigation.ts +++ b/src/helpers/navigation.ts @@ -23,11 +23,11 @@ export const NAVIGATION_HEADER = [ name: 'Join', isButton: true, }, -// { -// to: 'https://whyhive.co', -// name: 'Why Hive?', -// isButton: true, - // }, + // { + // to: 'https://whyhive.co', + // name: 'Why Hive?', + // isButton: true, + // }, ] /** @@ -52,10 +52,10 @@ export const NAVIGATION_FOOTER = [ to: 'about-contributors', name: 'Contributors', }, - //{ + // { // to: 'about-updates', // name: 'Updates', - //}, + // }, { to: 'https://hive.blog/@hiveio', @@ -80,6 +80,10 @@ export const NAVIGATION_FOOTER = [ to: 'eco', name: 'Ecosystem', }, + { + to: 'roadmap', + name: 'Roadmap', + }, { to: 'hbd', name: 'Hive Dollar (HBD)', @@ -92,10 +96,10 @@ export const NAVIGATION_FOOTER = [ to: 'https://hiveblocks.com/witnesses', name: 'Governance', }, - // { - // to: 'https://whyhive.co/', - // name: 'Why Hive', - // }, + // { + // to: 'https://whyhive.co/', + // name: 'Why Hive', + // }, /* { to: 'eco', name: 'dApps Statistics' @@ -121,9 +125,9 @@ export const NAVIGATION_FOOTER = [ name: 'Whitepaper', }, { - to: 'https://hive.blue/docs/technical-vision.pdf', + to: 'https://hive.blue/docs/technical-vision.pdf', name: 'Technical Vision', - }, + }, { to: 'https://github.com/openhive-network/hive', name: 'GitHub', @@ -140,6 +144,10 @@ export const ABOUT_NAVIGATION = [ to: 'about', text: 'About Hive', }, - {to: 'about-contributors', text: 'Contributors'}, -// {to: 'about-updates', text: 'Updates'}, + { + to: 'roadmap', + text: 'Roadmap', + }, + { to: 'about-contributors', text: 'Contributors' }, + // {to: 'about-updates', text: 'Updates'}, ] diff --git a/src/helpers/var.ts b/src/helpers/var.ts index 655b789376e923b823ab8816f22f5208b84e0782..b444dd9f5d9ad8eebd6c93d8b8e826a19518e6a3 100644 --- a/src/helpers/var.ts +++ b/src/helpers/var.ts @@ -10,7 +10,7 @@ export * from './updates' export const INFOBAR = { show: true, - //date: '2020-09-10T00:00:00.000Z', + // date: '2020-09-10T00:00:00.000Z', date: '2020-09-10T00:00:00+00:00', url: 'https://hivefe.st', // If empty, only url is used diff --git a/src/pages/about.vue b/src/pages/about.vue index b6fac5504550682d9ad9b334be1d2dd1e4c42b68..a96e3947ba1d47431e14d73e555737aebcaaad33 100644 --- a/src/pages/about.vue +++ b/src/pages/about.vue @@ -48,6 +48,91 @@ </div> </div> </div> + <!-- Roadmap --> + <div v-if="$route.name === 'roadmap'" class="about__first roadmap"> + <h2 class="about__title"> + Roadmap + </h2> + <p class="about__text">Almost all core development updates are posted on Hive + <a href="https://hive.blog/@blocktrades/posts" target="_blank" rel="nofollow noopener noreferrer">@blocktrades</a> + </p> + <div class="about__feature"> + <h3 class="about__feature__text">Q3 2024</h3> + <h4> + <ul> + <li> + <input id="find" type="checkbox" disabled/> + Light weight blockchain nodes with very low storage/cpu/memory requirements + </li> + <li> + <input id="find" type="checkbox" disabled/> + Increase performance/scalability of Hive API nodes via improvements to the Hive Application Framework (HAF) and the core Hive API apps + </li> + </ul> + </h4> + </div> + + <div class="about__feature"> + <h3 class="about__feature__text"> + Q4 2024 + </h3> + <h4> + <ul> + <li> + <input id="find" type="checkbox" disabled/> + Define new Hive APIs using HAF technology: Lite accounts API (accounts re-usable across the 2nd layer ecosystem), 2nd layer transaction API, 2nd layer smart contract API, Block Explorer API + </li> + <li> + <input id="find" type="checkbox" disabled/> + Complete rewrite of Condenser with newest web technologies + </li> + <li> + <input id="find" type="checkbox" disabled/> + Reputation tracker API + </li> + <li> + <input id="find" type="checkbox" disabled/> + Wax, A new extensible multi-language API library for Hive (Typescript, Python, C++) + </li> + </ul> + </h4> + </div> + + <div class="about__feature"> + <h3 class="about__feature__text"> + Q1 2025 + </h3> + <h4> + <ul> + <li> + <input id="find" type="checkbox" disabled/> + Release block explorer UI for deployment by all Hive API Nodes + </li> + <li> + <input id="find" type="checkbox" disabled/> + New REST-based Hive APIs + </li> + </ul> + </h4> + </div> + <div class="about__feature"> + <h3 class="about__feature__text"> + Q2 2025 + </h3> + <h4> + <ul> + <li> + <input id="find" type="checkbox" disabled/> + Interactive OpenAPI documentation for Hive APIs (via swagger) + </li> + <li> + <input id="find" type="checkbox" disabled/> + Clive, a new cli and text-based wallet for high security accounts + </li> + </ul> + </h4> + </div> + </div> <Updates v-if="$route.name === 'about-updates'" /> <Contributors v-if="$route.name === 'about-contributors'" /> </div> @@ -69,6 +154,13 @@ export default defineComponent({ </script> <style lang="scss" scoped> +.roadmap ul { + list-style-type: none; +} +.roadmap li { + margin-bottom: 15px; +} + .about { display: flex; align-items: center; diff --git a/src/router.js b/src/router.js index 9154a81e590501023535f2a888fec9009d0f2b90..a3a7ba7269c9bd33538dd7669b55395570d3730b 100644 --- a/src/router.js +++ b/src/router.js @@ -8,8 +8,9 @@ const About = () => import('./pages/about.vue').then((m) => m.default || m) const Brand = () => import('./pages/brand.vue').then((m) => m.default || m) const Eco = () => import('./pages/eco.vue').then((m) => m.default || m) const Wallets = () => import('./pages/wallets.vue').then((m) => m.default || m) -const Developers = () => import('./pages/developers.vue').then((m) => m.default || m) -const Hbd = () => import( './pages/hbd.vue' ).then( ( m ) => m.default || m ) +const Developers = () => + import('./pages/developers.vue').then((m) => m.default || m) +const Hbd = () => import('./pages/hbd.vue').then((m) => m.default || m) export const createRouter = () => { const router = new Router({ @@ -21,61 +22,67 @@ export const createRouter = () => { path: '/', component: Index, name: 'index', - meta: {} + meta: {}, }, { path: '/about', component: About, name: 'about', - meta: {} + meta: {}, }, { path: '/updates', component: About, name: 'about-updates', - meta: {} + meta: {}, }, { path: '/contributors', component: About, name: 'about-contributors', - meta: {} + meta: {}, }, { path: '/brand', component: Brand, name: 'brand', - meta: {} + meta: {}, }, { path: '/eco', component: Eco, name: 'eco', - meta: { keepPosition: true, thresholdPosition: 800 } + meta: {keepPosition: true, thresholdPosition: 800}, }, { path: '/eco/:app', component: Eco, name: 'eco-app', - meta: { keepPosition: true, thresholdPosition: 800 } + meta: {keepPosition: true, thresholdPosition: 800}, }, { path: '/wallets', component: Wallets, name: 'wallets', - meta: {} + meta: {}, }, { path: '/developers', component: Developers, name: 'developers', - meta: {} + meta: {}, }, { path: '/hbd', component: Hbd, name: 'hbd', - meta: {} + meta: {}, + }, + { + path: '/roadmap', + component: About, + name: 'roadmap', + meta: {}, }, ], fallback: true, @@ -108,7 +115,7 @@ if (process.client) { } } -const scrollBehavior = function (to, from, savedPosition) { +const scrollBehavior = function(to, from, savedPosition) { // if the returned position is falsy or an empty object, // will retain current scroll position. let position = false @@ -120,7 +127,11 @@ const scrollBehavior = function (to, from, savedPosition) { ) { // console.log('Resetting position to 0', to) // scroll to the top of the page - if (!to.meta.thresholdPosition || window.pageYOffset > to.meta.thresholdPosition) position = { x: 0, y: 0 } + if ( + !to.meta.thresholdPosition || + window.pageYOffset > to.meta.thresholdPosition + ) + position = {x: 0, y: 0} } // console.log('saved position', savedPosition) @@ -137,15 +148,18 @@ const scrollBehavior = function (to, from, savedPosition) { // coords will be used if no selector is provided, // or if the selector didn't match any element. if (to.hash) { - let { hash } = to + let {hash} = to // CSS.escape() is not supported with IE and Edge. - if (typeof window.CSS !== 'undefined' && typeof window.CSS.escape !== 'undefined') { + if ( + typeof window.CSS !== 'undefined' && + typeof window.CSS.escape !== 'undefined' + ) { hash = `#${window.CSS.escape(hash.substr(1))}` } try { if (document.querySelector(hash)) { // scroll to anchor by returning the selector - position = { selector: hash } + position = {selector: hash} } } catch (e) { // eslint-disable-next-line no-console