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);