6
6
class =" vertical small-indicator left-indicator primary"
7
7
indicator
8
8
>
9
- <VueGroupButton
9
+ <ProjectNavButton
10
10
v-for =" route of routes"
11
- :key =" route.name"
12
- class =" flat big icon-button"
13
- :value =" route.name"
14
- :icon-left =" route.icon"
15
- v-tooltip.right =" $t(route.tooltip)"
11
+ :key =" route.id"
12
+ :route =" route"
16
13
/>
17
14
</VueGroup >
18
15
</div >
23
20
import { isSameRoute , isIncludedRoute } from ' ../util/route'
24
21
25
22
import ROUTES from ' ../graphql/routes.gql'
23
+ import ROUTE_ADDED from ' ../graphql/routeAdded.gql'
24
+ import ROUTE_REMOVED from ' ../graphql/routeRemoved.gql'
25
+ import ROUTE_CHANGED from ' ../graphql/routeChanged.gql'
26
26
27
27
export default {
28
28
data () {
@@ -34,7 +34,47 @@ export default {
34
34
apollo: {
35
35
routes: {
36
36
query: ROUTES ,
37
- fetchPolicy: ' cache-and-network'
37
+ fetchPolicy: ' cache-and-network' ,
38
+ subscribeToMore: [
39
+ {
40
+ document : ROUTE_ADDED ,
41
+ updateQuery : (previousResult , { subscriptionData }) => {
42
+ const route = subscriptionData .data .routeAdded
43
+ if (previousResult .routes .find (r => r .id === route .id )) return previousResult
44
+ return {
45
+ routes: [
46
+ ... previousResult .routes ,
47
+ route
48
+ ]
49
+ }
50
+ }
51
+ },
52
+ {
53
+ document : ROUTE_REMOVED ,
54
+ updateQuery : (previousResult , { subscriptionData }) => {
55
+ const index = previousResult .routes .findIndex (r => r .id === subscriptionData .data .routeRemoved .id )
56
+ if (index === - 1 ) return previousResult
57
+ const routes = previousResult .routes .slice ()
58
+ routes .splice (index, 1 )
59
+ return {
60
+ routes
61
+ }
62
+ }
63
+ },
64
+ {
65
+ document : ROUTE_CHANGED ,
66
+ updateQuery : (previousResult , { subscriptionData }) => {
67
+ const route = subscriptionData .data .routeChanged
68
+ const index = previousResult .routes .findIndex (r => r .id === route .id )
69
+ if (index === - 1 ) return previousResult
70
+ const routes = previousResult .routes .slice ()
71
+ routes .splice (index, 1 , route)
72
+ return {
73
+ routes
74
+ }
75
+ }
76
+ }
77
+ ]
38
78
}
39
79
},
40
80
@@ -69,7 +109,7 @@ export default {
69
109
>>> .vue-ui-button
70
110
button-colors (rgba ($vue-ui-color-light, .7 ), transparent )
71
111
border-radius 0
72
- & :hover
112
+ & :hover , & :active
73
113
$bg = darken ($vue-ui-color-dark , 70% )
74
114
button-colors ($vue-ui-color-light , $bg )
75
115
& .selected
0 commit comments