From 88b31d4e207855dad8f0451d8a442b2edecd4e49 Mon Sep 17 00:00:00 2001 From: purocean Date: Sun, 31 Oct 2021 12:22:28 +0800 Subject: [PATCH] =?UTF-8?q?feat:=20=E8=8E=B7=E5=8F=96=E7=9B=AE=E5=BD=95?= =?UTF-8?q?=E6=A0=91=E5=87=BA=E9=94=99=E5=A2=9E=E5=8A=A0=E9=94=99=E8=AF=AF?= =?UTF-8?q?=E6=8F=90=E7=A4=BA?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/renderer/components/Setting.vue | 3 +- .../plugins/status-bar-repository-switch.ts | 2 +- src/renderer/services/tree.ts | 29 +++++++++++++++---- src/renderer/support/store.ts | 14 --------- 4 files changed, 27 insertions(+), 21 deletions(-) diff --git a/src/renderer/components/Setting.vue b/src/renderer/components/Setting.vue index 361d25ff..aaeb13fd 100644 --- a/src/renderer/components/Setting.vue +++ b/src/renderer/components/Setting.vue @@ -17,6 +17,7 @@ import * as api from '@fe/support/api' import { useToast } from '@fe/support/ui/toast' import { getThemeName, setTheme } from '@fe/services/theme' import { fetchSettings, getSchema, writeSettings } from '@fe/services/setting' +import { refreshRepo } from '@fe/services/tree' JSONEditor.defaults.language = 'zh' JSONEditor.defaults.languages.zh = { ...JSONEditor.defaults.languages.en } @@ -99,7 +100,7 @@ export default defineComponent({ } await writeSettings({ ...value }) - store.dispatch('fetchRepositories') + refreshRepo() } emit('close') } diff --git a/src/renderer/plugins/status-bar-repository-switch.ts b/src/renderer/plugins/status-bar-repository-switch.ts index dcd2a92a..a1e6c77c 100644 --- a/src/renderer/plugins/status-bar-repository-switch.ts +++ b/src/renderer/plugins/status-bar-repository-switch.ts @@ -60,7 +60,7 @@ export default { }) whenEditorReady().then(initRepo) - store.dispatch('fetchRepositories') + ctx.tree.refreshRepo() store.watch(() => store.state.repositories, ctx.statusBar.refreshMenu) store.watch(() => store.state.currentRepo, ctx.statusBar.refreshMenu) diff --git a/src/renderer/services/tree.ts b/src/renderer/services/tree.ts index 4fedf591..3a4af6d7 100644 --- a/src/renderer/services/tree.ts +++ b/src/renderer/services/tree.ts @@ -1,7 +1,9 @@ import type { Ref } from 'vue' import type { Components } from '@fe/types' +import { registerAction } from '@fe/core/action' import store from '@fe/support/store' -import { registerAction } from '../core/action' +import { useToast } from '@fe/support/ui/toast' +import * as api from '@fe/support/api' export type MenuItem = Components.ContextMenu.Item export type VueCtx = { localMarked: Ref } @@ -36,16 +38,33 @@ export function getContextMenuItems (node: Components.Tree.Node, vueCtx: VueCtx) /** * 刷新目录树 */ -export function refreshTree () { - store.dispatch('fetchTree') +export async function refreshTree () { + const repo = store.state.currentRepo + if (!repo) { + console.warn('未选择仓库') + return + } + + try { + const tree = await api.fetchTree(repo.name) + store.commit('setTree', tree) + } catch (error: any) { + useToast().show('warning', error.message) + } } /** * 刷新仓库 */ -export function refreshRepo () { +export async function refreshRepo () { refreshTree() - store.dispatch('fetchRepositories') + + try { + const repos = await api.fetchRepositories() + store.commit('setRepositories', repos) + } catch (error: any) { + useToast().show('warning', error.message) + } } registerAction({ name: 'tree.refresh', handler: refreshTree }) diff --git a/src/renderer/support/store.ts b/src/renderer/support/store.ts index 0dc53dea..a2e1fc6f 100644 --- a/src/renderer/support/store.ts +++ b/src/renderer/support/store.ts @@ -110,19 +110,5 @@ export default createStore({ const files = await api.fetchMarkedFiles() commit('setMarkedFiles', files) }, - async fetchRepositories ({ commit }) { - const repos = await api.fetchRepositories() - commit('setRepositories', repos) - }, - async fetchTree ({ commit, state }) { - const repo = state.currentRepo - if (!repo) { - console.warn('未选择仓库') - return - } - - const tree = await api.fetchTree(repo.name) - commit('setTree', tree) - }, } })