1
0
mirror of https://github.com/garraflavatra/rolens.git synced 2025-01-19 13:27:58 +00:00
rolens/frontend/src/components/contextmenu.svelte

63 lines
1.1 KiB
Svelte
Raw Normal View History

2023-01-14 19:38:39 +00:00
<script>
import { createEventDispatcher } from 'svelte';
export let items = undefined;
export let position = undefined;
const dispatch = createEventDispatcher();
function close() {
dispatch('close');
}
2023-01-14 20:09:21 +00:00
function click(fn) {
fn();
close();
}
2023-01-14 19:38:39 +00:00
</script>
{#if items && position}
<div class="backdrop" on:pointerdown={close}></div>
<ul class="contextmenu" role="" style:left="{position[0]}px" style:top="{position[1]}px">
{#each items as item}
{#if item.separator}
<hr />
{:else}
<li>
2023-01-14 20:09:21 +00:00
<button class="item" on:click={() => click(item.fn)}>
2023-01-14 19:38:39 +00:00
{item.label}
</button>
</li>
{/if}
{/each}
</ul>
{/if}
<style>
.backdrop {
position: fixed;
top: 0;
left: 0;
right: 0;
bottom: 0;
}
.contextmenu {
position: fixed;
background-color: rgba(230, 230, 230, 0.7);
backdrop-filter: blur(30px);
border-radius: 10px;
padding: 5px;
box-shadow: 0px 3px 5px rgba(0, 0, 0, 0.2);
}
button {
padding: 5px;
border-radius: 5px;
}
button:hover {
background-color: #00008b;
color: #fff;
}
</style>