diff --git a/apps/mobile/.vscode/settings.json b/apps/mobile/.vscode/settings.json
new file mode 100644
index 000000000..0967ef424
--- /dev/null
+++ b/apps/mobile/.vscode/settings.json
@@ -0,0 +1 @@
+{}
diff --git a/apps/mobile/App.js b/apps/mobile/App.js
index de7fcb507..4263ed49e 100644
--- a/apps/mobile/App.js
+++ b/apps/mobile/App.js
@@ -1,7 +1,7 @@
import React, { useEffect } from 'react';
import Orientation from 'react-native-orientation';
import { SafeAreaProvider } from 'react-native-safe-area-context';
-import AppLoader from './src/components/AppLoader';
+import Launcher from './src/components/launcher';
import { RootView } from './src/navigation/RootView';
import { useTracked } from './src/provider';
import { initialize, useSettingStore, useUserStore } from './src/provider/stores';
@@ -10,11 +10,10 @@ import { eSendEvent, eSubscribeEvent, eUnSubscribeEvent } from './src/services/E
import Notifications from './src/services/Notifications';
import SettingsService from './src/services/SettingsService';
import { TipManager } from './src/services/tip-manager';
-import { Tracker } from './src/utils';
import { db } from './src/utils/database';
-import { eDispatchAction } from './src/utils/Events';
-import { MMKV } from './src/utils/mmkv';
-import { useAppEvents } from './src/utils/use-app-events';
+import { eDispatchAction } from './src/utils/events';
+import { useAppEvents } from './src/utils/hooks/use-app-events';
+import { MMKV } from './src/utils/database/mmkv';
let databaseHasLoaded = false;
@@ -78,9 +77,6 @@ const App = () => {
await TipManager.init();
await loadDatabase();
useUserStore.getState().setUser(await db.user.getUser());
- if (SettingsService.get().telemetry) {
- Tracker.record('3c6890ce-8410-49d5-8831-15fb2eb28a21');
- }
} catch (e) {
} finally {
databaseHasLoaded = true;
@@ -103,7 +99,7 @@ const App = () => {
return (
-
+
);
};
diff --git a/apps/mobile/share/index.js b/apps/mobile/share/index.js
index 5826465d8..a7d86a336 100644
--- a/apps/mobile/share/index.js
+++ b/apps/mobile/share/index.js
@@ -28,8 +28,8 @@ import isURL from 'validator/lib/isURL';
import { eSendEvent, eSubscribeEvent, eUnSubscribeEvent } from '../src/services/EventManager';
import { getElevation } from '../src/utils';
import { db } from '../src/utils/database';
-import Storage from '../src/utils/storage';
-import { sleep } from '../src/utils/TimeUtils';
+import Storage from '../src/utils/database/storage';
+import { sleep } from '../src/utils/time';
import { Search } from './search';
import { useShareStore } from './store';
diff --git a/apps/mobile/share/quick-note.js b/apps/mobile/share/quick-note.js
index a2262215b..f47762ed2 100644
--- a/apps/mobile/share/quick-note.js
+++ b/apps/mobile/share/quick-note.js
@@ -1,7 +1,7 @@
import React, { Component } from 'react';
import { Appearance, SafeAreaView } from 'react-native';
import RNBootSplash from 'react-native-bootsplash';
-import { COLOR_SCHEME_DARK, COLOR_SCHEME_LIGHT } from '../src/utils/Colors';
+import { COLOR_SCHEME_DARK, COLOR_SCHEME_LIGHT } from '../src/utils/color-scheme';
import NotesnookShare from './index';
export default class QuickNoteIOS extends Component {
diff --git a/apps/mobile/share/store.js b/apps/mobile/share/store.js
index 1c9d13499..3de7b6525 100644
--- a/apps/mobile/share/store.js
+++ b/apps/mobile/share/store.js
@@ -1,7 +1,7 @@
import { Appearance } from 'react-native';
import create from 'zustand';
-import { ACCENT, COLOR_SCHEME_DARK, COLOR_SCHEME_LIGHT, setAccentColor } from '../src/utils/Colors';
-import { MMKV } from '../src/utils/mmkv';
+import { ACCENT, COLOR_SCHEME_DARK, COLOR_SCHEME_LIGHT } from '../src/utils/color-scheme';
+import { MMKV } from '../src/utils/database/mmkv';
export const useShareStore = create((set, get) => ({
colors: Appearance.getColorScheme() === 'dark' ? COLOR_SCHEME_DARK : COLOR_SCHEME_LIGHT,
diff --git a/apps/mobile/src/components/ActionIcon/index.js b/apps/mobile/src/components/ActionIcon/index.js
deleted file mode 100644
index d429aa2eb..000000000
--- a/apps/mobile/src/components/ActionIcon/index.js
+++ /dev/null
@@ -1,65 +0,0 @@
-import React from 'react';
-import Icon from 'react-native-vector-icons/MaterialCommunityIcons';
-import { useTracked } from '../../provider';
-import { PressableButton } from '../PressableButton';
-import { SIZE } from '../../utils/SizeUtils';
-import { hexToRGBA, RGB_Linear_Shade } from '../../utils/ColorUtils';
-import { showTooltip, TOOLTIP_POSITIONS } from '../../utils';
-
-export const ActionIcon = ({
- onPress,
- name,
- color,
- customStyle,
- size = SIZE.xxl,
- iconStyle = {},
- left = 10,
- right = 10,
- top = 30,
- bottom = 10,
- testID,
- disabled,
- onLongPress,
- tooltipText,
- type = 'gray',
- fwdRef,
- tooltipPosition = TOOLTIP_POSITIONS.TOP
-}) => {
- const [state, dispatch] = useTracked();
- const { colors } = state;
-
- return (
- {
- if (onLongPress) {
- onLongPress();
- return;
- }
- if (tooltipText) {
- showTooltip(event, tooltipText, tooltipPosition);
- }
- }}
- disabled={disabled}
- type={type}
- customStyle={{
- width: 40,
- height: 40,
- justifyContent: 'center',
- alignItems: 'center',
- borderRadius: 100,
- ...customStyle
- }}
- >
-
-
- );
-};
diff --git a/apps/mobile/src/components/AddNotebookDialog/index.js b/apps/mobile/src/components/AddNotebookDialog/index.js
index 84aa49b63..d80146c73 100644
--- a/apps/mobile/src/components/AddNotebookDialog/index.js
+++ b/apps/mobile/src/components/AddNotebookDialog/index.js
@@ -7,17 +7,17 @@ import { DDS } from '../../services/DeviceDetection';
import { eSubscribeEvent, eUnSubscribeEvent, ToastEvent } from '../../services/EventManager';
import Navigation from '../../services/Navigation';
import { db } from '../../utils/database';
-import { eCloseAddNotebookDialog, eOpenAddNotebookDialog } from '../../utils/Events';
-import { ph, pv, SIZE } from '../../utils/SizeUtils';
-import { sleep } from '../../utils/TimeUtils';
-import { ActionIcon } from '../ActionIcon';
-import { Button } from '../Button';
-import DialogHeader from '../Dialog/dialog-header';
-import Input from '../Input';
+import { eCloseAddNotebookDialog, eOpenAddNotebookDialog } from '../../utils/events';
+import { ph, pv, SIZE } from '../../utils/size';
+import { sleep } from '../../utils/time';
+import { IconButton } from '../ui/icon-button';
+import { Button } from '../ui/button';
+import DialogHeader from '../dialog/dialog-header';
+import Input from '../ui/input';
import { MoveNotes } from '../MoveNoteDialog/movenote';
-import Seperator from '../Seperator';
-import SheetWrapper from '../Sheet';
-import { Toast } from '../Toast';
+import Seperator from '../ui/seperator';
+import SheetWrapper from '../ui/sheet';
+import { Toast } from '../toast';
let refs = [];
@@ -477,7 +477,7 @@ const TopicItem = ({ item, index, colors, onPress, onDelete }) => {
justifyContent: 'flex-end'
}}
>
- {
onPress(item, index);
}}
@@ -485,7 +485,7 @@ const TopicItem = ({ item, index, colors, onPress, onDelete }) => {
size={SIZE.lg - 5}
color={colors.icon}
/>
- {
onDelete(index);
}}
diff --git a/apps/mobile/src/components/AddTopicDialog/index.js b/apps/mobile/src/components/AddTopicDialog/index.js
index bedfe4777..6e7662903 100644
--- a/apps/mobile/src/components/AddTopicDialog/index.js
+++ b/apps/mobile/src/components/AddTopicDialog/index.js
@@ -5,15 +5,15 @@ import { useMenuStore } from '../../provider/stores';
import { eSubscribeEvent, eUnSubscribeEvent, ToastEvent } from '../../services/EventManager';
import Navigation from '../../services/Navigation';
import { db } from '../../utils/database';
-import { eCloseAddTopicDialog, eOpenAddTopicDialog } from '../../utils/Events';
-import { sleep } from '../../utils/TimeUtils';
-import BaseDialog from '../Dialog/base-dialog';
-import DialogButtons from '../Dialog/dialog-buttons';
-import DialogContainer from '../Dialog/dialog-container';
-import DialogHeader from '../Dialog/dialog-header';
-import Input from '../Input';
-import Seperator from '../Seperator';
-import { Toast } from '../Toast';
+import { eCloseAddTopicDialog, eOpenAddTopicDialog } from '../../utils/events';
+import { sleep } from '../../utils/time';
+import BaseDialog from '../dialog/base-dialog';
+import DialogButtons from '../dialog/dialog-buttons';
+import DialogContainer from '../dialog/dialog-container';
+import DialogHeader from '../dialog/dialog-header';
+import Input from '../ui/input';
+import Seperator from '../ui/seperator';
+import { Toast } from '../toast';
export class AddTopicDialog extends React.Component {
constructor(props) {
diff --git a/apps/mobile/src/components/Announcements/announcement.js b/apps/mobile/src/components/Announcements/announcement.js
index 9850de779..29a2c408e 100644
--- a/apps/mobile/src/components/Announcements/announcement.js
+++ b/apps/mobile/src/components/Announcements/announcement.js
@@ -2,7 +2,7 @@ import React from 'react';
import { FlatList, View } from 'react-native';
import { useTracked } from '../../provider';
import { useMessageStore, useSelectionStore } from '../../provider/stores';
-import { Button } from '../Button';
+import { Button } from '../ui/button';
import { allowedOnPlatform, renderItem } from './functions';
export const Announcement = ({ color }) => {
diff --git a/apps/mobile/src/components/Announcements/body.js b/apps/mobile/src/components/Announcements/body.js
index 1941527b8..ea2a4b1e0 100644
--- a/apps/mobile/src/components/Announcements/body.js
+++ b/apps/mobile/src/components/Announcements/body.js
@@ -1,6 +1,6 @@
import React from 'react';
import { useTracked } from '../../provider';
-import Paragraph from '../Typography/Paragraph';
+import Paragraph from '../ui/typography/paragraph';
import { getStyle } from './functions';
export const Body = ({ text, style = {} }) => {
diff --git a/apps/mobile/src/components/Announcements/cta.js b/apps/mobile/src/components/Announcements/cta.js
index 3e7dfa0fa..049155c65 100644
--- a/apps/mobile/src/components/Announcements/cta.js
+++ b/apps/mobile/src/components/Announcements/cta.js
@@ -2,14 +2,14 @@ import React from 'react';
import { View } from 'react-native';
import { useTracked } from '../../provider';
import { eSendEvent, presentSheet } from '../../services/EventManager';
-import { eCloseAnnouncementDialog } from '../../utils/Events';
+import { eCloseAnnouncementDialog } from '../../utils/events';
import { openLinkInBrowser } from '../../utils/functions';
-import { SIZE } from '../../utils/SizeUtils';
-import { sleep } from '../../utils/TimeUtils';
+import { SIZE } from '../../utils/size';
+import { sleep } from '../../utils/time';
import SettingsBackupAndRestore from '../../views/Settings/backup-restore';
-import { Button } from '../Button';
-import GeneralSheet from '../GeneralSheet';
-import { PricingPlans } from '../Premium/pricing-plans';
+import { Button } from '../ui/button';
+import SheetProvider from '../sheet-provider';
+import { PricingPlans } from '../premium/pricing-plans';
import { allowedOnPlatform, getStyle } from './functions';
export const Cta = ({ actions, style = {}, color, inline }) => {
@@ -53,7 +53,7 @@ export const Cta = ({ actions, style = {}, color, inline }) => {
...getStyle(style)
}}
>
-
+
{buttons.length > 0 &&
buttons.slice(0, 1).map(item => (