Skip to content

Commit b966022

Browse files
committed
fix: minor corrections
1 parent 30f56a2 commit b966022

File tree

5 files changed

+52
-32
lines changed

5 files changed

+52
-32
lines changed

bun.lockb

10 KB
Binary file not shown.

package.json

Lines changed: 18 additions & 18 deletions
Original file line numberDiff line numberDiff line change
@@ -16,46 +16,46 @@
1616
"test": "vitest"
1717
},
1818
"devDependencies": {
19-
"@eslint/js": "9.3.0",
19+
"@eslint/js": "9.6.0",
2020
"@melt-ui/pp": "^0.3.2",
21-
"@melt-ui/svelte": "0.81.0",
21+
"@melt-ui/svelte": "0.83.0",
2222
"@sveltejs/adapter-auto": "3.2.2",
23-
"@sveltejs/adapter-vercel": "5.3.2",
24-
"@sveltejs/enhanced-img": "0.2.1",
23+
"@sveltejs/adapter-vercel": "5.4.0",
24+
"@sveltejs/enhanced-img": "0.3.0",
2525
"@sveltejs/kit": "2.5.18",
2626
"@sveltejs/vite-plugin-svelte": "3.1.1",
2727
"@types/eslint": "8.56.10",
28-
"@types/node": "20.12.14",
29-
"@typescript-eslint/eslint-plugin": "7.11.0",
30-
"@typescript-eslint/parser": "7.11.0",
28+
"@types/node": "20.14.9",
29+
"@typescript-eslint/eslint-plugin": "7.15.0",
30+
"@typescript-eslint/parser": "7.15.0",
3131
"autoprefixer": "10.4.19",
3232
"concurrently": "8.2.2",
33-
"eslint": "9.3.0",
33+
"eslint": "9.6.0",
3434
"eslint-config-prettier": "9.1.0",
3535
"eslint-plugin-import": "2.29.1",
36-
"eslint-plugin-svelte": "2.39.4",
36+
"eslint-plugin-svelte": "2.41.0",
3737
"husky": "9.0.11",
3838
"lint-staged": "15.2.7",
3939
"postcss": "8.4.39",
40-
"prettier": "3.2.5",
40+
"prettier": "3.3.2",
4141
"prettier-plugin-svelte": "3.2.5",
4242
"prettier-plugin-tailwindcss": "0.6.5",
4343
"svelte": "5.0.0-next.169",
4444
"svelte-check": "3.8.4",
4545
"tailwindcss": "3.4.4",
4646
"tslib": "2.6.3",
47-
"typescript": "5.4.5",
48-
"typescript-eslint": "7.11.0",
49-
"vite": "5.2.13",
47+
"typescript": "5.5.3",
48+
"typescript-eslint": "7.15.0",
49+
"vite": "5.3.2",
5050
"vitest": "1.6.0"
5151
},
5252
"type": "module",
5353
"dependencies": {
54-
"@supabase/ssr": "0.3.0",
55-
"@supabase/supabase-js": "2.43.6",
56-
"@tanstack/svelte-query": "5.40.3",
57-
"@tanstack/svelte-query-devtools": "5.40.3",
58-
"lucide-svelte": "0.350.0",
54+
"@supabase/ssr": "0.4.0",
55+
"@supabase/supabase-js": "2.44.2",
56+
"@tanstack/svelte-query": "5.49.1",
57+
"@tanstack/svelte-query-devtools": "5.49.1",
58+
"lucide-svelte": "0.399.0",
5959
"tailwind-merge": "2.3.0"
6060
}
6161
}

src/lib/components/bottom-sheet/bottom-sheet.svelte

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,7 @@
11
<script lang="ts">
22
import { XIcon } from 'lucide-svelte';
33
import type { Snippet } from 'svelte';
4-
import { sineInOut } from 'svelte/easing';
4+
import { cubicOut } from 'svelte/easing';
55
import { fade, slide } from 'svelte/transition';
66
77
import { page } from '$app/stores';
@@ -38,7 +38,7 @@
3838
></div>
3939
<div
4040
class="overlflow-hidden fixed bottom-0 left-0 right-0 z-[51] max-h-[90vh] rounded-t-2xl bg-white transition"
41-
transition:slide={{ axis: 'y', duration: 300, easing: sineInOut }}
41+
transition:slide={{ axis: 'y', duration: 250, easing: cubicOut }}
4242
>
4343
<div class="px-6 py-4">
4444
<div class="mb-3 flex items-center justify-between">

