<script lang="ts">
import { preventDefault } from 'svelte/legacy';
import { fs_encode_path, node_is_shared } from "lib/FilesystemAPI";
import type { FSNavigator } from "./FSNavigator";

let { nav }: {
	nav: FSNavigator;
} = $props();
</script>

<div class="breadcrumbs">
	{#each $nav.path as node, i (node.path)}
		<a
			href={"/d"+fs_encode_path(node.path)}
			class="breadcrumb button flat"
			onclick={preventDefault(() => {nav.navigate(node.path, true)})}
		>
			{#if node.abuse_type !== undefined}
				<i class="icon small">block</i>
			{:else if node_is_shared(node)}
				<i class="icon small">share</i>
			{/if}
			<div class="node_name" class:base={$nav.base_index === i}>
				{node.name}
			</div>
		</a>
		{#if $nav.base_index !== i}
			<i class="icon">chevron_right</i>
		{/if}
	{/each}
</div>

<style>
.breadcrumbs {
	flex: 0 0 auto;
	display: flex;
	align-items: center;
	justify-content: left;
	flex-wrap: wrap;
	flex-direction: row;
	overflow: hidden;
	background: var(--shaded_background);
	backdrop-filter: blur(4px);
	border-bottom: 1px solid var(--separator);
}
.breadcrumb {
	min-width: 1em;
	text-align: center;
	word-break: break-all;
	display: inline-flex;
	flex-direction: row;
	background-color: unset;
	box-shadow: none;
}
.node_name {
	max-width: 20vw;
	overflow-x: hidden;
	text-overflow: ellipsis;
	white-space: nowrap;
}
.base {
	/* The base name uses all available space */
	max-width: unset;
}
</style>
