Рефакторинг

This commit is contained in:
Book Pauk
2020-02-03 16:57:39 +07:00
parent 743a250131
commit 3161247da9

View File

@@ -9,21 +9,14 @@
v-model="selectedTab" v-model="selectedTab"
toggle-color="primary" toggle-color="primary"
no-caps unelevated no-caps unelevated
:options="[ :options="buttons"
{label: 'Общее', value: 'common'},
{label: 'Клавиатура', value: 'hotkeys'},
{label: 'Мышь/тачскрин', value: 'mouse'},
{label: 'История версий', value: 'releases'},
{label: 'Помочь проекту', value: 'donate'}
]"
/> />
<div class="separator"></div> <div class="separator"></div>
<CommonHelpPage v-if="selectedTab == 'common'" class="col"></CommonHelpPage> <keep-alive>
<HotkeysHelpPage v-if="selectedTab == 'hotkeys'" class="col"></HotkeysHelpPage> <component ref="page" class="col" :is="activePage"
<MouseHelpPage v-if="selectedTab == 'mouse'" class="col"></MouseHelpPage> ></component>
<VersionHistoryPage v-if="selectedTab == 'releases'" class="col"></VersionHistoryPage> </keep-alive>
<DonateHelpPage v-if="selectedTab == 'donate'" class="col"></DonateHelpPage>
</div> </div>
</Window> </Window>
</template> </template>
@@ -37,32 +30,54 @@ import Window from '../../share/Window.vue';
import CommonHelpPage from './CommonHelpPage/CommonHelpPage.vue'; import CommonHelpPage from './CommonHelpPage/CommonHelpPage.vue';
import HotkeysHelpPage from './HotkeysHelpPage/HotkeysHelpPage.vue'; import HotkeysHelpPage from './HotkeysHelpPage/HotkeysHelpPage.vue';
import MouseHelpPage from './MouseHelpPage/MouseHelpPage.vue'; import MouseHelpPage from './MouseHelpPage/MouseHelpPage.vue';
import DonateHelpPage from './DonateHelpPage/DonateHelpPage.vue';
import VersionHistoryPage from './VersionHistoryPage/VersionHistoryPage.vue'; import VersionHistoryPage from './VersionHistoryPage/VersionHistoryPage.vue';
import DonateHelpPage from './DonateHelpPage/DonateHelpPage.vue';
const pages = {
'CommonHelpPage': CommonHelpPage,
'HotkeysHelpPage': HotkeysHelpPage,
'MouseHelpPage': MouseHelpPage,
'VersionHistoryPage': VersionHistoryPage,
'DonateHelpPage': DonateHelpPage,
};
const tabs = [
['CommonHelpPage', 'Общее'],
['HotkeysHelpPage', 'Клавиатура'],
['MouseHelpPage', 'Мышь/тачскрин'],
['VersionHistoryPage', 'История версий'],
['DonateHelpPage', 'Помочь проекту'],
];
export default @Component({ export default @Component({
components: { components: Object.assign({ Window }, pages),
Window,
CommonHelpPage,
HotkeysHelpPage,
MouseHelpPage,
DonateHelpPage,
VersionHistoryPage,
},
}) })
class HelpPage extends Vue { class HelpPage extends Vue {
selectedTab = 'common'; selectedTab = 'CommonHelpPage';
close() { close() {
this.$emit('help-toggle'); this.$emit('help-toggle');
} }
get activePage() {
if (pages[this.selectedTab])
return pages[this.selectedTab];
return null;
}
get buttons() {
let result = [];
for (const tab of tabs)
result.push({label: tab[1], value: tab[0]});
return result;
}
activateDonateHelpPage() { activateDonateHelpPage() {
this.selectedTab = 'donate'; this.selectedTab = 'DonateHelpPage';
} }
activateVersionHistoryHelpPage() { activateVersionHistoryHelpPage() {
this.selectedTab = 'releases'; this.selectedTab = 'VersionHistoryPage';
} }
keyHook(event) { keyHook(event) {