src/lib/domain/applied-filters.svelte

Lines changed: 25 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -2,38 +2,55 @@
22
import { XIcon } from 'lucide-svelte';
33
44
import { page } from '$app/stores';
5+
import { type Agencies, DEFAULT_NONE_AGENCY_ID } from '$lib/db';
56
import { Filters, getEuro } from '$lib/helpers';
67
8+
type Props = { agencies: NonNullable<Agencies> };
9+
let { agencies }: Props = $props();
10+
11+
const onClearFilter = (rating: Parameters<typeof Filters.remove>[0]) => () => {
12+
Filters.remove(rating);
13+
};
14+
715
let params = $derived($page.url.searchParams);
816
let appliedFilters = $derived.by(() => {
9-
const result: string[] = [];
17+
const result: Record<string, () => void> = {};
1018
const filters = Filters.filters(params);
1119
1220
if (filters.jRating) {
13-
result.push(`J Rating: ${filters.jRating}`);
21+
result[`J Rating: ${filters.jRating}`] = onClearFilter('jRating');
1422
}
1523
if (filters.mRating) {
16-
result.push(`M Rating: ${filters.mRating}`);
24+
result[`M Rating: ${filters.jRating}`] = onClearFilter('mRating');
25+
}
26+
27+
if (filters.realStateAgency && filters.realStateAgency !== DEFAULT_NONE_AGENCY_ID) {
28+
const agency = agencies.find(({ id }) => id === filters.realStateAgency);
29+
if (agency) {
30+
result[`Agency: ${agency.name}`] = onClearFilter('realStateAgency');
31+
}
1732
}
1833
1934
const [priceMin, priceMax] = filters.priceRange;
2035
if (priceMin !== Filters.PRICE_RANGE_MIN || priceMax !== Filters.PRICE_RANGE_MAX) {
21-
result.push(`${getEuro(priceMin)} - ${getEuro(priceMax)}`);
36+
result[`${getEuro(priceMin)} - ${getEuro(priceMax)}`] = onClearFilter('priceRange');
2237
}
2338
2439
return result;
2540
});
2641
</script>
2742

28-
{#if appliedFilters.length}
43+
{#if Object.keys(appliedFilters).length}
2944
<div class="mt-2 flex flex-wrap gap-1">
30-
{#each appliedFilters as filter}
31-
<div
45+
{#each Object.entries(appliedFilters) as [filter, onClick]}
46+
<button
3247
class="flex cursor-pointer items-center gap-1.5 rounded-full bg-primary px-2 py-0.5 text-xs text-white"
48+
onclick={onClick}
3349
>
3450
<span>{filter}</span>
3551
<XIcon size={14} />
36-
</div>
52+
</button>
3753
{/each}
54+
<!-- TODO: Add reset filter -->
3855
</div>
3956
{/if}

src/routes/+page.svelte

Lines changed: 7 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -72,7 +72,10 @@
7272
</div>
7373
</div>
7474

75-
<AppliedFilters />
75+
{#if $agenciesQuery.data}
76+
<AppliedFilters agencies={$agenciesQuery.data} />
77+
{/if}
78+
7679
{#if $appartmentsQuery.isLoading}
7780
<AppartmentsSkeleton />
7881
{:else if $appartmentsQuery.isError}
@@ -81,9 +84,9 @@
8184
{#if $appartmentsQuery.data.length}
8285
<AppartmentsList appartments={$appartmentsQuery.data} />
8386
{:else}
84-
<ErrorBanner Icon={SquirrelIcon}
85-
>No results found! Try changing the filters or performing a different search!</ErrorBanner
86-
>
87+
<ErrorBanner Icon={SquirrelIcon}>
88+
No results found! Try changing the filters or performing a different search!
89+
</ErrorBanner>
8790
{/if}
8891
{/if}
8992
</div>

0 commit comments

Comments
 (0)