diff --git a/native/components/version-supported.react.js b/native/components/version-supported.react.js new file mode 100644 --- /dev/null +++ b/native/components/version-supported.react.js @@ -0,0 +1,29 @@ +// @flow + +import * as React from 'react'; + +import { commRustModule } from '../native-modules.js'; +import Alert from '../utils/alert.js'; + +function VersionSupportedChecker(): React.Node { + const checkVersionSupport = React.useCallback(async () => { + try { + const isVersionSupported = await commRustModule.versionSupported(); + if (!isVersionSupported) { + Alert.alert( + 'Your client version is not supported. Please upgrade to the newest version.', + ); + } + } catch (error) { + console.error('Error checking version:', error); + } + }, []); + + React.useEffect(() => { + checkVersionSupport(); + }, [checkVersionSupport]); + + return null; +} + +export default VersionSupportedChecker; diff --git a/native/root.react.js b/native/root.react.js --- a/native/root.react.js +++ b/native/root.react.js @@ -35,6 +35,7 @@ import MessageEditingContextProvider from './chat/message-editing-context-provider.react.js'; import { FeatureFlagsProvider } from './components/feature-flags-provider.react.js'; import PersistedStateGate from './components/persisted-state-gate.js'; +import VersionSupportedChecker from './components/version-supported.react.js'; import ConnectedStatusBar from './connected-status-bar.react.js'; import { SQLiteDataHandler } from './data/sqlite-data-handler.js'; import ErrorBoundary from './error-boundary.react.js'; @@ -284,6 +285,7 @@ +