forked from MapComplete/MapComplete
Refactoring: use Drawer instead of modalright, see #2106
This commit is contained in:
parent
46d3ee03f0
commit
f026ee6db9
2 changed files with 21 additions and 47 deletions
|
@ -1,40 +0,0 @@
|
||||||
<script lang="ts">
|
|
||||||
import { createEventDispatcher } from "svelte"
|
|
||||||
import { XCircleIcon } from "@rgossiaux/svelte-heroicons/solid"
|
|
||||||
|
|
||||||
/**
|
|
||||||
* The slotted element will be shown on the right side
|
|
||||||
*/
|
|
||||||
const dispatch = createEventDispatcher<{ close }>()
|
|
||||||
</script>
|
|
||||||
|
|
||||||
<div
|
|
||||||
aria-modal="true"
|
|
||||||
autofocus
|
|
||||||
class="normal-background absolute top-0 right-0 flex h-screen w-full flex-col overflow-y-auto drop-shadow-2xl md:w-6/12 lg:w-5/12 xl:w-4/12"
|
|
||||||
role="dialog"
|
|
||||||
style="max-width: 100vw; max-height: 100vh"
|
|
||||||
tabindex="-1"
|
|
||||||
id="modal-right"
|
|
||||||
>
|
|
||||||
<slot name="close-button">
|
|
||||||
<button
|
|
||||||
class="absolute right-10 top-10 h-8 w-8 cursor-pointer rounded-full"
|
|
||||||
on:click={() => dispatch("close")}
|
|
||||||
>
|
|
||||||
<XCircleIcon />
|
|
||||||
</button>
|
|
||||||
</slot>
|
|
||||||
<div role="document">
|
|
||||||
<slot />
|
|
||||||
</div>
|
|
||||||
</div>
|
|
||||||
|
|
||||||
<!-- Experimental support for foldable devices -->
|
|
||||||
<style lang="scss">
|
|
||||||
@media (horizontal-viewport-segments: 2) {
|
|
||||||
#modal-right {
|
|
||||||
width: 50%;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
</style>
|
|
|
@ -20,7 +20,6 @@
|
||||||
import FloatOver from "./Base/FloatOver.svelte"
|
import FloatOver from "./Base/FloatOver.svelte"
|
||||||
import Constants from "../Models/Constants"
|
import Constants from "../Models/Constants"
|
||||||
import LoginToggle from "./Base/LoginToggle.svelte"
|
import LoginToggle from "./Base/LoginToggle.svelte"
|
||||||
import ModalRight from "./Base/ModalRight.svelte"
|
|
||||||
import LevelSelector from "./BigComponents/LevelSelector.svelte"
|
import LevelSelector from "./BigComponents/LevelSelector.svelte"
|
||||||
import type { RasterLayerPolygon } from "../Models/RasterLayers"
|
import type { RasterLayerPolygon } from "../Models/RasterLayers"
|
||||||
import { AvailableRasterLayers } from "../Models/RasterLayers"
|
import { AvailableRasterLayers } from "../Models/RasterLayers"
|
||||||
|
@ -47,6 +46,8 @@
|
||||||
import MenuDrawer from "./BigComponents/MenuDrawer.svelte"
|
import MenuDrawer from "./BigComponents/MenuDrawer.svelte"
|
||||||
import DrawerLeft from "./Base/DrawerLeft.svelte"
|
import DrawerLeft from "./Base/DrawerLeft.svelte"
|
||||||
import Hash from "../Logic/Web/Hash"
|
import Hash from "../Logic/Web/Hash"
|
||||||
|
import { Drawer } from "flowbite-svelte"
|
||||||
|
import { sineIn } from "svelte/easing"
|
||||||
|
|
||||||
export let state: ThemeViewState
|
export let state: ThemeViewState
|
||||||
let layout = state.layout
|
let layout = state.layout
|
||||||
|
@ -422,14 +423,27 @@
|
||||||
|
|
||||||
{#if $selectedElement !== undefined && $selectedLayer !== undefined && !$selectedLayer.popupInFloatover}
|
{#if $selectedElement !== undefined && $selectedLayer !== undefined && !$selectedLayer.popupInFloatover}
|
||||||
<!-- right modal with the selected element view -->
|
<!-- right modal with the selected element view -->
|
||||||
<ModalRight
|
<Drawer
|
||||||
on:close={() => {
|
placement="right"
|
||||||
state.selectedElement.setData(undefined)
|
transitionType="fly"
|
||||||
}}
|
activateClickOutside={false}
|
||||||
>
|
backdrop={false}
|
||||||
|
id="drawer-right"
|
||||||
|
width="w-full md:w-6/12 lg:w-5/12 xl:w-4/12"
|
||||||
|
rightOffset="inset-y-0 right-0"
|
||||||
|
transitionParams={ {
|
||||||
|
x: 640,
|
||||||
|
duration: 200,
|
||||||
|
easing: sineIn
|
||||||
|
}}
|
||||||
|
divClass="overflow-y-auto z-50 "
|
||||||
|
hidden={$selectedElement === undefined}
|
||||||
|
on:close={() => { state.selectedElement.setData(undefined)
|
||||||
|
}}
|
||||||
|
>
|
||||||
<div slot="close-button" />
|
<div slot="close-button" />
|
||||||
<SelectedElementPanel {state} selected={$state_selectedElement} />
|
<SelectedElementPanel {state} selected={$state_selectedElement} />
|
||||||
</ModalRight>
|
</Drawer>
|
||||||
{/if}
|
{/if}
|
||||||
|
|
||||||
{#if $selectedElement !== undefined && $selectedLayer !== undefined && $selectedLayer.popupInFloatover}
|
{#if $selectedElement !== undefined && $selectedLayer !== undefined && $selectedLayer.popupInFloatover}
|
||||||
|
|
Loading…
Add table
Add a link
Reference in a new issue