[ui] add deletion of objects
This commit is contained in:
parent
1470d91719
commit
a2337fde30
3 changed files with 31 additions and 5 deletions
|
@ -54,6 +54,7 @@
|
|||
{index}
|
||||
{detail}
|
||||
on:resolved
|
||||
on:close
|
||||
/>
|
||||
</div>
|
||||
|
||||
|
|
|
@ -4,7 +4,7 @@
|
|||
import UpObject from "./display/UpObject.svelte";
|
||||
import { UpType } from "../lib/types";
|
||||
import BlobPreview from "./display/BlobPreview.svelte";
|
||||
import { setContext } from "svelte";
|
||||
import { createEventDispatcher, setContext } from "svelte";
|
||||
import { writable } from "svelte/store";
|
||||
import type { UpEntry } from "upend";
|
||||
import Spinner from "./utils/Spinner.svelte";
|
||||
|
@ -17,6 +17,8 @@
|
|||
import { useParams } from "svelte-navigator";
|
||||
import { GROUP_TYPE_ADDR } from "upend/constants";
|
||||
import { deleteEntry, putEntityAttribute, putEntry } from "../lib/api";
|
||||
import Icon from "./utils/Icon.svelte";
|
||||
const dispatch = createEventDispatcher();
|
||||
const params = useParams();
|
||||
|
||||
export let address: string;
|
||||
|
@ -139,6 +141,12 @@
|
|||
revalidate();
|
||||
}
|
||||
|
||||
let identities = [address];
|
||||
function onResolved(ev: CustomEvent<string[]>) {
|
||||
identities = ev.detail;
|
||||
dispatch("resolved", ev.detail);
|
||||
}
|
||||
|
||||
let groupToAdd: IValue | undefined;
|
||||
async function addGroup() {
|
||||
if (!groupToAdd) {
|
||||
|
@ -166,17 +174,24 @@
|
|||
groupToAdd = undefined;
|
||||
}
|
||||
|
||||
async function removeGroup(address: string) {
|
||||
await deleteEntry(address);
|
||||
async function removeGroup(groupAddress: string) {
|
||||
await deleteEntry(groupAddress);
|
||||
revalidate();
|
||||
}
|
||||
|
||||
async function deleteObject() {
|
||||
if (confirm(`Really delete "${identities.join(" | ")}"?`)) {
|
||||
await deleteEntry(address);
|
||||
dispatch("close");
|
||||
}
|
||||
}
|
||||
</script>
|
||||
|
||||
<div class="inspect">
|
||||
<header>
|
||||
<h2>
|
||||
{#if $entity}
|
||||
<UpObject banner {address} on:resolved />
|
||||
<UpObject banner {address} on:resolved={onResolved} />
|
||||
{:else}
|
||||
<Spinner centered />
|
||||
{/if}
|
||||
|
@ -244,6 +259,12 @@
|
|||
/>
|
||||
{/if}
|
||||
</div>
|
||||
|
||||
{#if editable}
|
||||
<div class="button" on:click={deleteObject}>
|
||||
<Icon name="trash" />
|
||||
</div>
|
||||
{/if}
|
||||
{:else}
|
||||
<Spinner centered />
|
||||
{/if}
|
||||
|
|
|
@ -12,7 +12,11 @@
|
|||
function close(idx: number) {
|
||||
let _addresses = addresses.concat();
|
||||
_addresses.splice(idx, 1);
|
||||
if (_addresses.length) {
|
||||
navigate(`/browse/${_addresses.join(",")}`);
|
||||
} else {
|
||||
navigate("/");
|
||||
}
|
||||
}
|
||||
|
||||
$: {
|
||||
|
|
Loading…
Reference in a new issue