Files
lucent-laravel/front/js/svelte/Navbar.svelte
T

116 lines
5.0 KiB
Svelte
Raw Normal View History

2023-10-02 23:10:49 +03:00
<script>
import Avatar from "./account/Avatar.svelte";
import NavbarMenu from "./NavbarMenu.svelte";
import {getContext} from "svelte";
export let schema;
const channel = getContext("channel");
2023-10-17 22:57:25 +03:00
const readableSchemas = getContext("readableSchemas");
2023-10-02 23:10:49 +03:00
const user = getContext("user");
2023-10-15 01:57:20 +03:00
let contentIsOpen = false;
2023-10-17 22:57:25 +03:00
const fileSchemas = readableSchemas.filter((sc) => sc.type === "files");
const otherSchemas = readableSchemas.filter((sc) => !sc.isEntry && sc.type === "collection");
2023-10-04 23:48:12 +03:00
2023-10-02 23:10:49 +03:00
</script>
<nav class="lx-nav">
2023-10-04 23:48:12 +03:00
<div>
2023-10-15 01:57:20 +03:00
<button on:click={(e) => contentIsOpen = true} class="btn btn-primary btn-sm d-xxl-none">« Content</button>
2023-10-04 23:48:12 +03:00
</div>
2023-10-25 11:57:52 +03:00
<div class="d-flex align-items-center ">
2023-10-04 23:48:12 +03:00
<a class="nav-item" href="{channel.lucentUrl}">{channel.name}</a>
<a class="nav-item" href="{channel.lucentUrl}/members">Members</a>
{#if channel.generateCommand}
2023-10-25 11:57:52 +03:00
<a href="{channel.lucentUrl}/build-report" class="btn btn-outline-primary btn-sm d-">Build website</a>
2023-10-04 23:48:12 +03:00
{/if}
2023-10-25 11:57:52 +03:00
<!-- <div>-->
<!-- <form method="GET">-->
<!-- <input type="search" name="filter[search_regex]" placeholder="Search"-->
<!-- class="form-control" required/>-->
<!-- </form>-->
<!-- </div>-->
2023-10-04 23:48:12 +03:00
</div>
<div>
<a class="nav-item" href="{channel.lucentUrl}/profile">
<Avatar side="28" name={user.name}/>
</a>
</div>
2023-10-02 23:10:49 +03:00
2023-10-04 23:48:12 +03:00
</nav>
2023-10-16 12:39:17 +03:00
<div class="offcanvas offcanvas-start d-xxl-block show border-0 bg-light-subtle" class:d-none={!contentIsOpen}
style="padding-top:36px " data-bs-scroll="true"
2023-10-04 23:48:12 +03:00
data-bs-backdrop="false"
tabindex="-1" aria-labelledby="offcanvasScrollingLabel">
<!-- <div class="offcanvas-header">-->
<!-- <h5 class="offcanvas-title" id="offcanvasScrollingLabel">Content</h5>-->
<!-- </div>-->
<div class="offcanvas-body">
2023-10-15 01:57:20 +03:00
<button on:click={(e) => contentIsOpen = false} class="btn btn-primary btn-sm d-xxl-none mb-4">« close</button>
2023-10-13 21:06:23 +03:00
<div class="accordion">
2023-10-04 23:48:12 +03:00
<div class="accordion-item">
2023-10-13 21:06:23 +03:00
<h2 class="accordion-header" id="panelsStayOpen-headingMain">
2023-10-04 23:48:12 +03:00
<button class="accordion-button" type="button" data-bs-toggle="collapse"
2023-10-13 21:06:23 +03:00
data-bs-target="#panelsStayOpen-collapseMain" aria-expanded="true"
aria-controls="panelsStayOpen-collapseMain">
2023-10-04 23:48:12 +03:00
Main
</button>
</h2>
2023-10-13 21:06:23 +03:00
<div id="panelsStayOpen-collapseMain" class="accordion-collapse collapse show"
aria-labelledby="panelsStayOpen-headingMain">
2023-10-04 23:48:12 +03:00
<div class="accordion-body">
<NavbarMenu
2023-10-17 22:57:25 +03:00
schemas={ readableSchemas.filter((sc) => sc.isEntry)}
2023-10-02 23:10:49 +03:00
schema={schema}
2023-10-04 23:48:12 +03:00
/>
2023-10-02 23:10:49 +03:00
</div>
</div>
2023-10-04 23:48:12 +03:00
</div>
2023-10-16 13:16:22 +03:00
{#if otherSchemas.length > 0}
2023-10-16 12:39:17 +03:00
<div class="accordion-item">
<h2 class="accordion-header" id="panelsStayOpen-headingOther">
<button class="accordion-button collapsed" type="button" data-bs-toggle="collapse"
data-bs-target="#panelsStayOpen-collapseOther" aria-expanded="false"
aria-controls="panelsStayOpen-collapseOther">
Other
</button>
</h2>
<div id="panelsStayOpen-collapseOther" class="accordion-collapse collapse"
aria-labelledby="panelsStayOpen-headingOther">
<div class="accordion-body">
<NavbarMenu
schemas={ otherSchemas}
schema={schema}
/>
</div>
2023-10-13 21:06:23 +03:00
</div>
</div>
2023-10-16 12:39:17 +03:00
{/if}
2023-10-16 13:16:22 +03:00
{#if fileSchemas.length > 0}
2023-10-16 12:39:17 +03:00
<div class="accordion-item">
<h2 class="accordion-header" id="panelsStayOpen-headingFS">
<button class="accordion-button collapsed" type="button" data-bs-toggle="collapse"
data-bs-target="#panelsStayOpen-collapseFS" aria-expanded="false"
aria-controls="panelsStayOpen-collapseFS">
Filesystem
</button>
</h2>
<div id="panelsStayOpen-collapseFS" class="accordion-collapse collapse"
aria-labelledby="panelsStayOpen-headingFS">
<div class="accordion-body">
<NavbarMenu
schemas={ fileSchemas}
schema={schema}
/>
</div>
2023-10-02 23:10:49 +03:00
</div>
</div>
2023-10-16 12:39:17 +03:00
{/if}
2023-10-02 23:10:49 +03:00
</div>
</div>
2023-10-04 23:48:12 +03:00
</div>