Fix flickering issues

This commit is contained in:
Georgi Gardev
2023-11-18 18:49:28 +02:00
parent 08333b70bb
commit 6dd6243c7b
2 changed files with 15 additions and 10 deletions
+10 -9
View File
@@ -1,20 +1,21 @@
import { createComputed, createMemo, createSignal } from 'solid-js'; import { Resource, createMemo, createSignal } from 'solid-js';
import { createSearchProviders } from '~/api/get-search-providers';
import style from './Search.module.css';
import { SearchProvider } from '~/types'; import { SearchProvider } from '~/types';
export function Search() { import style from './Search.module.css';
type SearchProps = {
providers: Resource<SearchProvider[]>;
};
export function Search(props: SearchProps) {
const [term, setTerm] = createSignal(''); const [term, setTerm] = createSignal('');
const searchProviders = createSearchProviders();
const defaultProvider = createMemo( const defaultProvider = createMemo(
() => searchProviders()?.find((provider) => provider.default) ?? searchProviders()?.[0] () => props.providers()?.find((provider) => provider.default) ?? props.providers()?.[0]
); );
const searchPerPrefix = createMemo(() => const searchPerPrefix = createMemo(() =>
searchProviders()?.reduce<Record<string, SearchProvider>>((acc, provider) => { props.providers()?.reduce<Record<string, SearchProvider>>((acc, provider) => {
acc[provider.prefix] = provider; acc[provider.prefix] = provider;
return acc; return acc;
}, {}) }, {})
+5 -1
View File
@@ -1,13 +1,17 @@
import { createSignal, onCleanup, onMount } from 'solid-js'; import { createSignal, onCleanup, onMount } from 'solid-js';
import { createApps } from '~/api/get-apps'; import { createApps } from '~/api/get-apps';
import { createSearchProviders } from '~/api/get-search-providers';
import { AppList } from '~/components/apps/AppList'; import { AppList } from '~/components/apps/AppList';
import { DateView } from '~/components/widgets/Date'; import { DateView } from '~/components/widgets/Date';
import { Search } from '~/components/widgets/Search'; import { Search } from '~/components/widgets/Search';
import { Weather } from '~/components/widgets/Weather'; import { Weather } from '~/components/widgets/Weather';
import { Sidebar } from '../components/ui/Sidebar'; import { Sidebar } from '../components/ui/Sidebar';
import style from './index.module.css'; import style from './index.module.css';
export default function Home() { export default function Home() {
const searchProviders = createSearchProviders();
onMount(() => { onMount(() => {
parent.addEventListener('keydown', handleKeypress); parent.addEventListener('keydown', handleKeypress);
}); });
@@ -69,7 +73,7 @@ export default function Home() {
) : ( ) : (
<> <>
<DateView /> <DateView />
<Search /> <Search providers={searchProviders} />
<Weather /> <Weather />
</> </>
)} )}