Skip to content

Commit 8838263

Browse files
TommertomTommertom
Tommertom
authored and
Tommertom
committed
iontabs removed at
1 parent 0cc5f90 commit 8838263

File tree

1 file changed

+63
-65
lines changed

1 file changed

+63
-65
lines changed

components/IonTabs.svelte

Lines changed: 63 additions & 65 deletions
Original file line numberDiff line numberDiff line change
@@ -1,78 +1,76 @@
11
<script>
2-
// @ts-nocheck
3-
import { onMount } from "svelte";
4-
import { page } from "$app/stores";
2+
// @ts-nocheck
3+
import { onMount } from 'svelte';
4+
import { page } from '$app/stores';
55
6-
import { goto } from "$app/navigation";
6+
import { goto } from '$app/navigation';
77
8-
export let ionTabsDidChange = () => {};
9-
export let ionTabsWillChange = () => {};
10-
export let slot = "bottom";
11-
export let tabs = [];
8+
export let ionTabsDidChange = () => {};
9+
export let ionTabsWillChange = () => {};
10+
export let slot = 'bottom';
11+
export let tabs = [];
1212
13-
let ionTabBarElement;
14-
let controller;
13+
let ionTabBarElement;
14+
let controller;
1515
16-
// we need relative path for the goto to function properly and to allow for relative tab definitions
17-
const { pathname } = $page.url;
18-
let currentTabName = pathname.split("/").at(-1); // we restrict tabs not to have nested paths
19-
const relativePath = pathname.replace(currentTabName, "");
16+
// we need relative path for the goto to function properly and to allow for relative tab definitions
17+
const { pathname } = $page.url;
18+
const pathSplit = pathname.split('/');
19+
let currentTabName = pathSplit[pathSplit.length - 1]; // we don't want to use at(-1) because of old browsers
20+
const relativePath = pathname.replace(currentTabName, '');
2021
21-
onMount(async () => {
22-
// reassignment needed after onMount
23-
controller = ionTabBarElement;
24-
controller.select(currentTabName);
25-
});
22+
onMount(async () => {
23+
// reassignment needed after onMount
24+
controller = ionTabBarElement;
25+
controller.select(currentTabName);
26+
});
2627
27-
const tabBarClick = async (selectedTab) => {
28-
currentTabName = selectedTab;
29-
await goto(relativePath + selectedTab);
30-
controller.select(selectedTab);
31-
};
28+
const tabBarClick = async (selectedTab) => {
29+
currentTabName = selectedTab;
30+
await goto(relativePath + selectedTab);
31+
controller.select(selectedTab);
32+
};
3233
</script>
3334

3435
<ion-tabs
35-
on:ionTabsDidChange={ionTabsDidChange}
36-
on:ionTabsWillChange={ionTabsWillChange}
37-
bind:this={ionTabBarElement}
38-
>
39-
<slot />
36+
on:ionTabsDidChange={ionTabsDidChange}
37+
on:ionTabsWillChange={ionTabsWillChange}
38+
bind:this={ionTabBarElement}>
39+
<slot />
4040

41-
{#if slot === "bottom" || slot === ""}
42-
<ion-tab-bar slot="bottom">
43-
{#each tabs as tab}
44-
<ion-tab-button
45-
tab={tab.tab}
46-
on:keydown={() => {
47-
tabBarClick(tab.tab);
48-
}}
49-
on:click={() => {
50-
tabBarClick(tab.tab);
51-
}}
52-
>
53-
<ion-label>{tab.label}</ion-label>
54-
<ion-icon icon={tab.icon} />
55-
</ion-tab-button>
56-
{/each}
57-
</ion-tab-bar>
58-
{/if}
41+
{#if slot === 'bottom' || slot === ''}
42+
<ion-tab-bar slot="bottom">
43+
{#each tabs as tab}
44+
<ion-tab-button
45+
tab={tab.tab}
46+
on:keydown={() => {
47+
tabBarClick(tab.tab);
48+
}}
49+
on:click={() => {
50+
tabBarClick(tab.tab);
51+
}}>
52+
<ion-label>{tab.label}</ion-label>
53+
<ion-icon icon={tab.icon} />
54+
</ion-tab-button>
55+
{/each}
56+
</ion-tab-bar>
57+
{/if}
5958

60-
{#if slot === "top"}
61-
<ion-tab-bar slot="top">
62-
{#each tabs as tab}
63-
<ion-tab-button
64-
tab={tab.tab}
65-
on:keydown={() => {
66-
tabBarClick(tab.tab);
67-
}}
68-
on:click={() => {
69-
tabBarClick(tab.tab);
70-
}}
71-
>
72-
<ion-label>{tab.label}</ion-label>
73-
<ion-icon icon={tab.icon} />
74-
</ion-tab-button>
75-
{/each}
76-
</ion-tab-bar>
77-
{/if}
59+
{#if slot === 'top'}
60+
<ion-tab-bar slot="top">
61+
{#each tabs as tab}
62+
<ion-tab-button
63+
tab={tab.tab}
64+
on:keydown={() => {
65+
tabBarClick(tab.tab);
66+
}}
67+
on:click={() => {
68+
tabBarClick(tab.tab);
69+
}}>
70+
<ion-label>{tab.label}</ion-label>
71+
<ion-icon icon={tab.icon} />
72+
</ion-tab-button>
73+
{/each}
74+
</ion-tab-bar>
75+
{/if}
7876
</ion-tabs>

0 commit comments

Comments
 (0)