From 9b4556245e0476e63f8354611acb03500f080af9 Mon Sep 17 00:00:00 2001
From: Alexis <35.alexis.pele@gmail.com>
Date: Thu, 17 Apr 2025 22:34:32 +0200
Subject: [PATCH 04/17] Fixed hardcoded world id for calendar creation
---
components/calendar/dialog/Create.vue | 2 +-
components/calendar/form/Create.vue | 22 ++++++++++++++--------
2 files changed, 15 insertions(+), 9 deletions(-)
diff --git a/components/calendar/dialog/Create.vue b/components/calendar/dialog/Create.vue
index 0013ea8..428a5b4 100644
--- a/components/calendar/dialog/Create.vue
+++ b/components/calendar/dialog/Create.vue
@@ -41,7 +41,7 @@ function handleClose() {
-
+
diff --git a/components/calendar/form/Create.vue b/components/calendar/form/Create.vue
index 9263c6e..0899ef3 100644
--- a/components/calendar/form/Create.vue
+++ b/components/calendar/form/Create.vue
@@ -2,7 +2,11 @@
import type { Calendar } from "~/models/CalendarConfig";
import { PhAlarm, PhCalendarDots, PhCircleNotch, PhWrench } from "@phosphor-icons/vue";
-const defaultSkeleton: Calendar = { name: "", today: { day: 1, month: 0, year: 0 }, months: [], events: [], state: "draft", color: "white" }
+const props = defineProps<{
+ worldId: number
+}>()
+
+const defaultSkeleton: Calendar = { name: "", today: { day: 1, month: 0, year: 0 }, months: [], events: [], categories: [], state: "draft", color: "white" }
const calendarSkeleton = ref
({ ...defaultSkeleton })
onMounted(() => {
@@ -38,16 +42,18 @@ const validSkeleton = computed(() => validSkeletonGeneral.value && validSkeleton
const isCreatingCalendar = ref(false)
async function handleSubmit() {
- try {
- isCreatingCalendar.value = true
- await $fetch("/api/calendars/create", { method: "POST", body: { ...calendarSkeleton.value, worldId: 1 } })
+ isCreatingCalendar.value = true
- emit("on-close")
- } catch (err) {
- console.log(err)
- } finally {
+ const { error } = await tryCatch($fetch("/api/calendars/create", { method: "POST", body: { ...calendarSkeleton.value, worldId: props.worldId } }))
+
+ if (error) {
+ console.log(error)
isCreatingCalendar.value = false
+ return
}
+
+ emit("on-close")
+ isCreatingCalendar.value = false
}
/**
From 00224417be6872cb3d8547d5eb61c850b190b461 Mon Sep 17 00:00:00 2001
From: Alexis <35.alexis.pele@gmail.com>
Date: Fri, 18 Apr 2025 17:11:45 +0200
Subject: [PATCH 05/17] Cleaned up most vanilla try catches
---
components/calendar/dialog/Delete.vue | 29 ++++++-----
components/calendar/form/Create.vue | 2 +-
components/calendar/form/CreateEvent.vue | 15 +++---
components/calendar/form/DeleteCategory.vue | 23 +++++----
components/calendar/form/DeleteEvent.vue | 29 ++++++-----
components/calendar/form/Update.vue | 18 ++++---
components/calendar/form/UpdateEvent.vue | 29 ++++++-----
components/global/user/CTA.vue | 34 ++++++-------
components/world/dialog/Delete.vue | 33 ++++++-------
components/world/form/Create.vue | 18 ++++---
components/world/form/Update.vue | 28 ++++++-----
pages/my/index.vue | 12 +----
pages/my/worlds/[id].vue | 16 ++----
stores/CalendarStore.ts | 54 ++++++++++-----------
14 files changed, 163 insertions(+), 177 deletions(-)
diff --git a/components/calendar/dialog/Delete.vue b/components/calendar/dialog/Delete.vue
index cdad74e..ca24365 100644
--- a/components/calendar/dialog/Delete.vue
+++ b/components/calendar/dialog/Delete.vue
@@ -22,26 +22,25 @@ async function handleAction(): Promise {
isLoading.value = true
- try {
- await $fetch(`/api/calendars/${props.calendar.id}`, { method: "DELETE" })
- emit("on-close")
+ const { error } = await tryCatch($fetch(`/api/calendars/${props.calendar.id}`, { method: "DELETE" }))
+ if (error) {
toast({
- title: t("entity.calendar.deletedToast.title", { calendar: props.calendar.name }),
- variant: "success",
- duration: ToastLifetime.SHORT
+ title: error.message,
+ variant: "destructive"
})
- } catch (err) {
- console.log(err)
- if (err instanceof Error) {
- toast({
- title: err.message,
- variant: "destructive"
- })
- }
- } finally {
isLoading.value = false
+ return
}
+
+ toast({
+ title: t("entity.calendar.deletedToast.title", { calendar: props.calendar.name }),
+ variant: "success",
+ duration: ToastLifetime.SHORT
+ })
+
+ emit("on-close")
+ isLoading.value = false
}
/**
diff --git a/components/calendar/form/Create.vue b/components/calendar/form/Create.vue
index 0899ef3..cd1056a 100644
--- a/components/calendar/form/Create.vue
+++ b/components/calendar/form/Create.vue
@@ -47,7 +47,7 @@ async function handleSubmit() {
const { error } = await tryCatch($fetch("/api/calendars/create", { method: "POST", body: { ...calendarSkeleton.value, worldId: props.worldId } }))
if (error) {
- console.log(error)
+ console.log(error.message)
isCreatingCalendar.value = false
return
}
diff --git a/components/calendar/form/CreateEvent.vue b/components/calendar/form/CreateEvent.vue
index a9636fc..4d20b93 100644
--- a/components/calendar/form/CreateEvent.vue
+++ b/components/calendar/form/CreateEvent.vue
@@ -29,17 +29,16 @@ async function handleSubmit() {
isLoading.value = true
- try {
- await submitSkeleton()
+ const { error } = await tryCatch(submitSkeleton())
- emit("event-created")
- } catch (err) {
- if (err instanceof Error) {
- formErrors.message = err.message
- }
- } finally {
+ if (error) {
+ formErrors.message = error.message
isLoading.value = false
+ return
}
+
+ emit("event-created")
+ isLoading.value = false
}
/**
diff --git a/components/calendar/form/DeleteCategory.vue b/components/calendar/form/DeleteCategory.vue
index 096f49e..bf6982e 100644
--- a/components/calendar/form/DeleteCategory.vue
+++ b/components/calendar/form/DeleteCategory.vue
@@ -22,21 +22,20 @@ async function handleAction(): Promise {
const categoryName = categorySkeleton.value?.name
- try {
- await deleteCategoryFromSkeleton()
+ const { error } = await tryCatch(deleteCategoryFromSkeleton())
- toast({
- title: t("entity.category.deletedToast.title", { category: categoryName }),
- variant: "success",
- duration: ToastLifetime.MEDIUM
- })
- } catch (err) {
- if (err instanceof Error) {
- formErrors.message = err.message
- }
- } finally {
+ if (error) {
+ formErrors.message = error.message
isLoading.value = false
+ return
}
+
+ toast({
+ title: t("entity.category.deletedToast.title", { category: categoryName }),
+ variant: "success",
+ duration: ToastLifetime.MEDIUM
+ })
+ isLoading.value = false
}
/**
diff --git a/components/calendar/form/DeleteEvent.vue b/components/calendar/form/DeleteEvent.vue
index e090675..ca18381 100644
--- a/components/calendar/form/DeleteEvent.vue
+++ b/components/calendar/form/DeleteEvent.vue
@@ -22,24 +22,23 @@ async function handleAction(): Promise {
const eventTitle = eventSkeleton.value.title
- try {
- await deleteEventFromSkeleton()
+ const { error } = await tryCatch(deleteEventFromSkeleton())
- isDeleteEventModalOpen.value = false
- resetSkeleton()
-
- toast({
- title: t("entity.calendar.event.deletedToast.title", { event: eventTitle }),
- variant: "success",
- duration: ToastLifetime.MEDIUM
- })
- } catch (err) {
- if (err instanceof Error) {
- formErrors.message = err.message
- }
- } finally {
+ if (error) {
+ formErrors.message = error.message
isLoading.value = false
+ return
}
+
+ isDeleteEventModalOpen.value = false
+ resetSkeleton()
+
+ toast({
+ title: t("entity.calendar.event.deletedToast.title", { event: eventTitle }),
+ variant: "success",
+ duration: ToastLifetime.MEDIUM
+ })
+ isLoading.value = false
}
/**
diff --git a/components/calendar/form/Update.vue b/components/calendar/form/Update.vue
index 72d2713..a4dbdc1 100644
--- a/components/calendar/form/Update.vue
+++ b/components/calendar/form/Update.vue
@@ -34,16 +34,20 @@ const validSkeleton = computed(() => validSkeletonGeneral.value && validSkeleton
const isUpdatingCalendar = ref(false)
async function handleSubmit() {
- try {
- isUpdatingCalendar.value = true
- await $fetch(`/api/calendars/${calendarSkeleton.value.id}`, { method: "PATCH", body: { ...calendarSkeleton.value, worldId: props.world?.id } })
+ isUpdatingCalendar.value = true
- emit("on-close")
- } catch (err) {
- console.log(err)
- } finally {
+ const { error } = await tryCatch(
+ $fetch(`/api/calendars/${calendarSkeleton.value.id}`, { method: "PATCH", body: { ...calendarSkeleton.value, worldId: props.world?.id } })
+ )
+
+ if (error) {
+ console.log(error.message)
isUpdatingCalendar.value = false
+ return
}
+
+ emit("on-close")
+ isUpdatingCalendar.value = false
}
/**
diff --git a/components/calendar/form/UpdateEvent.vue b/components/calendar/form/UpdateEvent.vue
index 5e3118e..31c5dc0 100644
--- a/components/calendar/form/UpdateEvent.vue
+++ b/components/calendar/form/UpdateEvent.vue
@@ -23,19 +23,11 @@ async function handleAction() {
isLoading.value = true
- try {
- await updateEventFromSkeleton()
+ const { error } = await tryCatch(updateEventFromSkeleton())
- emit("event-updated")
-
- toast({
- title: t("entity.calendar.event.updatedToast.title", { event: eventSkeleton.value.title }),
- variant: "success",
- duration: ToastLifetime.SHORT
- })
- } catch (err) {
+ if (error) {
// eslint-disable-next-line @typescript-eslint/no-explicit-any
- const apiError = (err as any).data as APIError
+ const apiError = (error as any).data as APIError
apiError.data.errors.forEach((error) => {
toast({
@@ -45,10 +37,21 @@ async function handleAction() {
duration: ToastLifetime.MEDIUM,
})
})
- } finally {
- resetSkeleton()
+
isLoading.value = false
+ return
}
+
+ emit("event-updated")
+
+ toast({
+ title: t("entity.calendar.event.updatedToast.title", { event: eventSkeleton.value.title }),
+ variant: "success",
+ duration: ToastLifetime.SHORT
+ })
+
+ isLoading.value = false
+ resetSkeleton()
}
/**
diff --git a/components/global/user/CTA.vue b/components/global/user/CTA.vue
index 5075222..2d516e1 100644
--- a/components/global/user/CTA.vue
+++ b/components/global/user/CTA.vue
@@ -21,29 +21,27 @@ function closeMenu() {
watch(user, closeMenu)
async function handleGoogleLogin() {
- try {
- auth.signInWithOAuth({
- provider: "google",
- options: {
- queryParams: {
- access_type: "offline",
- prompt: "consent"
- },
- redirectTo: profileUrl
- }
- })
- } catch (err) {
- console.log(err)
+ const { error } = await auth.signInWithOAuth({
+ provider: "google",
+ options: {
+ queryParams: {
+ access_type: "offline",
+ prompt: "consent"
+ },
+ redirectTo: profileUrl
+ }
+ })
+
+ if (error) {
+ console.log(error.message)
}
}
async function handleLogout() {
- try {
- const { error } = await auth.signOut()
+ const { error } = await auth.signOut()
- if (error) throw error
- } catch (err) {
- console.log(err)
+ if (error) {
+ console.log(error.message)
}
}
diff --git a/components/world/dialog/Delete.vue b/components/world/dialog/Delete.vue
index e15f5e8..58ef904 100644
--- a/components/world/dialog/Delete.vue
+++ b/components/world/dialog/Delete.vue
@@ -17,31 +17,30 @@ const isLoading = ref(false)
const emit = defineEmits(["on-close"])
async function handleAction(): Promise {
- if (isLoading.value) return
- if (!props.world) return
+ if (isLoading.value || !props.world) return
isLoading.value = true
- try {
- await $fetch(`/api/worlds/${props.world.id}`, { method: "DELETE" })
- emit("on-close")
+ const { error } = await tryCatch(
+ $fetch(`/api/worlds/${props.world.id}`, { method: "DELETE" })
+ )
+ if (error) {
toast({
- title: t("entity.world.deletedToast.title", { world: props.world.name }),
- variant: "success",
- duration: ToastLifetime.SHORT
+ title: error.message,
+ variant: "destructive"
})
- } catch (err) {
- console.log(err)
- if (err instanceof Error) {
- toast({
- title: err.message,
- variant: "destructive"
- })
- }
- } finally {
isLoading.value = false
+ return
}
+
+ toast({
+ title: t("entity.world.deletedToast.title", { world: props.world.name }),
+ variant: "success",
+ duration: ToastLifetime.SHORT
+ })
+ emit("on-close")
+ isLoading.value = false
}
/**
diff --git a/components/world/form/Create.vue b/components/world/form/Create.vue
index b9d41f6..84ba3af 100644
--- a/components/world/form/Create.vue
+++ b/components/world/form/Create.vue
@@ -22,16 +22,20 @@ const validSkeleton = computed(() => worldSkeleton.value.name)
async function handleSubmit() {
if (!user.value) return
- try {
- isLoading.value = true
- await $fetch("/api/worlds/create", { method: "POST", body: { ...worldSkeleton.value } })
+ isLoading.value = true
- emit("on-close")
- } catch (err) {
- console.log(err)
- } finally {
+ const { error } = await tryCatch(
+ $fetch("/api/worlds/create", { method: "POST", body: { ...worldSkeleton.value } })
+ )
+
+ if (error) {
+ console.log(error.message)
isLoading.value = false
+ return
}
+
+ emit("on-close")
+ isLoading.value = false
}
/**
diff --git a/components/world/form/Update.vue b/components/world/form/Update.vue
index 353c9f5..7050c31 100644
--- a/components/world/form/Update.vue
+++ b/components/world/form/Update.vue
@@ -30,22 +30,24 @@ const validSkeleton = computed(() => worldSkeleton.value.name)
async function handleSubmit() {
if (!user.value || !worldSkeleton.value) return
- try {
- isLoading.value = true
- await $fetch(`/api/worlds/${worldSkeleton.value.id}`, { method: "PATCH", body: { ...worldSkeleton.value } })
+ isLoading.value = true
- toast({
- title: t("entity.world.updatedToast.title", { world: worldSkeleton.value.name }),
- variant: "success",
- duration: ToastLifetime.SHORT
- })
+ const { error } = await tryCatch(
+ $fetch(`/api/worlds/${worldSkeleton.value.id}`, { method: "PATCH", body: { ...worldSkeleton.value } })
+ )
- emit("on-close")
- } catch (err) {
- console.log(err)
- } finally {
- isLoading.value = false
+ if (error) {
+ console.log(error.message)
}
+
+ toast({
+ title: t("entity.world.updatedToast.title", { world: worldSkeleton.value.name }),
+ variant: "success",
+ duration: ToastLifetime.SHORT
+ })
+
+ emit("on-close")
+ isLoading.value = false
}
/**
diff --git a/pages/my/index.vue b/pages/my/index.vue
index ac987c0..b0e1fe9 100644
--- a/pages/my/index.vue
+++ b/pages/my/index.vue
@@ -38,22 +38,14 @@ function handleInsertedWorld(newWorld: WorldChannelPayload) {
newWorld.createdAt = newWorld.created_at;
newWorld.gmId = newWorld.gm_id;
- try {
- worlds.value?.data.push(newWorld)
- } catch (err) {
- console.log(err)
- }
+ worlds.value?.data.push(newWorld)
}
/** Handles world deletion realtime events */
function handleDeletedWorld(id: number) {
if (!worlds.value?.data) return
- try {
- worlds.value.data.splice(worlds.value.data.findIndex(w => w.id === id), 1)
- } catch (err) {
- console.log(err)
- }
+ worlds.value.data.splice(worlds.value.data.findIndex(w => w.id === id), 1)
}
onMounted(() => {
diff --git a/pages/my/worlds/[id].vue b/pages/my/worlds/[id].vue
index 662d6d7..5a45cee 100644
--- a/pages/my/worlds/[id].vue
+++ b/pages/my/worlds/[id].vue
@@ -51,25 +51,17 @@ let worldChannel: RealtimeChannel
function handleInsertedCalendar(newCalendar: CalendarChannelPayload) {
if (!world.value) return
- newCalendar.createdAt = newCalendar.created_at;
- newCalendar.eventNb = [{ count: 0 }];
+ newCalendar.createdAt = newCalendar.created_at
+ newCalendar.eventNb = [{ count: 0 }]
- try {
- world.value.data.calendars?.push(newCalendar)
- } catch (err) {
- console.log(err)
- }
+ world.value.data.calendars?.push(newCalendar)
}
/** Handles calendar deletion realtime events */
function handleDeletedCalendar(id: number) {
if (!world.value) return
- try {
- world.value.data.calendars?.splice(world.value.data.calendars.findIndex(c => c.id === id), 1)
- } catch (err) {
- console.log(err)
- }
+ world.value.data.calendars?.splice(world.value.data.calendars.findIndex(c => c.id === id), 1)
}
onMounted(() => {
diff --git a/stores/CalendarStore.ts b/stores/CalendarStore.ts
index 5e6545f..5d37f8b 100644
--- a/stores/CalendarStore.ts
+++ b/stores/CalendarStore.ts
@@ -61,37 +61,33 @@ export const useCalendar = defineStore("calendar", () => {
const months = ref([])
function setActiveCalendar(calendarData: Calendar) {
- try {
- if (!calendarData.id) return
+ if (!calendarData.id) return
- activeCalendar.value = {
- id: calendarData.id,
- name: calendarData.name,
- today: calendarData.today,
- gmId: calendarData.world?.gmId
- }
-
- setDefaultDate(activeCalendar.value.today)
- selectDate(activeCalendar.value.today)
- setReadStatus(activeCalendar.value.gmId!)
-
- if (!params.day) {
- params.day = defaultDate.value.day.toString()
- }
- if (!params.month) {
- params.month = defaultDate.value.month.toString()
- }
- if (!params.year) {
- params.year = defaultDate.value.year.toString()
- }
-
- months.value = calendarData.months
-
- baseEvents.value = calendarData.events
- categories.value = calendarData.categories
- } catch (err) {
- console.log(err)
+ activeCalendar.value = {
+ id: calendarData.id,
+ name: calendarData.name,
+ today: calendarData.today,
+ gmId: calendarData.world?.gmId
}
+
+ setDefaultDate(activeCalendar.value.today)
+ selectDate(activeCalendar.value.today)
+ setReadStatus(activeCalendar.value.gmId!)
+
+ if (!params.day) {
+ params.day = defaultDate.value.day.toString()
+ }
+ if (!params.month) {
+ params.month = defaultDate.value.month.toString()
+ }
+ if (!params.year) {
+ params.year = defaultDate.value.year.toString()
+ }
+
+ months.value = calendarData.months
+
+ baseEvents.value = calendarData.events
+ categories.value = calendarData.categories
}
const params = useUrlSearchParams("history", {
From 034713961bd3340d5e8d1fe21778c6e222c1b382 Mon Sep 17 00:00:00 2001
From: Alexis <35.alexis.pele@gmail.com>
Date: Fri, 18 Apr 2025 17:35:02 +0200
Subject: [PATCH 06/17] Changed card color for calendars and worlds
---
assets/_colors.css | 27 +++++++++++++++++++++++++-
components/calendar/PreviewCard.vue | 30 +++++++----------------------
components/ui/card/Card.vue | 4 ++--
components/ui/card/CardFooter.vue | 2 +-
components/world/PreviewCard.vue | 30 +++++++----------------------
5 files changed, 43 insertions(+), 50 deletions(-)
diff --git a/assets/_colors.css b/assets/_colors.css
index 63afdf5..0eaa107 100644
--- a/assets/_colors.css
+++ b/assets/_colors.css
@@ -118,7 +118,8 @@
.event-button,
.event-popover,
-.event-callout {
+.event-callout,
+.card-color {
--fg-color: var(--color-foreground);
--bg-color: var(--color-background);
@@ -126,6 +127,13 @@
transition-timing-function: var(--default-transition-timing-function);
}
+.event-callout hr,
+.card-color hr {
+ transition-property: border-color;
+ transition-duration: var(--default-transition-duration);
+ transition-timing-function: var(--default-transition-timing-function);
+}
+
.event-button {
color: var(--fg-color);
background-color: var(--bg-color);
@@ -206,6 +214,23 @@
background-color: color-mix(in srgb, var(--bg-color) 50%, var(--color-background));
}
+.card-color {
+ border-color: color-mix(in srgb, var(--bg-color) 30%, var(--color-background));
+ background-color: color-mix(in srgb, var(--bg-color) 10%, var(--color-background));
+
+ hr {
+ border-color: color-mix(in srgb, var(--bg-color) 30%, var(--color-background))
+ }
+}
+.card-color:is(:hover, :focus-visible) {
+ border-color: color-mix(in srgb, var(--bg-color) 40%, var(--color-background));
+ background-color: color-mix(in srgb, var(--bg-color) 20%, var(--color-background));
+
+ hr {
+ border-color: color-mix(in srgb, var(--bg-color) 40%, var(--color-background))
+ }
+}
+
.bgc {
display: flex;
align-items: center;
diff --git a/components/calendar/PreviewCard.vue b/components/calendar/PreviewCard.vue
index 3658640..b202eee 100644
--- a/components/calendar/PreviewCard.vue
+++ b/components/calendar/PreviewCard.vue
@@ -1,4 +1,5 @@
-
+
diff --git a/components/world/PreviewCard.vue b/components/world/PreviewCard.vue
index 7bdada2..ef6b31a 100644
--- a/components/world/PreviewCard.vue
+++ b/components/world/PreviewCard.vue
@@ -2,6 +2,7 @@
import { PhArchive, PhFile, PhFileDashed, PhFilePlus, PhPencil, PhPencilSimpleLine, PhTrash } from "@phosphor-icons/vue";
import type { World } from "~/models/World";
import { DateTime } from "luxon";
+import { cn } from "@/lib/utils";
const props = defineProps<{
world: World
@@ -18,28 +19,9 @@ const updatedAt = computed
(() => props.world.updatedAt ? DateTime.fromIS
@@ -73,7 +55,9 @@ const updatedAt = computed(() => props.world.updatedAt ? DateTime.fromIS
-
+
+
+
-
From 7480447420a5c77e2b252aba92134e5722bd5fb5 Mon Sep 17 00:00:00 2001
From: Alexis <35.alexis.pele@gmail.com>
Date: Fri, 18 Apr 2025 17:44:21 +0200
Subject: [PATCH 07/17] Standardized tilde imports for non modules
---
components/calendar/Calendar.vue | 2 +-
components/calendar/OptionsCTA.vue | 4 ++--
components/calendar/PreviewCard.vue | 2 +-
components/calendar/event/Details.vue | 8 ++++----
components/calendar/event/Event.vue | 4 ++--
components/calendar/menu/Menu.vue | 2 +-
components/calendar/search/CalendarSearch.vue | 6 +++---
components/calendar/search/lists/CharacterCallout.vue | 10 +++++-----
components/calendar/search/lists/EventCallout.vue | 6 +++---
components/calendar/search/lists/SearchList.vue | 6 +++---
components/calendar/state/monthly/DayTile.vue | 4 ++--
components/calendar/state/monthly/Layout.vue | 2 +-
components/calendar/state/yearly/DayTile.vue | 2 +-
components/calendar/state/yearly/Layout.vue | 2 +-
components/global/input/Color.vue | 2 +-
components/ui/alert-dialog/AlertDialogAction.vue | 4 ++--
components/ui/alert-dialog/AlertDialogCancel.vue | 4 ++--
components/ui/alert-dialog/AlertDialogContent.vue | 2 +-
components/ui/alert-dialog/AlertDialogDescription.vue | 2 +-
components/ui/alert-dialog/AlertDialogFooter.vue | 2 +-
components/ui/alert-dialog/AlertDialogHeader.vue | 2 +-
components/ui/alert-dialog/AlertDialogTitle.vue | 2 +-
components/ui/avatar/Avatar.vue | 2 +-
components/ui/badge/Badge.vue | 2 +-
components/ui/breadcrumb/BreadcrumbEllipsis.vue | 2 +-
components/ui/breadcrumb/BreadcrumbItem.vue | 2 +-
components/ui/breadcrumb/BreadcrumbLink.vue | 2 +-
components/ui/breadcrumb/BreadcrumbList.vue | 2 +-
components/ui/breadcrumb/BreadcrumbPage.vue | 2 +-
components/ui/breadcrumb/BreadcrumbSeparator.vue | 2 +-
components/ui/button/Button.vue | 2 +-
components/ui/card/Card.vue | 2 +-
components/ui/card/CardContent.vue | 2 +-
components/ui/card/CardDescription.vue | 2 +-
components/ui/card/CardFooter.vue | 2 +-
components/ui/card/CardHeader.vue | 2 +-
components/ui/card/CardTitle.vue | 2 +-
components/ui/checkbox/Checkbox.vue | 2 +-
components/ui/command/Command.vue | 2 +-
components/ui/command/CommandDialog.vue | 2 +-
components/ui/command/CommandEmpty.vue | 2 +-
components/ui/command/CommandGroup.vue | 2 +-
components/ui/command/CommandInput.vue | 2 +-
components/ui/command/CommandItem.vue | 2 +-
components/ui/command/CommandList.vue | 2 +-
components/ui/command/CommandSeparator.vue | 2 +-
components/ui/command/CommandShortcut.vue | 2 +-
components/ui/dialog/DialogContent.vue | 2 +-
components/ui/dialog/DialogDescription.vue | 2 +-
components/ui/dialog/DialogFooter.vue | 2 +-
components/ui/dialog/DialogHeader.vue | 2 +-
components/ui/dialog/DialogScrollContent.vue | 2 +-
components/ui/dialog/DialogTitle.vue | 2 +-
.../ui/dropdown-menu/DropdownMenuCheckboxItem.vue | 2 +-
components/ui/dropdown-menu/DropdownMenuContent.vue | 2 +-
components/ui/dropdown-menu/DropdownMenuItem.vue | 2 +-
components/ui/dropdown-menu/DropdownMenuLabel.vue | 2 +-
components/ui/dropdown-menu/DropdownMenuRadioItem.vue | 2 +-
components/ui/dropdown-menu/DropdownMenuSeparator.vue | 2 +-
components/ui/dropdown-menu/DropdownMenuShortcut.vue | 2 +-
components/ui/dropdown-menu/DropdownMenuSubContent.vue | 2 +-
components/ui/dropdown-menu/DropdownMenuSubTrigger.vue | 2 +-
components/ui/input/Input.vue | 2 +-
components/ui/label/Label.vue | 2 +-
components/ui/pagination/PaginationEllipsis.vue | 2 +-
components/ui/pagination/PaginationFirst.vue | 4 ++--
components/ui/pagination/PaginationLast.vue | 4 ++--
components/ui/pagination/PaginationNext.vue | 4 ++--
components/ui/pagination/PaginationPrev.vue | 4 ++--
components/ui/popover/PopoverContent.vue | 2 +-
components/ui/progress/Progress.vue | 2 +-
components/ui/select/SelectContent.vue | 2 +-
components/ui/select/SelectGroup.vue | 2 +-
components/ui/select/SelectItem.vue | 2 +-
components/ui/select/SelectLabel.vue | 2 +-
components/ui/select/SelectScrollDownButton.vue | 2 +-
components/ui/select/SelectScrollUpButton.vue | 2 +-
components/ui/select/SelectSeparator.vue | 2 +-
components/ui/select/SelectTrigger.vue | 2 +-
components/ui/skeleton/Skeleton.vue | 2 +-
components/ui/switch/Switch.vue | 2 +-
components/ui/table/Table.vue | 2 +-
components/ui/table/TableBody.vue | 2 +-
components/ui/table/TableCaption.vue | 2 +-
components/ui/table/TableCell.vue | 2 +-
components/ui/table/TableEmpty.vue | 2 +-
components/ui/table/TableFooter.vue | 2 +-
components/ui/table/TableHead.vue | 2 +-
components/ui/table/TableHeader.vue | 2 +-
components/ui/table/TableRow.vue | 2 +-
components/ui/tabs/TabsContent.vue | 2 +-
components/ui/tabs/TabsList.vue | 2 +-
components/ui/tabs/TabsTrigger.vue | 2 +-
components/ui/tags-input/TagsInput.vue | 2 +-
components/ui/tags-input/TagsInputInput.vue | 2 +-
components/ui/tags-input/TagsInputItem.vue | 2 +-
components/ui/tags-input/TagsInputItemDelete.vue | 2 +-
components/ui/tags-input/TagsInputItemText.vue | 2 +-
components/ui/toast/Toast.vue | 2 +-
components/ui/toast/ToastAction.vue | 2 +-
components/ui/toast/ToastClose.vue | 2 +-
components/ui/toast/ToastDescription.vue | 2 +-
components/ui/toast/ToastTitle.vue | 2 +-
components/ui/toast/ToastViewport.vue | 2 +-
components/ui/toggle-group/ToggleGroup.vue | 4 ++--
components/ui/toggle-group/ToggleGroupItem.vue | 4 ++--
components/ui/toggle/Toggle.vue | 2 +-
components/ui/tooltip/TooltipContent.vue | 2 +-
components/world/PreviewCard.vue | 2 +-
109 files changed, 133 insertions(+), 133 deletions(-)
diff --git a/components/calendar/Calendar.vue b/components/calendar/Calendar.vue
index 8e4e5f9..c221ca9 100644
--- a/components/calendar/Calendar.vue
+++ b/components/calendar/Calendar.vue
@@ -1,5 +1,5 @@
diff --git a/components/ui/dialog/DialogHeader.vue b/components/ui/dialog/DialogHeader.vue
index ee1b66a..717e9aa 100644
--- a/components/ui/dialog/DialogHeader.vue
+++ b/components/ui/dialog/DialogHeader.vue
@@ -1,6 +1,6 @@
diff --git a/components/ui/select/SelectScrollDownButton.vue b/components/ui/select/SelectScrollDownButton.vue
index 27f2981..dc4a0f6 100644
--- a/components/ui/select/SelectScrollDownButton.vue
+++ b/components/ui/select/SelectScrollDownButton.vue
@@ -6,7 +6,7 @@ import {
useForwardProps
} from "radix-vue"
import { ChevronDown } from "lucide-vue-next"
-import { cn } from "@/lib/utils"
+import { cn } from "~/lib/utils"
const props = defineProps()
diff --git a/components/ui/select/SelectScrollUpButton.vue b/components/ui/select/SelectScrollUpButton.vue
index 6977a9e..25d7882 100644
--- a/components/ui/select/SelectScrollUpButton.vue
+++ b/components/ui/select/SelectScrollUpButton.vue
@@ -2,7 +2,7 @@
import { type HTMLAttributes, computed } from "vue"
import { SelectScrollUpButton, type SelectScrollUpButtonProps, useForwardProps } from "radix-vue"
import { ChevronUp } from "lucide-vue-next"
-import { cn } from "@/lib/utils"
+import { cn } from "~/lib/utils"
const props = defineProps()
diff --git a/components/ui/select/SelectSeparator.vue b/components/ui/select/SelectSeparator.vue
index 0875aa1..e61379b 100644
--- a/components/ui/select/SelectSeparator.vue
+++ b/components/ui/select/SelectSeparator.vue
@@ -1,7 +1,7 @@
From e6b26704383c9edda7767f9ff9c9f49e8783f22e Mon Sep 17 00:00:00 2001
From: Alexis <35.alexis.pele@gmail.com>
Date: Tue, 22 Apr 2025 17:17:13 +0200
Subject: [PATCH 15/17] Removed character string
---
i18n/i18n.config.ts | 4 ++--
1 file changed, 2 insertions(+), 2 deletions(-)
diff --git a/i18n/i18n.config.ts b/i18n/i18n.config.ts
index 9d77160..f8386f9 100644
--- a/i18n/i18n.config.ts
+++ b/i18n/i18n.config.ts
@@ -122,7 +122,7 @@ export default defineI18nConfig(() => ({
subtitle: "Search through calendar and world data",
older: "Older",
newer: "Newer",
- ctaPlaceholder: "Search an event, characters…"
+ ctaPlaceholder: "Search an event"
},
world: {
nameSingular: "World",
@@ -445,7 +445,7 @@ export default defineI18nConfig(() => ({
subtitle: "Rechercher les données disponibles sur le calendrier",
older: "Plus ancien",
newer: "Plus récent",
- ctaPlaceholder: "Rechercher un évènement, personnage…"
+ ctaPlaceholder: "Rechercher un évènement"
},
world: {
nameSingular: "Monde",
From 15bfc6608752992e25f6dca44f9bf9cc9fa1d70e Mon Sep 17 00:00:00 2001
From: Alexis <35.alexis.pele@gmail.com>
Date: Tue, 22 Apr 2025 22:15:49 +0200
Subject: [PATCH 16/17] Removed dark classes for calendar preview
---
components/calendar/PreviewCard.vue | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/components/calendar/PreviewCard.vue b/components/calendar/PreviewCard.vue
index f37fd6d..c2efa8e 100644
--- a/components/calendar/PreviewCard.vue
+++ b/components/calendar/PreviewCard.vue
@@ -24,7 +24,7 @@ const calendarLink = computed(() => isOwner.value ? `/my/calendars/${props.calen