blob: cc6eb9f24b985748c35e1bc93a77953e4c2ca70d (
plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
|
<script lang="ts">
import { NorthstarState } from '../utils/NorthstarState';
import { ReleaseCanal } from '../utils/ReleaseCanal';
export default {
name: 'PlayButton',
data() {},
computed: {
playButtonLabel(): string {
if (this.$store.state.northstar_is_running) {
return "Game is running";
}
switch(this.$store.state.northstar_state) {
case NorthstarState.INSTALL:
return "Install";
case NorthstarState.INSTALLING:
return "Installing..."
case NorthstarState.MUST_UPDATE:
return "Update";
case NorthstarState.UPDATING:
return "Updating...";
case NorthstarState.READY_TO_PLAY:
return "Launch game";
default:
return "";
}
},
options(): {key: string, value: string}[] {
return Object.keys(ReleaseCanal).map(function (v) {
return {
key: v,
value: ReleaseCanal[v]
}
});
}
},
methods: {
launchGame() {
this.$store.commit('launchGame');
}
}
};
</script>
<template>
<el-button :disabled="northstarIsRunning" type="primary" size="large" @click="launchGame" class="fc_launch__button">
{{ playButtonLabel }}
</el-button>
<el-select
v-model="$store.state.release_canal"
filterable
placeholder="Select release canal"
style="width: 240px"
>
<el-option
v-for="item in options"
:key="item.key"
:label="item.value"
:value="item.value"
/>
</el-select>
</template>
<style scoped>
.fc_launch__button:focus {
background-color: var(--el-color-primary);
border-color: var(--el-color-primary);
}
</style>
|