Archived
Fix flickering issues
This commit is contained in:
@@ -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;
|
||||||
}, {})
|
}, {})
|
||||||
|
|||||||
@@ -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 />
|
||||||
</>
|
</>
|
||||||
)}
|
)}
|
||||||
|
|||||||
Reference in New Issue
Block a user