finishes feed
This commit is contained in:
@@ -21,14 +21,17 @@
|
||||
import TrailExportModal from "./trail_export_modal.svelte";
|
||||
import TrailShareModal from "./trail_share_modal.svelte";
|
||||
import { handleFromRecordWithIRI } from "$lib/util/activitypub_util";
|
||||
import type { Snippet } from "svelte";
|
||||
|
||||
interface Props {
|
||||
trails?: Set<Trail> | undefined;
|
||||
mode: "overview" | "map" | "list" | "multi-select";
|
||||
onconfirm?: (resetSelection?: boolean) => void;
|
||||
toggle?: Snippet<[any]>;
|
||||
onDelete?: () => void;
|
||||
onShare?: () => void;
|
||||
}
|
||||
|
||||
let { trails, mode, onconfirm }: Props = $props();
|
||||
let { trails, mode, toggle, onDelete, onShare }: Props = $props();
|
||||
|
||||
let confirmModal: ConfirmModal;
|
||||
let listSelectModal: ListSelectModal;
|
||||
@@ -302,7 +305,7 @@
|
||||
await doDeleteTrail(dTrail);
|
||||
}
|
||||
|
||||
onconfirm?.(true);
|
||||
onDelete?.();
|
||||
}
|
||||
}
|
||||
|
||||
@@ -315,7 +318,7 @@
|
||||
}
|
||||
|
||||
async function handleShareUpdate() {
|
||||
onconfirm?.();
|
||||
onShare?.();
|
||||
}
|
||||
|
||||
async function handleListSelection(list: List) {
|
||||
@@ -390,9 +393,14 @@
|
||||
}
|
||||
</script>
|
||||
|
||||
<Dropdown items={dropdownItems()} onchange={(item) => handleDropdownClick(item)}
|
||||
>{#snippet children({ toggleMenu: openDropdown })}
|
||||
{#if mode == "multi-select"}
|
||||
<Dropdown
|
||||
items={dropdownItems()}
|
||||
onchange={(item) => handleDropdownClick(item)}
|
||||
>
|
||||
{#snippet children({ toggleMenu: openDropdown })}
|
||||
{#if toggle}{@render toggle({
|
||||
toggleMenu: openDropdown,
|
||||
})}{:else if mode == "multi-select"}
|
||||
<button
|
||||
aria-label="Open dropdown"
|
||||
class="btn-primary flex-shrink-0 !font-medium"
|
||||
@@ -400,7 +408,8 @@
|
||||
>
|
||||
<span
|
||||
>{trails?.size}
|
||||
{$_("selected")} <i class="fa fa-caret-down ml-1"></i></span
|
||||
{$_("selected")}
|
||||
<i class="fa fa-caret-down ml-1"></i></span
|
||||
>
|
||||
</button>
|
||||
{:else}
|
||||
|
||||
@@ -403,6 +403,10 @@
|
||||
<LikeButton {trail}></LikeButton>
|
||||
<TrailDropdown
|
||||
trails={new Set<Trail>([trail])}
|
||||
onDelete={() =>
|
||||
history.length
|
||||
? history.back()
|
||||
: goto("/trails")}
|
||||
{mode}
|
||||
></TrailDropdown>
|
||||
</div>
|
||||
|
||||
@@ -9,7 +9,7 @@
|
||||
import TrailTable from "./trail_table.svelte";
|
||||
import SkeletonCard from "../base/skeleton_card.svelte";
|
||||
import SkeletonListItem from "../base/skeleton_list_item.svelte";
|
||||
import { onMount } from "svelte";
|
||||
import { onMount, tick } from "svelte";
|
||||
import TrailDropdown from "$lib/components/trail/trail_dropdown.svelte";
|
||||
|
||||
interface Props {
|
||||
@@ -191,15 +191,13 @@
|
||||
else hoveredTrail = undefined;
|
||||
}
|
||||
|
||||
function handleTrailsEditDone(resetSelection: boolean = false) {
|
||||
async function handleTrailsEditDone(resetSelection: boolean = false) {
|
||||
if (resetSelection) {
|
||||
selection?.clear();
|
||||
hoveredTrail = undefined;
|
||||
}
|
||||
|
||||
setTimeout(() => {
|
||||
onupdate?.(filter, selection);
|
||||
}, 500);
|
||||
await tick();
|
||||
onupdate?.(filter, selection);
|
||||
}
|
||||
|
||||
function handleMouseEnter(trail: Trail) {
|
||||
@@ -224,7 +222,8 @@
|
||||
<TrailDropdown
|
||||
trails={selection}
|
||||
mode={"multi-select"}
|
||||
onconfirm={handleTrailsEditDone}
|
||||
onDelete={() => handleTrailsEditDone(true)}
|
||||
onShare={() => handleTrailsEditDone(false)}
|
||||
/>
|
||||
</div>
|
||||
{/if}
|
||||
|
||||
Reference in New Issue
Block a user