mirror of
https://github.com/danbulant/Portfolio
synced 2026-07-05 11:00:56 +00:00
fix: repair broken filtering
This commit is contained in:
parent
07b04126ef
commit
41950a923f
1 changed files with 29 additions and 23 deletions
|
|
@ -16,39 +16,45 @@
|
||||||
|
|
||||||
let candidates: Array<CandidatePreview> = data.preview;
|
let candidates: Array<CandidatePreview> = data.preview;
|
||||||
|
|
||||||
const getCandidates = async (field?: string) => {
|
const getCandidates = async () => {
|
||||||
try {
|
try {
|
||||||
candidates = await apiListCandidates(
|
candidates = await apiListCandidates(undefined, activeFilter.filter);
|
||||||
undefined,
|
|
||||||
field ?? activeFilter !== 'Vše' ? activeFilter : ''
|
|
||||||
);
|
|
||||||
} catch {
|
} catch {
|
||||||
console.log('error');
|
console.log('error');
|
||||||
}
|
}
|
||||||
};
|
};
|
||||||
|
|
||||||
type Filter = 'Vše' | 'KBB' | 'IT' | 'GYM';
|
type Class = 'Vše' | 'KBB' | 'IT' | 'GYM';
|
||||||
|
|
||||||
let filters: Array<Filter> = ['Vše', 'KBB', 'IT', 'GYM'];
|
type Filter = {
|
||||||
|
class: Class;
|
||||||
|
filter: string | undefined;
|
||||||
|
};
|
||||||
|
|
||||||
|
let filters: Array<Filter> = [
|
||||||
|
{
|
||||||
|
class: 'Vše',
|
||||||
|
filter: undefined
|
||||||
|
},
|
||||||
|
{
|
||||||
|
class: 'KBB',
|
||||||
|
filter: 'KB'
|
||||||
|
},
|
||||||
|
{
|
||||||
|
class: 'IT',
|
||||||
|
filter: 'IT'
|
||||||
|
},
|
||||||
|
{
|
||||||
|
class: 'GYM',
|
||||||
|
filter: 'G'
|
||||||
|
}
|
||||||
|
];
|
||||||
|
|
||||||
let activeFilter: Filter = filters[0];
|
let activeFilter: Filter = filters[0];
|
||||||
|
|
||||||
const changeFilter = (filter: Filter) => {
|
const changeFilter = async (filter: Filter) => {
|
||||||
activeFilter = filter;
|
activeFilter = filter;
|
||||||
switch (activeFilter) {
|
await getCandidates();
|
||||||
case 'Vše':
|
|
||||||
getCandidates();
|
|
||||||
break;
|
|
||||||
case 'KBB':
|
|
||||||
getCandidates('KB');
|
|
||||||
break;
|
|
||||||
case 'IT':
|
|
||||||
getCandidates('IT');
|
|
||||||
break;
|
|
||||||
case 'GYM':
|
|
||||||
getCandidates('G');
|
|
||||||
break;
|
|
||||||
}
|
|
||||||
};
|
};
|
||||||
|
|
||||||
let scrollTop = 0;
|
let scrollTop = 0;
|
||||||
|
|
@ -112,7 +118,7 @@
|
||||||
{#each filters as filter}
|
{#each filters as filter}
|
||||||
<div class:selected={filter === activeFilter}>
|
<div class:selected={filter === activeFilter}>
|
||||||
<Home />
|
<Home />
|
||||||
<button on:click={() => changeFilter(filter)}>{filter}</button>
|
<button on:click={() => changeFilter(filter)}>{filter.class}</button>
|
||||||
</div>
|
</div>
|
||||||
{/each}
|
{/each}
|
||||||
</div>
|
</div>
|
||||||
|
|
|
||||||
Loading…
Reference in a new issue