Added world edit subscription

And also toast lifetimes
This commit is contained in:
Alexis
2025-03-01 14:14:55 +01:00
parent 189f0eec75
commit ba3eb29e04
7 changed files with 80 additions and 14 deletions

View File

@@ -1,6 +1,7 @@
<script lang="ts" setup>
import { PhCircleNotch } from "@phosphor-icons/vue";
import { useToast } from "~/components/ui/toast";
import { ToastLifetime } from "~/components/ui/toast/use-toast";
import type { Calendar } from "~/models/CalendarConfig";
const { toast } = useToast()
@@ -28,7 +29,7 @@ async function handleAction(): Promise<void> {
toast({
title: t("entity.calendar.deletedToast.title", { calendar: props.calendar.name }),
variant: "success",
duration: 3000
duration: ToastLifetime.SHORT
})
} catch (err) {
console.log(err)

View File

@@ -1,6 +1,7 @@
<script lang="ts" setup>
import { PhCircleNotch } from "@phosphor-icons/vue";
import { useToast } from "~/components/ui/toast";
import { ToastLifetime } from "~/components/ui/toast/use-toast";
const { resetSkeleton, deleteEventFromSkeleton, cancelLatestRequest } = useCalendar()
const { isDeleteEventModalOpen, eventSkeleton } = storeToRefs(useCalendar())
@@ -30,7 +31,7 @@ async function handleAction(): Promise<void> {
toast({
title: t("entity.calendar.event.deletedToast.title", { event: eventTitle }),
variant: "success",
duration: 3000
duration: ToastLifetime.MEDIUM
})
} catch (err) {
if (err instanceof Error) {

View File

@@ -1,6 +1,7 @@
<script lang="ts" setup>
import { PhAlarm, PhCircleNotch, PhEye, PhEyeClosed, PhMapPinArea, PhPencilSimpleLine, PhTag } from "@phosphor-icons/vue"
import { useToast } from "~/components/ui/toast";
import { ToastLifetime } from "~/components/ui/toast/use-toast";
import type { APIError } from "~/models/Errors";
const emit = defineEmits(["event-updated"])
@@ -30,7 +31,7 @@ async function handleAction() {
toast({
title: t("entity.calendar.event.updatedToast.title", { event: eventSkeleton.value.title }),
variant: "success",
duration: 3000
duration: ToastLifetime.SHORT
})
} catch (err) {
// eslint-disable-next-line @typescript-eslint/no-explicit-any
@@ -41,7 +42,7 @@ async function handleAction() {
title: t("entity.calendar.event.editErrors.toastTitle"),
variant: "destructive",
description: t(`entity.calendar.event.editErrors.${error.path[1]}_${error.code}`),
duration: 2000,
duration: ToastLifetime.MEDIUM,
})
})
} finally {

View File

@@ -5,6 +5,12 @@ import type { ToastProps } from "."
const TOAST_LIMIT = 3
const TOAST_REMOVE_DELAY = 1000000
export enum ToastLifetime {
SHORT = 2000,
MEDIUM = 3500,
LONG = 6000,
}
export type StringOrVNode =
| string
| VNode

View File

@@ -1,6 +1,7 @@
<script lang="ts" setup>
import { PhCircleNotch } from "@phosphor-icons/vue";
import { useToast } from "~/components/ui/toast";
import { ToastLifetime } from "~/components/ui/toast/use-toast";
import type { World } from "~/models/World";
const { toast } = useToast()
@@ -28,7 +29,7 @@ async function handleAction(): Promise<void> {
toast({
title: t("entity.world.deletedToast.title", { world: props.world.name }),
variant: "success",
duration: 3000
duration: ToastLifetime.SHORT
})
} catch (err) {
console.log(err)

View File

@@ -1,6 +1,7 @@
<script lang="ts" setup>
import { PhCircleNotch } from "@phosphor-icons/vue";
import { useToast } from "~/components/ui/toast";
import { ToastLifetime } from "~/components/ui/toast/use-toast";
import type { World } from "~/models/World";
const { toast } = useToast()
@@ -36,7 +37,7 @@ async function handleSubmit() {
toast({
title: t("entity.world.updatedToast.title", { world: worldSkeleton.value.name }),
variant: "success",
duration: 3000
duration: ToastLifetime.SHORT
})
emit("on-close")