import React, {useEffect, useState} from 'react'; import {TouchableOpacity, useWindowDimensions, View} from 'react-native'; import {useTracked} from '../../provider'; import {useSettingStore} from '../../provider/stores'; import { eSendEvent, eSubscribeEvent, eUnSubscribeEvent } from '../../services/EventManager'; import SettingsService from '../../services/SettingsService'; import {GROUP, SORT} from '../../utils'; import {COLORS_NOTE} from '../../utils/Colors'; import {db} from '../../utils/database'; import {eOpenJumpToDialog, eOpenSortDialog} from '../../utils/Events'; import {SIZE} from '../../utils/SizeUtils'; import {ActionIcon} from '../ActionIcon'; import {Button} from '../Button'; import Heading from '../Typography/Heading'; export const SectionHeader = ({item, index, type, title,color}) => { const [state] = useTracked(); const {colors} = state; const {fontScale} = useWindowDimensions(); const [groupOptions, setGroupOptions] = useState( db.settings?.getGroupOptions(type) ); let groupBy = Object.keys(GROUP).find( key => GROUP[key] === groupOptions.groupBy ); const settings = useSettingStore(state => state.settings); const listMode = type === 'notebooks' ? settings.notebooksListMode : settings.notesListMode; groupBy = !groupBy ? 'Default' : groupBy.slice(0, 1).toUpperCase() + groupBy.slice(1, groupBy.length); const onUpdate = () => { console.log(groupOptions); setGroupOptions({...db.settings?.getGroupOptions(type)}); }; useEffect(() => { eSubscribeEvent('groupOptionsUpdate', onUpdate); return () => { eUnSubscribeEvent('groupOptionsUpdate', onUpdate); }; }, []); return ( { eSendEvent(eOpenJumpToDialog, type); }} activeOpacity={0.9} hitSlop={{top: 10, left: 10, right: 30, bottom: 15}} style={{ height: '100%', justifyContent: 'center' }}> {!item.title || item.title === '' ? 'Pinned' : item.title} {index === 0 ? ( <>