forked from tsai/budibase
10 changed files with 95 additions and 49 deletions
@ -0,0 +1,53 @@ |
|||||
|
<script> |
||||
|
import { goto } from "@sveltech/routify" |
||||
|
import { store } from "builderStore" |
||||
|
import { notifier } from "builderStore/store/notifications" |
||||
|
import ConfirmDialog from "components/common/ConfirmDialog.svelte" |
||||
|
import { DropdownMenu } from "@budibase/bbui" |
||||
|
import { DropdownContainer, DropdownItem } from "components/common/Dropdowns" |
||||
|
|
||||
|
export let screen |
||||
|
|
||||
|
let confirmDeleteDialog |
||||
|
let dropdown |
||||
|
let anchor |
||||
|
|
||||
|
const deleteScreen = () => { |
||||
|
store.actions.screens.delete(screen, $store.currentPageName) |
||||
|
// update the page if required |
||||
|
store.update(state => { |
||||
|
if (state.currentPreviewItem._id === screen._id) { |
||||
|
store.actions.pages.select($store.currentPageName) |
||||
|
notifier.success(`Screen ${screen.name} deleted successfully.`) |
||||
|
$goto(`./:page/page-layout`) |
||||
|
} |
||||
|
return state |
||||
|
}) |
||||
|
} |
||||
|
</script> |
||||
|
|
||||
|
<div bind:this={anchor} on:click|stopPropagation> |
||||
|
<div class="icon" on:click={() => dropdown.show()}> |
||||
|
<i class="ri-more-line" /> |
||||
|
</div> |
||||
|
<DropdownMenu bind:this={dropdown} {anchor} align="left"> |
||||
|
<DropdownContainer> |
||||
|
<DropdownItem |
||||
|
icon="ri-delete-bin-line" |
||||
|
title="Delete" |
||||
|
on:click={() => confirmDeleteDialog.show()} /> |
||||
|
</DropdownContainer> |
||||
|
</DropdownMenu> |
||||
|
</div> |
||||
|
<ConfirmDialog |
||||
|
bind:this={confirmDeleteDialog} |
||||
|
title="Confirm Deletion" |
||||
|
body={'Are you sure you wish to delete this screen?'} |
||||
|
okText="Delete Screen" |
||||
|
onOk={deleteScreen} /> |
||||
|
|
||||
|
<style> |
||||
|
.icon i { |
||||
|
font-size: 16px; |
||||
|
} |
||||
|
</style> |
||||
Loading…
Reference in new issue