diff --git a/src/containers/SideBar/components/Settings.tsx b/src/containers/SideBar/components/Settings.tsx index 8ae42d175..a347bb55e 100644 --- a/src/containers/SideBar/components/Settings.tsx +++ b/src/containers/SideBar/components/Settings.tsx @@ -21,7 +21,7 @@ import { invoke } from '@tauri-apps/api/tauri'; import { useGetApplicatonsVersions } from '../../../hooks/useGetApplicatonsVersions'; const Settings: React.FC = () => { - const { refreshVersions, applicationsVersions } = + const { refreshVersions, applicationsVersions, mainAppVersion } = useGetApplicatonsVersions(); const [open, setOpen] = useState(false); const [formState, setFormState] = useState({ field1: '', field2: '' }); @@ -190,6 +190,7 @@ const Settings: React.FC = () => { + mainApp: {mainAppVersion} {Object.entries(applicationsVersions).map( ([key, value]) => ( diff --git a/src/hooks/useGetApplicatonsVersions.ts b/src/hooks/useGetApplicatonsVersions.ts index 48c6b1051..f57fa32c7 100644 --- a/src/hooks/useGetApplicatonsVersions.ts +++ b/src/hooks/useGetApplicatonsVersions.ts @@ -2,6 +2,7 @@ import { useCallback, useEffect } from 'react'; import { useAppStatusStore } from '../store/useAppStatusStore'; import { invoke } from '@tauri-apps/api'; import { ApplicationsVersions } from '../types/app-status'; +import { getVersion } from '@tauri-apps/api/app'; export const getApplicationsVersions = async () => { invoke('get_applications_versions') @@ -20,6 +21,19 @@ export const useGetApplicatonsVersions = () => { (state) => state.applications_versions ); + const mainAppVersion = useAppStatusStore((state) => state.main_app_version); + const setMainAppVersion = useAppStatusStore( + (state) => state.setMainAppVersion + ); + + useEffect(() => { + if (!mainAppVersion) { + getVersion().then((version) => { + setMainAppVersion(version); + }); + } + }, [mainAppVersion]); + useEffect(() => { if (!applicationsVersions) { getApplicationsVersions(); @@ -40,5 +54,5 @@ export const useGetApplicatonsVersions = () => { getApplicationsVersions(); }, []); - return { applicationsVersions, refreshVersions }; + return { applicationsVersions, mainAppVersion, refreshVersions }; }; diff --git a/src/store/useAppStatusStore.ts b/src/store/useAppStatusStore.ts index 49e98ef58..443123f67 100644 --- a/src/store/useAppStatusStore.ts +++ b/src/store/useAppStatusStore.ts @@ -10,6 +10,7 @@ interface Actions { ) => void; setMode: (mode: modeType) => void; setConfigMode: (mode: modeType) => void; + setMainAppVersion: (mainAppVersion: string) => void; } type AppStatusStoreState = AppStatus & Actions; @@ -19,6 +20,7 @@ const initialState: AppStatus = { wallet_balance: undefined, mode: 'Eco', auto_mining: false, + main_app_version: undefined, }; export const useAppStatusStore = create()( persist( @@ -27,6 +29,7 @@ export const useAppStatusStore = create()( setAppStatus: (appStatus) => set({ ...appStatus }), setApplicationsVersions: (applications_versions) => set({ applications_versions }), + setMainAppVersion: (main_app_version) => set({ main_app_version }), setMode: (mode) => set({ mode }), setConfigMode: async (mode: modeType) => { try { diff --git a/src/types/app-status.ts b/src/types/app-status.ts index 47a036aee..f5dfcdc12 100644 --- a/src/types/app-status.ts +++ b/src/types/app-status.ts @@ -5,6 +5,7 @@ export interface AppStatus { base_node?: BaseNodeStatus; wallet_balance?: WalletBalance; applications_versions?: ApplicationsVersions; + main_app_version?: string; mode: modeType; auto_mining: boolean; }