generated from kevisual/vite-react-template
feat: 更新页面标题和图标,添加远端配置保存与加载功能
This commit is contained in:
@@ -1,4 +1,4 @@
|
||||
import { useEffect, useMemo, useState } from 'react'
|
||||
import { use, useEffect, useMemo, useState } from 'react'
|
||||
import { useRepoStore } from './store/index'
|
||||
import { useShallow } from 'zustand/shallow'
|
||||
import { RepoCard } from './components/RepoCard'
|
||||
@@ -11,6 +11,8 @@ import { Input } from '@/components/ui/input'
|
||||
import { ExternalLinkIcon, Plus, RefreshCw, Search, Settings } from 'lucide-react'
|
||||
import Fuse from 'fuse.js'
|
||||
import { useNavigate } from '@tanstack/react-router'
|
||||
import { useLayoutStore } from '../auth/store'
|
||||
import { useConfigStore } from '../config/store'
|
||||
|
||||
export const App = () => {
|
||||
const { list, refresh, loading, workspaceList, setShowCreateDialog } = useRepoStore(useShallow((state) => ({
|
||||
@@ -22,9 +24,17 @@ export const App = () => {
|
||||
})))
|
||||
const [searchQuery, setSearchQuery] = useState('')
|
||||
const navigate = useNavigate();
|
||||
const me = useLayoutStore(state => state.me)
|
||||
const configStore = useConfigStore(useShallow(state => ({ checkConfig: state.checkConfig })))
|
||||
useEffect(() => {
|
||||
refresh({ showTips: false })
|
||||
}, [])
|
||||
useEffect(() => {
|
||||
if (me && me.id) {
|
||||
configStore.checkConfig({ isUser: true, reload: true })
|
||||
}
|
||||
}, [me])
|
||||
|
||||
|
||||
const appList = useMemo(() => {
|
||||
// 首先按活动状态排序
|
||||
|
||||
@@ -5,6 +5,7 @@ import { cnb } from '@/agents/app'
|
||||
import { WorkspaceInfo } from '@kevisual/cnb'
|
||||
import { createBuildConfig, createCommitBlankConfig, createDevConfig } from './build';
|
||||
import { useLayoutStore } from '@/pages/auth/store';
|
||||
import { useConfigStore } from '@/pages/config/store';
|
||||
interface DisplayModule {
|
||||
activity: boolean;
|
||||
contributors: boolean;
|
||||
@@ -312,6 +313,8 @@ export const useRepoStore = create<State>((set, get) => {
|
||||
},
|
||||
refresh: async (opts?: { message?: string, showTips?: boolean, search?: string }) => {
|
||||
const getList = get().getList({ search: opts?.search }, true);
|
||||
|
||||
|
||||
const getWorkspaceList = get().getWorkspaceList();
|
||||
await Promise.all([getList, getWorkspaceList]);
|
||||
if (opts?.showTips !== false) {
|
||||
|
||||
Reference in New Issue
Block a user