diff --git a/src/api/lists.ts b/src/api/lists.ts index 5999e2a..a39e6d0 100644 --- a/src/api/lists.ts +++ b/src/api/lists.ts @@ -9,6 +9,7 @@ import type { SetListItemTitlePayload, AddUserToListPayload, RemoveUserFromListPayload, + OrderListsPayload, } from '@/types/list' export async function getListsApi(): Promise { @@ -77,6 +78,13 @@ export async function removeUserFromListApi(payload: RemoveUserFromListPayload): } } +export async function orderListsApi(payload: OrderListsPayload): Promise { + const response = await apiClient.post('/lists/order', payload) + if (!response.ok) { + throw new Error(await extractErrorMessage(response, 'Failed to reorder lists')) + } +} + export async function deleteListApi(listId: string): Promise { const response = await apiClient.delete(`/lists/${listId}`) if (!response.ok) { diff --git a/src/components/ListCard.vue b/src/components/ListCard.vue index 1c72cfb..a5d0dff 100644 --- a/src/components/ListCard.vue +++ b/src/components/ListCard.vue @@ -5,10 +5,11 @@ import type { LocalList } from '@/database/db' import { useListsStore } from '@/stores/lists' import { useDismissableMenu } from '@/composables/useDismissableMenu' -const props = defineProps<{ list: LocalList }>() +const props = defineProps<{ list: LocalList; dragging?: boolean }>() const emit = defineEmits<{ share: [list: LocalList] delete: [list: LocalList] + 'handle-pointerdown': [event: PointerEvent] }>() const listsStore = useListsStore() @@ -49,7 +50,24 @@ function handleDelete(event: Event) {