mirror of
https://github.com/aelve/guide.git
synced 2024-12-25 13:51:45 +03:00
3d8fee8c5c
* Migrate routing from prod to new front v 0.5 * migrate category link to new fron v 0.5.5 * migrate category link to new fron v 0.0.8 * migrate category link to new-front caching issue * window bug fix * Category description v 0.0.1 * formatting and unnecessary quote marks deleted * fix originalDescription assignment * Added category description edit/add * Added 409 error handling (need to add functionaly to buttons) * changed: added emit for conflict popup * changed: added api request to conflict handlng * rename Article -> Category, ArticleContent -> CategoryItem * minor rename fix * changed: moved all description changes to a single function, emit call fixes, minor style fixes * changed: category description conflict data sent to api fixes * refactoring bug fix * fix: if description exists no description shown in textarea * fix: empty field in the Dialog * changed: emit event from conflict-dialog refactoring and fix * changed: 400 api error fix * changed: old summary blink bug six * minor fix * hotfix: textare bug fix * api change fix * minor fix * changed: fixed several time description saves failing * Merge with develop - many bugs * merge with develop - critical bug fix * merge with develop bug-fixes * refactoring * bug fixes * changed: replace textarea to markdown in category description. Need to do same with conflict dialog * changed: resolved linter warnings, added markdown to merged window in conflicts dialog * minor fix * cancel, text-wrap fix * minor fix * minor fix * minor fix and uid -> id in addDescription * changed: minor fix 2 * small changes * small refactoring * part of refactoring, btn text bug fix * move no-category description stub to same div where category description is being loaded * move category to own component * minor fixes, enable mobile layout * small change * small changes * slot removed * small changes * throw err moved to else statement * small changes * minor fix * small changes * description button text and icon refactoring * add description btn icon/text small refactoring
57 lines
1.5 KiB
TypeScript
57 lines
1.5 KiB
TypeScript
import Vue from 'vue'
|
|
import 'reflect-metadata'
|
|
import 'babel-polyfill'
|
|
import _get from 'lodash/get'
|
|
|
|
import { createApp } from './app'
|
|
|
|
const { app, router, store } = createApp()
|
|
|
|
const STATE_KEY = '__INITIAL_STATE__'
|
|
|
|
if (window[STATE_KEY]) {
|
|
store.replaceState(window[STATE_KEY])
|
|
}
|
|
|
|
router.onReady(() => {
|
|
registerBeforeResolve()
|
|
app.$mount('#app')
|
|
})
|
|
|
|
function registerBeforeResolve () {
|
|
router.afterEach(async (to, from) => {
|
|
Vue.nextTick(() => {
|
|
for (const matchedRoute of to.matched) {
|
|
const componentsInstances = Object.values(matchedRoute.instances)
|
|
.filter(Boolean)
|
|
const matchedComponentsAndChildren = componentsInstances
|
|
.reduce((acc, matchedComponent) => {
|
|
const componentAndItsChildren = getComponentAndItsChildren(matchedComponent)
|
|
acc = acc.concat(componentAndItsChildren)
|
|
return acc
|
|
}, [])
|
|
matchedComponentsAndChildren.map(component => {
|
|
if (typeof component.asyncData === 'function') {
|
|
return component.$nextTick(() => component.asyncData())
|
|
}
|
|
})
|
|
}
|
|
})
|
|
})
|
|
}
|
|
|
|
function getComponentAndItsChildren (component, result?) {
|
|
if (!result) {
|
|
result = []
|
|
}
|
|
if (!result.includes(component)) {
|
|
result.push(component)
|
|
}
|
|
const children = Object.values(component.$children)
|
|
// Parent component is also presents in components object
|
|
.filter(x => x !== component)
|
|
children.forEach(x => getComponentAndItsChildren(x, result))
|
|
|
|
return result
|
|
}
|