diff --git a/packages/@core-js/src/Wallet.ts b/packages/@core-js/src/Wallet.ts
index 5f6fb988b..726128113 100644
--- a/packages/@core-js/src/Wallet.ts
+++ b/packages/@core-js/src/Wallet.ts
@@ -180,7 +180,7 @@ export class Wallet {
const timestamp = await this.storage.getItem('lastBackupTimestamp');
if (timestamp !== null) {
- this.state.set({ lastBackupTimestamp: timestamp });
+ this.state.set({ lastBackupTimestamp: Number(timestamp) });
}
}
diff --git a/packages/mobile/src/core/Settings/Settings.tsx b/packages/mobile/src/core/Settings/Settings.tsx
index cca74d67c..5c6d8a41c 100644
--- a/packages/mobile/src/core/Settings/Settings.tsx
+++ b/packages/mobile/src/core/Settings/Settings.tsx
@@ -285,48 +285,52 @@ export const Settings: FC = () => {
/>
-
- {shouldShowTokensButton && (
-
+
+ {shouldShowTokensButton && (
+
+ }
+ title={t('settings_jettons_list')}
+ onPress={handleManageTokens}
/>
- }
- title={t('settings_jettons_list')}
- onPress={handleManageTokens}
- />
- )}
- {hasSubscriptions && (
-
+ }
+ title={t('settings_subscriptions')}
+ onPress={handleSubscriptions}
/>
- }
- title={t('settings_subscriptions')}
- onPress={handleSubscriptions}
- />
- )}
- {isAppearanceVisible && (
-
+ }
+ title={t('settings_appearance')}
+ onPress={handleAppearance}
/>
- }
- title={t('settings_appearance')}
- onPress={handleAppearance}
- />
- )}
-
-
+ )}
+
+
+ >
+ )}
{!!wallet && showNotifications && (
{
const { words } = useParams<{ words: { index: number; word: string }[] }>();
@@ -60,7 +69,7 @@ export const BackupCheckPhraseScreen = memo(() => {
return (
- {
))}
+
+
-
+
);
});
-const styles = Steezy.create({
+const styles = Steezy.create(({ colors }) => ({
input: {
paddingLeft: 50,
},
@@ -116,4 +127,10 @@ const styles = Steezy.create({
scrollViewContnet: {
paddingHorizontal: 32,
},
-});
+ keyboardAccessory: {
+ paddingHorizontal: 32,
+ paddingBottom: 32,
+ paddingTop: 16,
+ backgroundColor: colors.backgroundPage,
+ },
+}));
diff --git a/packages/uikit/src/components/KeyboardAccessoryView.tsx b/packages/uikit/src/components/KeyboardAccessoryView.tsx
new file mode 100644
index 000000000..a3c79c767
--- /dev/null
+++ b/packages/uikit/src/components/KeyboardAccessoryView.tsx
@@ -0,0 +1,42 @@
+import Animated, { useAnimatedStyle } from 'react-native-reanimated';
+import { useSafeAreaInsets } from 'react-native-safe-area-context';
+import { useReanimatedKeyboardHeight } from '../utils/keyboard';
+import { StyleProp } from '@bogoslavskiy/react-native-steezy';
+import { ViewStyle, StyleSheet } from 'react-native';
+import { View } from './View';
+import { memo } from 'react';
+
+interface KeyboardAccessoryViewProps {
+ style?: StyleProp;
+ children: React.ReactNode;
+ height: number;
+}
+
+export const KeyboardAccessoryView = memo((props) => {
+ const { children, style, height } = props;
+ const keyboard = useReanimatedKeyboardHeight();
+ const safeArea = useSafeAreaInsets();
+
+ const heightStyle = useAnimatedStyle(
+ () => ({
+ height: keyboard.height.value + height + safeArea.bottom,
+ }),
+ [keyboard.height, height, safeArea.bottom],
+ );
+
+ return (
+
+ {children}
+
+ );
+});
+
+const styles = StyleSheet.create({
+ keyboardAccessory: {
+ position: 'absolute',
+ left: 0,
+ right: 0,
+ bottom: 0,
+ zIndex: 3,
+ },
+});
diff --git a/packages/uikit/src/index.ts b/packages/uikit/src/index.ts
index c575cc97c..2be496584 100644
--- a/packages/uikit/src/index.ts
+++ b/packages/uikit/src/index.ts
@@ -26,6 +26,7 @@ export { SegmentedControl } from './components/SegmentedControl';
export { TransitionOpacity } from './components/TransitionOpacity';
export { Switch } from './components/Switch';
export * from './components/Flash';
+export { KeyboardAccessoryView } from './components/KeyboardAccessoryView';
// Containers
export { HeaderButtonHitSlop } from './containers/Screen/utils/constants';