diff --git a/apps/mobile/src/components/sidemenu/colorsection.js b/apps/mobile/src/components/sidemenu/colorsection.js
index 9c1f7648e..81654db80 100644
--- a/apps/mobile/src/components/sidemenu/colorsection.js
+++ b/apps/mobile/src/components/sidemenu/colorsection.js
@@ -13,22 +13,25 @@ import { PressableButton } from '../ui/pressable';
import Heading from '../ui/typography/heading';
import Paragraph from '../ui/typography/paragraph';
-export const ColorSection = () => {
- const colorNotes = useMenuStore(state => state.colorNotes);
- const loading = useNoteStore(state => state.loading);
- const setColorNotes = useMenuStore(state => state.setColorNotes);
+export const ColorSection = React.memo(
+ () => {
+ const colorNotes = useMenuStore(state => state.colorNotes);
+ const loading = useNoteStore(state => state.loading);
+ const setColorNotes = useMenuStore(state => state.setColorNotes);
- useEffect(() => {
- if (!loading) {
- setColorNotes();
- }
- }, [loading]);
+ useEffect(() => {
+ if (!loading) {
+ setColorNotes();
+ }
+ }, [loading]);
- return colorNotes.map((item, index) => {
- let alias = db.colors.alias(item.id);
- return ;
- });
-};
+ return colorNotes.map((item, index) => {
+ let alias = db.colors.alias(item.id);
+ return ;
+ });
+ },
+ () => true
+);
const ColorItem = React.memo(
({ item, index, alias }) => {
diff --git a/apps/mobile/src/components/sidemenu/index.js b/apps/mobile/src/components/sidemenu/index.js
index a60859d4f..616cb820e 100644
--- a/apps/mobile/src/components/sidemenu/index.js
+++ b/apps/mobile/src/components/sidemenu/index.js
@@ -20,7 +20,8 @@ export const SideMenu = React.memo(
const colors = useThemeStore(state => state.colors);
const deviceMode = useSettingStore(state => state.deviceMode);
const insets = useSafeAreaInsets();
- const user = useUserStore(state => state.user);
+ const subscriptionType = useUserStore(state => state.user?.subscription?.type);
+ console.log(subscriptionType);
const noTextMode = false;
const BottomItemsList = [
@@ -98,9 +99,8 @@ export const SideMenu = React.memo(
paddingHorizontal: 12
}}
>
- {!user ||
- user?.subscription?.type === SUBSCRIPTION_STATUS.TRIAL ||
- user?.subscription?.type === SUBSCRIPTION_STATUS.BASIC ? (
+ {subscriptionType === SUBSCRIPTION_STATUS.TRIAL ||
+ subscriptionType === SUBSCRIPTION_STATUS.BASIC ? (
) : null}
diff --git a/apps/mobile/src/components/sidemenu/pinnedsection.js b/apps/mobile/src/components/sidemenu/pinnedsection.js
index 4c48f2879..e50045a04 100644
--- a/apps/mobile/src/components/sidemenu/pinnedsection.js
+++ b/apps/mobile/src/components/sidemenu/pinnedsection.js
@@ -17,94 +17,96 @@ import SheetWrapper from '../ui/sheet';
import Heading from '../ui/typography/heading';
import Paragraph from '../ui/typography/paragraph';
-export const TagsSection = () => {
- const menuPins = useMenuStore(state => state.menuPins);
- const loading = useNoteStore(state => state.loading);
- const setMenuPins = useMenuStore(state => state.setMenuPins);
+export const TagsSection = React.memo(
+ () => {
+ const menuPins = useMenuStore(state => state.menuPins);
+ const loading = useNoteStore(state => state.loading);
+ const setMenuPins = useMenuStore(state => state.setMenuPins);
- useEffect(() => {
- if (!loading) {
- setMenuPins();
- }
- }, [loading]);
+ useEffect(() => {
+ if (!loading) {
+ setMenuPins();
+ }
+ }, [loading]);
- const onPress = item => {
- let params = {};
- if (item.type === 'notebook') {
- params = {
- notebook: item,
- title: item.title,
- menu: true
- };
- eSendEvent(eOnNewTopicAdded, params);
- Navigation.navigate('Notebook', params, {
- heading: item.title,
- id: item.id,
- type: item.type
- });
- } else if (item.type === 'tag') {
- params = {
- ...item,
- type: 'tag',
- menu: true,
- get: 'tagged'
- };
- eSendEvent(refreshNotesPage, params);
- Navigation.navigate('NotesPage', params, {
- heading: '#' + db.tags.alias(item.id),
- id: item.id,
- type: item.type
- });
- } else {
- params = { ...item, menu: true, get: 'topics' };
- eSendEvent(refreshNotesPage, params);
- Navigation.navigate('NotesPage', params, {
- heading: item.title,
- id: item.id,
- type: item.type
- });
- }
- Navigation.closeDrawer();
- };
+ const onPress = item => {
+ let params = {};
+ if (item.type === 'notebook') {
+ params = {
+ notebook: item,
+ title: item.title,
+ menu: true
+ };
+ eSendEvent(eOnNewTopicAdded, params);
+ Navigation.navigate('Notebook', params, {
+ heading: item.title,
+ id: item.id,
+ type: item.type
+ });
+ } else if (item.type === 'tag') {
+ params = {
+ ...item,
+ type: 'tag',
+ menu: true,
+ get: 'tagged'
+ };
+ eSendEvent(refreshNotesPage, params);
+ Navigation.navigate('NotesPage', params, {
+ heading: '#' + db.tags.alias(item.id),
+ id: item.id,
+ type: item.type
+ });
+ } else {
+ params = { ...item, menu: true, get: 'topics' };
+ eSendEvent(refreshNotesPage, params);
+ Navigation.navigate('NotesPage', params, {
+ heading: item.title,
+ id: item.id,
+ type: item.type
+ });
+ }
+ Navigation.closeDrawer();
+ };
+ const renderItem = ({ item, index }) => {
+ let alias = item ? (item.type === 'tag' ? db.tags.alias(item.title) : item.title) : null;
+ return ;
+ };
- const renderItem = ({ item, index }) => {
- let alias = item.type === 'tag' ? db.tags.alias(item.title) : item.title;
- return ;
- };
-
- return (
-
-
- }
- contentContainerStyle={{
- flexGrow: 1
- }}
- keyExtractor={(item, index) => item.id}
- renderItem={renderItem}
- />
-
- );
-};
+ >
+
+ }
+ contentContainerStyle={{
+ flexGrow: 1
+ }}
+ keyExtractor={(item, index) => item.id}
+ renderItem={renderItem}
+ />
+
+ );
+ },
+ () => true
+);
export const PinItem = React.memo(
({ item, index, onPress, placeholder, alias }) => {
const colors = useThemeStore(state => state.colors);
const setMenuPins = useMenuStore(state => state.setMenuPins);
- alias = item.type === 'tag' ? db.tags.alias(item.title) : item.title;
+ alias = !item ? '' : item.type === 'tag' ? db.tags.alias(item.title) : item.title;
const [visible, setVisible] = useState(false);
const [headerTextState, setHeaderTextState] = useState(null);
const color = headerTextState?.id === item.id ? colors.accent : colors.pri;
@@ -238,6 +240,7 @@ export const PinItem = React.memo(
);
},
(prev, next) => {
+ if (!next.item) return false;
if (prev.alias !== next.alias) return false;
if (prev.item?.dateModified !== next.item?.dateModified) return false;
if (prev.item?.id !== next.item?.id) return false;
diff --git a/apps/mobile/src/utils/hooks/useActions.js b/apps/mobile/src/utils/hooks/useActions.js
index 46448e6ab..73c96c259 100644
--- a/apps/mobile/src/utils/hooks/useActions.js
+++ b/apps/mobile/src/utils/hooks/useActions.js
@@ -299,7 +299,6 @@ export const useActions = ({ close = () => {}, item }) => {
try {
if (isPinnedToMenu) {
await db.settings.unpin(item.id);
- return;
} else {
if (item.type === 'topic') {
await db.settings.pin(item.type, {
diff --git a/apps/mobile/src/utils/hooks/useAppEvents.js b/apps/mobile/src/utils/hooks/useAppEvents.js
index 8bd032d12..1a346e982 100644
--- a/apps/mobile/src/utils/hooks/useAppEvents.js
+++ b/apps/mobile/src/utils/hooks/useAppEvents.js
@@ -165,6 +165,7 @@ export const useAppEvents = () => {
};
const onSyncComplete = async () => {
+ console.log('sync complete');
initialize();
setLastSynced(await db.lastSynced());
if (getNote()) {
@@ -219,6 +220,7 @@ export const useAppEvents = () => {
};
const onRequestPartialSync = async (full, force) => {
+ console.log('auto sync request', full, force);
try {
if (full || force) {
Sync.run('global', force, full);