woodpecker/web/src/compositions/useRepoSearch.ts
Anbraten 58838f225c
Rewrite of WebUI (#245)
Rewrite of the UI using Typescript, Vue3, Windicss and Vite. The design should  be close to the current one with some changes:
- latest pipeline in a sidebar on the right
- secrets and registry as part of the repo-settings (secrets and registry entries shouldn't be used as much so they can be "hidden" under settings IMO)
- start page shows list of active repositories with button to enable / add new ones (currently you see all repositories and in most cases you only add new repositories once in a while)
2021-11-03 17:40:31 +01:00

28 lines
600 B
TypeScript

import Fuse from 'fuse.js';
import { computed, Ref } from 'vue';
import { Repo } from '~/lib/api/types';
export function useRepoSearch(repos: Ref<Repo[] | undefined>, search: Ref<string>) {
const searchIndex = computed(
() =>
new Fuse(repos.value || [], {
includeScore: true,
keys: ['name', 'owner'],
threshold: 0.4,
}),
);
const searchedRepos = computed(() => {
if (search.value === '') {
return repos.value;
}
return searchIndex.value.search(search.value).map((result) => result.item);
});
return {
searchedRepos,
};
}