Files
lucent-laravel/front/js/svelte/records/header/ContentTabs.svelte
T

55 lines
1.2 KiB
Svelte
Raw Normal View History

2023-10-02 23:10:49 +03:00
<script>
export let schema;
export let isCreateMode;
2023-10-04 13:32:30 +03:00
export let active = "";
2023-10-02 23:10:49 +03:00
2023-10-04 13:32:30 +03:00
let tabs = schema.groups?.map((group) => {
return {label: group, name: group}
}) ?? [];
2023-10-02 23:10:49 +03:00
let mainTab = {
label: "Main",
2023-10-04 13:32:30 +03:00
name: "",
2023-10-02 23:10:49 +03:00
};
let graphTab = {
2024-08-16 17:38:26 +03:00
label: "Backlinks",
2023-10-02 23:10:49 +03:00
name: "_graph",
};
if (isCreateMode) {
tabs = [mainTab, ...tabs];
} else {
tabs = [mainTab, ...tabs, graphTab];
}
function showGraph(e) {
e.preventDefault();
active = "_graph";
}
function changeTab(e, tabName) {
e.preventDefault();
if (tabName == "_graph") {
showGraph(e);
} else {
active = tabName;
}
}
</script>
{#if tabs.length > 1}
2024-08-15 18:52:53 +03:00
<ul class="tabs">
2023-10-02 23:10:49 +03:00
{#each tabs as tab}
2024-08-15 18:52:53 +03:00
<li class="tab">
2023-10-02 23:10:49 +03:00
<button
2023-10-04 13:32:30 +03:00
on:click={(e) => changeTab(e, tab.name)}
2024-08-15 18:52:53 +03:00
class="button"
2023-10-04 13:32:30 +03:00
class:active={active === tab.name}
aria-current="page"
2023-10-02 23:10:49 +03:00
>
{tab.label}
</button>
</li>
{/each}
</ul>
{/if}