diff options
-rw-r--r-- | src-vue/src/components/PlayButton.vue | 49 | ||||
-rw-r--r-- | src-vue/src/views/PlayView.vue | 31 |
2 files changed, 54 insertions, 26 deletions
diff --git a/src-vue/src/components/PlayButton.vue b/src-vue/src/components/PlayButton.vue new file mode 100644 index 00000000..0cb75c94 --- /dev/null +++ b/src-vue/src/components/PlayButton.vue @@ -0,0 +1,49 @@ +<script lang="ts"> +import { NorthstarState } from '../utils/NorthstarState'; + +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 ""; + } + } + }, + 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> +</template> + +<style scoped> +.fc_launch__button:focus { + background-color: var(--el-color-primary); + border-color: var(--el-color-primary); +} +</style> diff --git a/src-vue/src/views/PlayView.vue b/src-vue/src/views/PlayView.vue index 03f54936..5042a127 100644 --- a/src-vue/src/views/PlayView.vue +++ b/src-vue/src/views/PlayView.vue @@ -1,7 +1,7 @@ <script lang="ts"> import { ElNotification } from 'element-plus'; -import { NorthstarState } from '../utils/NorthstarState'; import {Tabs} from "../utils/Tabs"; +import PlayButton from '../components/PlayButton.vue'; export default { data() { @@ -9,6 +9,9 @@ export default { developerModeClicks: 0 } }, + components: { + PlayButton + }, computed: { northstarIsRunning(): boolean { return this.$store.state.northstar_is_running; @@ -16,24 +19,6 @@ export default { northstarVersion(): string { return this.$store.state.installed_northstar_version; }, - 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"; - } - } }, methods: { activateDeveloperMode() { @@ -52,10 +37,6 @@ export default { showChangelogPage() { this.$store.commit('updateCurrentTab', Tabs.CHANGELOG); - }, - - launchGame() { - this.$store.commit('launchGame'); } } }; @@ -73,9 +54,7 @@ export default { </div> </div> <div> - <el-button :disabled="northstarIsRunning" type="primary" size="large" @click="launchGame" class="fc_launch__button"> - {{ playButtonLabel }} - </el-button> + <PlayButton/> <div v-if="$store.state.developer_mode" id="fc_services__status"> <div> <div class="fc_version__line">Northstar is running: </div> |