import Button from '@app/components/Button' import GradientScrollView from '@app/components/GradientScrollView' import Header from '@app/components/Header' import ListItem from '@app/components/ListItem' import NothingHere from '@app/components/NothingHere' import TextInput from '@app/components/TextInput' import { useActiveServerRefresh } from '@app/hooks/server' import { ListableItem, SearchResults, Song } from '@app/models/music' import { selectMusic } from '@app/state/music' import { useStore } from '@app/state/store' import { selectTrackPlayer } from '@app/state/trackplayer' import colors from '@app/styles/colors' import font from '@app/styles/font' import { useFocusEffect, useNavigation } from '@react-navigation/native' import debounce from 'lodash.debounce' import React, { useCallback, useMemo, useRef, useState } from 'react' import { ActivityIndicator, InteractionManager, ScrollView, StatusBar, StyleSheet, TextInput as ReactTextInput, View, } from 'react-native' const SongItem = React.memo<{ item: Song }>(({ item }) => { const setQueue = useStore(selectTrackPlayer.setQueue) return ( setQueue([item], item.title, 'song', item.id, 0)} /> ) }) const ResultsCategory = React.memo<{ name: string query: string items: ListableItem[] }>(({ name, query, items }) => { const navigation = useNavigation() if (items.length === 0) { return <> } return ( <>
{name}
{items.map(a => a.itemType === 'song' ? ( ) : ( ), )} {items.length === 5 && (