diff --git a/apps/mobile/initializer.root.js b/apps/mobile/initializer.root.js index 1be07c9d0..266442dcd 100644 --- a/apps/mobile/initializer.root.js +++ b/apps/mobile/initializer.root.js @@ -1,38 +1,39 @@ import { activateKeepAwake, - deactivateKeepAwake, + deactivateKeepAwake } from '@sayem314/react-native-keep-awake'; -import React, {useCallback, useEffect, useState} from 'react'; -import {Dimensions, View} from 'react-native'; +import React, { useCallback, useEffect, useState } from 'react'; +import { Dimensions, View } from 'react-native'; import ScrollableTabView from 'react-native-scrollable-tab-view'; -import {notesnook} from './e2e/test.ids'; +import { notesnook } from './e2e/test.ids'; import ContextMenu from './src/components/ContextMenu'; -import {DialogManager} from './src/components/DialogManager'; -import {DummyText} from './src/components/DummyText'; -import {Menu} from './src/components/Menu'; -import {Toast} from './src/components/Toast'; -import {NavigationStack} from './src/navigation/Drawer'; -import {NavigatorStack} from './src/navigation/NavigatorStack'; -import {useTracked} from './src/provider'; -import {Actions} from './src/provider/Actions'; -import {DDS} from './src/services/DeviceDetection'; +import { DialogManager } from './src/components/DialogManager'; +import { DummyText } from './src/components/DummyText'; +import { Menu } from './src/components/Menu'; +import Splash from './src/components/SplashScreen'; +import { Toast } from './src/components/Toast'; +import { NavigationStack } from './src/navigation/Drawer'; +import { NavigatorStack } from './src/navigation/NavigatorStack'; +import { useTracked } from './src/provider'; +import { Actions } from './src/provider/Actions'; +import { DDS } from './src/services/DeviceDetection'; import { eSendEvent, eSubscribeEvent, - eUnSubscribeEvent, + eUnSubscribeEvent } from './src/services/EventManager'; -import {editing, setWidthHeight} from './src/utils'; +import { editing, setWidthHeight } from './src/utils'; import { eClearEditor, eCloseFullscreenEditor, eCloseSideMenu, eOnLoadNote, eOpenFullscreenEditor, - eOpenSideMenu, + eOpenSideMenu } from './src/utils/Events'; -import {editorRef, tabBarRef} from './src/utils/Refs'; -import {EditorWrapper} from './src/views/Editor/EditorWrapper'; -import {EditorWebView, getNote, post} from './src/views/Editor/Functions'; +import { editorRef, tabBarRef } from './src/utils/Refs'; +import { EditorWrapper } from './src/views/Editor/EditorWrapper'; +import { EditorWebView, getNote } from './src/views/Editor/Functions'; import tiny from './src/views/Editor/tiny/tiny'; let {width, height} = Dimensions.get('window'); let layoutTimer = null; @@ -74,6 +75,7 @@ export const RootView = React.memo( + ); }, diff --git a/apps/mobile/src/assets/images/assets.js b/apps/mobile/src/assets/images/assets.js index b786e7258..05172f2db 100644 --- a/apps/mobile/src/assets/images/assets.js +++ b/apps/mobile/src/assets/images/assets.js @@ -15,4 +15,623 @@ export const SETTINGS_SVG = (color) => `` -export const LOGO_BASE64 = `data:image/png;base64,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` \ No newline at end of file +export const LOGO_BASE64 = `data:image/png;base64,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` + +export const RICH_TEXT_SVG = (color) => ` + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +` + +export const SYNC_SVG = (color) => ` + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +` + +export const ORGANIZE_SVG = (color) => ` + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +` + +export const EXPORT_SVG = (color) => ` + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +` + +export const BACKUP_SVG = (color) => ` + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +` + +export const LOGO_SVG = ` + + + + + + + + + + + + + + + + + + + + image/svg+xml + + + + + + + + + + + + + + N + + + + + +` \ No newline at end of file diff --git a/apps/mobile/src/assets/images/notesnook-logo-png.png b/apps/mobile/src/assets/images/notesnook-logo-png.png new file mode 100644 index 000000000..57eeb66ee Binary files /dev/null and b/apps/mobile/src/assets/images/notesnook-logo-png.png differ diff --git a/apps/mobile/src/components/SplashScreen/index.js b/apps/mobile/src/components/SplashScreen/index.js new file mode 100644 index 000000000..910aefa8b --- /dev/null +++ b/apps/mobile/src/components/SplashScreen/index.js @@ -0,0 +1,231 @@ +import React, {useEffect, useRef, useState} from 'react'; +import {Image} from 'react-native'; +import {View} from 'react-native'; +import Animated, {Easing, timing, useValue} from 'react-native-reanimated'; +import Carousel from 'react-native-snap-carousel'; +import {SvgXml} from 'react-native-svg'; +import {NOTE_SVG, LOGO_SVG, SYNC_SVG} from '../../assets/images/assets'; +import {useTracked} from '../../provider'; +import {eSendEvent} from '../../services/EventManager'; +import {dHeight, dWidth, getElevation} from '../../utils'; +import {eOpenLoginDialog} from '../../utils/Events'; +import {SIZE} from '../../utils/SizeUtils'; +import Storage from '../../utils/storage'; +import {sleep} from '../../utils/TimeUtils'; +import {Button} from '../Button'; +import Heading from '../Typography/Heading'; +import Paragraph from '../Typography/Paragraph'; + +const SplashScreen = () => { + const [state, dispatch] = useTracked(); + const {colors} = state; + const [visible, setVisible] = useState(false); + const carouselRef = useRef(); + const [isNext, setIsNext] = useState(true); + const opacity = useValue(0); + const translateY = useValue(20); + const translateY2 = useValue(0); + const features = [ + { + title: 'Notesnook', + description: 'A safe place to write and get organized.', + icon: require('../../assets/images/notesnook-logo-png.png'), + type: 'image', + }, + { + title: 'Zero Knowledge', + description: 'Write without fear, no tracking.', + icon: SYNC_SVG, + }, + { + title: 'Zero Knowledge', + description: + 'No sneaking, no stealing. We give all the keys for your data to you. Privacy is not just a word to us. We use industry-grade XChaChaPoly1305 and Argon2 which is miles ahead other solutions making sure your data is secure and private even a million years from now.', + }, + ]; + + useEffect(() => { + Storage.read('introCompleted').then((r) => { + if (!r) { + setVisible(true); + timing(opacity, { + toValue: 1, + duration: 500, + easing: Easing.in(Easing.ease), + }).start(); + timing(translateY, { + toValue: 0, + duration: 500, + easing: Easing.in(Easing.ease), + }).start(); + } + }); + }, []); + + const hide = async () => { + timing(translateY2, { + toValue: dHeight * 2, + duration: 500, + easing: Easing.in(Easing.ease), + }).start(); + await sleep(500); + setVisible(false); + }; + + return ( + visible && ( + + + + { + setIsNext(false); + }} + renderItem={({item, index}) => ( + + + {item.type === 'image' ? ( + + ) : ( + + )} + + {item.title && ( + + {item.title} + + )} + + {item.description && ( + + {item.description} + + )} + + + )} + /> + + + + {isNext ? ( + + ) : ( +